ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

YOLOv8 目标检测:从训练到部署全流程(接单高频需求)

YOLOv8 目标检测:从训练到部署全流程(接单高频需求) YOLOv8 目标检测从训练到部署全流程接单高频需求口罩检测、安全帽检测、车辆识别、缺陷检测……目标检测是接单和毕设里最高频的需求YOLOv8 是目前上手最快、效果最稳的选择。这篇从数据准备到部署一条龙代码直接抄。前言如果说让我只推荐一个学了就能接单的深度学习方向我选目标检测。原因很简单需求量大各行各业都要识别出画面里有什么、技术成熟YOLO 系一统江湖、而且用自己的数据训练一个能用的检测模型比想象中简单。YOLOv8 是 Ultralytics 团队的开源项目把训练、推理、导出全封装成了几行代码。我做过口罩检测、工地安全帽检测两个项目用的都是这套流程这篇全部分享出来。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传一、YOLOv8 是什么YOLOYou Only Look Once是一类单阶段目标检测模型特点是一次前向同时输出所有目标的位置和类别速度极快。YOLOv8 是目前最新的官方版本几大优点API 极其简单训练、推理、导出都是一行调用自带预训练权重yolov8n最小6MB/ s / m / l / x 五档没数据也能先用通用模型跑通流程一套代码通吃检测detect、分割segment、分类classify。二、安装与数据准备pip install ultralytics数据格式YOLO 格式图片 同名 txt 标签目录结构如下dataset/ ├── images/train/*.jpg ├── labels/train/*.txt # 每行: 类别id cx cy w h归一化坐标 ├── images/val/*.jpg ├── labels/val/*.txt └── data.yaml # 数据集配置标签 txt 里每一行代表一个目标五个数字分别是类别编号、中心x、中心y、宽、高全部归一化到 0~1。比如一张 640x640 的图上中心在 (320,320)、大小为 200x150 的helmet目标写0 0.5 0.5 0.3125 0.234375标注工具推荐LabelImg简单或Label Studio功能全标完自动导出成这个格式。注意类别编号从 0 开始和 data.yaml 里的names顺序一一对应。data.yaml长这样train:dataset/images/trainval:dataset/images/valnc:2names:[helmet,no_helmet]准备多少数据每个类别至少 100~300 张目标太小或遮挡多就再多一些。标注质量比数量重要宁可少而精。三、训练核心代码就三行fromultralyticsimportYOLO modelYOLO(yolov8n.pt)# 加载预训练权重自动下载几十 MBmodel.train(datadata.yaml,epochs50,imgsz640,device0)几个要点device0用 GPUdevicecpu用 CPU很慢建议有独显预训练权重做起点收敛快、效果稳这就是迁移学习训练产物在runs/detect/train/下best.pt是验证集效果最好的权重日志里主要看mAP50目标检测的核心指标0.5 及格、0.7 以上算不错。四、推理测试fromultralyticsimportYOLO modelYOLO(runs/detect/train/weights/best.pt)resultsmodel(test.jpg)rresults[0]forboxinr.boxes:print(类别:,int(box.cls),置信度:,round(float(box.conf),3),坐标:,box.xyxy.tolist())results.save()# 标注好的结果图存到 runs/detect/predict/r.boxes里每个目标都有类别、置信度、坐标xyxy 格式。结果图直接可视化一眼看出检测效果好坏。运行验证训练结束终端会打印mAP50等指标0.5 及格、0.7 以上不错推理时终端逐行打印类别 / 置信度 / 坐标并在runs/detect/predict/生成带框的结果图——看到框和数字说明训练→推理链路已通。五、导出部署交付的一步model.export(formatonnx)# 生成 best.onnx几秒完成导出成 ONNX 后就可以用上一篇文章《PyTorch 模型导出 ONNX》的 FastAPI 套路封装成接口输入图片输出检测框列表。要追求极致速度还可以formattensorrtN 卡专用加速明显。交付物best.onnx或 best.pt 推理代码 说明客户拿去就能用。六、常见坑坑解决中文路径/数据集路径报错一律用英文路径data.yaml 里的路径写对类别编号错乱标注从 0 开始必须和 data.yaml 的names顺序一致训练 loss 不降数据太少或标注不准先用预训练权重多跑几轮数据增强 ultralytics 默认已开CPU 训练太慢换yolov8n小模型先跑通流程或租一块 GPU 云主机误报多推理时加置信度阈值model.predict(x.jpg, conf0.5)七、总结流程就一条线标注数据 → 写 data.yaml → train → 推理验证 → export(onnx) → 部署。目标检测是接单和毕设里最实的方向之一口罩检测、安全帽检测、车辆计数、产品缺陷检测全是这套代码换个数据集的事。学会了就是一条稳定的变现路径。觉得有用点个赞收藏有问题评论区见看到都会回。
返回列表