什么是目标检测?
目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观,形状,姿态,加上成像时的光照遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。
计算机视觉中关于图像识别有四大类任务:
- 分类-Classification:解决“是什么?”的问题,即给定一张图片或者一段视频判断里面包含什么类别的目标。
- 定位-Location:解决“在哪里?”的问题,即定位出这个目标的位置。
- 检测-Detection:解决“是什么?在哪里?”的问题,即定位出这个目标的位置并且知道目标物是什么。
- 分割-Segmentation:分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。
除图像分类之外,目标检测要解决的核心问题是:
- 目标可能出现在图像的任何位置。
- 目标有各种不同的大小。
- 目标可能有各种不同的形状。
如果用矩形框来定义目标,则矩形有不同的宽高比,由于目标的宽高比不同,因此采用经典的滑动窗口+图像缩放的方案解决目标检测的问题成本太高。
基于深度学习的目标检测方法
目前目标检测领域的深度学习方法主要分为两类:two stage的目标检测算法;one stage的目标检测算法。前者是先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类;后者则不用产生候选框,直接将目标边框定位的问题转化为回归问题处理。正是由于两种方法的差异,在性能上也有不同,前者在检测准确率和定位精度上占优,后者在算法速度上占优。
红色部分个人认为是必读的,当然其他部分有时间的情况也是可以读的。
该表参照https://github.com/hoya012/deep_learning_object_detection#2014,其中,fps由于受硬件环境(CPU、GPU、RAM等)的影响,故此不列出。