论文题目:YOLOv3: An Incremental Improvement

论文地址:https://arxiv.org/abs/1804.02767

代码地址:https://github.com/aloyschen/tensorflow-yolo3

一、论文解读

1、bounding box prediction(边界框预测)

YOLO2预测bounding boxes是使用anchor boxes,这个网络为每个bounding box预测了4个坐标:tx、ty、tw、th,用(cx,cy)表示当前网格左上角坐标偏移图像左上角坐标的距离,用pw,ph表示先验框(piror)的宽和高,可以得到下面式子:

        

在训练期间,使用平方和误差(sum of squared error loss)。真值用表示,梯度就是真值减去预测值:

YOLO3用logistic regression为每个bounding box预测一个分数。算法只为每个真值匹配一个最优的先验框。

2、多标签预测

每个bounding box可能含有多类物体,也就是多标签预测。所以用logistic(sigmoid)代替softmax,因为softmax表示每个框只有一类对象,而sigmoid可以预测多标签分类。那么如何用sigmoid来做多标签分类呢?其实就是针对logits中每个分类计算的结果分别作用一个sigmoid分类器,分别判定样本是否属于某个类别。在训练期间,使用二元交叉熵损失函数进行类别预测。

sigmoid多标签预测参考博客:https://blog.csdn.net/qq_32172681/article/details/97936956。

3、结合不同卷积层的特征,提取更细粒度的信息,做多尺度预测

YOLO3用3个不同的尺度预测boxes,网络采用类似特征金字塔的概念,从不同的尺度提取特征。在原先的基本特征提取器上新增了几个卷积层,最后用一个3维的张量表示bounding box、objectness和class predictions。在COCO中,在每个尺度上预测3个boxes,因此张量为N*N*[3*(4+1+80)],分别对应4个bounding boxes、1个objectness prediction和80个class predictions。接下来,从前面的两个图层中提取特征图,并将其向上采样2倍。从早期的网络中获取一个特征图,并使用串联将其与上采样特征合并。这种方法允许我们从上采样的特性中获得更有意义的语义信息,并从早期的特性图中获得更细粒度的信息。然后再添加一些卷积层来处理这个组合的特征图,并最终预测一个类似的张量,尽管现在的大小是原来的两倍。再次执行相同的设计,以预测最终框的尺寸。在过去,YOLO难以预测小的物体,现在通过多尺度预测,明显改善。

4、网络结构(DarkNet53 = Darknet19 + ResNet

  • 结合残差思想,提取更深层次的语义信息。
  • 仍然使用连续的3×3和1×1的卷积层。
  • 通过上采样对三个不同尺度做预测。如将8*8的特征图上采样和16*16的特征图相加再次计算,这样可以预测出更小的物体。
  • 采用了步长为2的卷积层代替pooling层,因为池化层会丢失信息。

如图所示:

5、预测更多目标

YOLO3仍然使用k-均值聚类来确定模板框,为每个网格预测9个bounding boxes(YOLO2只有5个、YOLO1只有2个),这样可以提高recall。

6、损失函数

在训练期间,使用二元交叉熵损失函数进行类别预测。YOLO v2损失函数的后三项是平方误差,而YOLO v3则更改为交叉熵误差项,也就是说YOLO v3的物品置信度和分离预测使用的是逻辑回归算法。

二、代码理解

1、构造残差块

2、darknet53网络结构,用于提取特征(使用了残差块)

3、yolo块(图中Convs)

yolo3在Darknet53提取的特征层基础上,又加了针对3种不同比例的feature map的block,这样来提高对小物体的检测率

4、构造yolo3模型结构,输出三种尺度的卷积层(conv2d_59, conv2d_67, conv2d_75)

5、目标检测模块,输出预测结果x,y,w,h,confidence,class_prob

根据不同大小的feature map做多尺度的检测(三种feature map大小分别为13x13x255, 26x26x255, 52x52x255)

6、之前输入图像时,按照长宽比缩放,对图像进行了填充,此处对box的坐标进行修正

7、损失函数(共4部分:框位置xy,wh,置信度confidence,类别class)

8、k-mean聚类算法(用于生成模版框)

9、对三个不同尺度的输出做非极大值抑制,得到最后物体检测框和预测类别

10、计算mAP,评价模型

目标检测算法YOLO3论文解读相关推荐

  1. 目标检测算法SSD论文解读

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 原文链接:https://blog.csdn.net/jy001227801/article/ ...

  2. CVPR2020论文分方向整理之检测篇_3D目标检测(代码/论文解读/136篇打包下载)

    CVPR2020论文分方向整理之检测篇(代码/论文解读/136篇打包下载) 本周三,CVPR官方正式开放下载,极市第一时间将所有论文(共1467篇)进行了下载打包,详情见此处.为了方便大家进一步的学习 ...

  3. 【AAAI 2020】NAS+目标检测:SM-NAS 论文解读

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 最近冒出来很多 Neural Network Search (NAS) + 目标检 ...

  4. 三维目标检测新SOTA---ADFDetV2论文解读

    问题 本文提出了一种单阶段的三维目标检测算法,并在文中分析了二阶段三维目标检测算法的不必要性.其所提算法在waymo实时目标检测竞赛中取得了第一的成绩.其性能超过了所有单阶段和多阶段的目标检测算法. ...

  5. cnn 句向量_深度学习目标检测Fast R-CNN论文解读

    前言 我们知道,R-CNN存在着以下几个问题: 分步骤进行,过程繁琐.Selective Search生成候选区域region proposal->fine tune预训练网络->针对每个 ...

  6. 目标检测:CenterNet论文解读及代码详解

    论文思想 当前anchor-based目标检测方法可分one-stage.two-stage两种.one-stage模型利用anchor机制得到大量的框,之后直接加入回归.分类分支对框进行分类与微调. ...

  7. 【lidar】3D目标检测PointPillars:论文解读、代码解读、部署实现(2)

    PointPillars部署:TensorRT推理实现,下载地址:添加链接描述 PointPillars 高度优化的点云目标检测网络PointPillars.主要通过tensorrt对网络推理段进行了 ...

  8. 【lidar】3D目标检测PointPillars:论文解读、代码解读、部署实现(1)

    Abstract 点云中的目标检测是自动驾驶等机器人应用中的一个重要方面.在本文中,作者思考了将点云编码成适合下游检测pipeline的格式问题.最近的文献提出了两种类型的编码器:固定编码器往往更快, ...

  9. 深度学习目标检测算法综述(论文和代码)

    RCNN-→SPP Net-→ Fast RCNN-→ Faster RCNN-→ YOLO-→ SSD 思路是:a,生成候选框 b,CNN提取特征 c,分类网络 d,回归,位置精修(refine) ...

  10. YOLO系列目标检测算法-YOLOv7

    YOLO系列目标检测算法目录 - 文章链接 YOLO系列目标检测算法总结对比- 文章链接 YOLOv1- 文章链接 YOLOv2- 文章链接 YOLOv3- 文章链接 YOLOv4- 文章链接 Sca ...

最新文章

  1. win10突然只剩下c盘和d盘了_电脑C盘爆满飘红?系统卡?试试这两种解决办法
  2. 目录/文件攻击防范策略研究
  3. linux git2.8.0下载,Linux 环境下 jdk1.8 maven3.2.3 Git2.8.0 安装脚本
  4. jenkins maven没有使用全局设置文件地址_Jenkins手把手图文教程「基于Jenkins 2.164.1」...
  5. # 管道已结束_县城这条路启用自来水新管道,看看是否在你家附近...
  6. 微课|中学生可以这样学Python(例8.22):冒泡法排序
  7. RocketMQ集群详解
  8. 【渝粤教育】国家开放大学2019年春季 0390-22T古代诗歌散文专题 参考试题
  9. 操作无法完成 因为文件已在system中打开
  10. 微信公众号被关注后自动回复——跳转小程序
  11. 洛谷P2386放苹果
  12. 写给4年前开始编程序的自己
  13. 在控制台程序中隐藏控制台窗口!
  14. proxmox换源_Proxmox VE 5.4升级到Proxmox VE 6(中国源加速)
  15. 西游记中三位隐居世外的高人
  16. 微信小程序使用AES加密和解密
  17. IT国内外的免费学习网站
  18. 编写高性能 Java 代码的最佳实践
  19. 从一个小故事理解锁升级(无锁、偏向锁、轻量级锁、重量级锁)
  20. 个人简历英语词汇大全

热门文章

  1. 利用JS实现QQ空间自动点赞
  2. 信息安全实验三 :PGP邮件加密软件的使用
  3. 如何下载免费版的PDF编辑器
  4. npp夜光数据介绍 viirs_对 VIIRS/NPP 夜光数据的解读
  5. Java拦截器和过滤器的区别
  6. 使用91地图助手转换坐标系,以大地2000转经纬度为例
  7. lmdb数据库的读取与转换(一) —— 基本操作
  8. matlab gui设置参数,基于Matlab/GUI界面设计的参数在线整定与优化(三)
  9. win10没有realtek高清晰音频管理器_【微软】第49期分享:装完Win 10最新补丁数据没了!...
  10. 计算机声音管理器不见了,Realtek高清晰音频管理器怎么找不到打开教程