由于最近在看YOLOv3算法,感觉老是不清楚bounding box和anchor box的概念,看完吴恩达的视频后准备写一篇博客记下笔记。em...所以也会用吴恩达视频中的例子来讲。
在视频中,有一张图片,假设要检测的目标类别有3类,行人、轿车、摩托车。我们将图片划分为3*3的网格(grid cells),并且设置有两个anchor boxes(即,图中那两个紫色边框)。这样每次检测一个grid cell,就会输出一个向量y = [Pc, bx, by, bh, bw, c1, c2, c3, Pc, bx, by, bh, bw, c1, c2, c2]。对这个y可以这么看,由于anchor box有两个,所以y中元素数量是2 * 8。其中前一部分的(Pc,bx,by,bh,bw,c1,c2,c3),Pc表示anchor box1是否在grid cell中检测到目标(若无,则Pc=0,后面的就不用填了),(bx,by,bh,bw)则是目标的bounding box的位置参数,(c1,c2,c3)是目标是哪类。
注1:bounding box是怎么来的呢?其实是在检测每个grid cell时,若检测到目标,则会将其标出来(图中的红色框)。这就是bounding box。