文章目录

  • 下载代码
  • 配置环境
  • 测试环境
  • 下载VOC数据集
  • 训练准备

下载代码

进入链接下载解压代码仓库。

解压出来应该是下面这样的:

配置环境

anaconda的安装步骤见另一篇文章:【分享】Windows10下安装深度学习常用软件教程分享

CUDA和cudnn的安装步骤见另一篇文章:【分享】Windows10下安装Nvidia显卡驱动及cuda和cudnn

这里我使用的版本是:CUDA11.1、cudnn8.2.0

使用anaconda创建虚拟环境,详细命令使用可参考另一篇文章:【分享】anaconda中创建虚拟环境常用指令

conda create -n yolov4-tflite python=3.8

conda activate yolov4-tflite


输入命令开始安装:

conda install -c esri tensorflow-gpu

conda install opencv

conda install -c conda-forge easydict

conda install -c conda-forge pillow

conda install -c anaconda keras

图略

测试环境

下载权重文件

测试之前需要准备YOLOv4权重文件

下载链接:https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT

将下载的权重文件yolov4.weights放到tensorflow-yolov4-tflite-master\data文件夹下

输入下面的命令:

python save_model.py --weights ./data/yolov4.weights --output ./checkpoints/yolov4-416 --input_size 416 --model yolov4

运行结束后,将会在tensorflow-yolov4-tflite-master\checkpoints文件夹下产生一个yolov4-416文件夹。

打开yolov4-416文件夹,里面会有一个saved_model.pb文件,这个就是我们进行测试需要使用的权重文件了。

输入以下命令:

python detect.py --weights ./checkpoints/yolov4-416 --size 416 --model yolov4 --image ./data/kite.jpg --output ./data/kite_d.jpg

就能得到如下测试结果,并且保存在tensorflow-yolov4-tflite-master\data文件夹下命名为kite_d.jpg文件,也就是我们保存的带有检测结果的图片。


输入以下命令:

python detectvideo.py --weights ./checkpoints/yolov4-416 --size 416 --model yolov4 --video ./data/road.mp4 --output ./data/road_d.mp4

测试结果如下:

并且在tensorflow-yolov4-tflite-master\data文件夹下将产生一个road_d.mp4文件,也就是我们保存的带有检测结果的视频。

下载VOC数据集

进入VOC官网下载数据集。

选择下载训练验证数据集和标签数据。

解压两个压缩文件得到如下图文件夹的内容。

在data/dataset文件夹下生成数据的描述文件

训练准备

根据作者在github上的声明,该程序在训练时还需要两个对图片信息的描述文件voc_train.txt和voc_test.txt,格式如下


作者给出了生成这两个文件的代码scripts\voc_annotation.py。需要做部分的修改:

if __name__ == '__main__':parser = argparse.ArgumentParser()# 将相关路径中default的路径修改为自己的路径,最好是写绝对路径,不然后面容易出错parser.add_argument("--data_path", default="D:/datasets/voc2007/VOC2007/")# 将default的路径更改为自己的voc_train.txt存放的位置parser.add_argument("--train_annotation", default="../data/dataset/voc_train.txt")# 将default的路径更改为自己的voc_test.txt存放的位置parser.add_argument("--test_annotation",  default="../data/dataset/voc_test.txt")flags = parser.parse_args()if os.path.exists(flags.train_annotation):os.remove(flags.train_annotation)if os.path.exists(flags.test_annotation):os.remove(flags.test_annotation)num1 = convert_voc_annotation(os.path.join(flags.data_path, 'VOCtrainval_06-Nov-2007/VOCdevkit/VOC2007'), 'trainval', flags.train_annotation, False)# num2 = convert_voc_annotation(os.path.join(flags.data_path, 'train/VOCdevkit/VOC2012'), 'trainval', flags.train_annotation, False)num3 = convert_voc_annotation(os.path.join(flags.data_path, 'VOCtest_06-Nov-2007/VOCdevkit/VOC2007'),  'test', flags.test_annotation, False)print('=> The number of image for train is: %d\tThe number of image for test is:%d' %(num1, num3))

做了以上更改后直接运行该文件即可。

python scripts/voc_annotation.py

最终显示如下信息即表示生成成功。


这时候data\dataset文件加下将多出两个文件:


修改配置文件

打开tensorflow-yolov4-tflite-master\core文件夹下的config.py文件

主要就是修改里面的几个文件的路径,如果是按照我上面步骤得到的那几个文件,那么将不需要修改,如果你是将上面几个文件放在了其他路径下,则需要做相应的修改。

(1)将第14行的“__C.YOLO.CLASSES”修改为自己的voc.names所在位置

__C.YOLO.CLASSES              = "./data/classes/voc.names"

(2)将第29行“__C.TRAIN.ANNOT_PATH”修改为自己的voc_train.txt所在位置

__C.TRAIN.ANNOT_PATH          = "./data/dataset/voc_train.txt"

(3)将第45行“__C.TEST.ANNOT_PATH”修改为自己的voc_test.txt所在位置

__C.TEST.ANNOT_PATH           = "./data/dataset/voc_test.txt"

