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

机器视觉任务中语义分割方法的进化历史

机器视觉任务中语义分割方法的进化历史

    • 一、基于传统方法的图像分割
    • 二、基于卷积神经网络的图像分割
    • 三、基于Attention机制的图像分割
    • 四、语义分割模型的挑战与改进

在图像处理领域,传统图像分割技术扮演着重要角色。

一、基于传统方法的图像分割

这些方法包括大津法、分水岭法和区域生长法。

  • 大津法通过分析图像的灰度特性,自动选择一个合适的阈值,将图像清晰地区分为目标区域和背景。这种方法的优势在于其自适应性,能够应对不同图像的特性。

  • 分水岭法基于形态学的拓扑理论,通过识别灰度值分布中的局部最小值来确定分割阈值,实现图像的精确分割。这种方法适用于那些灰度值分布具有明显层次的图像。

  • 区域生长法侧重于将具有相似灰度、强度和纹理等特征的相邻像素合并,形成具有一致性的区域。这种方法通过对图像中每个像素的逐一分析,构建出孔隙结构的准确图像。

虽然,这些方法简单,高效,但是传统方法不能完全挖掘图像数据的信息,只能简单的通过灰度值、颜色、直方图以及局部信息来进行分割。随着深度学习的发展,人们纷纷探索使用卷积神经网络对图像进行分割。

二、基于卷积神经网络的图像分割

全卷积网络(fully convolutional networks, FCN)通过将传统CNN中的全连接层替换为卷积层,使得网络能够处理任意尺寸的输入图像,并输出与输入尺寸相同的分割图像。这种设计保证了图像的空间信息不会丢失,对于图像的孔隙结构分析尤为有效。

图片

FCN结构
U-net是一种基于FCN的深度学习模型,它由编码器(Encoder)和解码器(Decoder)两部分组成。编码器负责提取图像的特征,而解码器则利用这些特征进行图像的还原。

在编码器中,3×3的卷积层后接一个ReLU激活函数,然后通过最大池化层进行下采样,这样不断重复,虽然特征图的尺寸在减小,但特征通道的数量却在增加。

解码器则采用了多种上采样技术,如反卷积和线性插值等,以恢复图像的细节。

U-net的一个创新之处在于其跳跃连接(skip connections),它将编码器中的深层特征与解码器中的浅层特征相结合,弥补了在下采样过程中可能丢失的细节,从而提高了分割的精度。
图片

