1.数据源准备
1.1 准备图片资源
1.2 对图片资源标注,生成 对应的 .txt 文件,里面的数字表示 物体被标注的 x或y 等坐标点信息
1.2.1 标注工具下载以及使用教程参考
Windows 10下安装labelImg标注工具!_labelimg windows exe 1.5版本-CSDN博客
1.2.3 标注工具 使用教程参考
如何使用labelImg标注数据集,最详细的深度学习标签教程_labelimg使用教程-CSDN博客
2.标注 yolo 的文件
key.txt
0 0.460907 0.492033 0.848319 0.605170
0 0.451525 0.485305 0.807662 0.578966
0 0.462080 0.493980 0.800625 0.588527
0 0.453870 0.488314 0.834246 0.593484
3.标签配置文件
train: D:/pyourch-workspace/yoloy8-project/datasets/coco8/images/train
val: D:/pyourch-workspace/yoloy8-project/datasets/coco8/images/valnc: 5
names: ['cigarette_case', 'key', 'pen', 'smoky', 'watch']
# 烟盒 钥匙 笔 香烟 手表
3.模型训练 主要代码
from ultralytics import YOLO##TODO yolov8 模型训练# Load a COCO-pretrained YOLOv8n model
## 加载预训练模型
#第三种:根据yaml文件构建一个新模型,然后将预训练模型的参数转移到新模型中,然后进行训练,对YOLO8网络进行改进的适合选用此种训练方式,而且训练时间不至于过长
model = YOLO("yolov8n.yaml").load('yolov8n.pt') # build from YAML and transfer weights# Train the model on the COCO8 example dataset for 100 epochs
#epochs指定训练多少轮
#imgsz指定图片大小
#results = model.train(data="D:/pyourch-workspace/yoloy8-project/datasets/coco8/data.yaml", epochs=100, imgsz=640)
results = model.train(data="D:/pyourch-workspace/yoloy8-project/datasets/coco8/data.yaml",imgsz=640, epochs=100)
4. 训练结果集
5.使用自己训练的模型进行推理
from ultralytics import YOLO
import cv2
model = YOLO("D:/pyourch-workspace/yoloy8-project/runs/detect/train17/weights/best.pt")results = model(['D:/pyourch-workspace/yoloy8-project/image/100.jpg'])###使用自己训练的模型 对 图片进行推理
#model.predict('D:/pyourch-workspace/yoloy8-project/image/group.jpg', save=True, imgsz=640, conf=0.5)# Process results list
for result in results:boxes = result.boxes # Boxes object for bounding box outputsmasks = result.masks # Masks object for segmentation masks outputskeypoints = result.keypoints # Keypoints object for pose outputsprobs = result.probs # Probs object for classification outputsobb = result.obb # Oriented boxes object for OBB outputsresult.show() # display to screenresult.save(filename="result-2024-09-14-12-02.jpg") # save to disk