YOLO v3笔记(一)

在320×320的图像上,YOLOv3运行速度达到了22.2毫秒,mAP为28.2。其与SSD一样准确,但速度快了三倍,

mAP是什么?还不懂

改进点

1.Darknet-53特征提取网络

不同于Darknet-19,YOLO v3中使用了一个53层的卷积网络,除去最后一个FC总共52个卷积用于当做主题网络,主题网络被分成3个stage,结构类似FPN,1-26层卷积为stage 1, 27-43层卷积为stage 2,44-52层卷积为stage 3, 低层卷积(26)感受视野较小,负责检测小目标,深层卷积(52)感受野大,容易检测出大目标,这个网络由残差单元叠加而成。根据作者的实验,在分类准确度上跟效率的平衡上,这个模型比ResNet-101、 ResNet-152和Darknet-19表现得更好。

2. 运行网络,YOLO的CNN网络把图片分成S*S个网格(yolov3多尺度预测,输出3层,每层S*S个网格,分别为13*13, 26*26, 52*52),然后每个单元格负责去检测那些中心点落在该格子内的目标,如图所示,每个单元格需要预测3*(4+1+B)个值,如果将输入图片划分为S*S网格,那么每层最终预测值为S*S*3*(4+1+B)大小的张量。B:类别数(coco集为80类),即B=80,3为每层anchorbox数量,4为边界框大小和位置(x,y,w,h),1为置信度。

3. 通过NMS,非极大值抑制,筛选出框boxes,输出框class_boxes和置信度class_box_scores,再生成类别信息classes,生成最终的检测数据框,并返回

2.多尺度

yolov3多尺度预测,13*13, 26*26, 52*52

小尺度:13*13的feature map,

     网络接收一张(416*416)的图,经过5个步长为2的卷积来进行降采样(416/2^5=13).输出 (13*13)

中尺度:26*26的feature map,

      从小尺度中的倒数第二层的卷积陈上采样(x2, up sampling)再与最后一个13x13大小的特征图相加,输出 (26*26)

扫描二维码关注公众号,回复: 6000074 查看本文章

大尺度:52*52的feature map,

      操作同中尺度输出52*52

3. anchor box

anchor box一共有9个,由k-means聚类得到,在COCO数据集上,9个聚类是:(10*13);(16*30);(33*23);(30*61);(62*45); (59*119); (116*90); (156*198); (373*326)。

不同尺寸特征图对应不同大小的先验框。

13*13feature map对应【(116*90),(156*198),(373*326)】
26*26feature map对应【(30*61),(62*45),(59*119)】
52*52feature map对应【(10*13),(16*30),(33*23)】
原因:特征图越大,感受野越小。对小目标越敏感,所以选用小的anchor box。

          特征图越小,感受野越大。对大目标越敏感,所以选用大的anchor box。
 

3.类别预测

为了实现多标签分类,模型不再使用softmax函数作为最终的分类器,而是使用logistic作为分类器,使用 binary cross-entropy作为损失函数。

keras提供了multi_gpu_model函数用来进行数据并行和设备并行,但是看官方文档只有train部分的例子,并没有inference部分的例子。

猜你喜欢

转载自blog.csdn.net/weixin_38145317/article/details/88681166