物体检测、物体识别、语义分割、显著性目标检测究竟有什么区别与联系?

物体检测、物体识别、语义分割、显著性目标检测究竟有什么区别与联系?

Abstract

自从CNN的成功和ResNet的神之paper和transformer在图像中的应用,带动了整个深度学习中的计算机视觉领域的疯狂内卷,自己也看了很多关于CV领域的paper,我自己是做显著性目标检测(SOD)的,但是也看一些语义分割,目标检测、物体识别、物体检测之类的paper,看着看着,突然有一个问题就冒出来了,就是,这些任务究竟有什么区别与联系?以下就是自己用一些“人话”对上面提到的问题的一些愚见,如有错误、缺漏、不足之处恳请大佬批评指正

理论

以上的任务都是在计算机视觉领域中非常常见的任务,几乎每篇paper中都会提到一到两个,那么他们具体是怎么定义的呢:

1、物体检测(Object Detetion):物体检测是指在图像或者视频中准确定位和标记出图像中存在的多个物体示例,通俗的来说就是,在图像中用一个框把我们需要检测的目标框出来然后在框的上面显示出类别和可信度(score),其中最著名的就是yolo系列,下面的图也来自于yolo。

img

2、物体识别(Object Recognition):物体识别是指识别图像或视频中的物体类别。他跟上面的物体检测不一样,它只需要关注物体的类别即可,而不需要关注物体的位置、轮廓等细节信息,目的是对图像中的内容进行理解。(我个人感觉其实就是物体检测的阉割版)

1

3、语义分割(Semantic Segmentation):语义分割是指将图像划分为具有语义意义的不同区域,并为每个像素分配相应的类别标签。与物体检测和物体识别不同,语义分割不再关注于对于物体整体的研究,而是对于图像中的每个像素进行分类,然后对每个像素进行标签的分配,将整个图像进行像素级的分割。目的是对图像进行像素级细粒度的理解。如下图所示(图片来自Segformer)

seg_demo

4、显著性目标检测(Saliency Object Detection):显著性目标检测是来源于人类的视觉特性,即人们总是先会关注那些更加吸引自己的目标。此任务的目标就是通过分析图像的视觉特征,来突出图像中与周围环境显著不同的目标,如下图(来自BBS-Net)所示:

resultmap

小结:上面的四种任务都属于计算机视觉领域,并且都关注于对于图像特征的提取,并且都尝试对于图像进行一定的“理解”,都是从图像中获得我们想要的信息,这些任务在某种程度上会有所重叠,那为什么不把这些方向归为一类,反而进一步细分,进而衍生出这么多细分领域呢,我们进一步探索可以发现,由于我们都是从图片入手(视频就是很多张图片),接着对图片进行后续处理,最后输出我们想要的信息,这个流程都是一样的,但是他们的关注点和目标是不一样的。

例如:

物体检测侧重于定位和标记图像中的物体实例;

物体识别关注于识别物体的类别;

语义分割通过像素级别的分割实现对图像的理解;

显著性目标检测关注于引人注目的区域。

正是最后的目标不同,导致我们需要对图像的处理方式的不同,也就意味着我们需要的图像的特征也不同。举个例子:我们在不同的任务中输入同一张图像,由于我们的关注点不一样,最后我们会有不同的输出。正因为如此,我们在设计模型的过程中,需要提取的特征、要考虑的细节就会有很大区别,所以我们需要这么多的细分领域需要根据不同的要求进行深入探索。(下文会具体阐述)

实践

他们的区别不仅体现在概念上,还体现在我们的训练过程中,这也更加形象的体现了他们之间的不同与联系。

1、数据集和标注方式:这其实是最本质的区别,因为在监督学习领域中,也就是带着标签(label)进行训练的模型,虽然我们有不同的任务,不同的训练集从而细分出不同的领域,但是他们都有一个共性,就是通过各种方法对特征提取、融合、加权最后细化,最终都只有一个目的,那就是使我们的预测出来的结果与标签无限接近。那么图片打标签的方式就是对各种任务根本的区分。例如:

物体检测的标签通常就是每个物体实例的先验框(anchor)和类别标签(label)。

物体识别一般需要有物体类别(classes)的标注信息。

语义分割需要为每个像素分配语义类别标签。

显著性目标检测可以使用二值显著图进行标注,指示显著目标的位置。

2、网络架构:不同任务可能采用不同的网络架构进行训练。顺便介绍一些经典的网络架构:

物体检测: Faster R-CNN、YOLO(You Only Look Once)、 SSD(Single Shot MultiBox Detector)。

物体识别: VGG、ResNet 、 Inception。

语义分割: U-Net、FCN(Fully Convolutional Network)、 DeepLab 。

显著性目标检测可以使用类似于 Encoder和Decoder的架构。

3、损失函数:其实损失函数的不同其实归根到底还是因为标签的不同。由于许多损失函数的起源来自于信息论或者使概率论,我从这两个角度进行说明:

  1. 信息论角度:在信息论中,熵是度量随机变量不确定性的指标。由于不同任务需要模型拟合不同的标签。损失函数可以被视为对于模型预测与真实标签之间的差异进行量化,从而降低模型的不确定性。不同任务中我们需要设计与标签特征匹配的损失函数,通过优化特定的损失函数从而最小化不同的信息熵来降低不确定性,最后使得预测与标签的无限接近。
  2. 概率论角度:概率论提供了一种框架来建模不同任务的目标。由于不同任务的标签不一样,所以需要建模的概率模型会有所不同,所以我们同样需要针对性的设计不同的损失函数从而匹配不同的概率模型假设和目标函数。根据任务的特点,可以使用不同的概率分布和相关的损失函数来建模和优化。

总结

标签的不同或者说是不同任务最后的预测结果不同又或者说是不同任务关注的重点不同,这就是这些任务的本质区别。

但是由于都是对图片进行特征提取、特征融合等最后输出预测图这种处理思路,他们之间又有一定的相似与联系。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值