当前位置: 首页 > news >正文

MVANet——小范围内捕捉高分辨率细节而在大范围内不损失精度的强大的背景消除模型

一、概述

前景提取(背景去除)是现代计算机视觉的关键挑战之一,在各种应用中的重要性与日俱增。在图像编辑和视频制作中有效地去除背景不仅能提高美学价值,还能提高工作流程的效率。在要求精确度的领域,如医学图像分析和自动驾驶技术中的物体识别,背景去除也发挥着重要作用。主要的挑战是在高分辨率图像中捕捉小区域的精细细节,同时保持大区域的精确度。迄今为止,还没有一种方法能将细节再现与整体精度相结合。然而,一种名为 MVANet 的新方法为这一挑战提供了创新的解决方案。

MVANet 采用的独特方法受到人类视觉的启发。正如人类从多个角度观察物体一样,MVANet 也从多个角度分析物体。这种方法可以在不丢失细节的情况下提高整体精度。此外,多视角的整合还可实现远距离视觉交互,这是传统方法难以实现的。

市场营销、娱乐、医疗保健和安全等各行各业对背景消除技术的需求与日俱增。在网上购物中,它可使产品的前景更加突出,从而提高购买意愿。它对于使用虚拟背景的视频会议应用以及视频制作中绿屏的替代技术也很重要。随着所有这些应用成为焦点,前景提取性能的提高将对整个行业产生重大影响。

这种新方法已经证明了它的有效性。特别是在 DIS-5K 数据集上,它在精度和速度上都优于目前的 SOTA;MVANet 有潜力成为前景提取任务的新标准,并有望在未来获得更广泛的应用。

二、算法架构

图 1:MVANet 概述。

MVANet 的整体结构与 UNet 类似,如图 1 所示。编码器使用一个远景(G)和一个近景(Lm)作为输入,远景和近景由 M(本文中为 M=4)不重叠的局部斑块组成。

G 和 Lm 构成一个多视角补丁序列,分批输入特征提取器,生成多级特征图 Ei(i=1,2,3,4,5)。每个 Ei 包含远景和近景的表示。最高级别的特征图 E5 沿批次维度被分成两组不同的全局和局部特征,并被输入多视图完成定位模块(MCLM,图 2-a)。2-a),并将其输入 MCLM(MCLM,图 2-a)。

该解码器类似于 FPN(Lin et.al, 2017)架构,但在每个解码阶段都插入了一个即时多视图完成细化模块(MCRM,图 2-b)。每个阶段的输出用于重建 SDO 地图(只有前景的地图)和计算损失。图 1 的右下方显示了多视角整合。局部特征合并后输入到 Conv Head,以便与全局特征进行细化和串联。

图 2:MCLM 和 MCRM 架构。

学习的损失函数

如图 1 所示,解码器每一层的输出和最终预测都加入了监督。

具体来说,前者由三个部分组成:ll、lg 和 la,分别代表细化模块中的组合局部表征、全局表征和标记注意图。每个侧输出都需要一个单独的卷积层来获得单通道预测。后者用 lf 表示。这些组件结合使用了二元交叉熵(BCE)损失和加权 IoU 损失,这在大多数分割任务中都很常用。

最终的学习损失函数如下式所示。本文设置 λg=0.3,λh=0.3。

三、试验

数据集和评估指标

数据集

本文使用 DIS5K 基准数据集进行实验。该数据集包含 225 个类别的 5,470 张高分辨率图像(2K、4K 或更大尺寸)。数据集分为三个部分

  • DIS-TR:3 000 幅训练图像。
  • DIS-VD:470 幅验证图像。
  • DIS-TE:2,000 张测试图像,分为四个子集(DIS-TE1、2、3 和 4),每个子集有 500 张图像,几何复杂度依次增加

DIS5K 数据集因其高分辨率图像、详细的结构和出色的注释质量,比其他分割数据集更具挑战性,需要先进的模型来捕捉复杂的细节。

评估指标

采用以下指标评估绩效

  • 最大 F 值:测量准确性和重复性的最大得分,β² 设置为 0.3。
  • 加权 F 值:与 F 值类似,但已加权。
  • 结构相似性测量(Sm):评估预测值与真实值之间的结构相似性,同时考虑领域和对象识别。
  • 电子测量:用于评估像素与图像之间的匹配程度。
  • 平均绝对误差 (MAE):计算预测地图与真实值之间的平均误差。

