第一步:在电脑上建立文档datasetr
在datasetr建立train文档、vai文档
在train建立images文档、lables_json文档
在vai建立>images文档、lables_json文档
第二步:复制粘贴视频
第三步:用KIMI等工具,生成python程序
首选需要先安装库ultralytics的库
pip install ultralytics
运行python程序
import cv2
import os
# 视频文件路径
video_path = '轮胎3.mp4'
# 获取视频文件所在的目录
output_dir = os.path.dirname(video_path)
# 创建一个视频捕获对象
cap = cv2.VideoCapture(video_path)
# 检查视频是否成功打开
if not cap.isOpened():
print("Error: Could not open video.")
exit()
# 当前帧数计数器
frame_count = 0
# 图像保存计数器
image_count = 0
while True:
# 逐帧读取视频
ret, frame = cap.read()
# 如果没有读取到帧,那么就跳出循环
if not ret:
break
# 保存每100帧的图像
if frame_count % 100 == 0:
# 构造图像文件名,并将其保存到视频文件所在的目录
image_filename = os.path.join(output_dir, f'image_{image_count}.jpg')
# 保存图像
cv2.imwrite(image_filename, frame)
print(f'Saved: {image_filename}')
image_count += 1
# 增加帧数计数器
frame_count += 1
# 释放视频捕获对象
cap.release()
print("Done extracting frames.")
第四步 :复制截取的的照片到datasetr建立train文档(大概60张精选照片)、vai文档(大概30张精选照片)里面的照片库里
第五步:打开X-AnyLabeling-CPU-v2.5.3程序,运行
第六步:对视频要求进行标注
第七步:标签完成导出标签,生成cllsa.txt 输入相关车型代码
第八步:
data.yaml文件
# data.yaml文件 关联yolo数据
path: .
train: datasets/train/images
val: datasets/val/images
#test: data/test/images
nc: 2
names: ['l12f', 'l21b']
# roboflow:
# workspace: yolo-ccdgk
# project: test_3-qm1g6
# version: 3
# license: CC BY 4.0
# url: https://universe.roboflow.com/yolo-ccdgk/test_3-qm1g6/dataset/3
# train.py文件 跑模型
from ultralytics import YOLO
if __name__ == '__main__':
# Load a pretrained YOLOv8 model
model = YOLO('yolo11n.pt')
# Train the model on a custom dataset
model.train(data='data.yaml', epochs=100, imgsz=640, batch=64, workers=4)
# Save the trained model
# 文件名:model.yaml,大模型导出三种格式
from ultralytics import YOLO
if __name__ == '__main__':
# Load a pretrained model
model = YOLO('runs/detect/train6/weights/best.pt')
# Export the model to ONNX format
model.export(format='onnx',dynamic=False)
model.export(format='openvino')
# Export the model to TorchScript format
# 文件名:export.yp 用于pt转nonx格式
from ultralytics import YOLO
if __name__ == '__main__':
# Load a pretrained model
model = YOLO('best.pt')
# Export the model to ONNX format
model.export(format='onnx')
# Export the model to TorchScript format
# 模型转换文件名:openvino.yp
def convert_to_openvino():
model = YOLO("best.pt")
model.export(format="openvino")
#文件名: model.yaml
type: yolo11
name: yolo11s-r20240930
display_name: yolo_day1
model_path: best.onnx
nms_threshold: 0.45
confidence_threshold: 0.25
classes:
- l12f
- l21b