Yolov3升级版

Yolov3简述

代码地址:https://pjreddie.com/yolo/
文章地址: https://pjreddie.com/media/files/papers/YOLOv3.pdf
  文末附yolov3_VisualStudio2015_cpu版本的下载代码
  文末附yolov3_VisualStudio2015_gpu版本的下载代码
  前些天Joseph Redmon发表的口头报告对Yolov2些许改进策略将算法升级至Yolov3。首先是yolo相关改进算法确实提高检测的精度,速度却没有降低。其次在于作者Joseph Redmon比较有趣的口头技术报告引发了大家的兴趣。整篇口头报告的论文感觉像是在闲聊,但是作者对yolov2相关改进产生的yolov3算法mAP性能很大提升同时速度较SSD、RetinaNet快3-4倍。

Yolov3相关工作

网络结构:

Yolov3升级版_第1张图片
Yolov3网络Darknet-53结构

   可以从Darknet-53网络结构看出yolov3较yolov2网络深度推至106层,其中引用ResNet、FPN网络结构思想,同时采用多尺度预测来弥补初始划分13*13网格细粒度不够问题,同时yolov3网络仍然采用yolov2中数据增强、批归一化等操作。

有效的改进策略:

1 使用逻辑回归来预测每个bounding boxes的对象分数,每个bounding box与ground truth的匹配策略为1 vs 1。

2 每个bounding boxes使用多标签分类法预测包含的类,采用二元交叉熵(sigmoid)取代softmax进行类别预测。

3 采取金字塔网络来进行预测多尺度的boxes(多层feature map[13 26 52]),同时提取网络较早的feature map(特征图),与之前经过两倍上采样的feature map进行element-wise addition合并,进行更精确细粒度预测(类似SSD思想)。

Yolov3升级版_第2张图片
图2 Yolov3强大性能提升对比RetinaNet网络

无效的改进尝试:

1 采用线性激活来预测anchor box的位置信息导致训练模型稳定性降低。

2 采用Focal loss导致mAP降低2个点。

3 使用Fast-RCNN的双IOU策略预测ground truth并没有什么效果。

Yolov3实验结果

图3(a) 奇好的小目标检测测试图
图3(b) 网页下载测试图像效果不错
Yolov3升级版_第3张图片
图3(c) 天空鸟群测试图结果

  
   上面三幅测试图片效果都较yolov2有很大的提升,图3(b) (c)对比可参考之前的Yolo算法分析与Yolo9000算法分析的博客,同时还能在检测精度与SSD、RetinaNet差不多情况下速度快上3-4倍,真是牛!

  Yolov3实验结果较Yolov2有较大的提升,特别是在小物体检测方面,这主要归功于yolov3采取多尺度的训练策略,同时多feature map融合进行预测(类似SSD的网络结构思想),还引进ResNet残差网络等。
  
  Yolov3 Oral Speech是一个聊天式的技术报告,Joseph Redmon你真牛!!!

代码下载

百度网盘链接cpu版本:https://pan.baidu.com/s/1rwTQ2nDlnDyvH7wEvYryAw 密码:h2tx
百度网盘链接gpu链接:https://pan.baidu.com/s/1WGmZvdFoR997xE6NzC4XEw 密码:4vxe

关于Yolov3Gpu版本配置说明

  1 运行环境:Windows10 + 64位操作系统 + VisualStudio2015 + CUDA8.0 + Cudnn6.5。

  2 如果CUDA版本不一致没有关系,可以打开工程目录下的yolov3Gpu.vcxproj文件,其中第55行与第280行就是你需要添加的CUDA版本路径配置。

  3 然后就是配置你的OpenCV版本路径与库。

  由于Windows版本下没有Linux下的计时函数,所以这里工程目录下的计时函数不是特别精确,抱歉!

参考文献

https://www.zhihu.com/question/269909535
https://www.zhihu.com/question/269909535

你可能感兴趣的:(深度学习)