图像语义分割与目标检测概述

news2025/6/18 12:59:10

在计算机视觉领域,不仅有图像分类的任务,还有很多更复杂的任务,如对图像中的目标进行检测和识别,对图像进行实例分割和语义分割等。其中在基于卷积神经网络的深度学习算法出现后,图像的语义分割和目标检测的精度也有了质的提升。

一、常见的语义分割网络

语义分割是对图像在像素级别上进行分类的方法,在一张图像中,属于同一类的像素点都要被预测为相同的类,因此语义分割是从像素级别来理解图像。但是需要正确区分语义分割和实例分割,虽然它们在名称上很相似,但是它们属于不同的计算机视觉任务。例如,一张照片中有多个人,针对语义分割任务,只需将所有人的像素都归为一类即可,但是针对实例分割任务,则需要将不同人的像素归为不同的类。简单来说,实例分割会比语义分割所做的工作更进一步。
随着深度学习在计算机视觉领域的发展,提出了多种基于深度学习方法的图像语义分割网络,如FCN、U-Net、SegNet、DeepLab等。下面对FCN、U-Net、SegNet等网络结构进行一些简单的介绍,详细的内容读者可以阅读相关论文。

1.FCN

FCN语义分割网络是在图像语义分割文章Fully Convolutional Networks forSemantic Segmentation中提出的全卷积网络,该文章是基于深度网络进行图像语义分割的开山之作,而且是全卷积的网络,可以输入任意图像尺寸。其网络进行图像语义分割的示意图如下图所示。FCN的主要思想是:
(1)对于一般的CNN图像分类网络,如VGG和ResNet,在网络的最后是通过全连接层,并经过softmax后进行分类。但这只能标识整个图片的类别,不能标识每个像素点的类别,所以这种全连接方法不适用于图像分割。因此FCN提出把网络最后几个全连接层都换成卷积操作,以获得和输入图像尺寸相同的特征映射,然后通过softmax获得每个像素点的分类信息,即可实现基于像素点分类的图像分割。
(2)端到端像素级语义分割任务,需要输出分类结果尺寸和输入图像尺寸一致,而基于卷积+池化的网络结构,会缩小图片尺寸。因此FCN引入反卷积( deconvolution,和转置卷积的功能一致,也可称为转置卷积)操作,对缩小后的特征映射进行上采样,从而满足像素级的图像分割要求。
(3)为了更有效地利用特征映射的信息,FCN提出一种跨层连接结构,将低层和高层的目标位置信息的特征映射进行融合,即将低层目标位置信息强但语义信息弱的特征映射与高层目标位置信息弱但语义信息强的特征映射进行融合,以此来提升网络对图像进行语义分割的性能。

下图是图像语义分割文章Fully Convolutional Networks for Semantic Segmentation中提出的全卷积网络对图像进行语义分割的网络工作示意图。

 2.U-Net

U-Net是原作者参加ISBI Challenge提出的一种分割网络,能够适应较小的训练集(大约30张图片)。其设计思想是基于FCN网络,在整个网络中仅有卷积层,没有全连接层。因为训练数据较少,故采用大量弹性形变的方式增强数据,以让模型更好地学习形变不变性,这种增强方式对于医学图像来说很重要,并在不同的特征融合方式上,相较于FCN式的逐点相加,U-Net则采用在通道维度上进行拼接融合,其网络进行图像语义分割示意图如下所示:

 3. Segment

 上图所示是图像语义分割文章SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation提出的网络结构工作示意图。网络在编码器处,执行卷积和最大值池化等操作,并且会在进行2x2最大值池化时,存储相应的最大值池化索引。在解码器部分,执行上采样和卷积,并且在上采样期间,会调用相应编码器层的最大值池化索引来帮助上采样操作,最后,每个像素通过softmax分类器进行预测类别。

二、常用的网络目标检测网络

目标检测是很多计算机视觉应用的基础,如实例分割、人体关键点提取、人脸识别等,目标检测任务可以认为是目标分类和定位两个任务的结合。目标检测主要关注特定的物体目标,要求同时获得这一目标的类别信息和位置信息。基于深度学习的目标检测方法主要有两类,一类是两阶段检测模型,如R-CNN、Fast R-CNN、Faster R-CNN等模型,它们将检测问题划分为两个阶段,首先产生候选区域,然后对候选区域分类并对目标位置进行精修;另一类是单阶段检测模型,如YOLO系列、SSD、Retina-Net等模型,它们不需要产生候选区域阶段,直接产生物体的类别概率和位置坐标值,经过单次检测即可直接得到最终的检测结果,因此它们的检测速度更快。

1、R-CNN

R-CNN是将CNN方法引入目标检测领域的开山之作,大大提高了目标检测效果,并且改变了目标检测领域的主要研究思路。R-CNN算法的工作流程如下图所示:


上图所示是图像目标检测文章 Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation的工作示意图,即R-CNN的工作流程主要有4个步骤。 

