当前位置: 代码迷 >> 综合 >> Anchor Boxes
  详细解决方案

Anchor Boxes

热度:73   发布时间:2023-11-27 05:52:39.0

建立Anchor  Boxex的目的: 是为了处理两个或多个对象出现在同一个格子(候选框)的情况。

 行人的中点和汽车的中点在同一个格子中, 对于那个格子y输出向量为[pc, bx,by,bh,bw,c1,c2,c3],此时这个方格中分类会有两个输出为1, 表示这个格子有两个物体。

例如: 首先,需要预先定义2个不同形状的anchor box,(一般来说可能会遇到更多anchor box, 如5个甚至更多),现在要做的是定义类别标签y,y标签如下:(前8个表示anchor box 1),

 因为行人的形状更像anchor box 1, 所以前8个值用来表示行人,  后面8个值用来表示汽车边界框等等。

总结:

不适用anchor box: 

1. 对于训练集图像中的每个对象都根据那个对象中点位置,分配到对应的格子中,图片是3*3的,所以每个格子输出3*3*8的向量,  3*3表示训练集划分成3*3的格子, *8表示一个向量,有pc, 位置坐标, 和c1,c2,c3三个分类

使用anchor box: 

1.现在每个对象分配到对应的格子中, 每个对象分配到对应的格子,还分配一个对应的anchor box,(这个anchor box是和对象形状IoU值较高的anchor box,人为选择),所以如果你的对象是一个长方形,此时有多个anchor box,人为观察哪一个anchor box的形状与对象的形状IoU值更高, 那个anchor box就分配给这个对象。 所以现在的输出y=3*3*16=3*3*2*8,因为有2个anchor box,y是8维的,

举例:

 

所以行人更适合Anchor box 1的形状,我们将行人分配到向量的上半部分, 下半部分表示汽车的预测,  y表示某一个格子(候选框)的输出,  

假设此时某一个格子(候选框)只有汽车, 那么它的输出 y=[0??????? 1 bx by bh bw 0 1 0 ]这样的向量, 因为这个格子没有行人,所以anchor box 1 的pc=0, 那么它的 位置和分类就不重要了,只关系anchor box 2的汽车向量就好了。

 

  相关解决方案