YOLO系列总结

之前一直做稀疏表示,最近在学深度学习有关的有关方向,先从YOLO入手。

YOLO(You Only Look Once)从2016年开始到现在已经有众多博客、公众号、知乎文章等进行讲解。

主要参考:

深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解

https://zhuanlan.zhihu.com/p/143747206     作者江大白

该文讲了一些基础知识,相当于论文翻译,可以适当看看,不理解的就看论文原文。

yolo系列之yolo v3【深度解析】

https://blog.youkuaiyun.com/leviopku/article/details/82660381    作者木盏

用了一个网络可视化工具Netron来直观展示网络结构,同时也采用keras框架实现了代码,讲解较为清晰。

总结下来:

V1采用图像分块形式,预测框中心在哪一个图像块,该图像块就负责预测;

V2采用anchor box机制,采用不同尺度的box对目标框进行直接预测,可连同Fast-RCNN的RPN机制统一理解该思想。

V3沿用了anchor box的机制,但是将大尺度小通道的图像转换成小尺度大通道的图像,取消了中间层中的尺化层和全连接层,并且引入了Batch Normalization。所以针对与权值训练更方便。稀疏学习中也用到了BN。

到这里有了新的想法,众多博客都提到了何凯明(http://kaiminghe.com/)的ResNet(https://github.com/KaimingHe/deep-residual-networks#models)。这个思想可以说很简单但是很巧妙,如果说深度学习网络越深越好的话,那300层的网络训练结果好还是先用200层网络训练一个结果再用100层的网络继续训练所得的结果好呢?

如果200层的网络已经能得出较好的结果,那附加的100层就算没有进步,效果应该也不会变差。但是实验结果显示按传统卷积、池化、全连接层堆积起来,层数300以上结果反而会变差,回想神经网络训练过程,采用梯度下降法更新权值,其计算的前后两次的数值之间的导数,所以但凡数值有变化其最终结果就会受到影响,但是ResNet采用对残余值进行差值计算,这样即使网络层较深,后面的网络也就相当于一个直连层,不会对前面的结果有什么影响,这个巧妙的设计可以将网络设计的更深。

V4(https://github.com/pjreddie/darknet

V5(https://github.com/ultralytics/yolov5

YOLOv5学习总结(持续更新)_dididi的博客-优快云博客_yolov5

深度残差网络的思想可以借鉴一下

迭代重加权

### YOLO系列算法改进点与总结 #### YOLOv3 到 YOLOv4 的改进点 YOLOv4 是在 YOLOv3 基础上的重要升级版本,不仅引入了许多创新技术,还借鉴了其他论文中的优秀技巧 (tricks),从而提升了模型性能。以下是具体改进点: 1. **Backbone 升级**: YOLOv3 使用 Darknet-53 作为骨干网络,而 YOLOv4 引入了 CSPDarknet-53[^2]。这种架构通过将特征映射划分为两个部分并利用跨阶段层次结构进行合并,有效降低了计算复杂度,同时保持甚至提高了准确性。 2. **Bag of Free Tricks**: YOLOv4 应用了多种无需额外计算成本的技术来提升性能,例如: - Mish 激活函数替代 Leaky ReLU[^1]。 - DropBlock 正则化方法减少过拟合。 3. **Bag of Special Tricks**: 这些技巧虽然会增加一定的计算开销,但能显著提高精度,包括: - 自适应锚框机制优化检测框预测。 - CIoU Loss 替代传统的 IoU 或 GIoU 损失函数,加速收敛过程。 - SAM 和 PANet 结构增强多尺度特征融合能力。 #### YOLOv4 到 YOLOv5 的改进点 相比 YOLOv4,YOLOv5 更加注重工程实现和实际应用效果,主要体现在以下几个方面: 1. **模块化设计**: YOLOv5 将整个框架拆解成多个独立组件,便于开发者快速调整参数或替换子模块以适配特定场景需求。 2. **自动化工具链支持**: 提供了一套完整的训练、验证及部署流程脚本,极大简化了使用者的操作难度。 3. **高效数据预处理策略**: 集成了 Mosaic 数据增强方式以及自定义输入尺寸调节功能,有助于改善小物体识别能力和泛化性能。 4. **轻量化探索**: 推出了不同规模的变体(如 S/M/L/X),满足嵌入式设备到高性能服务器之间的多样化硬件资源约束条件下的实时推理需求。 #### 总结与分析 通过对上述三个版本演进路径的研究可以看出,从 YOLOv3 开始逐步向更高效的特征提取方向迈进;至 YOLOv4,则更多依赖于现有研究成果积累并通过组合各种先进 trick 达到最佳平衡状态;最后发展到 YOLOv5,更加侧重易用性和灵活性方面的考量[^3]。 尽管如此,仍需注意每一代产品都有各自适用范围及其局限性所在——比如当面对极端分辨率变化或者极度稀疏分布的目标类别时可能表现不佳等问题待解决。 ```python # 示例代码展示Mish激活函数实现 import torch import torch.nn as nn class Mish(nn.Module): def __init__(self): super(Mish, self).__init__() def forward(self, x): return x * (torch.tanh(torch.nn.functional.softplus(x))) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值