什么是目标检测?
长期以来,目标检测一直是计算机视觉和机器学习的应用,用于检测数字图像和视频中某些类别的语义对象。
发布日期:2022年9月26日
什么是目标检测?
物体检测技术通常是指检测图像中物体的位置和相应的类别。它是一项基本任务,与图像分割、目标跟踪、关键点检测等有关。目标检测是计算机视觉与图像处理相结合的一门计算机技术。人脸检测和同伴检测是目标检测中一个研究得很好的领域。目标检测在许多领域都有应用,包括计算机视觉、图像检索和视频监控。
在物体识别中,要区分图片中是什么物体,输入是图片,输出是类别标签和概率。物体检测算法不仅需要检测图像中有什么物体,还需要输出物体的外帧(x, y,宽度,高度)来定位位置。
目标检测就是准确地找到目标在每张图片中的位置,并标记出目标的类别。物体的大小变化很大,物体的角度和姿态不确定,它可以出现在图片的任何地方,更不用说物体可以是多个类别。
图像分类、目标检测和图像分割的区别
- 图像分类:输入图像通常只包含一个对象,目的是确定每个图像是什么对象。它是一个映像级任务,相对简单,发展最快。
- 物体检测:输入图像中往往有许多物体,目的是确定物体的位置和类别,这是计算机视觉中的核心任务。
- 图像分割:输入类似于物体检测,但需要确定每个像素属于哪个类别,哪个属于像素级分类。图像分割和目标检测任务之间有许多联系,模型可以相互学习。
传统和深度学习目标检测的区别:
- 传统的目标检测:传统的目标检测,在不涉及深度学习之前,通常分为三个阶段:区域选择、特征提取和特征分类。
- 区域选择:选择可能出现在图像中的对象的位置。由于目标的位置和大小不固定,传统算法通常采用滑动窗口算法,但该算法会有很多冗余帧,计算量高。
- 特征提取:在获得目标位置后,通常使用人工设计的提取器进行特征提取。由于提取器中包含的参数较少,而且人工设计的鲁棒性较差,因此特征提取的质量不高。
- 特征分类:对上一步得到的特征进行分类,通常使用SVM、AdaBoost等分类器。
- 基于深度学习的目标检测:深度神经网络的大量参数可以提取出鲁棒性和语义更好的特征,分类器性能更好。
目标检测与其他计算机视觉问题的区别:
计算机视觉与图像识别分类的区别在于,图像识别分类提供的是定位定位操作,而物体检测包括定位和分类两个任务。在现实世界中,由于拍摄的照片非常复杂,并且可能存在多个目标物体,因此可以使用更多的目标检测技术。识别分类任务只能识别较重要的一个,而目标检测任务可以识别多个。
在目标检测的基础上更进一步,不仅要在图像中找到目标,还要找到每个被检测到的目标的像素掩码,这个问题被称为实例分割。
目标检测性能指标:
- IoU (Intersection over Union): IoU衡量模型选择的候选帧与实际帧的重叠程度,也代表模型选择的候选帧的精度。取值范围为0 ~ 1。在实践中,通常设置阈值来设置模型选择的候选帧的精度。未达到iou阈值的候选框将被丢弃。最常用的阈值是0.5,即如果loU>0.5,则认为检测为真,否则认为检测为假。
- mean Average Precision (mAP): mAP =所有类的平均精度除以所有类的平均精度之和,即数据集中所有类的平均精度的平均值。在二值分类中,平均精度(AP)度量是精度-召回率曲线的总结,MAP =所有类别/所有类别的平均精度之和,即数据集中所有类别的平均精度的平均值。取平均值意味着mAP避免在某些类中检测到强而在其他类中检测到弱。
mAP通常是为固定的IoU计算的,但是许多边界框可以增加候选框的数量。计算变量IoU值mAP的平均值,以惩罚许多分类错误的候选框。
目标检测的主要算法:
- 传统的目标检测算法:Cascade + HOG/DPM + Haar/SVM以及对上述方法的诸多改进和优化。
- 深度学习算法:目标检测算法主要基于深度学习模型,分为两大类:
- 两阶段检测算法:将检测问题分为两个阶段,先生成区域建议,然后对候选区域进行分类(一般需要对位置进行细化)。这类算法的典型代表是基于区域提议的R-CNN算法,如R-CNN、Fast R-CNN、Faster R-CNN等。
- 单阶段检测算法:不需要区域提议阶段,直接生成目标的类别概率和位置坐标值,较典型的算法如YOLO和SSD。
目标检测模型的性能指标是检测精度和速度。对于精度,目标检测应考虑目标的定位精度,而不仅仅是分类精度。一般来说,两阶段算法在精度上有优势,而一阶段算法在速度上有优势。然而,随着研究的深入,这两种算法都得到了改进和完善。
2022年9月26日出版
来源:796吨