主要对yolo v2最后一层卷积conv23输出的特征如何转换为bbox和置信概率结果输出进行分析?
步骤1---数据变换
Conv23输出的blob数据是[batch_num,(5+cls_num)*anchor_num,cell_w,cell_h],其中batch_num是batch size,infer的时候一般为1,cls_num是目标分类数量,对于一般通用的coco数据集为80类,cell为输入图像的格子数量,yolov2里设为13*13,每个cell上设5个anchor。那么典型的conv23输出的数据为[1,425,13,13]维。
在步骤1中需要做维度变换,转换为[85,425]维进行处理,425=85*5为yolov2一共detection的数量,85为每次detection的检测信息。
转换步骤如下:
- 将425个channel矩阵从上到小排列,编号为0~424;
- 对于每个channel,将13*13展平为1*169,按照从左到右,从上到小的顺序展平;
- 变换后的矩阵为85行,13*13*5列,将13*13*5列分为5个区域,每个区域将输入的channel展平后的向量按从上到下顺序依次排列,举例说明:
区域1:channel 0~channel 84
区域2:channel 85~channel 169
区域3:channel 170~channel 254
区域4:channel 255~channel 339
区域5:channel 340~channel 424