语义分割:从早期探索到深度学习的突破

语义分割:从早期探索到深度学习的突破

  • 语义分割的端倪:从早期探索到深度学习的突破
    • 引言
    • 早期技术:图像处理与模式识别
      • 边缘检测
      • 区域生长
      • 图割(Graph Cut)
      • 聚类方法
    • 深度学习的兴起:CNN革命
      • 2012年 AlexNet的突破
      • 全卷积网络(FCN)
      • U-Net的创新设计
      • 深度学习卷积网络技术不断创新
    • 发展里程碑:端到端学习
      • 端到端全卷积网络(FCN)
      • Mask R-CNN的多任务学习
      • Transformer在视觉任务中的应用
      • 目前端到端学习的现状
    • 当下进展与未来展望
    • 参考文献

语义分割的端倪:从早期探索到深度学习的突破

引言

在经历了数十年的发展后,语义分割已经从一项边缘技术转变为计算机视觉领域中的基础任务之一。本文将回溯语义分割的发展历史,介绍关键技术的演变,以及深度学习是如何推动这一领域取得重大突破的。
在这里插入图片描述

早期技术:图像处理与模式识别

在深度学习兴起之前,语义分割的研究侧重于基于图像处理和模式识别的技术。这些方法主要基于像素颜色、纹理等低层次特征,通常涉及边缘检测、区域生长和图割等经典图像分割技术。

边缘检测

边缘检测算法,比如Sobel、Canny、Laplacian算子等,都被用来识别图像中物体的边缘。这些边缘信息有时可以用来区分图像中的不同对象。

import cv2
import numpy as np# 读取图像
image = cv2.imread('image.jpg', 0)# Canny边缘检测
edges = cv2.Canny(image, 100, 200)# 显示结果
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

区域生长

区域生长技术通过选择种子点并基于设定的规则将邻近像素合并到种子点所在的区域。这是一种自下而上的合并策略,可以用于发现图像中具有相似特征的区域。

图割(Graph Cut)

图割是一种基于能量最小化的分割方式,它通过建模像素与像素之间的关系(如相似性和空间接近度)来实现。

聚类方法

聚类算法如k-means和均值漂移被用于将像素根据颜色、纹理等特征划分到不同的类簇中,从而实现分割。

尽管这些方法在当时取得了一定的成果,但它们仍然受限于手工特征的设计以及对复杂图像内容的理解有限。随着机器学习技术的发展,更为复杂的模型和算法被提出来解决语义分割任务,推动了该领域的进步。

深度学习的兴起:CNN革命

卷积神经网络(CNN)的崛起标志着语义分割研究的新篇章。2012年的AlexNet的成功带来了深度学习的热潮,紧随其后的,包括但不限于FCN(全卷积网络)和U-Net,为解决更加复杂的图像语义分割问题提供了新思路。

2012年 AlexNet的突破

2012年,AlexNet在ImageNet挑战中取得历史性的胜利,证明了深度学习,特别是CNN在图像识别任务中的潜力。

全卷积网络(FCN)

Jonathan Long等人在2015年提出的FCN[6]模型标志了语义分割的另一个重要发展。FCN能够接受任意尺寸的输入,通过将全连接层转换为卷积层,使其能够输出像素级的预测图,实现端到端的语义分割。

U-Net的创新设计

U-Net采用了一种独特的U型结构,它包含一个收缩路径捕获上下文信息和一个对称的扩张路径确保精确的定位。这种设计在医学图像分割中取得了巨大成功。

深度学习卷积网络技术不断创新

随后研究者们提出了许多基于CNN的语义分割模型,如DeepLab系列[7]、SegNet[8] 以及PSPNet等。这些模型通过引入注意力机制、多尺度处理和增强的特征提取等方式进一步提升了模型的性能。

发展里程碑:端到端学习

DeepLab系列、SegNet以及更多端到端的语义分割框架,通过融合深层的语义信息和浅层的细节信息,不仅在性能上取得了突破,也极大简化了训练流程,并且提高了模型的灵活性。

端到端全卷积网络(FCN)

全卷积网络的提出是端到端学习的起点。不同于以往需手动设计特征的模型,FCN通过学习能够直接从原始图像进行像素级预测,这是一个重要的突破。

Mask R-CNN的多任务学习

Mask R-CNN[9]是在Faster R-CNN的基础上进一步发展的,它不仅可以进行目标检测,还能输出高质量的分割掩码,实现了检测与分割的多任务学习。

Transformer在视觉任务中的应用

随后,如ViT[10]和DETR[11]等基于Transformer的模型在视觉领域展现出强大的性能,这些模型利用自注意力机制在端到端的框架下进行特征学习,为语义分割带来了更多可能。

目前端到端学习的现状

目前,端到端学习模型仍在不断进化,研究人员致力于更深层次的模型结构优化和算法创新,以应对不同场景下语义分割任务的挑战。这些研究不仅推动了计算机视觉的发展,也对自动驾驶、医疗影像分析等领域的应用产生了重要影响。

以下是一个示例使用PyTorch实现的Mask R-CNN的代码片段:

import torchvision
from torchvision.models.detection import MaskRCNN
from torchvision.models.detection.rpn import AnchorGenerator# 加载预训练的Mask R-CNN模型
model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)# 修改模型,以适应不同数量的类别
num_classes = 2  # 1 类(人) + 背景
in_features = model.roi_heads.box_predictor.cls_score.in_features
model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes)# 对掩码预测器进行同样的修改
in_features_mask = model.roi_heads.mask_predictor.conv5_mask.in_channels
hidden_layer = 256
model.roi_heads.mask_predictor = MaskRCNNPredictor(in_features_mask,hidden_layer,num_classes)

当下进展与未来展望

随着研究的不断深入,语义分割技术在效率和精度上都有显著提高。Transformer、GAN等新兴技术的应用,为语义分割的发展带来了新的活力。未来,如何处理小样本学习、弱监督学习以及跨域适应等问题,将是该领域研究的热点。

参考文献

[1] Y Guo, Y Liu, T Georgiou, MS Lew. “A review of semantic segmentation using deep neural networks”. International journal of multimedia information retrieval, 2018 - Springer. 链接.
[2] AN de la Hidalga, PL Rosin, X Sun, L Livermore, and others. “Cross-validation of a semantic segmentation network for natural history collection specimens”. Machine Vision and Applications, 2022 - Springer. 链接.
[3] V Lempitsky, A Vedaldi. “Pylon model for semantic segmentation”. Advances in neural information processing systems, 2011 - proceedings.neurips.cc. 链接.
[4] J Canny. “A computational approach to edge detection”. IEEE Transactions on pattern analysis and machine intelligence, 1986 - ieeexplore.ieee.org. 链接.
[5] Y Boykov, O Veksler, R Zabih. “Fast approximate energy minimization via graph cuts”. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2001 - ieeexplore.ieee.org. 链接.
[6] J Long, E Shelhamer, T Darrell. “Fully convolutional networks for semantic segmentation”. Proceedings of the IEEE conference on computer vision and pattern recognition, 2015 - openaccess.thecvf.com. 链接.
[7] L Chen, G Papandreou, I Kokkinos, K Murphy, A - L Yuille. “DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs”. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017 - ieeexplore.ieee.org. 链接.
[8] V Badrinarayanan, A Kendall, R Cipolla, “SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation”. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017 - ieeexplore.ieee.org. 链接.
[9] K He, G Gkioxari, P Dollár, R Girshick, “Mask R-CNN”. IEEE International Conference on Computer Vision (ICCV), 2017 - openaccess.thecvf.com. 链接.
[10] A Dosovitskiy, L Beyer, A Kolesnikov, D Weissenborn, X Zhai, T - Unterthiner, M Dehghani, M Minderer, G Heigold, S Gelly, J Uszkoreit, N Houlsby, “An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale”. arXiv, 2021. 链接.
[11] N Carion, F Massa, G Synnaeve, N Usunier, A Kirillov, S Zagoruyko, “End-to-End Object Detection with Transformers”. ECCV, 2020. 链接.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络实验一

目录 实验一 使用PacketTracer组建简单局域网 1、实验目的 2、实验设备 (1)内容一(组建简单局域网): (2)内容二(使用交叉线直连两台机器): &#xff08…

mfc140.dll丢失的几种修复方式,有效的解决文件丢失问题

mfc140.dll是Microsoft Foundation Class (MFC)库中的一个非常重要的DLL文件。它承载了许多被执行程序使用的函数和资源。这个库主要被广泛应用于开发Windows操作系统上的应用程序。然而,有时候我们可能会遭遇到mfc140.dll缺失或损坏的情况,这会导致依赖…

Linux管道、网络管理和远程连接

这次来说一下Linux管道、网络管理与远程连接相关的一些内容,如下。 一、管道(重点) 1、管道符 用 “|”(竖线)表示。 作用:管道是一种通信机制,通常用于进程间的通信。它表现出来的形式将前…

DRV8313和L298N都是电机驱动,一个是驱动三相FOC无刷直流电机的,一个是驱动有刷电机,使stm32控制无刷电机简单入门知识

DRV8313和L298N都是电机驱动器,但它们之间存在一些关键的区别: DRV83131: 由德州仪器(TI)制造。 具有集成的场效应晶体管(FET)。 最大电压为65V。 峰值电流为3A。 适用于三相电机驱动。 L298N…

维纳过程简介

在资产价格模型中,我们得出了结论:价格对数的标准差与时间的平方根 成一定比例。因此在离散时间模型下,我们可以设定以下过程,其中𝑡是相互 独立的标准正态分布变量序列 过渡到连续时间模型下,我们可以定义…

Java打印图形 九九乘法表