(1)候选区域生成:每张图像会采用Selective Search方法,生成1000~2000个候选区域。

(2)特征提取:针对每个生成的候选区域,归一化为同一尺寸,使用深度卷积网络(CNN)提取候选区域的特征。

(3)类别判断:将CNN特征送入每一类SVM分类器,判别候选区域是否属于该类。

(4)位置精修:使用回归器精细修正候选框位置。

2、 Faster R-CNN

Faster R-CNN是两阶段方法的奠基性工作,提出的RPN ( Region ProposalNetworks)网络取代Selective Search算法使得检测任务可以由神经网络端到端地完成。其具体操作方法是将RPN放在最后一个卷积层之后,RPN直接训练得到候选区域。RPN网络的特点在于通过滑动窗口的方式实现候选框的提取,在特征映射上滑动窗口,每个滑动窗口位置生成9个不同尺度、不同宽高的候选窗口,提取对应9个候选窗口的特征,用于目标分类和边框回归。目标分类只需要区分候选框内特征为前景或者背景,与Fast R-CNN类似,边框回归确定更精确的目标位置。FasterR-CNN算法的工作流程如下图所示:

 3、YOLO

YOLO ( You Only Look Once)是经典的单阶段目标检测算法,将目标区域预测和目标类别预测整合于单个神经网络模型中,实现在准确率较高的情况下快速检测与识别目标。YOLO的主要优点是检测速度快、全局处理使得背景错误相对较少、泛化性能好,但是YOLO由于其设计思想的局限,所以会在小目标检测时有些困难。

 上图所示是图像目标检测文章You Only Look Once: Unified,Real-TimeObject Detection进行目标检测的工作示意图。其工作流程如下:首先将图像划分为S×S个网格,然后在每个网格上通过深度卷积网络给出其物体所属的类别判断(图像使用不同的颜色表示),并在网格基础上生成B个边框( box ),每个边框预测5个回归值,其中前4个值表示边框位置,第五个值表征这个边框含有物体的概率和位置的准确程度。最后经过NMS ( Non-Maximum Suppression,非极大抑制)过滤得到最后的预测框。

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

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

相关文章

绘制ROC曲线及P-R曲线

绘制ROC曲线及P-R曲线 描述 ROC曲线(Receiver Operating Characteristic Curve)以假正率(FPR)为X轴、真正率(TPR)为y轴。曲线越靠左上方说明模型性能越好,反之越差。ROC曲线下方的面积叫做AUC…

视频动态库测试及心得

视频动态库测试及心得 这几天一直在弄动态库测试,h给的写好的动态库--预处理模块的库。视频处理项目一部分,需要连接实际情况测试。 需求: 1.把实际相机连接到,并读取实时数据流,保存到双循环链表里面; 2.测试背景建模…

wsl安装torch_geometric

在官网选择需要的版本 选择安装途径,选择runfile 执行第一行,会下载一个文件到目录下 需要降低C的版本,否则 执行sudo sh cuda_11.1.0_455.23.05_linux.run,会出现 查看对应的文件,会有 可以加上override参数之后,…

了解 WAIT_ABANDONED 返回值的重要性

互斥锁(Mutex)和其他同步对象之间的重要区别之一是:互斥锁具有所有者。如果拥有互斥锁的线程退出而没有释放互斥锁,则互斥锁会自动释放。 但如果发生这种情况,你就有大麻烦了。 许多人忽略的一件事是同步函数(如 WaitForSingleO…

如何写一个优质高效的网络项目实施方案?这篇文章值得收藏!

随着互联网技术的不断发展,网络项目的实施成为了许多企业和组织的重要任务。网络项目实施方案是指在进行网络项目实施时,为了保障项目的顺利进行,达到项目目标和交付要求,所制定的详细计划和操作指南。一个好的网络项目实施方案对…

数据结构 - 快排 | C

目录快速排序①hoare版本思路分析代码实现时间复杂度<整体优化><局部优化>②挖坑法思路分析代码实现③前后指针法思路分析代码实现④非递归快排思路分析代码实现以上代码汇总快速排序 ①hoare版本 思路分析 以上图为例&#xff1a; 指定一个数为a[key] 6&#x…

使用大华惠智双目半球网络摄像机DH-IPC-HD4140X-E2获取人流量统计数据

记录一下使用Java的SpringBoot大华SDK在智慧公厕项目中使大华惠智双目半球网络摄像机DH-IPC-HD4140X-E2获取人流量统计数据 首先根据说明书登录摄像头&#xff0c;一般摄像头都有自己的账号和密码(可能是admin admin 也可能是admin 888888 还有可能是admin 12345)&#xff0c;…

VMware ESXi 7.0 U3l Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)

ESXi 7 U3 标准版集成 Intel 网卡、USB 网卡 和 NVMe 驱动 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-7-u3-sysin/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 2023-03-31&#xff0c;发布 ESXi 7.0U…

C++轻量级Web服务器TinyWebServer源码分析之log篇

