共计 1380 个字符,预计需要花费 4 分钟才能阅读完成。
摘要: 本文将为初学者带详细分析如何进行 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。
点击关注,第一工夫理解华为云陈腐技术~