yolov3训练自己的数据集(darknet)+visdrone数据集

全部完成分为下面几个步骤:
1.制作自己的数据集-将visdrone转化为yolo所需的格式 (下面先完成这部分)
2.配置yolov3
3.训练验证及计算map

下篇链接:[https://blog.csdn.net/daisy_d_/article/details/105771633]

踩了很多坑,分享一下自己训练的经历~
我使用的visdrone数据集包含很多小目标,选择的darknet框架下的yolov3。也尝试了pytorch版本的不过刚开始效果不好,等的很着急后来放弃了,到后来才知道这个数据集现需要很长时间训练,我用的云服务器1080ti显卡,大概需要60个小时~~~

数据集下载链接:https://www.jianshu.com/p/62e827306fca
。使用的VisDrone2018-DET dataset 的trainset(1.44GB)和valset(0.07GB)

darknet的yolo下载链接:https://github.com/pjreddie/darknet.git

制作数据集

最终形成的数据集的格式:
images —— 存放.jpg图像
Annotations —— 存放图像对应的xml文件
ImagesSets/Main —— 存放用于train/test图像的名字列表txt
labels——标签
test.txt
train.txt
val.txt

我参考的链接:https://blog.csdn.net/qq_37775990/article/details/90145081
下面需要的代码我放在了百度网盘:
链接:https://pan.baidu.com/s/1QdTqD-T4zZ-0Vxuphtz_FA
提取码:gaiu

1.图片标注重命名(可做可不做,只是改变了名字)
使用 rename.py图像文件进行重命名,对标注文件进行重命名(两个步骤都要做,注意修改程序中的路径)会得到下面的效果,简单示例。在这里插入图片描述
在这里插入图片描述
2.visdrone标注转换为VOC格式

运行main.py 进行转换,同样注意修改程序中的路径。注意需要新建对应文件夹Annotations_否则会报错。
visdrone的标注方式与yolo标注不一样。这个步骤是将annotations中的txt将标注转换为VOC格式的xml.

3.生成用于train、val的图像名字列表txt(生成于ImagesSets/Main下)

运行 trainnamelist.py 形成了列表txt。此处生成了四个文件(train.txt test.txt val.txt trainval.txt)可以根据自己需要修改生成相应的文件。
这个步骤是将数据库中的图像进行随机抽取,分成4部分,一部分作为train(训练),一部分作为validation(验证),一部分test(测试),(trainval暂时没明白。。)最后将这几部分图像的名字写入txt。

4.生成label文件夹和txt文件

运行label.py就会在目录下生成一个labels文件夹,三个txt文件。
lable.py下有类别,我这次只训练了10个类别,所以注释掉了第0类和第11类('ignored regions’和’others‘)加上了if判断语句,其他类别的id数值也需要-1。这样就少了第0类和第11类,整体只有10类了。 具体位置代码里注释了一下。
这个步骤是生成labels文件夹,里面就是适合yolov3的标注文件了,和图像名称一一对应,内容意义是:
(class, x_center , y_center , w , h)
目标类别 标注框中心x轴相对坐标 标注框长宽相对长度
因为坐标和长宽都是相对整幅图像长宽的比例,所以数值应该是0-1。

第一次写博客,有什么错误请多指教
我第一次转化数据集的时候花了一天多的时间才搞明白,如果你也是第一次不要着急。加油丫~~~

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 31
    评论
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值