目标检测、分割、识别、分类综述

目标分割的任务是把目标对应的部分分割出来。

目标检测:检测到图片当中的目标的具体位置 

目标识别:即是在所有的给定数据中,分类出哪一些sample是目标,哪一些不是。这个仅仅做一下分类任务。yes or no

典型的技术路线是:目标分割 ——>目标检测 ——>目标识别 ——>目标跟踪

如:需要对视频中的小明进行跟踪,处理过程将经历如下过程:

(1)首先,采集第一帧视频图像,因为人脸部的肤色偏黄,因此可以通过颜色特征将人脸与背景分割出来(目标分割);
(2)分割出来后的图像有可能不仅仅包含人脸,可能还有部分环境中颜色也偏黄的物体,此时可以通过一定的形状特征将图像中所有的人脸准确找出来,确定其位置及范围(目标检测)
(3)接下来需将图像中的所有人脸与小明的人脸特征进行对比,找到匹配度最好的,从而确定哪个是小明(目标识别);
(4)之后的每一帧就不需要像第一帧那样在全图中对小明进行检测,而是可以根据小明的运动轨迹建立运动模型,通过模型对下一帧小明的位置进行预测,从而提升跟踪的效率(目标跟踪)


计算机视觉中关于图像识别有四大类任务:

  1. 分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。对于一幅图像来说,分类就是聚类,即分割;对于一组图像样本来说,分类是检测出样本中有相同目标的图像。
  2. 定位-Location:解决“在哪里?”的问题,即定位出这个目标的的位置。
  3. 检测-Detection:解决“是什么?在哪里?”的问题,即定位出这个目标的的位置并且知道目标物是什么。
  4. 分割-Segmentation:分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。图示如下:

                  这里写图片描述

  • a)图像分类:一张图像中是否包含某种物体
  • b)物体检测识别:若细分该任务可得到两个子任务,即目标检测,与目标识别,首先检测是视觉感知得第一步,它尽可能搜索出图像中某一块存在目标(形状、位置)。而目标识别类似于图像分类,用于判决当前找到得图像块得目标具体是什么类别。
  • c)语义分割:按对象的内容进行图像得分割,分割的依据是内容,即对象类别。
  • d)实例分割:按对象个体进行分割,分割的依据是单个目标。

     目标分类和分割其实算是一个意思,比如,对一幅图像,我们根据相似性,将其分成不同的区域,这个可以说以分割,也是分类,对每个分类的区域进行特征匹配,就可知道每个区域是什么,实现目标识别。

不管什么任务,目标检测应该是计算机视觉领域首先需要掌握的。目标检测要解决的核心问题

1.目标可能出现在图像的任何位置。
2.目标有各种不同的大小。
3.目标可能有各种不同的形状。

     如果用矩形框来定义目标,则矩形有不同的宽高比。由于目标的宽高比不同,因此采用经典的滑动窗口+图像缩放的方案解决通用目标检测问题的成本太高。

1、传统的目标检测(滑动窗口的框架):

(1).滑动窗口
(2).提取特征(SIFT,HOG,LBP)
(3).分类器(SVM)

       传统的计算机视觉问题的解决思路:图像——预处理——人工特征(hand-crafted features)提取——分类。大部分研究集中在人工特征的构造和分类算法上。但存在的问题是人工设计的特征可能适用性并不强,或者说泛化能力较弱,一类特征可能针对某类问题比较好,其他问题就效果甚微。

    滑窗法作为一种经典的物体检测方法,个人认为不同大小的窗口在图像上进行滑动时候,使用分类器判别滑动框存在物体的概率。滑窗法的物体检测流程图:

           

     滑窗法主要思路:首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动。每次滑动时候对当前窗口执行分类器(分类器是事先训练好的)。如果当前窗口得到较高的分类概率,则认为检测到了物体。对每个不同窗口大小的滑窗都进行检测后,会得到不同窗口检测到的物体标记,这些窗口大小会存在重复较高的部分,最后采用非极大值抑制(Non-Maximum Suppression, NMS)的方法进行筛选。最终,经过NMS筛选后获得检测到的物体。

  滑窗法简单易于理解,但是不同窗口大小进行图像全局搜索导致效率低下,而且设计窗口大小时候还需要考虑物体的长宽比。所以,对于实时性要求较高的分类器,不推荐使用滑窗法。


 2、基于深度学习的目标检测:

                  

     通过深度学习算法,进行端到端的解决,即输入图像到输出任务结果一步完成。但其实内部它还是分stages的,通常是图像——特征提取网络——分类、回归。

    这里特征提取网络即各种深度神经网络结构,整个网络分作两类的:

     前N个层用于特征的提取,输入图片,输出特征图,这与传统的人工特征提取本质上没有太大区别,只是提取特征的算法变成了神经网络算法。

    网络的后K层完成具体的分类或者回归任务,输入前一个部分得到的特征图,输出任务的结果。所以显然后一部分其实是可以被替代的,也确实有很多框架的第二部分采用其他机器学习的算法替代,如SVM。

