赞
踩
目录
在window 命令行执行 pip install labelme
安装成功后启动,执行labelme
使用矩形框对数据集图像进行打标注
打完标注保存后得到json文件
在代码中写好相应的路径,执行下面的代码即可。
-
- import json
- import os
- #自己打标签有多少类别就写在这里
- name2id = {'person':0,'head':1}
-
- def convert(img_size, box):
- dw = 1./(img_size[0])
- dh = 1./(img_size[1])
- x = (box[0] + box[2])/2.0 - 1
- y = (box[1] + box[3])/2.0 - 1
- w = box[2] - box[0]
- h = box[3] - box[1]
- x = x*dw
- w = w*dw
- y = y*dh
- h = h*dh
- return (x,y,w,h)
-
- #D:\\BaiduNetdiskDownload\\PyTorch-YOLOv3\\data\\custom
- def decode_json(json_floder_path,json_name):
- #转换好的标签放哪里
- txt_name = 'D:/BaiduNetdiskDownload/PyTorch-YOLOv3/data/custom/labels/' + json_name[0:-5] + '.txt'
- txt_file = open(txt_name, 'w')
-
- json_path = os.path.join(json_floder_path, json_name)
- data = json.load(open(json_path, 'r', encoding='gb2312'))
-
- img_w = data['imageWidth']
- img_h = data['imageHeight']
-
- for i in data['shapes']:
-
- label_name = i['label']
- if (i['shape_type'] == 'rectangle'):
-
- x1 = int(i['points'][0][0])
- y1 = int(i['points'][0][1])
- x2 = int(i['points'][1][0])
- y2 = int(i['points'][1][1])
-
- bb = (x1,y1,x2,y2)
- bbox = convert((img_w,img_h),bb)
- txt_file.write(str(name2id[label_name]) + " " + " ".join([str(a) for a in bbox]) + '\n')
- #D:\BaiduNetdiskDownload\PyTorch-YOLOv3\data\custom\label-test
- if __name__ == "__main__":
- #labelme生成标签后的数据路径,json文件路径
- json_floder_path = 'D:/BaiduNetdiskDownload/PyTorch-YOLOv3/data/custom/label-test'
- json_names = os.listdir(json_floder_path)
- for json_name in json_names:
- decode_json(json_floder_path,json_name)
使用上面的代码转换格式后得到数据图像的label
yolov3代码在上一篇 yolov3的安装编译中有。
自定义数据在custom目录下 ,需要到的文件如下图标注
用于训练的图像路径
图像对应的label, label名字要和图像名字一样
自定义打标签的所有类别名字写在这个文件,留一个空行,不能留多
train.txt 写的是训练数据的路径,valid.txt写的是验证数据的路径,两个文件也是只留一个空行,留多了会发导致编译出错
原来的代码训练coco数据是80分类,自定义数据集是2分类,linux下执行
./create_custom_model.sh 2 即可生成yolov3-custom.cfg,用于自定义数据集训练的模型配置文件
custom.data文件修改
参数配置如下:分别表示
训练的epoch次数
模型配置文件
数据集配置
预训练权重模型
- --epochs
- 500
- --model_def
- config/yolov3-custom.cfg
- --data_config
- D:/BaiduNetdiskDownload/PyTorch-YOLOv3/config/custom.data
- --pretrained_weights
- D:/BaiduNetdiskDownload/PyTorch-YOLOv3/weights/darknet53.conv.74
训练过程
训练结束后保存的模型,用来预测。
预测环境配置也在上一篇yolov3的安装编译中说明
参数配置
- --image_folder
- D:/BaiduNetdiskDownload/PyTorch-YOLOv3/data/samples
- --weights_path
- D:/BaiduNetdiskDownload/PyTorch-YOLOv3/checkpoints/yolov3_ckpt_400.pth
- --model_def
- D:/BaiduNetdiskDownload/PyTorch-YOLOv3/config/yolov3-custom.cfg
- --class_path
- D:/BaiduNetdiskDownload/PyTorch-YOLOv3/data/custom/classes.names
- --checkpoint_model
- D:/BaiduNetdiskDownload/PyTorch-YOLOv3/checkpoints/yolov3_ckpt_400.pth
待预测的图像存放路径
预测后保存路径
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。