(4)第30行和第46行的“__C.TRAIN.BATCH_SIZE”和“__C.TEST.BATCH_SIZE”根据自己电脑的性能修改,性能好就调大点,性能差就调小点,没有明确的要求。
config.py文件中的其他参数也是一样的,可以根据需要自行调节,都没有明确的要求。

输入命令:

python train.py

或者从yolov4.weight进行迁移学习训练

输入命令:

python train.py --weights ./data/yolov4.weights

【技术分享】使用YOLOv4跑通VOC官方数据集相关推荐

  1. linux内核视频 网易,网易视频云技术分享:UML调试Linux内核

    原标题:网易视频云技术分享:UML调试Linux内核 网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点 ...

  2. 跑通GVINS——港科大新作

    跑通GVINS--港科大新作 0.简介 1.环境 2.跑通GVINS 3.数据集 4.相关资料打包下载(不包括数据集) 6.泡泡机器人解读 港科大又一力作!vins-mono以及vins-fusion ...

  3. 大疆 DJI mobile SDK系列详细教程——运行实例代码(跑通大疆官方提供Mobile SDK里的sample code)

    大疆 DJI mobile SDK系列详细教程--运行实例代码(跑通大疆官方提供Mobile SDK里的sample code) 文章目录 一.官方文献与资源地址 二.操作步骤 提示:昨天在尝试跑通大 ...

  4. TX2跑通yolov4

    TX2跑通yolov4 TX2环境配置: Ubuntu 18.04 cuda 10.2 cudnn 8.0.0 opencv 4.1.1 最终实现demo.调用板载摄像头跑yolov4. 参考此文执行 ...

  5. YOLOv4从配置环境到跑通代码的小白教程

    一直以来都只是看论文和网上的一些纯文字的讲解,但从来没有实操过,非常想自己跑一下代码,看一下算法的整个实现过程,于是就有了这次尝试. 系统环境介绍 windows 10 NVIDIA  GeForce ...

  6. 来自 Vue 官方团队的 57 个技术分享

    最近在看 Vue 团队成员的技术演讲,从中能了解到他们的设计思考以及最佳实践,看完一场收获颇多. 经过我一番整理,今天给大家介绍一下这些核心团队成员以及他们的技术分享. 他们分别是: Evan You ...

  7. KDD Cup 2019 AutoML Track冠军深兰科技DeepBlueAI团队技术分享 | 开源代码

    作者丨罗志鹏 单位丨深兰北京AI研发中心 近日,KDD Cup 2019 AutoML Track 比赛结果出炉,本次赛题是第五次 AutoML 挑战赛,由第四范式.ChaLearn 和微软联合举办, ...

  8. aistarter助手程序未运行_师傅领进门之6步教你跑通一个AI程序!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 源码下载地址请点击原文查看. 初学机器学习,写篇文章mark一下,希望能为将入坑者解点惑.本文介绍一些机器学习的入门知识,从安装环境到跑通机 ...

  9. 知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路

    本文来自知乎官方技术团队的"知乎技术专栏",感谢原作者陈鹏的无私分享. 1.引言 知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经 ...

最新文章

  1. 逆透视变换IPM模型
  2. MATLAB语言中的关系与逻辑运算
  3. A Convolutional Neural Network for Modelling Sentences阅读笔记
  4. ProE复杂曲线方程:Python Matplotlib 版本代码(L系统,吸引子和分形)
  5. 监视程序中的死锁及其他
  6. c++如何实现对硬盘的操作_如何使用Python实现自动化点击鼠标和操作键盘?
  7. mysql innodb禁用事务_MySQL InnoDB事务中锁问题(三)
  8. Android客户端和服务器端数据交互的第四种方法
  9. Struts+Hibernate系列教材 (一)- 整合Struts和Hibernate教程
  10. android 拼图小游戏
  11. kuangbin 基础DP1
  12. 无法获得 VMCI 驱动程序的版本: 句柄无效解决方法
  13. 解决errno 256报错_wuli大世界_新浪博客
  14. 课程笔记《李彦宏·智能交通7讲》
  15. 二分查找的平均查找长度
  16. APS的定义是什么?高级计划与排程APS有哪些痛点?
  17. Sharding-JDBC 源码之 SQL 改写
  18. Java中集合拥有的共性方法
  19. LitJson输出格式化Json字符串
  20. 计算机word实线边框在哪,4.22 Word 2016 形状轮廓(边框)设置(实线、渐变线)-Word2016入门进阶教程-亮术网...

热门文章

  1. R语言函数paste和paste0
  2. 程序员群嘲红芯浏览器:注释过度很业余 创新混淆视听:15篇前端热文回看
  3. 2017前端性能优化清单
  4. 软件协助企业实现协作创新,构建商业价值网络
  5. Nakagami-m 信道
  6. 一个互联网大佬的五年工作成长复盘
  7. Java连接Mysql数据库警告:Establishing SSL connection without server's identity
  8. 网址包括HTML吗,html,http不是网址?我才发现URL才是真正的网址
  9. 南阳oj 题目722 数独
  10. 拆分汉字|中文拆字|分割汉字