目标检测算法分类:
1、两步走的目标检测:先找出候选的一些区域,再对区域进行调整分类
代表:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN
2、端到端的目标检测:采用一个网络一步到位,输入图片,输出有哪些物体,物体在什么位置
代表:YOLO、SSD
目标检测的任务:
分类原理:
如下是一张CNN组成图,输入一张图片,经过其中卷积、激活、池化相关层,最后加入全连接层达到分类概率的效果。
分类的损失与优化:
在训练的时候需要计算每个样本的损失,那么CNN做分类的时候使用softmax函数计算结果,损失为交叉熵损失
对于目标检测来说不仅仅是分类这样简单的一个图片输出一个结果,而且还需要输出图片中目标的位置信息,所以从分类到检测,如下图标记了过程:
检测的任务:
分类:
N个类别
输入:图片
输出:类别标签
评估指标:Accuracy
定位:
N个类别
输入:图片
输出:物体的位置坐标
主要评估指标:IOU
其中我们得出来的(x,y,w,h)有一个专业的名词,叫做bounding box(bbox)
物体位置:
x,y,w,h:x,y:物体的中心点位置,以及中心点距离物体两边的长款
xmin,ymin,xmax,ymax:物体位置的左上角、右下角坐标
目标定位的简单实现思路:
在分类的时候我们直接输出各个类别的概率,如果加上定位的话,我们可以考虑在 网络的最后输出加上位置信息。(增加一段全连接输出4个位置,做损失计算)
回归位置:
增加一个全连接层,即为FC1、FC2
FC1:作为类别的输出
FC2:作为这个物体位置数值的输出