intro 边框的定义
加入我们要分类80个物品,那么就有80个c(c0,c1…c80)
YOLO
you only look once,只做一次前馈传播,并使用非最大化抑制之后就可以输出目标框。
编码
所谓anchor box,就是用来使得一个格子能够检测出多个对象。需要预先定义好anchor box的形状,当每找到一个对象的中点的时候,不仅仅把中点分配给对应的grid,而且还会分配到对应的anchor box
对于每个anchor box,找出该框包含某一类的概率
可视化预测
当框框太多的时候,使用非最大化抑制的方法剔除一些重叠的框框。
code见下
filter_box
1 |
|
非最大化抑制
1.假设首先设定阈值为0.6,抛弃所有pc<=0.6可能性的框框,这一步先剔除了所有可能性很低的框框。
2.选中一个pc最大的框框,作为输出,然后抛弃所有其他的与输出的交并比>=0.5的框框
1 | def yolo_non_max_suppression(scores, boxes, classes, max_boxes = 10, iou_threshold = 0.5): |
所有框进行过滤
1 | def yolo_eval(yolo_outputs, image_shape = (720., 1280.), max_boxes=10, score_threshold=.6, iou_threshold=.5): |