先献上一个RCNN系列的图(来自知乎:iker peng)。

这里写图片描述

    RCNN/SPP-Net/Fast-RCNN等文章都会谈及候选区域的生成。为什么要有候选区域?既然目标是在图像中的某一个区域,那么最直接的方法就是滑窗法(sliding window approach),就是遍历图像的所有的区域,用不同大小的窗口在整个图像上滑动,那么就会产生所有的矩形区域,然后再后续排查,思路简单,但开销巨大。

     候选区域生成算法主要使用图像分割与区域生长技术。区域生长(合并)主要由于检测图像中存在的物体具有局部区域相似性(颜色、纹理等)。基于图像的颜色、纹理、面积、位置等合并相似的像素,最终可以得到一系列的候选矩阵区域。这些算法,如selective search或EdgeBoxes,通常只需要几秒的CPU时间,而且,一个典型的候选区域数目是2k,相比于用滑动窗把图像所有区域都滑动一遍,基于候选区域的方法十分高效。

    选择性搜索(Selective Search)主要运用图像分割技术来进行物体检测。滑窗法类似穷举进行图像子区域搜索,但是一般情况下图像中大部分子区域是没有物体的。学者们自然而然想到只对图像中最有可能包含物体的区域进行搜索以此来提高计算效率。选择搜索方法是当下最为熟知的图像bouding boxes提取算法

  选择搜索算法的主要观点:图像中物体可能存在的区域应该是有某些相似性或者连续性区域的。因此,选择搜索基于上面这一想法采用子区域合并的方法进行提取bounding boxes候选边界框。首先,对输入图像进行分割算法产生许多小的子区域。其次,根据这些子区域之间相似性(相似性标准主要有颜色、纹理、大小等等)进行区域合并,不断的进行区域迭代合并。每次迭代过程中对这些合并的子区域做bounding boxes(外切矩形),这些子区域外切矩形就是通常所说的候选框。

    

     总体思路:假设现在图像上有n个预分割的区域,表示为R={R1, R2, …, Rn}, 计算每个region与它相邻region(注意是相邻的区域)的相似度,这样会得到一个n*n的相似度矩阵(同一个区域之间和一个区域与不相邻区域之间的相似度可设为NaN),从矩阵中找出最大相似度值对应的两个区域,将这两个区域合二为一,这时候图像上还剩下n-1个区域; 重复上面的过程(只需要计算新的区域与它相邻区域的新相似度,其他的不用重复计算),重复一次,区域的总数目就少1,直到最后所有的区域都合并为同一个区域(即此过程进行了n-1次,区域总数目最后变成了1).算法的流程图如下图所示:

               这里写图片描述

  • step0:生成区域集R,具体参见论文《Efficient Graph-Based Image Segmentation》,基于图的图像分割,博客:https://blog.csdn.net/surgewong/article/details/39008861/
  • step1:计算区域集R里每个相邻区域的相似度S={s1,s2,…}
  • step2:找出相似度最高的两个区域,将其合并为新集,添加进R
  • step3:从S中移除所有与step2中有关的子集
  • step4:计算新集与所有子集的相似度
  • step5:跳至step2,直至S为空

相似度计算:论文从四个方面考虑相似度度量——颜色、纹理、尺寸和空间交叠

选择搜索优点: 

  1.   计算效率优于滑窗法。 
  2.   由于采用子区域合并策略,所以可以包含各种大小的疑似物体框。 
  3.   合并区域相似的指标多样性,提高了检测物体的概率。

from:https://blog.csdn.net/qq_25680531/article/details/80932137