这些指标有助于了解该模型在识别和分割 DIS5K 数据集中具有复杂结构的物体方面的性能。

实验结果

定量评估

表 1 将拟议的 MVANet 与其他 11 个著名的相关模型(F3Net、GCPANet、PFNet、BSANet、ISDNet、IFA、IS-Net、FPDIS、UDUN、PGNet 和 InSPyReNet)进行了比较。为进行公平比较,输入大小标准化为 1024 × 1024。结果表明,在所有数据集的不同指数上,MVANet 都明显优于其他模型。特别是在 F、Em、Sm 和 MAE 方面,MVANet 分别比 InSPyReNet 高出 2.5%、2.1%、0.5% 和 0.4%。

此外,还评估了 InSPyReNet 和 MVANet 的推理速度。两者都在英伟达 RTX 3090 GPU 上进行了测试。由于采用了简单的单流设计,MVANet 的推理速度达到了 4.6 FPS,而 InSPyReNet 为 2.2 FPS。

表 1.DIS5K 的定量评估。

定性评估

为了直观地展示所提方法的高预测准确性,我们将测试集中所选图像的输出结果可视化。如图 3 所示,即使在复杂的场景中,建议的方法也能准确定位物体并捕捉边缘细节。特别是,建议的方法能够准确区分椅子的完整分割和每个网格的内部,而其他方法则会受到明显的黄色纱布和阴影的干扰(见下行)。

图 3.DIS5K 中的定性评估。

四、代码测试

下载源码

git clone https://github.com/qianyu-dlut/MVANet.git
cd MVANet

环境配置

conda create -n mvanet python==3.8
conda activate mvanet
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
pip install -U openmim
mim install mmcv-full==1.3.17
pip install -r requirements.txt

测试代码:

import os
import torch
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from torch.autograd import no_grad
from torchvision import transforms
from model.MVANet import inf_MVANet
import ttach as tta# 参数设置
model_path = 'saved_model/Model_80.pth'  # 修改为你的模型路径
image_directory = 'data/images'  # 修改为你的图像目录路径
output_directory = 'datamasks'  # 预测结果保存路径# 图像变换
img_transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])# 定义 TTA 变换
tta_transforms = tta.Compose([tta.HorizontalFlip(),tta.Scale(scales=[0.75, 1, 1.25], interpolation='bilinear', align_corners=False),
])def load_model(model_path):net = inf_MVANet().cuda()# 加载模型参数pretrained_dict = torch.load(model_path, map_location='cuda')model_dict = net.state_dict()pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}model_dict.update(pretrained_dict)net.load_state_dict(model_dict)net.eval()return netdef predict_image(net, img_path):# 加载图像并进行预处理img = Image.open(img_path).convert('RGB')w_, h_ = img.sizeimg_resize = img.resize([1024, 1024], Image.BILINEAR)img_var = img_transform(img_resize).unsqueeze(0).cuda()# 预测结果masks = []with no_grad():for transformer in tta_transforms:img_transformed = transformer.augment_image(img_var)model_output = net(img_transformed)deaug_mask = transformer.deaugment_mask(model_output)masks.append(deaug_mask)prediction = torch.mean(torch.stack(masks, dim=0), dim=0).sigmoid()# 将预测结果转换为图像prediction_img = transforms.ToPILImage()(prediction.data.squeeze(0).cpu())prediction_img = prediction_img.resize((w_, h_), Image.BILINEAR)return img, prediction_imgdef process_directory(net, image_dir, output_dir):# 创建保存目录if not os.path.exists(output_dir):os.makedirs(output_dir)# 遍历目录中的所有图像image_files = [f for f in os.listdir(image_dir) if f.lower().endswith(('.png', '.jpg', '.jpeg'))]for idx, image_file in enumerate(image_files):img_path = os.path.join(image_dir, image_file)print(f"Processing {idx + 1}/{len(image_files)}: {img_path}")# 预测并显示结果original_img, prediction_img = predict_image(net, img_path)# 保存预测结果prediction_path = os.path.join(output_dir, f"prediction_{image_file}")prediction_img.save(prediction_path)# 显示图像fig, axs = plt.subplots(1, 2, figsize=(10, 5))axs[0].imshow(original_img)axs[0].set_title("Original Image")axs[0].axis('off')axs[1].imshow(prediction_img, cmap='gray')axs[1].set_title("Predicted Mask")axs[1].axis('off')plt.show()if __name__ == '__main__':# 加载模型与处理图像目录model = load_model(model_path)process_directory(model, image_directory, output_directory)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五、总结

