摘要:本文将为初学者带详细分析如何进行YOLOv1 Testing的内容。
YOLOv1 Testing
进入testing阶段,咱们曾经失去98个bounding box和confidence还有Class probability map,接下来咱们须要一些筛选bounding box的算法,咱们开始引入NMS(Non-max suppression)非极大值克制。
NMS非极大值克制概述
非极大值克制(Non-Maximum Suppression,NMS),顾名思义就是克制不是极大值的元素,能够了解为部分最大搜寻。这个部分代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二是邻域的大小。这里不探讨通用的NMS算法(参考论文《Efficient Non-Maximum Suppression》对1维和2维数据的NMS实现),而是用于指标检测中提取分数最高的窗口的。例如在行人检测中,滑动窗口经提取特色,经分类器分类辨认后,每个窗口都会失去一个分数。然而滑动窗口会导致很多窗口与其余窗口存在蕴含或者大部分穿插的状况。这时就须要用到NMS来选取那些邻域里分数最高(是行人的概率最大),并且克制那些分数低的窗口。
NMS在计算机视觉畛域有着十分重要的利用,如视频指标跟踪、数据挖掘、3D重建、指标辨认以及纹理剖析等。
YOLOv1中Testing过程
上篇博客中,咱们曾经介绍了LOSS函数,并且给出了置信度计算公式以及Class概率公式(图中粉框圈出),并且为已知数值。如下方途中公式二者相乘并化简,即可失去图中等式右方后果。
1. 二者相乘得出20×1个score,对于98个bounding box都进行此运算,失去98×20个score。
2. 获取第一组class of scores,假如为dog的scores,如图中框1标出的。
3. 通过一个thresh的筛选,将score<0.2(概率太低)的值置为0。如框2标出的。
4. 将批改后的scores进行降序排列。如框3标注的。
5. 应用NMS将重叠的框去除。如框4标注的。
NMS在YOLOv1中实现过程
如下图,咱们假如按降序排列好的scores中,bounding box 47的score最大为0.8,第二高的为bounding box 20的score,为0.5。
1.取score最大的一个bounding box,将他保留。
2.找到他上面一个非零框,即score为0.5的bounding box。
3.计算他们两个的IOU交并比,如果大于0.5,阐明他们两个重合度十分高,将score较小的bounding box的值置为0.
4.再按程序取下一个score,与score为0.8的bounding box计算交并比。如果交并比小于0.5就保留这个值。
5.当score=0.8的bounding box与其余bounding box都计算结束后,取这些scores中比0.8小的最大的score,在进行上述操作,直到满足完结条件。
6.将第二到第二十个class也进行上述操作。
7.依据每个bounding box的score进行比拟大小。取出这个bounding box中最大的数值。
8.如果有大于0的最大score,那么就画出这个score对应的框,并且把他当作这个class。直到遍历完所有的bounding box。
点击关注,第一工夫理解华为云陈腐技术~