U-net结构
其中U-net的变形体还有U-net++、U²-net等等。 ![图片](https://img-blog.csdnimg.cn/direct/22e60a93229e44ad864b9b65b6e60279.png)
U²-net结构
尽管语义分割模型在大部分图像分割中显示出了潜力,但现有的模型面临着参数数量庞大、内存需求高和计算效率低的挑战。此外,由于有些特殊图像(例如矿物图像、遥感图像等)中的目标对象小且众多,编码器在处理时可能会丢失一些细节,导致分割边界不准确。

为了解决这些问题,研究者们开始探索基于注意力机制的Transformer模型。

三、基于Attention机制的图像分割

Transformer在图像分割中的应用是深度学习领域的一个重要进展。最初,Transformer架构是为自然语言处理任务设计的,但后来研究者发现它也能在图像处理任务中发挥巨大作用。

在图像分割中,Transformer通过自注意力机制(Self-Attention Mechanism)来捕捉图像中不同区域之间的关系,无需像卷积神经网络那样依赖于局部感受野。这使得Transformer能够更有效地处理图像中的长距离依赖关系,从而提高分割的精度。

其次,Transformer的一个关键优势是其灵活性和扩展性。它可以很容易地扩展到更大的模型尺寸,以处理更复杂的图像分割任务。此外,Transformer的并行化处理能力也比传统的卷积神经网络更强,这使得它在处理大规模图像数据时更加高效。

在实际应用中,Transformer可以与卷积神经网络结合使用,形成混合模型。例如,可以使用卷积神经网络来提取图像的局部特征,然后使用Transformer来整合这些特征,并进行最终的分割决策。这种混合模型结合了两者的优点,能够处理更复杂的图像分割任务。

此外,Transformer还可以用于弱监督学习,以处理标注不准确的图像数据。通过自注意力机制,Transformer能够从有限的标注信息中学习到更多的上下文信息,从而提高分割的鲁棒性。
图片

ViT模型(图片来源:https://arxiv.org/abs/2010.11929)

图中展示了一个基于Transformer的图像分割模型的架构。模型首先使用卷积层提取图像特征,然后将特征输入到Transformer中进行处理。在Transformer中,通过自注意力机制捕捉不同区域之间的关系,最后输出分割结果。

总的来说,Transformer在图像分割中的应用前景广阔,它提供了一种新的视角来处理图像分割问题,有望推动这一领域的进一步发展。

之前写过一篇“这么受欢迎的Transform到底解决了什么问题?”其中,详细介绍了Transform的发展大家可以看看。

四、语义分割模型的挑战与改进

虽然,目前很多深度神经网络模型在公开数据集上取得了显著的成功,但在真实环境中的应用仍面临挑战。主要困难在于标注数据集的质量和数量不足。深度学习模型需要大量的训练数据来调整参数,以达到良好的泛化效果。然而,对于图像的标注来说,这不仅耗时耗力,而且需要人为对每个像素进行手动标注,数据集的标注过程具有很高的主观性,难以保证精度和准确度。

弱监督学习的图像标注为这一问题提供了一种可能的解决方案,是未来研究的重点。它包括不完全监督、不确切监督和不准确监督三种形式。在不完全监督的情况下,训练数据集中只有部分数据被标注;不确切监督则意味着数据集中的标签是粗粒度的,可能包含错误;而不准确监督则涉及到标签的不精确性。在这些情况下,关键在于如何在训练过程中补充缺失的监督信息,以提高模型的性能。

相关文章:

机器视觉任务中语义分割方法的进化历史

机器视觉任务中语义分割方法的进化历史 一、基于传统方法的图像分割二、基于卷积神经网络的图像分割三、基于Attention机制的图像分割四、语义分割模型的挑战与改进 在图像处理领域,传统图像分割技术扮演着重要角色。 一、基于传统方法的图像分割 这些方法包括大津…...

Java并发编程: Synchronized锁升级

文章目录 一、jdk8 markword实现表二、使用工具来查看锁升级三、默认synchronized(o) 一、jdk8 markword实现表 为什么有自旋锁还需要重量级锁: 自旋消耗CPU资源,如果锁的时间长,或者自旋线程多,CPU会被大量消耗。重量…...

Atcoder C - Routing

https://atcoder.jp/contests/arc177/tasks/arc177_c 思路:该问题可以归约为最短路问题,问题中的条件1和条件2是相互独立的,可以分开考虑,从地图中的一个点,沿上下左右四个方向走,所花费的代价为&#xff1…...

升级! 测试萌新Python学习之连通数据库Pymsql增删改及封装(四)

pymysql 数据库概述python对数据库的增删改查pymysql核心操作事务事务操作pymysql工具类封装每日复习ChatGPT的回答 数据库概述 分类 关系型数据库: 安全 如, mysql oracle SQLite…database tables 行列 非关系型数据库: 高效 如, redis mongoDB…数据存储结构多样 键值对…...

【大数据】containered学习笔记

文章目录 1. Containerd安装1.1 YUM方式安装 【后端&网络&大数据&数据库目录贴】 1. Containerd安装 1.1 YUM方式安装 获取YUM源 获取阿里云YUM源 wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 查…...

「TypeScript」TypeScript入门练手题

前言 TypeScript 越来越火&#xff0c;现在很多前端团队都使用它&#xff0c;因此咱们前端码农要想胜任以后的前端工作&#xff0c;就要更加熟悉它。 入门练手题 interface A {x: number;y: number; }type T Partial<A>;const a: T { x: 0, y: 0 }; const b: T { …...

k8s 使用Docker和Containerd对比分析

目录 k8s 使用Docker和Containerd对比分析 互动1&#xff1a;docker build构建的镜像和containerd镜像通用吗&#xff1f; 互动2&#xff1a;k8s1.24之前版本和1.24及1.24之后版本区别&#xff1f; k8s 使用Docker和Containerd对比分析 如果你使用Docker作为K8S容器运行时的…...

MySQL 通过 systemd 启动时 hang 住了……

mysqld&#xff1a;哥&#xff0c;我起不来了…… 作者&#xff1a;贲绍华&#xff0c;爱可生研发中心工程师&#xff0c;负责项目的需求与维护工作。其他身份&#xff1a;柯基铲屎官。 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编…...

pat乙1033-旧键盘打字

1测试点2&#xff1a; 输入的字符串如果为空&#xff0c;要用getline(cin,s)&#xff0c;而不是cin>>s&#xff0c;否则程序做不了 2题目说的如果上键坏了那大写字母打印不了&#xff0c;不是大写转小写打印啦&#xff0c;认真读题 3两个for循环长这样&#xff0c;break…...

Ubuntu安装VScode

Ubuntu安装VScode 前言&#xff1a; 1、Ubuntu安装VScode比较方便 2、我更喜欢source insight 1、获取到linux版本的VScode安装包 VSCode 下载地址是&#xff1a;https://code.visualstudio.com/ 2、得到安装包 3、复制到ubuntu中&#xff0c;使用命令安装 sudo dpkg -i cod…...

c# - - - winform程序四个角添加圆角效果

winform 给窗体四个角添加圆角效果。 在窗体 Load 事件中添加如下代码&#xff1a; // 创建了一个圆角矩形的路径&#xff0c;并将其设置为控件的形状 System.Drawing.Drawing2D.GraphicsPath path new System.Drawing.Drawing2D.GraphicsPath(); int radius 30; path.AddAr…...

Springboot 集成 Consul 实现服务注册中心-05

因为后续很多模块都要用到注册中心&#xff0c;所以此处先实现此模块。 Consul简介 Consul是一个开源的服务发现和配置管理工具&#xff0c;具有跨平台、运行高效等特点。它由HashiCorp公司开发&#xff0c;并使用Go语言编写。Consul主要用于实现分布式系统中的服务发现、健康…...

【软考高项】四十六、项目管理科学计算之运筹学

1、线性规划问题 解题思路&#xff1a; 先把文字转化成图表 最快方式应该是把第一题的4个答案直接代入计算&#xff0c;很快得知X2时利润最大。 A0时&#xff0c;利润5*630 A2时&#xff0c;利润2*25*634 A4时&#xff0c;利润4*23*523 A6时&#xff0c;利润4*2(因为甲的…...

使用 Python 和 OpenCV 进行实时目标检测的详解

使用到的模型文件我已经上传了&#xff0c;但是不知道能否通过审核&#xff0c;无法通过审核的话&#xff0c;就只能 靠大家自己发挥实力了&#xff0c;^_^ 目录 简介 代码介绍 代码拆解讲解 1.首先&#xff0c;让我们导入需要用到的库&#xff1a; 2.然后&#xff0c;设…...

Android build.prop生成过程源码分析

Android的build.prop文件是在Android编译时刻收集的各种property【LCD density/语言/编译时间, etc.】&#xff1b;编译完成之后&#xff0c;文件生成在out/target/product/<board【OK1000】>/system/目录下&#xff1b;在Android运行时刻可以通过property_get()[c/c域] …...

计算机网络教材——谢希仁教材与配套PPT课件和《计算机网络——自顶向下方法》

教材链接: https://pan.baidu.com/s/1MUkgTVNMvhFdkGxAd0U7Ew?pwdn3g4 提取码: n3g4 ppt资源&#xff1a;课程包列表 (51zhy.cn) 计算机网络——自顶向下方法&#xff08;资源在下面的评论区里&#xff09;&#xff1a;计算机网络自顶向下方法第7版中文PDF习题参考 - 哔哩哔…...

mysql 离线安装

package download mysql https://dev.mysql.com/downloads/mysql/ libaio http://mirror.centos.org/centos/7/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm 根据自己服务器选择下载对应的安装包及依赖 删除本机自带mysql相关 # 首先排查服务器自身是否有安装对应m…...

【C++】 string类:应用与实践

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…...

巩固学习7

正则表达式 就是用来找到符合模式的字符串&#xff0c;这些模式包括&#xff1a;是什么字符&#xff0c;重复多少次&#xff0c;在什么位置&#xff0c;有哪些额外的约束 找某个字符串 import re text身高:178 体重:168 学号:123456 密码:9527 #在Python中&#xff0c;r前缀用…...

Android 右键 new AIDL 无法选择

提示 (AIDL File)Requires setting the buildFeatures.aidl to true in the build file&#xff09; 解决方式&#xff1a; 在app的build.gradl中 adnroid{} 添加&#xff1a; buildFeatures{aidl true}...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...