YOLO模型如何训练救生衣检测数据集深度学习如何训练救生衣检测数据集
救生衣检测模型YOLO8-300n提供训练好的模型文件pt格式、过程文件和验证图片带对应的训练数据集10000张1·111一、救生衣检测模型YOLOv8-300n完整方案1. 模型与数据集信息项目详情模型版本YOLOv8n300轮训练任务类型救生衣目标检测穿戴/未穿戴二分类数据集规模10000张图片含正例/负例、多场景、多角度训练轮次300 epochs核心指标从训练曲线看- 训练/验证loss持续下降并收敛- Precision/Recall/mAP50均稳定在95%以上- mAP50-95稳定在80%以上输出文件best.pt最优权重、last.pt最后一轮权重、训练日志、验证图片、loss曲线2. 数据集配置文件lifejacket.yaml# 救生衣检测数据集配置path:./lifejacket_dataset# 数据集根目录train:images/trainval:images/valtest:images/testnc:2# 类别数穿戴/未穿戴救生衣names:0:lifejacket_worn# 穿戴救生衣1:lifejacket_not_worn# 未穿戴救生衣3. 完整训练代码train_lifejacket.pyfromultralyticsimportYOLOdeftrain_lifejacket():# 加载YOLOv8n基础模型modelYOLO(yolov8n.pt)# 300轮训练参数适配救生衣检测场景resultsmodel.train(datalifejacket.yaml,epochs300,# 训练轮次和你图中一致imgsz640,# 输入图像尺寸batch16,# 批次大小可根据显卡调整device0,# 使用GPU训练无GPU则改为devicecpulr00.01,# 初始学习率lrf0.01,# 最终学习率warmup_epochs3,# 热身轮数cos_lrTrue,# 余弦退火学习率patience20,# 早停20轮无提升则停止saveTrue,# 保存模型save_period10,# 每10轮保存一次cacheTrue,# 缓存数据加速训练ampTrue,# 混合精度训练augmentTrue,# 数据增强适配户外/水域场景hsv_h0.015,# 色调增强hsv_s0.7,# 饱和度增强hsv_v0.4,# 亮度增强degrees15,# 随机旋转适配多角度拍摄perspective0.001,# 透视变换flipud0.2,# 上下翻转fliplr0.5,# 左右翻转mosaic1.0,# Mosaic增强mixup0.1,# Mixup增强namelifejacket_yolov8n_300e# 训练项目名称)# 训练完成后验证模型model.val()if__name____main__:train_lifejacket()4. 推理/验证代码predict_lifejacket.pyfromultralyticsimportYOLOimportcv2# 加载训练好的最优模型modelYOLO(runs/detect/lifejacket_yolov8n_300e/weights/best.pt)defdetect_image(image_path,save_pathresult.jpg):# 单张图片检测resultsmodel(image_path,conf0.25)annotated_imgresults[0].plot()cv2.imwrite(save_path,annotated_img)cv2.imshow(Lifejacket Detection,annotated_img)cv2.waitKey(0)defdetect_video(video_path,save_pathresult.mp4):# 视频检测capcv2.VideoCapture(video_path)fpscap.get(cv2.CAP_PROP_FPS)widthint(cap.get(cv2.CAP_PROP_FRAME_WIDTH))heightint(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))outcv2.VideoWriter(save_path,cv2.VideoWriter_fourcc(*mp4v),fps,(width,height))whilecap.isOpened():ret,framecap.read()ifnotret:breakresultsmodel(frame,conf0.25)annotated_frameresults[0].plot()out.write(annotated_frame)cv2.imshow(Lifejacket Detection,annotated_frame)ifcv2.waitKey(1)0xFFord(q):breakcap.release()out.release()cv2.destroyAllWindows()if__name____main__:# 示例检测单张图片detect_image(test_lifejacket.jpg)5. 项目文件结构完整可交付lifejacket_yolov8_project/ ├── lifejacket.yaml # 数据集配置文件 ├── train_lifejacket.py # 训练代码 ├── predict_lifejacket.py # 推理代码 ├── yolov8n.pt # 基础预训练权重 ├── lifejacket_dataset/ # 10000张数据集YOLO格式 │ ├── images/ │ │ ├── train/ │ │ ├── val/ │ │ └── test/ │ └── labels/ │ ├── train/ │ ├── val/ │ └── test/ └── runs/ └── detect/ └── lifejacket_yolov8n_300e/ ├── weights/ │ ├── best.pt # 最优模型权重 │ └── last.pt # 最后一轮模型权重 ├── results.png # 训练loss/指标曲线和你提供的图一致 ├── confusion_matrix.png # 混淆矩阵 ├── PR_curve.png # PR曲线 └── val_batch*.jpg # 验证集检测结果图片6. 运行说明安装依赖pipinstallultralytics opencv-python数据集准备将10000张图片和标注文件按images/labels/结构放入lifejacket_dataset确保lifejacket.yaml中的路径与实际一致开始训练python train_lifejacket.py使用训练好的模型python predict_lifejacket.py
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2624958.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!