1 算法特点: 实时高准确率,是目前比较流行的算法, 在算法中进行预测只需要进行一次向前传播, 使用非最大值抑制后, 与边界框一起输出识别对象。
模型细节(举例): 问题 进行车辆识别
-
输入的批量图片为(m, 608, 608, 3) 为RGB通道
输出为识别分类和边界框的列表, 每个边框由六个数字组成(pc, bx, by, bh, bw, c1, c2, c3, ....)
这里用五个锚框 。
大致流程为 输入图片-->Deep CNN-->编码信息(m, 19, 19, 5, 85)。
那么每个单元格表示的是什么呢?
一般我们在这里会把最后两个单元格给合并起来, 把(m, 19, 19, 5, 85)变成(m, 19, 19, 5*85)
box :
也就是简单的把五个锚框放在了一起。
那这些单元格的作用具体是什么呢?
首先要知道, 在我们设置的锚框里面bx和by就是我们所要识别的物体的中心位置, bh和bw则是物体的长和宽。
如果物体的中心在这个单元格里, 那么这个单元格就负责检测这个物体
在讲yolo之前先讲一下常用的目标检测算法所遇到的问题
一般我们是在每个单元格的五个锚框里分别选择出最大的可能性值也就是最大的pc*Ci的值, 也就是每个单元格对应的是五个边框。
如果把我们得到的边框全部输出的话将会出现下面情况
显然这不是我们想要的结果。
那么我们应该怎么做呢 当然是用我们的主角yolo啦 算法很简单啦
-
舍弃掉低概率的锚框
-
当几个锚框相互重叠并检测同一个物体时,只选择一个锚框。