谷歌colab训练自己的数据集YOLOv3

自己电脑的GPU不支持cuda,所以尝试使用谷歌的Colabortory,免费提供GPU,最长运行时间12小时,因此一般需要挂载到谷歌云盘上,储存文件。

数据集

目标检测的数据集需要自己手动标注目标物体位置并对应生成xml文件表示目标框的位置,本文简单介绍windows系统下标注工具LabelImg的使用。
LabelImg下载链接:LabeIImg
下载好labelImg-master.zip后解压得到如下图所示。
谷歌colab训练自己的数据集YOLOv3_第1张图片
shift+右击空白处打开powershell窗口
输入两个命令Pyrcc5 -o resources.py resources.qrc
python labelImg.py
可能会出现no module named libs.resources这样的错误,将resources.py拷贝到同级的libs目录下就可以解决了。再输入第二条命令就可以运行成功了。具体使用可以参考这篇windows下使用labelImg标注图像
谷歌colab训练自己的数据集YOLOv3_第2张图片
本次采用的数据集是红细胞的检测,已经标注好的数据链接:已标注好的细胞数据连接,Annotations文件是已经标注好目标框的xml文件,JPEGImages是jpg图片文件。
谷歌colab训练自己的数据集YOLOv3_第3张图片

colab使用

首先需要创建一个谷歌云盘账号,右键空白处->更多->Google Colabortory,相应目录下会生成一个.ipynb文件,下次使用可直接右键此文件以Google Colabortory方式打开。如果没有Googel Colabortory选项,点击关联更多应用添加。
谷歌colab训练自己的数据集YOLOv3_第4张图片
首先训练自己的数据集需要挂载谷歌云盘,方便文件的传输。点击链接进去,复制代码到下面框中即可。
谷歌colab训练自己的数据集YOLOv3_第5张图片
挂载成功如下图
谷歌colab训练自己的数据集YOLOv3_第6张图片
下面介绍一些简单的文件操作:
谷歌colab训练自己的数据集YOLOv3_第7张图片
设置GPU模式

谷歌colab训练自己的数据集YOLOv3_第8张图片
谷歌colab训练自己的数据集YOLOv3_第9张图片

安装Pytorch

colab自带的是tensorflow,因此需要自己从官网复制代码下载pytoch,如下图
在这里插入图片描述

谷歌colab训练自己的数据集YOLOv3_第10张图片
谷歌colab训练自己的数据集YOLOv3_第11张图片

配置文件

首先clone项目构建Darknet,输入以下命令
谷歌colab训练自己的数据集YOLOv3_第12张图片

谷歌colab训练自己的数据集YOLOv3_第13张图片
构建好后,右侧文件如下图:
谷歌colab训练自己的数据集YOLOv3_第14张图片

上传并构建数据集

将刚才下载好的数据集上传到/darknet/data/目录下,在谷歌云盘中相应目录下空白处右击上传即可,修改数据集名字为yolov3。

谷歌colab训练自己的数据集YOLOv3_第15张图片点进Yolov3,创建imagesets空文件夹,imagesets存放图片路径。(忽略labels文件夹)
谷歌colab训练自己的数据集YOLOv3_第16张图片
imagesets路径编写谷歌colab训练自己的数据集YOLOv3_第17张图片生成的txt文件内容如下,每张图片的完整路径。

谷歌colab训练自己的数据集YOLOv3_第18张图片
分割数据集为训练集和测试集,分割后图片的名字存在imagesets下

谷歌colab训练自己的数据集YOLOv3_第19张图片
imagesets下的文件

谷歌colab训练自己的数据集YOLOv3_第20张图片
谷歌colab训练自己的数据集YOLOv3_第21张图片
从xml文件中提取目标框坐标,并存入JPEGImages图片文件夹里,并在yolov3文件夹里生成train.txt和test.txt,与上面生成的不一样,这里是图片的完整路径

谷歌colab训练自己的数据集YOLOv3_第22张图片
谷歌colab训练自己的数据集YOLOv3_第23张图片
谷歌colab训练自己的数据集YOLOv3_第24张图片
生成的labels文件内容如下:

谷歌colab训练自己的数据集YOLOv3_第25张图片

配置文件

在/darknet/data/目录下创建rbc.data和rbc.names文件,如下:
谷歌colab训练自己的数据集YOLOv3_第26张图片
谷歌colab训练自己的数据集YOLOv3_第27张图片
网络结构配置,将/darknet/cfg/目录下的yolov3.cf文件基础上改,可以将yolov3.cf文件复制重命名为yolov3_custom.cfg再存到cfg目录下。修改地方如下,如何修改可参考Yolov3 win10+vs17 运行及训练自己的数据集
谷歌colab训练自己的数据集YOLOv3_第28张图片

谷歌colab训练自己的数据集YOLOv3_第29张图片

开始训练

下载预训练权重
谷歌colab训练自己的数据集YOLOv3_第30张图片
训练,第一行是防止Permission denied错误。这里注意前面构建数据的文件一定要放对路径,不然会报奇奇怪怪的错。训练产生的权重文件自动保存在/darknet/backup中
在这里插入图片描述
如中间因不明原因停止可以查看backup目录下最后一次权重是多少(比如yolov3_custom_700.weights),然后运行如下代码就可以了。
在这里插入图片描述

用训练出来的权重测试

修改yolov3_custom.cfg为测试模式
谷歌colab训练自己的数据集YOLOv3_第31张图片
随便找一张细胞图片放入/darknet/data文件下(BloodImages_00001.jpg),然后输入下列代码。
在这里插入图片描述
得到下列结果,可以看到预测到几个目标:
谷歌colab训练自己的数据集YOLOv3_第32张图片

显示图片

谷歌colab训练自己的数据集YOLOv3_第33张图片
显示预测结果
在这里插入图片描述
谷歌colab训练自己的数据集YOLOv3_第34张图片

你可能感兴趣的:(深度学习,python)