在这篇评论文章中,我们将高精度前景提取(背景去除)建模为一个多视角物体识别问题,提供了一个高效、简单的多视角聚合网络。这样做的目的是更好地平衡模型设计、准确性和推理速度。
为解决多视图的目标对准问题,提出了多视图完成定位模块,以联合计算目标的共同关注区域。此外,提出的多视图完成细化模块被嵌入到每个解码器块中,以充分整合互补的本地信息,减少单视图补丁中语义的缺失。这样,只需一个卷积层就能实现最终的视图细化。
广泛的实验表明,所提出的方法性能良好。MVANet 有潜力成为前景提取任务的新标准,并有望在未来得到更广泛的应用。

源码下载地址:https://download.csdn.net/download/matt45m/90335556

相关文章:

MVANet——小范围内捕捉高分辨率细节而在大范围内不损失精度的强大的背景消除模型

一、概述 前景提取(背景去除)是现代计算机视觉的关键挑战之一,在各种应用中的重要性与日俱增。在图像编辑和视频制作中有效地去除背景不仅能提高美学价值,还能提高工作流程的效率。在要求精确度的领域,如医学图像分析…...

94,【2】buuctf web [安洵杯 2019]easy_serialize_php

进入靶场 可以查看源代码 <?php // 从 GET 请求中获取名为 f 的参数值&#xff0c;并赋值给变量 $function // 符号用于抑制可能出现的错误信息 $function $_GET[f];// 定义一个名为 filter 的函数&#xff0c;用于过滤字符串中的敏感词汇 function filter($img) {// 定义…...

LabVIEW如何有效地进行数据采集?

数据采集&#xff08;DAQ&#xff09;是许多工程项目中的核心环节&#xff0c;无论是测试、监控还是控制系统&#xff0c;准确、高效的数据采集都是至关重要的。LabVIEW作为一个图形化编程环境&#xff0c;提供了丰富的功能来实现数据采集&#xff0c;确保数据的实时性与可靠性…...

6 [新一代Github投毒针对网络安全人员钓鱼]

0x01 前言 在Github上APT组织“海莲花”发布存在后门的提权BOF&#xff0c;通过该项目针对网络安全从业人员进行钓鱼。不过其实早在几年前就已经有人对Visual Studio项目恶意利用进行过研究&#xff0c;所以投毒的手法也不算是新的技术。但这次国内有大量的安全从业者转发该钓…...

《Origin画百图》之脊线图

1.数据准备&#xff1a;将数据设置为y 2.选择绘图>统计图>脊线图 3.生成基础图形&#xff0c;并不好看&#xff0c;接下来对图形属性进行设置 4.双击图形>选择图案>颜色选择按点>Y值 5.这里发现颜色有色阶&#xff0c;过度并不平滑&#xff0c;需要对色阶进行更…...

linux 函数 sem_init () 信号量、sem_destroy()

&#xff08;1&#xff09; &#xff08;2&#xff09; 代码举例&#xff1a; #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <semaphore.h> #include <unistd.h>sem_t semaphore;void* thread_function(void* arg) …...

Kafka架构

引言 Kafka 凭借其独树一帜的分区架构&#xff0c;在消息中间件领域展现出了卓越的性能表现。其分区架构不仅赋予了 Kafka 强大的并行计算能力&#xff0c;使其能够高效处理海量数据&#xff0c;还显著提升了系统的容灾能力&#xff0c;确保在复杂的运行环境中始终保持稳定可靠…...

刷题记录 动态规划-2: 509. 斐波那契数

题目&#xff1a;509. 斐波那契数 难度&#xff1a;简单 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n…...

RDP协议详解

以下内容包含对 RDP&#xff08;Remote Desktop Protocol&#xff0c;远程桌面协议&#xff09;及其开源实现 FreeRDP 的较为系统、深入的讲解&#xff0c;涵盖协议概要、历史沿革、核心原理、安全机制、安装与使用方法、扩展与未来发展趋势等方面&#xff0c; --- ## 一、引…...

设计模式的艺术-观察者模式

