目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。
一、目标检测算法分类
1、两步走的目标检测
先找出候选的一些区域,而后对区域进行调整、分类
- 代表算法:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN
2、端到端的目标检测
采用一个网络,直接输入到输出,一步到位
- 一般输入是图片,输出有哪些物体、物体在什么位置等信息
二、目标检测的任务
1、首先是分类任务
- N 个类别
- 输入:图片
- 输出:类别标签
- 评估指标:Accuracy
2、其次是定位问题
- N个类别
- 输入:图片
- 输出:物体的位置坐标
- 主要评估指标: IOU
(1)bounding box(bbox)物体的框
物体位置:
- (x, y, w, h):x,y物体的中心点位置,以及中心点距离物体两边的长、宽(h,w)
- (xmin, ymin, xmax, ymax):物体位置的左上角、右下角的坐标
两种Bounding box名称:
- Ground-truth bounding box:图片当中真实标记的框
- Predicted bounding box:预测的时候标记的框
(2)图像的坐标
三、目标定位的简单实现思路
在分类的时候直接输出各个类别的概率,如果加上定位的话,可以考虑在网络的最后输出加上位置信息。
做法:增加一个全连接层输出4个位置信息,做损失计算
假设有10个类别,输出[p1, p2, ....., p10],然后输出这一个对象的四个位置信息[x,y,w,h]。同理可以知道网络输出什么,要衡量这个网络的损失:
- 对于分类的概率,使用交叉商损失
- 位置信息具体的数值,可使用MSE均方误差损失(L2损失)