概述
目标检测和目标跟踪是计算机视觉中的两个重要任务,目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置。而目标跟踪则是对于任意目标的跟踪,即事先是不知道跟踪的具体目标的,理想跟踪器应该可以跟踪人们需要的任意目标。
目标检测偏向于单帧下的物体定位识别,目标跟踪多帧之间的物体会有关联,重在跟踪和重识别,现在的跟踪算法有很大一部分是基于检测和滤波,目标检测会应用到目标跟踪中。
目标检测
- 基于目标检测算法
目标检测算法主要分为两类:基于深度学习的目标检测算法和传统的目标检测算法。
基于深度学习的目标检测算法使用的是卷积神经网络(Convolutional Neural Networks,CNN)学习特征的方式,这种特征学习方式能自动发现检测及分类目标所需要的特征,同时通过卷积神经网络将原始输入信息转化成更抽象、更高维的特征,这种高维特征具有强大的特征表达能力和泛化性,所以其在复杂场景下的性能表现较好,可满足工业界的大部分应用需求。
(1)传统目标检测算法
传统目标检测算法主要可以分为三大步骤:候选区域选择、特征提取、分类器。
传统的目标检测算法主要包括以下几种:Haar-like特征+Adaboost、HOG+SVM、LBP+SVM等
(2)基于深度学习的目标检测算法
基于深度学习的目标检测算法主要包括以下几种:Faster R-CNN、YOLO、SSD、RetinaNet、EfficientDet等。
而基于深度学习的目标检测算法又发展成了两条技术路线: Anchor based 方法 (一阶段,二阶段)和 Anchor free 方法。
Anchor-based方法是目标检测中的一种方法,它主要包括一阶段和二阶段检测算法。其中一阶段的检测技术包括SSD,DSSD,RetinaNet,RefineDet,YOLOV3等,二阶段技术包括Faster-RCNN,R-FCN,FPN,Cascade R-CNN,SNIP等。
Anchor-free方法是目标检测中的另一种方法。它不需要预先定义anchor box,而是直接在图像中预测目标的位置和大小。Anchor-free方法主要包括CornerNet、ExtremeNet、CenterNet、FCOS等。
- 目标检测步骤
目标检测的一般步骤如下:
- 数据准备:收集、标注、划分数据集。
- 特征提取:提取图像特征,如HOG、SIFT、SURF等。
- 建立模型:选择合适的模型,如SVM、Adaboost等。
- 模型训练:使用训练数据对模型进行训练。
- 模型测试:使用测试数据对模型进行测试,评估模型性能。
- 模型优化:对模型进行优化,提高检测精度和速度。
基于深度学习的目标检测算法已经取得了很大的进展,如Faster R-CNN、YOLO、SSD、RetinaNet、EfficientDet等。这些算法不需要手工设计特征,而是通过卷积神经网络(CNN)自动学习特征,从而大大提高了检测精度和速度。
传统目标检测算法主要基于手工提取特征,在候选区域选择:首先从输入图像上划定一些目标存在性较大的区域,对目标可能存在的区域进行初步定位。
- 目标检测评价指标
目标检测的评价指标有很多,以下是一些常见的评价指标:
- 精度评价指标:map(平均准确度均值,精度评价),准确率(Accuracy),精确率(Precision),召回率(Recall),平均正确率(AP),mean Average Precision(mAP),交除并(IoU),ROC + AUC,非极大值抑制(NMS)。
- FPS和mAP是目标检测算法的两个重要评估指标,FPS 是用来评估目标检测的速度,即每秒内可以处理的图片数量或者处理一张图片所需时间来评估检测速度,时间越短,速度越快。
- 目标检测数据集
目标检测的数据集有很多,以下是一些常见的数据集:
- PASCAL VOC:PASCAL VOC是一个视觉对象分类的竞赛和系列工作坊,其中包括一个视觉对象检测挑战。该数据集包含20个对象类别,其中包括人、动物和交通工具等1。
- COCO:COCO是微软构建的一个目标检测大型基准数据集,包括检测、分割、关键点估计等任务。该数据集包含80个对象类别,其中包括人、动物和交通工具等。
- ImageNet:ImageNet是一个大型图像数据库,用于视觉对象识别软件研究。该数据集包含超过1400万张图像,其中有超过2万个类别。
- 目标检测应用场景
目标检测技术广泛应用于安防、交通等行业内图像场景的目标检测与跟踪。应用领域包括人脸检测、行人检测、车辆检测、卫星图像中道路的检测、车载摄像机图像中的障碍物检测、医学影像在的病灶检测等。以下是一些目标检测的案例:
- YOLOv4目标检测完成对道路上的车辆、行人的检测、跟踪和计数
- 高清地图障碍物(汽车)检测标注项目
- 通过目标检测技术,可以实现对图像中的人脸进行识别
在自动驾驶中,目标检测技术可以用于识别和跟踪道路上的车辆、行人、交通标志等物体,从而帮助自动驾驶汽车做出决策。例如,当自动驾驶汽车检测到前方有行人时,它会自动减速或停车以避免碰撞。目前,许多自动驾驶汽车都采用了基于深度学习的目标检测技术,如YOLO。
基于目标跟踪算法
基于目标跟踪的算法可以分为传统算法和基于深度学习的算法两种。
- 基于传统算法
常见的有:
- 基于相关滤波的跟踪算法
- 基于卡尔曼滤波的跟踪算法
- 基于粒子滤波的跟踪算法
- 基于模板匹配的跟踪算法
- 基于背景差分的跟踪算法
- 基于深度学习
常见的有:
- 基于卷积神经网络的目标跟踪算法
- 基于循环神经网络的目标跟踪算法
- 基于生成对抗网络的目标跟踪算法
- 基于强化学习的目标跟踪算法
- 目标跟踪步骤
一般包括以下几个部分:
运动模型、特征提取、观测模型、模型更新、方法集成。
- 目标跟踪评价指标
常见的评价指标:
- MOTA(Multiple Object Tracking Accuracy)多目标跟踪的准确度,用于统计在跟踪中的误差积累情况;
- MOTP(Multiple Object Tracking Precision)多目标跟踪精确度,衡量单摄像头多目标跟踪位置误差的一个指标;
- IDF1(Identification F1-score)以1为最佳情况,数值越高代表跟踪特定目标的精度越好;
- MT(Mostly Tracked)代表在80%的帧中被正确跟踪的轨迹占所有轨迹的比重;
- ML(Mostly Lost)代表在20%的帧中被错误跟踪或丢失的轨迹占所有轨迹的比重。
- 目标跟踪数据集
目前常用的目标跟踪数据集有OTB、VOT、TrackingNet等。
OTB数据集是单目标跟踪领域最常用的数据集之一,包含了100多个视频序列,涵盖了多种场景和物体。
VOT数据集是一个大规模的单目标跟踪数据集,包含了60个视频序列,涵盖了各种场景和物
TrackingNet是一个大规模的目标跟踪数据集,包含了30643个视频片段,平均每个视频片段时长16.6s。
- 目标跟踪应用场景
目标跟踪技术主要应用于以下领域:智能监控、机器人视觉系统、虚拟现实(人体跟踪)、医学诊断(细胞状态跟踪)等。其中,多目标跟踪主要应用于安防监控和自动驾驶等领域,这些场景中我们往往需要对众多目标同时进行追踪。
本文暂时没有评论,来添加一个吧(●'◡'●)