tenforflow版YOLOv3下COCO格式的raccoon(浣熊)数据集的准备(未完待续)

实践本文之前,请确保已经完成下面这个网址3.1之前的操作:
https://github.com/YunYang1994/tensorflow-yolov3
本文主要参考这个网址的3.1 Train raccoon dataset

第一步:

sh scripts/make_raccoon_tfrecords.sh


win10下这个命令无法运行,只有在linux下面才可以,虽然我在window下安装了ubuntu子系统来执行sh命令(不是双系统),但是子系统的terminal也还是不好弄,比如它缺少了一个numpy模块,我终端里apt-get安装了,但是还是没用,所以我只能打开这个sh文件,一步一步执行里面的命令。(我是用的anaconda prompt)
下面解释一下这个文件里的内容:
git clone https://github.com/YunYang1994/raccoon_dataset.git
cat ./raccoon_dataset/labels.txt | head -n  180 > ./raccoon_dataset/train.txt
cat ./raccoon_dataset/labels.txt | tail -n +181 > ./raccoon_dataset/test.txt
python core/convert_tfrecord.py --dataset_txt ./raccoon_dataset/train.txt --tfrecord_path_prefix ./raccoon_dataset/raccoon_train
python core/convert_tfrecord.py --dataset_txt ./raccoon_dataset/test.txt  --tfrecord_path_prefix ./raccoon_dataset/raccoon_test

第一条命令执行后,会下载raccoon_dataset目录,我下载了一个git,然后通过git clone命令下载,那么为什么要通过git而不直接到后面给出的网站下载呢?因为通过git下载会下载完整的分支,在网页直接下载只会下载主干部分,当然你直接下载主干也没问题。

第二条命令就是把raccoon_dataset这个目录下的label.txt文件的从头开始180行复制并粘贴到新生成的的train.txt文件。./表示从当前目录开始。txt文件的每一行是:

xxx/xxx.jpg 55.38 132.63 519.84 380.4 16
# image_path x_min y_min x_max y_max class_id  x_min y_min ... class_id 

(55.38,132.63) 与  (519.84,380.4) 表示用两个像素点的位置围成的框就是标注的16号识别物,16识别物是什么,可以从xxx.names文件里看(实际上是names文件第17行的标识物,因为第一行标识物是0号)。

第三条命令同上,只是从label.txt倒数第一行开始。但是只复制了20行,我也不知道为什么。

第四条命令:--dataset_txt 后面是刚刚生成的train.txt文件,--tfrecord_path_prefix 后面的目录就是存放生成的tfrecord文件,

tfrecord文件就是把图像文件和它的标注打包起来的以供训练的文件。

第五条命令同四,此命令打包的是测试集。

第二步:(可选)


python show_input_image.py
这一步就是展示你的输入的数据,当你训练自己的数据时可以不用运行它。


第三步:(可选)

python kmeans.py

 这个文件要调用train.txt和anchors.txt文件,应该是分类标准之类的东西吧,我不是很了解。

 

第四步:

python convert_weight.py --convert

这里用的是:--convert参数,这一步会生成*.ckpt文件,第六步还会用到这个py文件。

 

第五步:

python quick_train.py

这一步就是开始训练,需要标识类别文件:*.names、锚重文件:*_anchors.txt,训练打包文件:*_train.tfrecord,测试打包文件:*_test.tfrecord。会生成一个ckpt文件(重要),还有两个不知道用来干什么的train和test目录。

看看这个py文件开始的一些参数:

其中BATCH_SIZE表示将数据打包成几个,当你的显存不够用了(out of range),死机蓝屏或是程序崩溃时要把这个调小。

STEPS表示训练迭代的次数,调得越小,花的时间越少,训练效果越差。

其它的我就不知道了。。。

第六步:(可选)

tensorboard --logdir ./data

这一步就是打开tensorflow的可视化工具看看框架模型,如果打不开的话,参考:

https://blog.csdn.net/dr_theodore/article/details/80748068

https://blog.csdn.net/whitesilence/article/details/79261592

这里写图片描述

 

 第七步:

python convert_weight.py -cf ./checkpoint/yolov3.ckpt-2500 -nc 1 -ap ./data/raccoon_anchors.txt --freeze

本步会利用上面的ckpt文件生成*cpu_nms.pb和*gpu_nms.pb文件。

 

第八步:

python quick_test.py

本步就是用两个pb文件来测试。

第九步:

python evaluate.py

测试训练结果,计算mAP识别率,用这个raccoon_dataset我跑得的mAP=0.90左右。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值