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