文章目录log日志篇简介一、日志类的定义与使用二、单例模式与阻塞队列的定义1、单例模式2、阻塞队列log日志篇简介 使用单例模式创建日志系统&#xff0c;对服务器运行状态、错误信息和访问数据进行记录&#xff0c;该系统可以实现按天分类&#xff0c;超行分类功能。其中异步…

RabbitMq图形界面创建队列操作步骤及控制台使用说明

版本&#xff1a;RabbitMQ 3.9.7 控台台访问路径&#xff1a; http://localhost:15672/#/queues 使用控制台创建队列 登录 创建队列 &#xff08;1&#xff09;输入自定义的队列名称 &#xff08;2&#xff09;其他输入参数为默认值即可 &#xff08;3&#xff09;点击【Add…

雷蛇灵刃18 2023原厂预装出厂Windows11系统

雷蛇系统安装完自带所有机型驱动和软件&#xff0c;并重建隐藏分区&#xff0c;还原功能 文件地址: https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd8888 支持系列: 雷蛇灵刃16 2023 [RZ09-0483]Windows11原厂系统 雷蛇灵刃 Stealth 13 Base Model [RZ09-0310] 201…

【Unity VR开发】结合VRTK4.0:创建一个按钮(Option Button)

语录&#xff1a; 如同天上降魔主&#xff0c;真是人间太岁神。 前言&#xff1a; 选项按钮是一种提供多项选择选项的方法&#xff0c;其中只有一个按钮可以处于激活状态&#xff0c;激活另一个按钮时将确保组中的所有其他按钮都已停用。我们可以使用嵌套在预制件中的预制件来实…

ChatGPT将引发大量而普遍的网络安全隐患

ChatGPT是一个基于人工智能的语言生成模型&#xff0c;它可以在任何给定的时间&#xff0c;使用自然语言生成技术&#xff0c;生成文本、对话和文章。它不仅可以被用来编写文本&#xff0c;还可以用来编写语言、生成图像和视频。目前&#xff0c; ChatGPT已广泛应用于语言翻译、…

FPGA lattice 深力科LCMXO3LF-4300C-6BG256I 可实现高效、灵活和安全的工业应用开发 低功耗FPGA解决方案详情讲解

FPGA lattice 深力科LCMXO3LF-4300C-6BG256I 可实现高效、灵活和安全的工业应用开发 低功耗FPGA解决方案详情讲解 超低密度FPGA 是最新的立即启用、非挥发性、小型覆盖区 FPGA&#xff0c;采用先进的封装技术&#xff0c;能让每个元件达到最低成本。此系列采用最新的小型封装&…

RK3399平台开发系列讲解(基础篇)Linux 传统间隔定时器

🚀返回专栏总目录 文章目录 一、设置间隔定时器 setitimer()二、查询定时器状态 getitimer()三、更简单的定时接口 alarm()四、传统定时器的应用4.1、为阻塞操作设置超时4.2、性能剖析五、传统定时器的局限性沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将详细…

java 泛型 万字详解(通俗易懂)

目录 一、前言 二、为什么需要泛型&#xff1f; 三、什么是泛型&#xff1f; 1.泛型的定义 : 2.泛型的作用 : 四、怎么用泛型&#xff1f; 1.泛型的语法 : 2. 泛型的使用 : 3.自定义泛型类 : 1 基本语法 : 2 使用细节 : 4.自定义泛型接口 : 1 基本语法 : 2 使用细…

C++-继承

继承继承的基本概念继承的概念继承的定义继承的格式继承的方式继承基类成员访问方式的变化基类与派生类的对象赋值转换继承中的作用域派生类中的默认成员函数继承与友元继承中的静态成员菱形继承菱形虚拟继承继承的总结继承的基本概念 继承的概念 继承机制是面向对象程序设计中…

【Spring源码】 BeanFactory和FactoryBean是什么?

1、前言 面试官&#xff1a;“看过Spring源码吧&#xff0c;简单说说Spring中BeanFactory和FactoryBean的区别是什么&#xff1f;” 大神仙&#xff1a;“BeanFactory是bean工厂&#xff0c;FactoryBean是工厂bean”。 这么回答&#xff0c;等于面试官问你Spring是什么&…

如何免费使用ChatGPT 4?

自从ChatGPT发布以来&#xff0c;它就取得了巨大的成功。无论是常春藤法学考试还是商学院作业&#xff0c;ChatGPT都被用于各种试验。统计数据显示&#xff0c;ChatGPT每月吸引约9600万用户。随着ChatGPT的巨大成功&#xff0c;Open AI最近推出了它的最新版本&#xff0c;名为“…

Learning to Detect Human-Object Interactions 文章解读

Learning to Detect Human-Object Interactions&#xff0c;WACV&#xff0c;2018 论文下载 code&#xff1a;http://www.umich.edu/∼ywchao/hico/ 摘要 主要研究领域&#xff1a;定义了HOI detection任务&#xff1a;在静态图像中检测人-对象交互&#xff08;HOI&#xff…