1.IOU

IOU即交并比,是衡量模型生成的Detection Result和人工标注的Ground Truth之间的重叠程度,公式如下:



(1)



2.NMS

NMS即非极大值抑制,去除低IoU值bbox(Bounding Box)和重复度高的bbox。模型最后预测阶段会产生一些精确度不是很高的bbox以及十分接近的bbox,NMS算法去掉冗余bbox,只保留与ground truth最接近的几个。NMS算法的步骤如下:

(1)首先选择一个类。

(2)遍历所有bbox,将bbox的score与threshold1进行比较,将score<threshold1的bbox的score置为0。

(3)之后,将所有的bbox按照score进行升序排序,选中最高分的bbox。

(4)计算该类中所有非零bbox与最高分bbox计算IOU,如果大于threshold2,则将该bbox的score置为0。

(5)对该类中剩余不为0的bbox重新排序,选取最高分的bbox,重复上述(3)-(5),直至某一轮结束(4)中剩余的所有score为0,该类结束计算NMS。

(6)对剩余的所有类重复上述(2)-(5)操作。




目标检测15帧 目标检测fps怎么计算_操作数


图1 非极大值抑制

3.边界框回归


目标检测15帧 目标检测fps怎么计算_目标检测15帧_02

图2 边界框回归


目标检测中会预测出大量的Bounding box,这些Bounding box距离Ground Truth存在一些距离。此时,需要对边界框进行bounding box regression,使之与Ground Truth更接近。

那么,应该怎样训练bounding box使之接近Ground Truth?如图3所示,预测的bounding box为P,ground truth为G,bounding box regression需要寻找一种映射关系,使得P变G',其中



目标检测15帧 目标检测fps怎么计算_卷积_03

图3 边界框回归简化图

这种映射关系可以是很多算法。这里,bounding box采用回归算法来接近Ground Truth。回归是通过对大量统计数据进行数学处理,用已知的数据训练出因变量与某些自变量的相关关系,建立一个相关性较好的回归方程。当新的边界框输入时,对其做bounding box regression,即可得到与之相近的


。下面介绍映射关系的训练。


(1)解决办法


,


,


,


。从变成


,需要做两方面的变换:1)将P的中心坐标移动到G'中心坐标处;2)将P的长宽变成与G'的长宽相等。平移变换和缩放变换分别为


(2)


(3)


(4)


(5)


综上所述,由于已知P、G'、G点的相应坐标,所以只需要计算出





这四个平移量,即可完成映射。


(2)设计递归

由(1)可知,P转换成G',只需求得(1)中四个平移量即可完成映射。一般情况下,P与G'相差较小,将P转换成G'的映射过程可以用线性变换y=wx来表示,x为regional proposal所对应的pool5层特征。训练过程中,P与G'的坐标均已知,通过(3)训练中的公式可以求出


,我们用y=wx来逼近这四个值。通过损失函数


,来求参数w。


(3)训练

由(2)可知,x是每个region proposal对应的pool5层特征,用


表示;y是平移缩放尺度,y=wx。真正的平移量记为t,通过变换公式(2)-(5),得:


(6)


(7)


(8)


(9)


损失函数为:


(10)


用梯度下降或者最小二乘法求参数w。

(4)测试

将regional proposal提取出feature map,输入给映射关系y=wx,即可求得偏移量


。之后将偏移量施加给P,可得到与Ground Truth近似的G'。


4.mAP(平均准确度均值)

(1)mAP

mean Average Precision,所有类别AP的平均值。

在2010年以前,PASCAL VOC竞赛中AP是这么定义的:对于一条AP曲线,我们把recall的值从0到1划分为11份:0、0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0。在每个recall区间(0-0.1, 0.1-0.2,0.2-0.3,…,0.9-1.0)上我们计算精确率的最大值,然后再计算这些精确率最大值的总和并平均,就是AP值。这种方法叫做11-poinst-interpolation。

  • VOC2010以后

按照不同的confidence计算precision和recall,取不同recall下对应的最大的precision,然后绘制PR曲线。

  • COCO数据集

(2)PR曲线

Precision-Recall曲线

(3)Precision



(4)Recall



(5)TP、FP、FN

TP:IoU>0.5的检测框数量(与同一Ground Truth计算的结果)
FP:IoU<=0.5的检测框数量
FN:将GT预测为负类的数量(没有检测到的GT的数量)

5.fps

模型推理时,fps(frames per second,每秒帧数),即每秒处理的图片数量或者处理每张图片所需的时间,在同一硬件条件下进行比较。

6.FLOPS

floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标

7.FLOPs(Forward Pass计算量)

floating point operations的缩写(s表示复数),意指浮点运算数,理解为计算量。可以用来衡量模型的复杂度。Paper里比较流行的单位是GFLOPs,1GFLOPs=10^9 FLOPs,即10亿次浮点运算。

(1)卷积计算

Image大小为 5x5,卷积核大小为 3x3,那么一次3x3的卷积(求右图矩阵一个元素的值)所需运算量:(3x3)个乘法+(3x3-1)个加法

要得到右图convolved feature(3x3的大小):17x9=153


目标检测15帧 目标检测fps怎么计算_检测图片中的目标尺寸_04

图4 卷积计算

计算方法={计算每个输出特征值(feature map)上的一个数对应的乘法操作数+计算每个输出特征值(feature map上的一个数)对应的加法操作数}*所有特征值的个数。不考虑偏置项bias时,计算量如下:



考虑偏置项时,加法操作数让操作数+1,计算量如下:



一般情况卷积核长和宽一样时:



(2)可分离卷积计算量

计算方法=第一部分(输出通道不变,使用


个单通道卷积)计算量+第二部分(使用1*1卷积)计算量


第一部分=每个特征点所需乘法加法次数*特征点个数(含偏置项)


=



第二部分=每个特征点所需乘加法次数*特征点个数


=



(3)池化计算量

  • 最大池化

找到输入特征图中过滤器范围内的最大值,以最大值代替,不涉及到浮点运算操作

  • 均值池化

找到输入特征图中过滤器范围内的平均值,即先相加再相乘。 输出特征图上一个像素点,相加浮点操作数为:k*k-1;然后除以k*k,浮点操作数为1; 故一个像素点的浮点操作数为k*k。 输出特征图通道数为Co,输出特征图总的浮点操作数为:k*k*H*W*Co。

(4)全连接层

I为输入神经元个数,O为输出神经元个数,输出的每个神经元都是由输入的每个神经元乘以权重(浮点操作数为I),然后把所得的积的和相加(浮点操作数为I-1),加上一个偏差(浮点操作数为1)得到了,故FLOPs为:

FLOPs=(I+I-1) * O = (2I-1) * O(不考虑bias)

FLOPs=((I+I-1+1)* O = (2I) * O(考虑bias)

(5)BatchNormalization

(6)ReLu

0

(7)Upsample

总结:模型的FLOPs可借助于辅助程序计算。

8.参数个数(Parameters)

输入feature maps的通道数、输出的通道数、卷积核尺寸(长和宽一样时)分别为:





输出的feature maps的大小:



  • 基本卷积的参数量