一.深度学习经典检测方法概述
(1)深度学习经典检测方法包括two-stage(两阶段)与one-stage(单阶段)
two-stage(两阶段):faster-rcnn或mask-rcnn系列。它是通过中间先检测出结果(预选),再从这个中间结果中取最优的结果,最近比较少用了。
one-stage(单阶段):yolo系列。它这边就是直接按一个算法得到结论(例如一个cnn网络就得到回归结果即可)。优势:速度非常快,适合做适时检测任务。缺点: 效果通常情况下不会太好。性能评估指标有 AP、mAP、Precision(精度)、Recall(召回率)、FPS、IoU、混淆矩阵、F1等。
目标检测领域中,处理速度和准确度是两个重要的性能指标。例在实时检测时,FPS这个指标很重要,FPS是Frames Per Second缩写,即每秒帧率(每秒可以处理的图片数量)。又例如IoU全称为Intersection over Union,表示交集与并集的比。IoU值越大,表示两个框(真实框与预测框)之间的相似性越高。这个指标常用于评估模型在特定数据集上的检测准确度。mAP就是Mean Average Precision的缩写,意思是在多个类别上的平均精度(综合衡量检测效果),例如mAP50-95:这是一个更严格的评价指标,它计算了在50-95%的IoU阈值范围内的mAP值,然后取平均,这能够更准确地评估模型在不同IoU阈值下的性能。所以说在检测任务中FPS表示速度,mAP值表示精确度(比IoU更准),这二个指标非常重要。
Recall(召回率):评估模型能够找出所有真实正样本的比例,有时候找不到,有时候能找到,所以这个指标主要看能否预测到这个目标先
Precision(精度):评估模型预测正确的正样本的比例
(2)IOU指标计算
IOU是两个框的交集与并集之间的比值
(3)Precision(精度)与Recall(召回率)的计算
Precision=TP/(TP+FP)
Recall=TP/(TP+FN)
这二个指标的第一个字母构成P-R数据,可画出P-R图。
其中TP是true positives的缩写,意为True是做对了,positives判断为正类。 FP是false positives的缩写,意为false是做错了,positives但判断为正类。FN是false negatives的缩写,TN是true negatives的缩写。
例如:
已经条件:班级总人数100人,其中男生80人,女生20人
目标:找出所有的女生
结果:从班级中选择了50人,其中20人是女生,还错误的把30名男生挑选出来了
相关(relevant),正类 | 无关(nonrelevant),负类 | |
被检测到(retrieved) | tp:正类判定为正类,例子中就是正确的判定“这位是女生” | fp:负类判定为正类,“存伪”,例子中就是分明是男生却判断为女生,例子中30个男生本来是负类的,结果被判断成女生(因为它是目标查找女生,女生是正类) |
未被检测到(notretrieved) | fn:正类判定为负类,“去真”。例子中就是分明是女生,却判断为男生 | tn:负类判定为负类,本例中也就是一个男生被判断为男生 |
所以本例的结果TP=20,FP=30,FN=0,TN=50
(4)map指标计算
1)置信度:就是说检查某样东西,它的可能性有多大的意思。例如有0.9,0.8,0.7
例如有检测三张人脸图片时,他的三个检测的置信值分别是0.9,0.8,0.7,当0.9时,0.8与0.7二张图片过滤掉了。所以现在 TP=1;FN=2;TP+FP=1;Precision=1/1;Recall=1/3,其中FN例如就是本来他是人脸的,但检测出成背景来(即正确<本身是人脸的>的判断成负类)。
2)MAP:在所有置信阀值情况下,求出所有类别的平均。P-R图就是按召回率(例如X轴),精度值(例如Y轴)画出来。MAP值就是按最高点值连接起来围成的面积,当然围成的是长方形那种,那map就等以1了,这个效果就最好了。MAP就是在所有置信阀值情况下,得到所有P,R值的情况。
二.YOLO-V1整体思想与网络架构
(1)YOLO算法整体思路解读
YOLO是YOU ONLY LOOK ONCE的缩写,它是把检测问题转化成回归问题,一个CNN就搞定了。它可以对视频进行实时检测,应用领域非常广。回归最后把预测出的特征图转成几个值,如起始位置,长,宽,高的值预测出来,就可以把它画出来了。
(2)YOLO-V1的核心思想
求解:在一张图像中有那些物体?假设一张长宽为7*7的图像中有一只狗与单车,这个图像由很多个小方格组成,那我交给谁来预测出这二样物体呢?求解:观