开源 自从yolov5开源以来,(不管因为啥原因算是)深受瞩目,最近我用tensorflow实现了其主要部分。就孤陋的我看来,是第一个纯正的tensorfow2版本,欢迎try and star:
https://github.com/LongxingTan/Yolov5
?
之前在工作中接触过yolov3(跑过demo应该就算接触过了),效果惊艳。我在视觉领域只是个新人(悲伤的是我一个中年人却在哪儿哪儿都TM是新人),能力有限,疏漏难免。从头开始实现,对我来说是一次不错的经历,遇到和解决了一些细节问题。
如readme中所指出的,主要特点如下:
- 纯tensorflow2的实现
- 用yaml文件来配置模型和控制模型大小
- 支持自定义数据训练
- 马赛克数据增强
- 通过iou或长宽比匹配anchor
- 相邻正样本增强
- 支持多GPU训练
- 相对详细的代码注释
- 缺点多,提升空间巨大
- https://zhuanlan.zhihu.com/p/172121380
- https://zhuanlan.zhihu.com/p/183838757
- https://mp.weixin.qq.com/s/yXcoRK6btznOdxMjAncIlQ
效果 如果想要效果最佳,还是推荐原版pytorch,毕竟一直在更新中,v4和v5的作者也一直还在发力优化。如果对tensorflow有谜之爱好,或者想通过代码了解yolov5,我觉得我的版本写的更清楚一些(与之相应的代价是可能有细节遗漏甚至不对的地方),总之欢迎大家尝试。
在MNIST检测数据上的效果:
文章图片
在voc2012数据集上的效果(效果还有待加强):
文章图片
再大的数据集我就跑不动啦,毕竟只有1080Ti可用。
联系方式 【YoloV5的原理与实现-开源TensorFlow版】公众号搜索:YueTan
推荐阅读
- Debug Tensorflow: Expected these arguments to match one of the following 4 option(s):
- 机器学习实践(onnx模型转为Tensorflow2的pb模型2020)
- Pytorch|Pytorch optimizer.step() 和loss.backward()和scheduler.step()的关系与区别
- pandas|Pandas 速查手册
- AI|从零开始搭建自己的卷积神经网络(day.2--LeNet.5复现)
- 机器学习|翻译(AdaRNN:时间序列的自适应学习与预测:AdaRNN: Adaptive Learning and Forecasting for Time Series?)
- python|利用新闻情绪预测股市
- 【机器学习PAI实战】—— 玩转人工智能之综述
- 【提高】机器学习相关理论|【机器学习周志华】读书笔记 P2 假设空间与归纳偏好