目录 双重循环九九乘法表打印长方形打印平行四边形打印三角形打印菱形打印空心菱形 三重循坏百钱买百鸡 双重循环 九九乘法表 在Java中,你可以使用嵌套的for循环来打印九九乘法表。以下是一个简单的示例: public class Main {public static void main…

从0搭建react+ts+redux+axios+antd项目

文章目录 一、安装及初始化二、TypeScript配置三、Webpack配置四、Prettier统一编码风格五、使用less六、Antd 安装及使用七、添加Router及配置八、安装axios九、添加redux及使用 本文介绍了如何用creat-react-app脚手架搭建一个react项目的基本结构,同时配置webpac…

printf死翘翘

本来想把我的单片机玩一下,寄给在大学搞研究的一个朋友,但竟然挂在printf里面,大概知道是什么位置出问题,但是还想不清楚什么原因。 我先是在stc51单片机里面搞了串口,然后我想用串口重定向到printf做调试,…

ApacheNginx配置ssl证书

一、Apache配置ssl Linux版本:CentOS Linux release 7.9.2009 (Core) Apache版本:Apache/2.4.6 (CentOS) 1、安装Apache(使用默认yum源) [root10-35-1-25 ~]# yum -y install httpd2、查Apache版本&启动Apache [root10-35-…

面试经典 150 题 -- 滑动窗口 (总结)

面试经典150题链接 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台 209 . 长度最小的子数组 思路 : 滑动窗口的思想,取ij0,向后遍历j,记录前缀和[l,r]为s,如果s>target,那么左端点向右移动,直到s…

[网络安全 渗透实验 01]基于MSF框架渗透攻击Win7主机系统的设计与实现

基于MSF框架渗透攻击Win7主机系统的设计与实现 文章目录 基于MSF框架渗透攻击Win7主机系统的设计与实现[Warning] 写在前面1. 实验要求2. 实验环境搭建2.1 攻击机(Linux kali)的下载与安装2.2 靶机(Windows 7 Enterprise with Service Pack 1…

分布式事务(二)—— CAP和Base理论

系列目录: 《分布式事务(一)—— 事务的基本概念》 一、CAP理论 cap理论是分布式系统的理论基石 1、Consistency[一致性] 即操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致…

Linux------进程优先级与进程切换

目录 一、进程优先级 二、优先级与权限的区别 三、优先级的查看 四、进程优先级修改 五、进程切换 六、linux2.6内核调度队列与调度原理 一、进程优先级 首先我们得知道一个进程总是需要排队的,他一会在运行队列中排队等待运行,一会在设备的等待队…

spring-security 默认登录页面

Spring Security是一个强大且高度可定制的身份验证和访问控制框架。天然与Spring整合,易扩展,引入jar包就可以用了,在boot自动装载下,不需要任何配置就可以控制资源访问。那么默认登录页是如何生产的呢? 版本信息 内…

STM32学习笔记(六) —— 配置系统时钟

1.时钟树 从图中可以看出一共有四个时钟来源,分别是内部高速时钟、内部低速时钟、外部高速时钟接口、外部低速时钟接口,这些时钟源经过内部的倍频分频后提供给各外设使用。其中HSE与LSE需要由外部提供,可以是外部时钟直接输入,也可…

防御保护---防火墙双机热备直路部署(上下三层接口)

防御保护---防火墙双机热备直路部署(上下三层接口) 一、根据网段划分配置IP地址和安全区域二、配置动态路由OSPF三、配置双机热备四、测试:4.1 测试一:查看状态和路由器路由表(双机热备)前后对比4.2 测试二…

「数据结构」3.ArrayList

🎇个人主页:Ice_Sugar_7 🎇所属专栏:Java数据结构 🎇**欢迎点赞收藏加关注哦!* ArrayList 🍉ArrayList的构造🍉add方法🍌扩容机制🍌重要结论 🍉其…

网络协议与攻击模拟_13缓存DNS与DNS报文

一、缓存DNS服务器 1、引入缓存DNS 缓存域名服务器需要与外网连接 一台windows作为Client 一台Windows server作为缓存DNS 桥接网络 DHCP自动获取IP地址 Client 192.168.183.133 Windows server 192.168.183.138 ipconfig /all查看下Client的DNS,设置让Cl…

Unity | 渡鸦避难所-9 | 角色名字及血条等信息

1 效果预览 游戏中角色的名字和血条是非常重要的元素,它们可以帮助玩家了解角色的身份和状态。在 Unity 中,可以使用 UGUI 来实现这些功能 2 实现方案 1 画布 (Canvas) 画布 (Canvas) 组件表示进行 UI 布局和渲染的抽象空间。所有 UI 元素都必须是附加…

【异常处理】word或ppt打开后没反应或闪退,或者报错由安全模式打开

折腾了2个小时,可算解决了,办法是在【控制面板】中右击,选择【更改】 选择联机修复,然后耐心等待,最后再打开就没问题了。