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

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

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

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

相关文章

6、基于机器学习的预测

应用机器学习的任何预测任务与这四个策略。 文章目录 1、简介1.1定义预测任务1.2准备预测数据1.3多步预测策略1.3.1多输出模型1.3.2直接策略1.3.3递归策略1.3.4DirRec 策略2、流感趋势示例2.1多输出模型2.2直接策略1、简介 在第二课和第三课中,我们将预测视为一个简单的回归问…

vue核心知识点

一、Vue基础知识点总结 开发vue项目的模式有两种: 基于vue.js,在html中引入vue.js,让vue.js管理div#app元素。基于脚手架环境:通过vue脚手架环境可以方便的创建一个通用的vue项目框架的模板,在此基础之上开发vue项目…

基于SpringBoot Vue学生信息管理

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

Redis -- 单线程模型

失败是成功之母 ——法国作家巴尔扎克 目录 单线程模型 Redis为什么这么快 单线程模型 redis只使用一个线程,处理所有的命令请求,不是说redis服务器进场内部真的就只有一个线程,其实也有多个线程,那就是处理网络和io的线程。 R…

图像去噪——SpatiallyAdaptiveSSID网络推理测试(详细图文教程)

SpatiallyAdaptiveSSID 是一种有效的图像去噪方法,它通过自适应地处理不同区域的噪声,能够在保持图像细节的同时,有效地去除噪声。 目录 一、SpatiallyAdaptiveSSID网络简介二、源码包准备2.1 测试集2.2 模型权重文件 三、测试环境四、推理测…

C#,斯特林数(Stirling Number)的算法与源代码

1 斯特林数 在组合数学,斯特林数可指两类数,第一类斯特林数和第二类斯特林数,都是由18世纪数学家James Stirling提出的。它们自18世纪以来一直吸引许多数学家的兴趣,如欧拉、柯西、西尔沃斯特和凯莱等。后来哥本哈根(…

氢气泄漏检测仪使用方法:守护安全,从细节开始

随着科技的发展,我们的生活和工作环境中充满了各种潜在的危险。其中,氢气作为一种清洁能源,其使用日益广泛,但同时也带来了泄漏的风险。为了确保我们的安全,了解并正确使用氢气泄漏检测仪至关重要。下面将详细介绍氢气…

用户界面(UI)、用户体验(UE)和用户体验(UX)的差异

对一个应用程序而言,UX/UE (user experience) 设计和 UI (user interface) 设计非常重要。UX设计包括可视化布局、信息结构、可用性、图形、互动等多个方面。UI设计也属于UX范畴。正是因为三者在一定程度上具有重叠的工作内容,很多从业多年的设计师都分不…

[香橙派开发系列]使用蓝牙和手机进行信息的交换

文章目录 前言一、HC05蓝牙模块1.HC05概述2.HC05的连接图3.进入HC05的命令模式4.常用的AT指令4.1 检查AT是否上线4.2 重启模块4.3 获取软件版本号4.4 恢复默认状态4.5 获取蓝牙的名称4.6 设置蓝牙模块的波特率4.7 查询蓝牙的连接模式4.8 查询模块角色 5.连接电脑6.通过HC05发送…

【大厂AI课学习笔记】1.4 算法的进步(1)

2006年以来,以深度学习为代表的机器学习算法的发展,启发了人工智能的发展。 MORE: 自2006年以来,深度学习成为了机器学习领域的一个重要分支,引领了人工智能的飞速发展。作为人工智能专家,我将阐述这一时期…

算法——A/算法通识

目录 一、复杂度分析 A/时间复杂度 B/空间复杂度 C/分析技巧 二、枚举分析 A/枚举算法介绍 B/解空间的类型 C/循环枚举解空间 三、模拟算法 四、递归 A/递归介绍 递归的两个关键要素: B/递归如何实现 C/递归和循环的比较 一、复杂度分析 A/时间复杂度…

腾讯mini项目总结-指标监控服务重构

项目概述 本项目的背景是,当前企业内部使用的指标监控服务的方案的成本很高,无法符合用户的需求,于是需要调研并对比测试市面上比较热门的几款开源的监控方案(选择了通用的OpenTelemetry协议:Signoz,otel-…

grafana安装DevOpsProdigy KubeGraf 1.5.2

安装DevOpsProdigy KubeGraf需要安装kube-state-metrics 官方地址:https://github.com/kubernetes/kube-state-metrics/tree/release-2.10/examples/standard 查看k8s版本和kube-state-metrics对应版本: [rootmaster1 kube-state-metrics]# ll 总用量 …

Elasticsearch:Geoshape query

Geoshape 查询可以用于过滤使用 geo_shape 或 geo_point 类型索引的文档。 geo_shape 查询使用与 geo_shape 或 geo_point 映射相同的索引来查找具有与查询形状相关的形状的文档,并使用指定的空间关系:相交(intersect)、包含(con…

Linux 命令 —— top

Linux 命令 —— top 相对于 ps 是选取一个时间点的进程状态,top 则可以持续检测进程运行的状态。使用方式如下: 用法: top [-d secs] | [-p pid] 选项与参数: -d secs:整个进程界面更新 secs 秒。默认是 5 5 5 秒。…

Tomcat 部署项目时 war 和 war exploded区别

在 Tomcat 调试部署的时候,我们通常会看到有下面 2 个选项。 是选择war还是war exploded 这里首先看一下他们两个的区别: war 模式:将WEB工程以包的形式上传到服务器 ;war exploded 模式:将WEB工程以当前文件夹的位置…

安泰前置微小信号放大器工作原理是什么

前置微小信号放大器是电子电路中的一种重要组件,主要用于放大输入信号中的微小电压。这种放大器的工作原理涉及到电子器件的特性和基本电路理论。以下是前置微小信号放大器的工作原理的详细解释: 前置微小信号放大器通常用于增强输入信号,以便…

YOLOv8-Segment C++

YOLOv8-Segment C https://github.com/triple-Mu/YOLOv8-TensorRT 这张图像是运行yolov8-seg程序得到的结果图,首先是检测到了person、bus及skateboard(这个是检测错误,将鞋及其影子检测成了滑板,偶尔存在错误也属正常),然后用方…

2024/2/1学习记录

echarts 为柱条添加背景色: 若想设置折线图的点的样式,设置 series.itemStyle 指定填充颜色就好了,设置线的样式设置 lineStyle 就好了。 在折线图中倘若要设置空数据,用 - 表示即可,这对于其他系列的数据也是 适用的…

Git安装,Git镜像,Git已安装但无法使用解决经验

git下载地址&#xff1a; Git - 下载 (git-scm.com) <-git官方资源 Git for Windows (github.com) <-github资源 CNPM Binaries Mirror (npmmirror.com) <-阿里镜像&#xff08;推荐&#xff0c;镜…