行为型模式的名称、定义、学习难度和使用频率如下表所示&#xff1a; 1.如何理解观察者模式 一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变&#xff0c;它们之间将产生联动&#xff0c;正所谓“触一而牵百发”。为了更好地描述对象之间存在的这种一对多&…...

【C语言设计模式学习笔记1】面向接口编程/简单工厂模式/多态

面向接口编程可以提供更高级的抽象&#xff0c;实现的时候&#xff0c;外部不需要知道内部的具体实现&#xff0c;最简单的是使用简单工厂模式来进行实现&#xff0c;比如一个Sensor具有多种表示形式&#xff0c;这时候可以在给Sensor结构体添加一个enum类型的type&#xff0c;…...

Baklib如何优化企业知识管理提升团队协作与创新能力分析

内容概要 在现代企业中&#xff0c;知识管理已经成为提升竞争力的关键因素之一。Baklib作为一种全面的知识管理解决方案&#xff0c;致力于帮助企业高效整合和运用内部及外部知识资源。它通过建立统一的知识管理框架&#xff0c;打破了部门之间的信息壁垒&#xff0c;实现了跨…...

Dubbo view

1、 说说Dubbo核心的配置有哪些&#xff1f; 答&#xff1a; 配置 配置说明 dubbo:service 服务配置 dubbo:reference 引用配置 dubbo:protocol 协议配置 dubbo:application 应用配置 dubbo:module 模块配置 dubbo:registry 注册中心配置 dubbo:monitor 监控中心配置 dubbo:pr…...

分享刷题过程中有价值的两道题目

小编在这里先祝大家新的一年里所愿皆得&#xff0c;万事顺意&#xff0c;天天开心&#xff01;&#xff01;&#xff01; 一.水仙花数 题目描述&#xff1a; 求100∼999中的水仙花数。若三位数ABCA^3B^3C^3&#xff0c;则称ABC为水仙花数。例如153&#xff0c;135333112527153&…...

蓝桥杯例题六

奋斗是一种态度&#xff0c;也是一种生活方式。无论我们面对什么样的困难和挑战&#xff0c;只要心怀梦想&#xff0c;坚持不懈地努力&#xff0c;就一定能够迈向成功的道路。每一次失败都是一次宝贵的经验&#xff0c;每一次挫折都是一次锻炼的机会。在困难面前&#xff0c;我…...

DeepSeek 详细使用教程

1. 简介 DeepSeek 是一款基于人工智能技术的多功能工具&#xff0c;旨在帮助用户高效处理和分析数据、生成内容、解答问题、进行语言翻译等。无论是学术研究、商业分析还是日常使用&#xff0c;DeepSeek 都能提供强大的支持。本教程将详细介绍 DeepSeek 的各项功能及使用方法。…...

《tcp/ip协议详解》,tcp/ip协议详解

TCP/IP协议&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;是网络通信协议的一种&#xff0c;也被称为“Internet协议”&#xff0c;是Internet上运行的基本协议&#xff0c;广泛应用于各种网络环境和应用场合。以下是对TCP/IP协议的详细解析&#x…...

游戏引擎 Unity - Unity 设置为简体中文、Unity 创建项目

Unity Unity 首次发布于 2005 年&#xff0c;属于 Unity Technologies Unity 使用的开发技术有&#xff1a;C# Unity 的适用平台&#xff1a;PC、主机、移动设备、VR / AR、Web 等 Unity 的适用领域&#xff1a;开发中等画质中小型项目 Unity 适合初学者或需要快速上手的开…...

【数据结构】_时间复杂度相关OJ(力扣版)

目录 1. 示例1&#xff1a;消失的数字 思路1&#xff1a;等差求和 思路2&#xff1a;异或运算 思路3&#xff1a;排序&#xff0b;二分查找 2. 示例2&#xff1a;轮转数组 思路1&#xff1a;逐次轮转 思路2&#xff1a;三段逆置&#xff08;经典解法&#xff09; 思路3…...

[Java]异常

在程序运行时&#xff0c;如果遇到问题&#xff08;比如除以零、文件找不到等&#xff09;&#xff0c;程序会发生异常。异常就像是程序的“错误提醒”&#xff0c;当程序运行中出错时&#xff0c;它会停止&#xff0c;给出一个错误信息。我们可以通过异常处理来控制这些错误&a…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...