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

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

  • 语义分割的端倪:从早期探索到深度学习的突破
    • 引言
    • 早期技术:图像处理与模式识别
      • 边缘检测
      • 区域生长
      • 图割(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. 链接.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络编程之ip地址

目录 1、概念: 2、所属的tcp/ip协议的层 3、IP地址查询 (1)Linux (2)windows 4、IP地址结构组成及分类 (1)组成(网络位主机位) (2)分类 1、…

文心一言 VS 讯飞星火 VS chatgpt (192)-- 算法导论14.2 2题

二、用go语言,能否在不影响红黑树任何操作的渐近性能的前提下,将结点的黑高作为树中结点的一个属性来维护?说明如何做,如果不能,请说明理由。如何维护结点的深度? 文心一言: 在Go语言中&#…

Oracle闪回日志管理(flashbackup log)

Oracle闪回日志管理(flashbackup log) 1.开启闪回日志 shutdown immediate startup mount; alter database archivelog; alter database flashback on; alter database open; 2、查看闪回日志保留期限 show parameter flash 默认是1440分钟&#xff0c…

宋仕强论道之华强北蓝牙耳机(三十七)

华强北最近几年最火爆的产品就是TWS蓝牙耳机了,蓝牙耳机是指通过蓝牙无线技术连接智能手机等设备,实现无线通讯的一种设备。因为苹果蓝牙应用技术的突破,而呈现爆发之势,目前蓝牙耳机的市场存量是非常之大,全世界智能手…

gitlab ci cd 不完全指南

gitlab 可能大家很常用,CI、CD 也应该早有耳闻,但是可能还没有去真正地了解过,这篇文章就是我对 gitlab CI、CD 的一些理解,以及踩过的一些坑,希望能帮助到大家。 什么是 CI、CD CI(Continuous Integrati…

【计算机毕业设计】063德云社票务系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

情人节最全送礼指南!实用性强礼物推荐

眼看七夕节就要到了,如果还没有想到要送什么礼物给对象的,抓紧来看小编总结的这几款实用性比较强的礼物,送礼一下子就送到了心坎上了,少整点一些花里胡哨的礼物,多送点实用性比较强的!下面给大家整理了一份…

FW如何区别 PAW3212DB-TJDT 和 PAW3220DB-TJDL/TJDR/TJDS

PAW3212DB-TJDT 和 PAW3220DB-TJDL/TJDR/TJDS 的引脚功能定义是一样的,只是封装有一点不一样。PAW3212DB-TJDT是圆形火山口,配的是圆孔透镜,PAW3220DB-TJDL/TJDR/TJDS是方形火山口,配的是方孔透镜。 PAW3212DB-TJDT 和 PAW3220DB-…

Gaussian_Splatting 项目脚本指令

准备好一个稀疏重建的目录(如Colmap的sparse文件),高斯泼溅需要稀疏重建的点云结果来作为输入,进行进一步训练和渲染。 可以参考:gaussian-splatting原理 有一点需要注意:Gaussian_Splatting 需要稀疏重建…

Flask框架开发学习笔记《5》简易服务器代码

Flask框架开发学习笔记《5》 Flask是使用python的后端,由于小程序需要后端开发,遂学习一下后端开发。 简易服务器代码 接口解析那一块很关键,学后端服务器这一块,感觉主要就是学习相应地址的接口怎么处理。 然后写清楚每个地址…

深度揭秘:代理IP的工作原理及其在网络安全中的关键角色

代理IP的工作原理及其在网络安全中的关键角色是一个相对复杂但非常重要的主题。以下是对这一内容的深度揭秘: 代理IP的工作原理 1. 请求转发 当一个客户端(如浏览器或爬虫程序)使用代理IP时,它不是直接与目标网站通信&#xff0c…

SpringBoot使用Rabbit详解含完整代码

1. 摘要 本文将详细介绍如何在Spring Boot应用程序中集成和使用RabbitMQ消息队列。RabbitMQ是一个开源的消息代理和队列服务器,用于通过轻量级和可靠的消息在应用程序或系统之间进行异步通信。本文将通过步骤说明、代码示例和详细注释,指导读者在Spring…

有趣的css - 动态的毛玻璃背景

页面效果 此效果主要使用 backdrop-filter 属性,以及配合 animation 属性来实现毛玻璃模糊和一些动效。 此效果可适用于登录窗口,网站背景或者一些卡片列表中,使网页更具科技感和空间感。 核心代码部分,简要说明了写法思路&#x…

四大组件 - ContentProvider

参考&#xff1a;Android 这 13 道 ContentProvider 面试题&#xff0c;你都会了吗&#xff1f; 参考&#xff1a;《Android 开发艺术探索》 第 9.5 节&#xff08;ContentProvider 的工作过程&#xff09; 参考&#xff1a;内容提供者程序 参考&#xff1a;<provider>&g…

Maya------显示隐藏提取复制刺破面

alth<--->ctrlshifth 补洞后刺破面&#xff0c;防止多边面的产生&#xff01;

数据探索与可视化:可视化分析数据关系-中

目录 一、前言 二、介绍 Ⅰ.一个分类变量和一个连续变量 Ⅱ.两个分类变量的一个连续变量 Ⅲ.两个分类变量和两个连续变量 Ⅳ.一个分类变量和多个连续变量 ①.平行坐标轴 ②.矩阵散点图 三、结语 一、前言 在做数据分析的时候&#xff0c;很少会遇到连续变量和分类变量…

(每日持续更新)jdk api之NotActiveException基础、应用、实战

博主18年的互联网软件开发经验&#xff0c;从一名程序员小白逐步成为了一名架构师&#xff0c;我想通过平台将经验分享给大家&#xff0c;因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验&#xff0c;晚上进行用心精简、整理、总结、定稿&…

重写Sylar基于协程的服务器(2、配置模块的设计)

重写Sylar基于协程的服务器&#xff08;2、配置模块的设计&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务器&#xff08;1、日志模…

idea搭建spring5.3.x源码环境

1.写在前面的话 碰到了不少想阅读或者学习spring源码的同学&#xff0c;但是第一步搭建这个源码阅读环境就能难倒了一大批人。下面我就以spring5.3.x这个源码分支&#xff0c;来具体演示一下搭建过程。 2. 下载源码 下载源码这一步&#xff0c;说实话&#xff0c;由于某些原…

Django模板(一)

一、基本规则 作为一个Web框架,Django需要一种方便的方式来动态生成HTML。最常用的方法依赖于模板。模板包含所需HTML输出的静态部分以及描述如何插入动态内容的特殊语法 1.1、django默认模板 在settings中配置: TEMPLATES = [{BACKEND: django.template.backends.django.…