Yolov3测试自己的数据集的步骤和遇到的一些bug

1用自己做的数据集(大概九张图片)用labelme类似于一个小程序,对图片上的信息进行标注,得到类似下图所示,标注好类别,保存得到.json文件。

在这里插入图片描述
在这里插入图片描述

2.写好所需的配置文件

在config中的creat_custom_model.sh利用git bash 软件(类似于一个cmd窗口)中输入bash creat_custom_model.sh 2(2是我这个自己制作的数据中的分类)(线用九张标注好的图片分为两类 Person,Cat) 会自动生成yolov3-custom.cfg配置文件

3.标签格式的转化

在labelme中生成的label(如果是矩形框的话应该是坐上角的(x1,y1)和右下角的(x2,y2)但是yolov3中需要的label应该是(中心点的x值,中心点的y值,矩形的长,矩形的宽)

利用json2yolo.py脚本将进行坐标转化

需要改动的地方:

①#在labelme中的标注的信息

name2id = {'Person':0,'Cat':1}

Name2id中改为自己数据集中的分类

②def decode_json(json_floder_path,json_name):

     #转换好的标签存放的绝对路径

    txt_name = 'F:\\YOlov3\\PyTorch-YOLOv3\\data\\custom\\labels\\' + json_name[0:-5] + '.txt'

    txt_file = open(txt_name, 'w')

Decode_json中设置一个转换好的标签应该存放的位置

③if __name__ == "__main__":

    #读取labelme标注生成的json文件的绝对路径

    json_floder_path = 'F:\\YOlov3\\PyTorch-YOLOv3\\label_test'

    json_names = os.listdir(json_floder_path)

主函数中将lanelme生成的.json文件读取进来

4.将数据(标注的图片放入相应的位置)注意名字和label里要一致

保存的位置在F:\YOlov3\PyTorch-YOLOv3\data\custom\images

将F:\YOlov3\PyTorch-YOLOv3\data\custom\classes.names

在这里插入图片描述

将这里改成类别名

更改config文件夹中的custom.data中的类别信息classes=2
在这里插入图片描述

5.在F:\YOlov3\PyTorch-YOLOv3\data\custom\train.txt

F:\YOlov3\PyTorch-YOLOv3\data\custom\val.txt中写好路径(可能会引起改动,看yolov3的datasets.py中是什么格式读取的,注意debug)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.训练代码更改配置

1.train.py需要设置的参数

–model_def config/yolov3-custom.cfg

–data_config config/custom.data

–pretrained_weights weights/darknet53.conv.74 #看你想不想在人家基础上去做

7.预测操作

在detect.py中进行配置文件操作

–model_def config/yolov3-custom.cfg

–image_folder data/samples/ #把需要预测的数据放到这里

–checkpoint_model checkpoints/yolov3_ckpt_100.pth #训练好模型的路径

–class_path data/custom/classes.names #画图时候要把框上显示出来name

在预测时报错

出现classes[int(cls_pred)] list index out of range

在这里插入图片描述

经过检查发现 代码在训练是的确得到的是2分类的结果,但是在预测时却仍然用的是yolov3中80分类的结果,也就是加载模型出现了问题

将代码做了如下的改动:

在这里插入图片描述

① 将weight_path和checkpoint_model的默认改为空值

在这里插入图片描述

将原本的if_else语句 上图下方的框中的代码 改成上方的框中的代码(成功预测)

挑几张展示:(可以看到 效果并不是很好(甚至有的图片都没有检测框的) )

在这里插入图片描述
在这里插入图片描述

下面用yolov已经训练好的权重进行测试weights/yolov3.weights

得到结果(即直接在配置文件中输入–image_folder data/samples/ 不做其他更改)(效果还不错)

在这里插入图片描述

在这里插入图片描述

接在配置文件中输入–image_folder data/samples/ 不做其他更改)(效果还不错)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值