- 安装labelme等软件
- 标注自己的数据:
打标完成后,会得到一张打标图和包含打标信息的json文件,其中json文件中主要包含,a.打标标签和框的首尾点,如矩形框的左上点和右下点的坐标。 b,打标的形式 c.文件地址 d. 图的大小
3. 标签格式转换 json2txt
labelme- -->x1,y1,x2,y2 YOLO-V5---->Cx,Cy,W,H 相对位置(取值范围0-1)
参考:json转yolo
转换成功后,整理训练集/测试集,文件及内包含images和labels,labels内放的txt文件,images内放打标后的图片
- 修改模型所需的配置文件,如coco128.yaml
修改训练集、验证集、测试集的文件地址和类别名称,如:
# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: ../coco128/images/train2017/ # 128 images
val: ../coco128/images/train2017/ # 128 images
# number of classes
nc: 80
# class names
names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
'hair drier', 'toothbrush']
- 训练模型
其中data 的来源就写上面的配置文件 XXX.yaml即可
如:
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 64