目标分割、目标识别、目标检测和目标跟踪的区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默:
https://www.cbedai.net/linuxcore

1)目标分割,任务是把目标对应的部分分割出来。
2)目标检测,检测到图片当中的目标的具体位置
3) 目标识别,即是在所有的给定数据中,分类出哪一些sample是目标,哪一些不是。这个仅仅做一下分类任务。
4)目标追踪,这个任务很重要的第一点是目标定位(Target Locating)。而且这个任务设计到的数据一般具有时间序列(Temporal Data)。常见的情况是首先Target被Identify以后,算法或者系统需要在接下来时序的数据中,快速并高效地对给定目标进行再定位。任务需要区别类似目标,需要避免不要的重复计算,充分利用好时序相关性(Temporal Correlation),并且需要对一些简单的变化Robust,必须旋转,遮盖,缩小放大,Motion Blur之类的线性或者非线性变化。
目标跟踪:追踪目标运动轨迹。这个仅仅应用在视频当中。
粗略理解:

  • 目标分割:像素级的对前景与背景进行分类,将背景剔除;
  • 目标检测:定位目标,确定目标位置及大小;
  • 目标识别:定性目标,确定目标是什么;
  • 目标跟踪:追踪目标运动轨迹。

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

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

OT与OD到底啥区别

最大的区别我觉得OT只给了第一帧的GT
目标跟踪不需要目标识别,可以根据运动特征来进行跟踪,而无需确切知道跟踪的是什么,所以如果利用视频画面之间(帧之间)的临时关系,单纯的目标跟踪可以很高效的实现。

基于OD的目标跟踪算法计算非常昂贵,需要对每帧画面进行检测,才能得到目标的运动轨迹。而且,只能追踪已知的目标,因为目标检测算法就只能实现已知类别的定位识别。

因此,OD要求定位+分类。而目标跟踪,分类只是一个可选项,根据具体问题而定,我们可以完全不在乎跟踪的目标是什么,只在乎它的运动特征。实际中,目标检测可以通过目标跟踪来加速,然后再间隔一些帧进行分类(好几帧进行一次分类)。在一个慢点的线程上寻找目标并锁定,然后在快的线程上进行目标跟踪,运行更快。

    原文作者:量子孤岛
    原文地址: https://blog.csdn.net/fly_wt/article/details/96127353
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