python 目标检测 训练_YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练
来自YOLOv3原作者
YOLOv3,快如闪电,可称目标检测之光。
PyTorch实现教程去年4月就出现了,TensorFlow实现一直零零星星。
现在,有位热心公益的程序猿 (Yunyang1994) ,为它做了纯TensorFlow代码实现。
这份实现,支持用自己的数据训练模型。
介绍一下
TensorFlow实现,包含了以下部分:
· YOLOv3架构
· 权重转换器 (Weight Converter)
· 基础版Demo
· GPU和CPU上都支持非极大抑制 (Non-Maximum Suppression)
· 训练pipeline
· COCO mAP计算
来自YOLOv3原作者
快速开始
四个步骤,速速上车。
1.复制这个文件:
1$ git clone https://github.com/YunYang1994/tensorflow-yolov3.git
2.在食用代码前,先安装一些依赖项:
1$ cd tensorflow-yolov3
2$ pip install -r ./docs/requirements.txt
3.把加载好的COCO权重导出为TF checkpoint (yolov3.ckpt) 和 frozen graph (yolov3_gpu_nms.pb) 。
如果你没有yolov3.weights的话,去下载,然后放到./checkpoint目录下。下载地址是:
https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3.weights
1$ python convert_weight.py --convert --freeze
4.然后,./checkpoint目录下就会出现一些.pb文件。现在可以跑Demo脚本了:
1$ python nms_demo.py
2$ python video_demo.py # if use camera, set video_path = 0
来自YOLOv3原作者
拿自己的数据集训练
快速训练
这个Demo就是给大家一个粗略的感受,感受YOLOv3的训练过程到底是怎样的。
用python core/convert_tfrecord.py把你的图集转成TFRecords。
1$ python core/convert_tfrecord.py --dataset /data/train_data/quick_train_data/quick_train_data.txt --tfrecord_path_prefix /data/train_data/quick_train_data/tfrecords/quick_train_data
2$ python quick_train.py # start training
训练COCO数据集
如果还没下载COCO2017数据集,请前往:
http://cocodataset.org/
再把数据集放到./data/train_data/COCO里面。
1$ cd data/train_data/COCO
2$ wget http://images.cocodataset.org/zips/train2017.zip
3$ unzip train2017.zip
4$ wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
5$ unzip annotations_trainval2017.zip
然后,就要从数据集里提取一些有用的信息了,比如边界框,拿这些信息生成你自己的.txt文件。
1$ python core/extract_coco.py --dataset_info_path ./data/train_data/COCO/train2017.txt
来自YOLOv3原作者
上面这步得到的文件是./data/train_data/COCO/train2017.txt。拿一张图举栗,应该长这样:
1As a result, you will get ./data/train_data/COCO/train2017.txt. Here is an example row for one image:
2
3/home/yang/test/tensorflow-yolov3/data/train_data/train2017/000000458533.jpg 20 18.19 6.32 424.13 421.83 20 323.86 2.65 640.0 421.94
4/home/yang/test/tensorflow-yolov3/data/train_data/train2017/000000514915.jpg 16 55.38 132.63 519.84 380.4
5# image_path, category_id, x_min, y_min, x_max, y_max, category_id, x_min, y_min, ...
接下来,要把图像数据集转成.tfrecord,就是用二进制来保存数据。最后,可以训练啦。
1$ python core/convert_tfrecord.py --dataset ./data/train_data/COCO/train2017.txt --tfrecord_path_prefix ./data/train_data/COCO/tfrecords/coco --num_tfrecords 100
2$ python train.py
COCO评估
如果要看一下模型在COCO上的表现,就这样做:
1$ cd data/train_data/COCO
2$ wget http://images.cocodataset.org/zips/test2017.zip
3$ wget http://images.cocodataset.org/annotations/image_info_test2017.zip
4$ unzip test2017.zip
5$ unzip image_info_test2017.zip
来自YOLOv3原作者
“我今年没干啥”
YOLO系列的作者,是华盛顿大学两位画风奇崛的研究人员,一个叫Joseph Redmon,一个叫Ali Farhadi。
去年3月YOLOv3发布,两位在论文里是这样描述这项成果的:
我今年基本没做啥研究,净刷推特了,也玩了一小会儿GAN。去年还剩一点动力没用完,就给YOLO更了个新。没什么特别有意思的东西,一些细小的改动而已。
Introduction满分
但严肃地说,速度是v3最主要的提升。一般来讲,YOLOv3比R-CNN快1000倍,比Fast R-CNN快100倍。
有一些人啊,看起来常年不做正事,但还是能拿出精彩的成果。
YOLOv3 TensorFlow实现传送门:
https://github.com/YunYang1994/tensorflow-yolov3
(早就出了的) YOLO v3 PyTorch教程传送门:
https://github.com/ayooshkathuria/YOLO_v3_tutorial_from_scratch
声明:文章收集于网络,为传播信息而发,如有侵权,请联系小编及时处理,谢谢!
欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754
python 目标检测 训练_YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练相关推荐
- YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练
↑ 点击上方[计算机视觉联盟]关注我们 △ 来自YOLOv3原作者 YOLOv3,快如闪电,可称目标检测之光. PyTorch实现教程去年4月就出现了,TensorFlow实现一直零零星星. 现在,有 ...
- python交通标志识别_YOLOv3目标检测实战:交通标志识别
在无人驾驶中,交通标志识别是一项重要的任务.本项目以美国交通标志数据集LISA为训练对象,采用YOLOv3目标检测方法实现实时交通标志识别. 具体项目过程包括包括:安装Darknet.下载LISA交通 ...
- MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
来源 | 微软研究院AI头条(ID: MSRAsia) 编者按:目标检测与目标跟踪这两个任务有着密切的联系.针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁.统一而高 ...
- CVPR 2020丨MAML-Tracker: 用目标检测思路做目标跟踪? 小样本即可得高准确率
编者按:目标检测与目标跟踪这两个任务有着密切的联系.针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁.统一而高效的"目标检测+小样本学习"框架,在 ...
- python mobilenetssd android_tensorflow+ssd_mobilenet实现目标检测的训练
本文在Ubuntu下使用tensorflow的object detection API来训练自己的数据集.所用模型为ssd_mobilenet,也可以使用其他的模型.当然也可以在windows下训练, ...
- python实现yolo目标检测_Yolov5—实现目标检测(win10)
Yolov5-实现目标检测(win10) 该方法可以在win10上实现Yolov5的目标检测,配置前需要安装Anaconda3 一.环境配置 源码下载地址:https://github.com/ult ...
- 使用Python+OpenCV+yolov5实现行人目标检测
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自 | 深度学习与计算机视觉 介绍 目标检测支持许多视觉任务 ...
- python目标识别代码_利用ImageAI库只需几行python代码超简实现目标检测
什么是目标检测 目标检测关注图像中特定的物体目标,需要同时解决解决定位(localization) + 识别(Recognition).相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分 ...
- Python Apex YOLO V7 main 目标检测 全过程记录
博文目录 文章目录 环境准备 YOLO V7 main 分支 TensorRT 环境 工程源码 假人权重文件 toolkit.py 测试.实时检测.py grab.for.apex.py label. ...
最新文章
- 2021年广东省高考英语听说成绩查询,广东2021年高考准考证今起自行打印 成绩及分数线6月24日左右公布...
- idea直连linux部署项目,idea项目打包和在linux的部署
- k8s使用kube-router网络插件并监控流量状态
- php推荐引擎算法,推荐系统,第 2 部分: 开源引擎简介
- 免费开源分布式系统日志收集框架 Exceptionless
- java 8 Stream中操作类型和peek的使用
- 怎么避免UpdateData()函数弹出对话框
- vue watch 修改滚动条_vue 中滚动条始终定位在底部的方法
- 拓端tecdat|用Python粒度分析及其在沉积学中应用研究
- boolean到底占几个字节?
- 各类曲线的参数方程_常见曲线的参数方程
- 自定义报表(demo1)
- 音视频文件码率与文件大小计算公式
- axure 调整中继器列宽_Axure中继器:实现“万能”数据表模板的方法
- 深入PCI与PCIe
- Window系统多硬盘设置新引导盘
- 面向开发的内存调试神器,如何使用ASAN检测内存泄漏、堆栈溢出等问题
- 教你如何安装小熊猫DEV-C++6.7.5版
- 关于为什么sklearn画出来的ROC曲线图是折线的问题
- 华为手机计算机怎么语音算术,华为自带的语音识别功能太实用了!这样操作,3秒语音变文字...
热门文章
- 让Mootools的语法结构像Jquery那样
- Silverlight C# 游戏开发:Balder的3D世界
- 设计模式(4)—— 简单工厂模式(Simple Factory,创建型)
- service: no such service mysqld 与 MySQL 的开启、关闭和重启
- [ES6系列-01]Class:面向对象的“新仇旧恨”
- Cyborg Genes UVA - 10723
- Mybatis非mapper代理配置
- mysql 高可用架构 proxysql 之一 yum安装
- 递推DP URAL 1119 Metro
- 第12章 元编程与注解、反射