1.目标检测算法分类
基于深度学习的主流目标检测算法根据有无候选框生成阶段,分为双阶段目标检
测算法和单阶段目标检测算法两类

双阶段检测模型
将检测问题划分为两个阶段,首先产生候选区域,然后对候选区域分类并对目标位置进行精修,如R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、Mask R-CNN等模型。
单阶段检测模型
不需要产生候选区域阶段,直接产生物体的类别概率和位置坐标值,经过单次检测即可直接得到最终的检测结果,因此它们的检测速度更快,如YOLO系列、SSD系列、Retina-Net等模型。
2.目标检测评价指标
目标检测效果的主要评价指标有mAP、IoU等,而评价检测速度的指标有FPS、 FLOPs等。
2.1 mAP
mAP(mean average precision) 是 各 类 别AP的 平 均 值, 其 中AP是PR (precision-recall)曲线和坐标围起来的面积组成,用于表示不同召回率下检测的平 均正确性,是对一个特定类别下目标检测器效果的评估。mAP值越高,表明该目标
检测模型在给定的数据集上的检测效果越好。
2.2 IoU
交并比(intersection over union,IoU):针对目标检测任务,IoU度量表示的是预测的边框和原图片标注的真实边框的交叠率,是两检测框的交集比上其并集。当IoU为 1的时候则说明预测的效果达到最佳。针对检测框P
和真实边框
G
,IoU的计算公式为

2.3 FPS(frame per second)和FLOPs(floating point operations)
是常用于度量 目标检测算法速度的评价指标。其中FPS代表检测器每秒可以处理的图片帧数,数值越大代表检测速度越快。FLOPs即浮点运算数是衡量算法与模型的复杂度的指标,模型FLOPs与许多因素有关,比如参数量、网络层数、选用的激活函数等。FLOPs值越大,表明神经网络所需要的浮点运算量越大,在同等硬件的条件下速度越慢
3. 目标检测常用损失函数
目标检测模型通常包含两类损失函数:
- 一类是分类损失,例如交叉熵损失、 Focal Loss等;
- 另一类是位置回归损失,例如L2损失、Smooth L1 loss、IoU loss 等。
这两类损失函数用于检测模型最后一部分,根据模型输出(类别和位置)和实际标注框(类别和位置)分别计算分类损失和位置回归损失。
3.1 交叉熵损失公式
式中,
M
表示类别数量;
y
ic
表示符号函数(0或1),如果样本
i
的真实类别等于
c
取1,否则取0;
p
ic
表示观测样本
i
属于类别
c
的预测概率。
3.2Focal loss
是为了缓解样本的不平衡问题,在标准交叉熵损失基础上修改得到的。其可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本。 Focal loss的公式如下: