![4f118623d2bb2d48c4514a7a82ad387d.png](https://img-blog.csdnimg.cn/img_convert/4f118623d2bb2d48c4514a7a82ad387d.png)
本文攻略:通过分析 YOLO 神经网络,理解卷积神经网络工作原理
建议玩家等级:技术圈外人(建议只看图片,也能理解),AI新手,学生党,初级码农
阅读此文先解锁技能:
- 一点点命令行基础
- 一点点 C++ 基础
- 卷积神经网络基础
- YOLO 基础:How to use YOLO with python, How YOLO only look once
实践此文推荐装备:
- 操作系统:macOS Sierra
- IDE:VSCode
PART 1: 卷积神经网络 Convolution Neural Network
神经网络是一个狂拽炫酷的名词,前面再加卷积二字听起来更是吊炸天。本文就不普及卷积神经网络了,因为有很多大神的科普文章已经让人无法超越,我们只要站在大神的肩膀上进行操作,并理解 YOLO 黑魔法的本质原理。
YOLO 作者使用了自己设计的卷积神经网络模型,取名 Darknet。YOLOv2 使用了32层网络,Tiny YOLO 只使用了16层网络,这也是后者运行速度更快,而前者检测成功率更高的原因。
卷积层 conv:负责提取特征图片
池化层 max:负责降低特征图片维度,从而降低运算量。这里使用的是 max pooling
输出层 detection:输出一维预测数组
YOLOv2 32 层网络具体如图:
![68c8c648a86857be3598d50d2ac3a40e.png](https://img-blog.csdnimg.cn/img_convert/68c8c648a86857be3598d50d2ac3a40e.png)
Tiny YOLO 16 层网络具体如图:
![5a79098954e3a1b5790e5ca52aa5d796.png](https://img-blog.csdnimg.cn/img_convert/5a79098954e3a1b5790e5ca52aa5d796.png)
PART 2: 特征图片 Feature Map
特征图片可以理解为AI对一张图片理解过程的中间产物,神经网络模型设计的越好,AI的理解就会越深刻。特征图片在源码里都是一维特征数组,于是我提取了神经网络每一层输出的特征数组,并将其进行图片可视化。这里展示的是 Tiny YOLO 版本的特征图片。
神经网络第 0 层输入图片:
![e6b780a379a0b918ca5f663064d8b899.png](https://img-blog.csdnimg.cn/img_convert/e6b780a379a0b918ca5f663064d8b899.png)
第 0 层卷积输出,第 1 层池化输出,共 16 个通道:
![48000abbe751b2acbcfa0fbaf3aef2cc.png](https://img-blog.csdnimg.cn/img_convert/48000abbe751b2acbcfa0fbaf3aef2cc.png)
第 2 层卷积输出,第 3 层池化输出,共 32 个通道:
![84a2a4b5b50ff012330be27e7c29232e.png](https://img-blog.csdnimg.cn/img_convert/84a2a4b5b50ff012330be27e7c29232e.png)
第 4 层卷积输出,第 5 层池化输出,共 64 个通道:
![fd3193d3036fedca3fc0677f4396be13.png](https://img-blog.csdnimg.cn/img_convert/fd3193d3036fedca3fc0677f4396be13.png)
第 6 层卷积输出,第 7 层池化输出,共 128 个通道:
![a863709f101e71e9c5fc85b034047621.png](https://img-blog.csdnimg.cn/img_convert/a863709f101e71e9c5fc85b034047621.png)
第 8 层卷积输出,第 9 层池化输出,共 256 个通道:
![e35b33050fa008b2097be8b62d59e34d.png](https://img-blog.csdnimg.cn/img_convert/e35b33050fa008b2097be8b62d59e34d.png)
这里我分别只展示了第0~9层网络输出后的特征图片,因为第9层后的所有特征图片大小都为13*13,已经呈现出人类肉眼难以理解的像素颗粒。但我们可以通过这个特征提取过程,直观的感受到 YOLO 的神经网络对一张图片究竟干了些什么。
PART FINAL: Do it yourself
这就是黑魔法神经网络如何预测一张图片的过程,当然这里面我隐藏了很多很多的原理细节,是这些细节才构成了神经网络,这些细节是人类智慧真正的结晶。
-->附赠代码、特征数组和特征图片,猛戳下载<--
如需合作或转载请联系本文作者,跪谢