来自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实现,可用自己的数据来训练相关推荐

  1. YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练

    ↑ 点击上方[计算机视觉联盟]关注我们 △ 来自YOLOv3原作者 YOLOv3,快如闪电,可称目标检测之光. PyTorch实现教程去年4月就出现了,TensorFlow实现一直零零星星. 现在,有 ...

  2. python交通标志识别_YOLOv3目标检测实战:交通标志识别

    在无人驾驶中,交通标志识别是一项重要的任务.本项目以美国交通标志数据集LISA为训练对象,采用YOLOv3目标检测方法实现实时交通标志识别. 具体项目过程包括包括:安装Darknet.下载LISA交通 ...

  3. MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020

    来源 | 微软研究院AI头条(ID: MSRAsia) 编者按:目标检测与目标跟踪这两个任务有着密切的联系.针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁.统一而高 ...

  4. CVPR 2020丨MAML-Tracker: 用目标检测思路做目标跟踪? 小样本即可得高准确率

    编者按:目标检测与目标跟踪这两个任务有着密切的联系.针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁.统一而高效的"目标检测+小样本学习"框架,在 ...

  5. python mobilenetssd android_tensorflow+ssd_mobilenet实现目标检测的训练

    本文在Ubuntu下使用tensorflow的object detection API来训练自己的数据集.所用模型为ssd_mobilenet,也可以使用其他的模型.当然也可以在windows下训练, ...

  6. python实现yolo目标检测_Yolov5—实现目标检测(win10)

    Yolov5-实现目标检测(win10) 该方法可以在win10上实现Yolov5的目标检测,配置前需要安装Anaconda3 一.环境配置 源码下载地址:https://github.com/ult ...

  7. 使用Python+OpenCV+yolov5实现行人目标检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自 | 深度学习与计算机视觉 介绍 目标检测支持许多视觉任务 ...

  8. python目标识别代码_利用ImageAI库只需几行python代码超简实现目标检测

    什么是目标检测 目标检测关注图像中特定的物体目标,需要同时解决解决定位(localization) + 识别(Recognition).相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分 ...

  9. Python Apex YOLO V7 main 目标检测 全过程记录

    博文目录 文章目录 环境准备 YOLO V7 main 分支 TensorRT 环境 工程源码 假人权重文件 toolkit.py 测试.实时检测.py grab.for.apex.py label. ...

最新文章

  1. 2021年广东省高考英语听说成绩查询,广东2021年高考准考证今起自行打印 成绩及分数线6月24日左右公布...
  2. idea直连linux部署项目,idea项目打包和在linux的部署
  3. k8s使用kube-router网络插件并监控流量状态
  4. php推荐引擎算法,推荐系统,第 2 部分: 开源引擎简介
  5. 免费开源分布式系统日志收集框架 Exceptionless
  6. java 8 Stream中操作类型和peek的使用
  7. 怎么避免UpdateData()函数弹出对话框
  8. vue watch 修改滚动条_vue 中滚动条始终定位在底部的方法
  9. 拓端tecdat|用Python粒度分析及其在沉积学中应用研究
  10. boolean到底占几个字节?
  11. 各类曲线的参数方程_常见曲线的参数方程
  12. 自定义报表(demo1)
  13. 音视频文件码率与文件大小计算公式
  14. axure 调整中继器列宽_Axure中继器:实现“万能”数据表模板的方法
  15. 深入PCI与PCIe
  16. Window系统多硬盘设置新引导盘
  17. 面向开发的内存调试神器,如何使用ASAN检测内存泄漏、堆栈溢出等问题
  18. 教你如何安装小熊猫DEV-C++6.7.5版
  19. 关于为什么sklearn画出来的ROC曲线图是折线的问题
  20. 华为手机计算机怎么语音算术,华为自带的语音识别功能太实用了!这样操作,3秒语音变文字...

热门文章

  1. 让Mootools的语法结构像Jquery那样
  2. Silverlight C# 游戏开发:Balder的3D世界
  3. 设计模式(4)—— 简单工厂模式(Simple Factory,创建型)
  4. service: no such service mysqld 与 MySQL 的开启、关闭和重启
  5. [ES6系列-01]Class:面向对象的“新仇旧恨”
  6. Cyborg Genes UVA - 10723
  7. Mybatis非mapper代理配置
  8. mysql 高可用架构 proxysql 之一 yum安装
  9. 递推DP URAL 1119 Metro
  10. 第12章 元编程与注解、反射