b站:目标检测 YOLOv5 开源代码项目调试与讲解实战【土堆 x 布尔艺数】保姆式教学,对小白帮助颇多。
跟着视频最后用4张图训练识别汽车,因为数据太小,结果没有识别出来,主要是学习方法。
本小记 为自制数据集训练及github中Train Custom Data总结笔记
1. Create dataset.yaml创建数据集(先跳过)
1)the dataset root directory path (指定数据集根目录) and relative paths to train / val / test image directories (or *.txt files with image paths), 训练集/验证集/测试集文件的相对路径 2) the number of classes nc 有多少类 3) a list of class names:类分别是什么
.yaml如下:
path: ../datasets/coco128
train: images/train2017
val: images/train2017
test:
nc: 80
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' ]
2. Create Labels创建标签 得到txt(就是通过打框软件 打框后导出图片对应txt文件)
?One row per object 每一行代表一个目标 ?Each row is class x_center y_center width height format.(x中心 y中心 宽度 高度) ?Box coordinates must be in normalized xywh format (from 0 - 1). 每个标注要归一化到(0-1)之间 If your boxes are in pixels, divide x_center and width by image width, and y_center and height by image height.如果是像素,x的中心坐标除图片的宽度,y的中心坐标除图片的高度 ?Class numbers are zero-indexed (start from 0)
3. Organize Directories
创建一个images文件夹放图,一个labels文件夹放标注 ../datasets/coco128/images/im0.jpg # 放image ../datasets/coco128/labels/im0.txt # 放label
回头写 第1节 .yaml
复制一个coco128.yaml 重命名为mydata.yaml 把mydata.yaml 中的下载部分删掉
修改训练数据集路径 val验证数据集暂时没有,先用 训练数据集代替 类别个数修改 打开train.py修改程序 训练结果在(runs/train)
—————————————————————————————————————————— 测试一下训练的结果(数据太少并没成功,视频弹幕中有人识别出了一个) 复制best.pt的路径,打开detect.py, 1)修改weights权重 2)先用训练的图片测试 结果在(runs/detect)
|