在Colab上用自己的数据集训练目标检测模型

目标检测模型训练

最近发现一个数据集类型转化神器Roboflow,这个网站提供各种图像预处理,增强,数据集扩充等操作,如图像翻转,随机噪声等,且支持各种类型数据集,并可以任意类型导出,这就让烦人的tfrecord直接out。
在Colab上用自己的数据集训练目标检测模型_第1张图片
网站的博客上还给出了对新手比较友好的示例。下面就由此从制作数据集到训练模型开始操作。

数据集制作

网上提到的数据集制作软件挺多,这里用一个主流的便捷的开源软件labelImg。先在网上手动找一些你想训练的目标,这里我简单地训练了一个识别足球的faster-rcnn,所以就找了十一张图片。这里强调一下图片的数量,由于Roboflow提供了方便的数据扩充操作,所以并不需要采集很多图片。我采集11张直接变成110张。

labelImg标注。

千万注意labelImg所在文件路径中不能包含中文,否则会打不开。打开labellmg后,选择open dir打开你采集图片的文件夹,然后就可以开始标注了在Colab上用自己的数据集训练目标检测模型_第2张图片
这里选择什么格式都无所谓啦,毕竟后面可以转化,不过还是习惯选择VOC。快捷键提示:w描框 ,d下一张图,ctrl+s保存。

Roboflow数据集处理

进入roboflow的网站,点击create dataset,上传数据集,然后根据情况选择resize、翻转等操作。这里选择把图片resize为416*416以满足后面模型的需要。操作选完后点击generate dataset,这里可能会卡在进度条上,可能是因为服务器问题,多试几次。然后导出数据集,这里可以选择任意格式,以tfrecord为例导出,同时以coco格式导出另一份作为备用

Colab白嫖GPU

点击这里直接进入Colab。这个notebook很详细,一步一步来即可。复制到自己的Colab,在Colab的修改/笔记本设置里设置GPU,然后向下运行在Colab上用自己的数据集训练目标检测模型_第3张图片
在这里需要添加之前制作的数据集。自己运行的时候是没有红色笔圈出来的部分的,只有一个FYI.txt。在data文件夹下创建这三个文件夹,然后分别右键上传自己的数据集中的对应的那三个文件夹里的.tfrecord和.pbtxt文件
在Colab上用自己的数据集训练目标检测模型_第4张图片
修改上图圈出的部分为自己的数据集的对应名字,然后就没什么地方要改了,一直往下开始训练。我在训练时竟然分配到了Tesla T4 GPU,查了一下某宝,突然觉得有钱真好。。notebook里用到了tensorboard可以直接查看训练进度

测试结果

训练图中会莫名出错,不过没关系,继续训练就行了。测试时,需要把data目录下的test文件夹清空,然后上传你想要测试的图片,这里使用之前另外保存的coco数据集下的test目录中的图片。下面是训练结果
在Colab上用自己的数据集训练目标检测模型_第5张图片
11张图片就搞定一个类别的识别,完美,后续再尝试训练更多的类别。

你可能感兴趣的:(tensorflow,深度学习,python,计算机视觉)