from:https://blog.csdn.net/surgewong/article/details/39008861/

      SSD算法是一种直接预测目标类别和bounding box的多目标检测算法。与faster rcnn相比,该算法没有生成 proposal 的过程,这就极大提高了检测速度。算法的主网络结构是VGG16,将最后两个全连接层改成卷积层,并随后增加了4个卷积层来构造网络结构。对其中5种不同的卷积层的输出feature map分别用两个不同的 3×3 的卷积核进行卷积,一个输出分类的confidence,每个default box 生成21个类别confidence;一个输出回归用的 localization,每个 default box 生成4个坐标值(x, y, w, h)。此外,这5个feature map还经过PriorBox 层生成 prior box(生成的是坐标)。上述5个feature map中每一层的default box的数量是给定的(8732个)。最后将前面三个计算结果分别合并然后传给loss层。

     YOLO对于给定的输入图像,YOLO不管三七二十一最终都划分出7x7的网格,也就是得到49个窗口,每个格子预测2个矩形框及其置信度,这个预测是通过全连接层来完成的,以及20种类别的概率。舍弃了Region proposal阶段,加快了速度,但是定位精度比较低,YOLO会预测每个矩形框的4个参数和其包含物体的信度,以及其属于每个物体类别的概率。YOLO的速度很快,在GPU上可以达到45fps。

     对于目标检测这一任务而言,如果更关注性能指标,则可以参考two-stage系列的方法,而如果更关注实时性的要求,则可以关注one-stage的方法,这篇报告特别讲述了one-stage的YOLO算法,YOLO是以实时性为基础的快速目标检测算法,这种方法很快,也有许多工作。

                       

 

  • 34
    点赞
  • 199
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 目标检测是计算机视觉中的一个重要任务,其目标是从图像或视频中识别并定位出物体的位置和类别。近年来,随着深度学习技术的发展,目标检测在各个领域得到了广泛的应用。 除了在二维平面上对目标进行检测,还有一种更加复杂的目标检测技术被称为3D目标检测。3D目标检测是指从三维点云或三维重建模型中检测和识别物体的位置和类别。它在自动驾驶、机器人、增强现实等领域具有广泛的应用前景。 与传统的2D目标检测技术不同,3D目标检测需要处理更多的维度和更加复杂的数据结构。为了解决这个问题,近年来涌现出了许多基于深度学习的3D目标检测算法。这些算法利用了卷积神经网络(CNN)、循环神经网络(RNN)、图卷积网络(GCN)等深度学习模型,对点云数据进行高效的处理和分类。 目前,3D目标检测算法主要分为两类:基于视觉信息的方法和基于点云信息的方法。基于视觉信息的方法通常使用多个摄像头或激光雷达传感器获取多个视角的图像或视频,并对这些信息进行融合和处理以得到3D目标信息。基于点云信息的方法则直接从激光雷达或深度相机等传感器获取点云数据,并对点云数据进行分割分类。 然而,3D目标检测仍然面临许多挑战,如点云数据稀疏性、噪声、点云分割、目标遮挡等问题。因此,未来的研究方向主要集中在如何进一步提高3D目标检测的精度和鲁棒性。 ### 回答2: 目标检测是计算机视觉领域中的一项重要任务,其目标是识别和定位给定图像或视频中的特定目标物体。目标检测技术被广泛应用于自动驾驶、智能监控、机器人导航等领域。 随着计算机视觉和深度学习算法的发展,传统的目标检测算法已经取得了显著的进展。然而,传统的2D目标检测方法只能提供目标在图像中的二维位置信息,无法提供目标的三维信息。 为了克服这个问题,研究人员提出了3D目标检测方法。3D目标检测旨在从给定的图像或点云数据中获取目标的三维几何信息,以便更准确地识别和定位目标。 3D目标检测可以分为两类:基于图像的方法和基于点云的方法。基于图像的方法将2D图像转换为3D场景,并预测目标的几何信息。这些方法通常使用深度学习网络,如卷积神经网络(CNN),通过利用大量标注样本进行训练,以预测目标的三维位置、朝向和尺度。 另一方面,基于点云的方法直接处理点云数据,无需图像投影和转换。这些方法利用点云的结构信息和几何特征进行目标检测。一些常见的点云处理算法包括PointNet和PointNet++。 最近,研究人员还提出了将图像和点云信息融合的方法来改进3D目标检测的性能。这些方法能够综合利用图像和点云数据的优势,并取得了更好的检测结果。 总之,3D目标检测目标检测领域的一个重要研究方向。随着深度学习和计算机视觉技术的发展,我们可以期待3D目标检测在自动驾驶、智能导航和机器人等领域的广泛应用。 ### 回答3: 目标检测是计算机视觉中一项重要的任务,其目标是在给定图像或视频中准确定位和分类出感兴趣的目标。近年来,随着深度学习算法的迅猛发展,目标检测取得了显著的进展。当目标检测被应用于三维场景时,就形成了3D目标检测。本文将首先介绍目标检测的基本概念和常用方法,然后从3D感知、数据集、传感器和应用等方面对3D目标检测进行综述。 在目标检测中,常用的方法可以分为两类:基于传统的机器学习方法和基于深度学习的方法。传统方法通常使用手工设计的特征和分类器来识别目标,如Haar特征和SVM分类器。而基于深度学习的方法则通过深度卷积神经网络(CNN)来实现端到端的目标检测,如Faster R-CNN和YOLO等。 3D目标检测与2D目标检测的区别在于需要从三维场景中获取目标的位置和姿态信息。因此,3D目标检测涉及到3D感知的问题。常用的传感器包括激光雷达和深度相机,它们可以提供点云数据和深度图像,进而用于目标检测。此外,3D目标检测还需要大规模的3D数据集来进行训练和评估。 在最近的研究中,一些新的方法被提出来解决3D目标检测的挑战。例如,PointNet和PointNet++等基于点云的网络模型可以直接处理点云数据,而不需要将其转换为图像或体素表示。此外,深度学习方法也可以结合传统几何模型,如3D Bounding Box Estimation和Frustum PointNets等。 总之,3D目标检测目标检测在三维场景中的扩展和应用。它利用深度学习和传感器等技术,可以准确地定位和分类三维场景中的目标。未来的研究还可以探索更加高效和鲁棒的方法,以推动3D目标检测在自动驾驶、机器人等领域的广泛应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值