yolo 深度学习示意图 yolo 算法原理介绍
最编程
2024-03-12 13:51:59
...
1. Yolo介绍:
1.1 YOLO:
You Only Look Once,是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。
Joseph Redmon和Ali Farhadi等,2015年首次提出。
在2017年的CVPR上,Joseph Redmon和Ali Farhadi又提出了YOLO2,后又再次提出了YoloV3。
1.2 特点:
- One-stage
- 同时预测多个bbox和类别
- 端到端的目标检测和识别
- 速度更快:
----实现回归功能的CNN并不需要复杂设计;
----直接选用整图训练模型,更好的区分目标和背景区域。
1.3 实现方法:
- 图像被分成S×S个格子, 如下图所示:
- 如果某个object的中心落在这个网格中,则这个网格就负责检测这个object
- 每个格子要预测B个检测框及其置信度,以及C个类别概率
- 每个bounding box要预测(x, y, w, h)和confidence共5个值
----confidence代表了所预测的box中含有object的置信度和这个box预测的有多准两重信息,其值这样计算: Pr(object)×IOU(gt, pred) - 输出就是S x S x (5*B+C)的一个tensor
----举例说明: 在PASCAL VOC中,图像输入为448x448,取S=7,B=2,一共有20个类别(C=20)。则输出就是7x7x30的一个tensor。
2. YoloV1网络结构
2.1 网络结构如下图所示:
2.2 网络结构分析:
- 网络结构借鉴了 GoogLeNet 。24个卷积层,2个全链接层。(用1×1 reduction layers 紧跟 3×3 convolutional layers 取代Goolenet的 inception modules )
- 网络使用小卷积,即1×1和3×3
- FC输出为:S×S×(5×B+C)
- 网络比VGG16快,准确率稍差
2.3 LOSS函数:
- 均方和误差之和,包括:坐标误差、IOU误差和类别误差
- 权重考量,整个的损失函数如下图所示:
3. YoloV1网络训练
- 预训练分类网络:
在 ImageNet 1000-class competition dataset上预训练一个分类网络 - 使用预训练参数(20个con)来初始化YoloV1,并训练VOC20
- 将输入图像从224×224 resize为448×448
- 训练时B个bbox的GT设置相同
4. YoloV1的不足
- 输入尺寸固定
- 小目标检测效果差:
----同一个格子包含多个目标时, 仅预测一个(IOU最高)
5. YoloV1的网络性能
6. 参考网页: