从数据标注到RK3588部署:YOLOv8工程车识别完全指南

📅 发布时间:2026/8/31 17:37:56
从数据标注到RK3588部署:YOLOv8工程车识别完全指南 简介本资源是一套面向计算机视觉初学者与工程实践者的施工车辆类型识别数据集及YOLOv8适配方案专为工地安全监控、智能调度系统、自动化巡检等工业场景下的工程车细粒度识别任务设计。资源包含2000个文件其中661张高质量施工现场实景图像jpg、1338份对应标注文本txt用于边界框与类别标签以及1个完整配置的data.yaml文件总大小92.06MB结构规范、开箱即用。已有761人学习下载表明其在实际项目落地中具备较高参考价值。用户可直接加载该数据集训练YOLOv8模型快速实现对装载机、挖掘机、混凝土搅拌车、拉土车等多种典型工程车辆的高精度识别标注覆盖复杂光照、多角度遮挡及小目标工况配套yaml文件已预设类别映射与路径配置显著降低数据预处理与模型调试门槛。 挖掘机、装载机、搅拌车、拉土车这些铁疙瘩在工地上一字排开光靠门卫大爷肉眼分辨真的不现实。尤其搅拌站、砂石厂这种车辆出入频繁的场所调度、计量、计费、车辆引导全都依赖准确的车型识别人工登记又慢又容易出错。我自己做过一个工地车辆管理项目最开始想着用通用检测模型凑合用结果发现COCO数据集里压根没有装载机、搅拌车这些类别只能自己从零训练一个专用识别模型。这个需求其实非常典型工程车类型识别环境复杂、目标大、遮挡多、泥泞灰尘导致外观模糊。折腾下来YOLOv8是目前综合效果和落地成本最均衡的方案这也是我为什么把整套流程整理出来从数据标注、环境配置、模型训练一直讲到嵌入式部署给同样在做智慧工地、矿山安全、渣土车管理这些项目的朋友一条能直接照抄的路径。先说结论这个活儿完全可以用消费级显卡跑通。我自己用GTX 1660Ti6GB显存训练yolov8n和yolov8s一点压力没有yolov8m把batch降到4也能跑。模型选中和训练参数不能瞎套别人的工程车有它自己的规律和坑这篇就是把这套经验拆开讲清楚。1. 工程车识别场景的特殊性为什么通用检测模型搞不定很多人上来就问我直接用YOLOv8预训练的COCO权重行不行答案是差得远。COCO的80个类别里只有卡车、公交车这种泛化类目装载机、挖掘机、搅拌车、拉土车一个都没有。强行用通用模型去识别会把装载机认成普通货车把挖掘机认成吊车实际项目里这种错误是不能接受的。更深一层的问题是工程车类别的特征区分度比想象中低。装载机和拉土车车身轮廓接近俯拍角度下搅拌车和罐车也容易混淆挖掘机在不同工作姿态下外形差异巨大——大臂举起和收回完全是两种轮廓。这意味着模型不能只依赖粗粒度外形还得学会看铲斗结构、驾驶室位置、车斗形态这些细粒度特征这对数据标注和训练设置都有直接要求。还有一个被忽略的点工程车识别往往是固定监控视角跟自动驾驶那种动态视角不一样。这意味着背景相对稳定、车辆运动轨迹 predictable训练时可以利用这一特点做针对性优化比如裁剪固定区域、过滤远距离小目标而不是一上来就把模型搞得很复杂。我说这些是想强调做工程车识别第一个要解决的其实不是模型而是搞清楚部署场景到底长什么样。工程车识别的主要应用场景我梳理了一下基本都是刚需搅拌站/砂石厂车辆管理进站车辆自动分类、自动关联订单、防止串料智慧工地出入口车辆进出自动记录、违规车辆报警矿山/渣土车管理识别车型判断是否允许进入特定区域政府监管平台建筑垃圾运输车辆的自动识别和取证这些场景的共同特点是单路或多路固定摄像头、目标尺寸偏大、车速不快进出场/装卸料对实时性要求不是极致但对类别准确率要求很高。理解了这些约束后面的模型选型、分辨率设置、推理优化才有方向否则就是盲人摸象。2. 数据准备与标注工程车识别最容易被低估的环节模型好不好数据占七成。工程车项目尤其明显。我见过太多人上来就训练结果是模型反复抖动、类别混淆严重最后回头补数据一个来回浪费一周。这个环节宁可慢一点也要做扎实。2.1 数据采集先想清楚你的部署视角采集数据之前必须先回答三个问题摄像头装在什么位置角度是平视还是俯视是在出入口还是场地中间这些问题决定了你的训练数据分布。我自己的建议是数据采集尽量贴合部署场景。如果项目是搅拌站出入口的平视监控就别去找大量航拍俯视的挖掘机图片来训练视角差异会导致模型在真实场景里表现打折扣。另外工程车场景的特点是天气、光照、灰尘变化剧烈数据里必须涵盖晴天、阴天、夜间红外、扬尘模糊、雨雾这些情况否则白天效果好、晚上直接崩。一个实用的采集策略先从网上公开数据集和搜索引擎拿一批基础数据覆盖各类车型的常见车型和姿态作为底座然后去目标工地现场拍2-3个小时的监控视频抽帧作为场景适配数据。监控视频抽帧时注意间隔抽不要连续抽否则相似帧太多会造成数据富集训练时模型会对特定背景过拟合。2.2 类别体系设计工程车识别项目的类别划分直接影响模型效果。我的建议是第一版类别不要太多聚焦在装载机、搅拌车、挖掘机、拉土车四类核心车型。如果场景需要可以再加洒水车、压路机、推土机但每加一个类别就要保证有足够的样本支撑否则不如先不做。有一个容易踩的坑自卸货车和拉土车怎么区分这取决于你的业务定义。如果场景里拉土车城市渣土运输车封闭式货箱那普通自卸货车就绝对不能标成拉土车宁可不标也不能错标。分类边界模糊是数据标注里最致命的问题它会直接传导给模型导致类别间特征互相污染。所以标注规范里要明确写清楚什么算拉土车、什么不算怎么处理半遮挡、远距离、模糊目标。2.3 标注实操要点标注工具推荐用LabelImg或者X-AnyLabeling这两个都支持YOLO格式导出学习成本低。X-AnyLabeling还支持SAM辅助标注能省不少框选的力气。标注规范这块我到目前为止积累了几条非常有用的经验框的边界工程车是刚性机械结构标注框要紧贴车身轮廓。铲斗、大臂这种伸出部件如果是作业状态且明显就框进去如果是折叠状态就按车身框。关键是同一类车标准要一致不能有的框铲斗有的不框否则模型会被搞懵。遮挡处理工程车经常互相遮挡。遮挡面积小于30%的直接按正常框标注遮挡面积超过一半的建议不标或只在露出完整的车辆上标注。因为YOLO的损失函数对错位框很敏感半遮挡框会教给模型错误的定位信息。负样本一定要加如果场景里经常出现普通货车、轿车、行人不要只在正样本里训练一定要单独建一个不含目标的背景类图片集数量大概是总图片的10%-15%。这能显著降低误检率尤其是在工地上那种杂物繁多的环境里。夜间数据单独处理如果部署场景是24小时运行夜间红外数据必须要单独采集一批。工程车的夜间轮廓和白天差异很大没有夜间数据模型在夜间基本全废。标注完成之后用脚本检查一下各类别的标注框数量分布。正常情况下四类车型样本量应该大致均衡如果某一类只有另一个类的一半模型在这一类上的表现大概率会差。此时可以针对性补充数据或者后续在训练时设置每个类别的权重。2.4 数据集划分与增强标注好之后按7:2:1划分训练集、验证集、测试集。划分时注意同一辆车连续帧的图片要全部放在同一个集合里不能一部分在训练集一部分在测试集否则验证结果会虚高很多模型真实泛化能力被高估。数据增强我建议YOLOv8自带的增强策略先全开跑一版看看效果。重点调整两个一是hsv_h、hsv_s、hsv_v的扰动值工程车车身颜色相对固定黄色/白色/橙色但工地光照变化大适当提升饱和度扰动有助于泛化二是mosaic和mixup这两个增强对小数据集非常管用能大幅提升模型对遮挡和复杂环境的适应能力但对于车辆这种大目标mosaic概率可以适当调低否则目标被裁切太多反而引入噪声。3. 模型选型逻辑与环境配置3.1 选n、s还是m别一味地图大YOLOv8的模型规格从n、s、m、l到x参数量和计算量递增。工程车识别项目选择哪个主要看两件事部署硬件和精度需求。如果最终目标是部署到嵌入式设备RK3588、Jetson Orin这类我建议直接用yolov8n或者yolov8s因为嵌入式设备的NPU对模型大小和算力极其敏感。yolov8n在RK3588上可以跑到接近实时而yolov8s勉强yolov8m就非常吃力了。如果目标是纯PC端或服务器端可以选yolov8m精度更好反正不差算力。我个人的经验是工程车属于中大目标本身的语义特征不难学yolov8s的模型容量已经足够。如果s精度不达标优先补数据、调增强最后才考虑换更大的模型——大模型带来的精度提升很可能被过拟合淹没了而且部署时会更痛苦。3.2 环境配置的完整流程环境配置其实是训练过程中最容易出问题的环节之一尤其是PyTorch和CUDA版本不匹配经常让新手卡两天。我把完整的环境搭建步骤写在这里。如果你的硬件是GTX 1660Ti这种老卡驱动只要支持CUDA 11.8以上的版本就够用了完全没有必要追求RTX 40系。实际跑下来的结论是1660Ti 6GB显存跑yolov8n和yolov8s完全OKyolov8m需要把batch降到4。环境搭建的步骤安装Python 3.8或3.10推荐的稳定版本不要用最新的3.12或3.13很多包的兼容性还没跟上创建虚拟环境conda create -n yolov8 python3.10安装PyTorchpip install torch torchvision --index-url https://download.pytorch.org/whl/cu118安装ultralyticspip install ultralytics这里特别提醒一个大家都在问的问题YOLOv8官方支持的PyTorch版本要求其实很宽容只要1.8就能正常跑2.x系列都支持得很好。所以不用死磕最新版PyTorch2.0、2.1、2.2、2.3随便用稳定性反而更重要。ultralytics包会自动拉取YOLOv8模型权重不需要手动下载。如果你公司内网环境访问不了外网可以到GitHub的ultralytics仓库的release页面手动下载pt文件放到项目目录下代码会自动识别本地权重。3.3 网络结构C2f模块和Anchor-Free用YOLOv8不看一眼它和YOLOv5的区别后面就不好理解训练超参。YOLOv8的backbone里最核心的变化是C3模块换成了C2f模块C2f引入更多分支连接能更好地利用梯度信息在保持轻量化的同时提升特征表达能力。工程车这种外观细节丰富的目标C2f的梯度分流有助于网络学到更细的形态区别比如装载机和挖掘机的臂架结构差异。另一个变化是YOLOv8转向Anchor-Free检测头。之前YOLOv5依赖预设的anchor尺寸跨尺度目标适配成本高YOLOv8直接预测目标中心点与宽高省掉了anchor聚类和匹配的复杂性对小目标的鲁棒性也更好。工程车虽然是大目标但摄像头焦距不同同一辆车在不同机位里的像素尺寸差距很大Anchor-Free天然对这种尺度变化更稳。如果你对网络结构的具体细节感兴趣可以去看YOLOv8的网络结构图。网上有人做了非常详细的超细节注释版对照着看C2f、SPPF、PAN-FPN、Decoupled Head的关系会清晰很多这对后面做改进模块的时候帮助很大。3.4 改进方向怎么选很多人在YOLOv8基础上做改进实验最常见的是往C2f里嵌注意力模块。如果你有充分的时间做消融实验ECA和EMA这两种注意力机制都可以尝试。ECA是一条轻量高效的通道注意力实现通过一维卷积显式建模通道间依赖相对于SE它避免了降维带来的信息损失参数量增加极小适合工程车这种颜色特征重要的场景。EMA注意力机制则是在C2f中做跨空间学习的聚合能提升对目标尺度变化的适应性。但必须泼一盆冷水改进模块不是越多越好。我做过不少消融实验很多改进在公开数据集上有点提升放到实际工程车场景里就失效甚至掉点。原因很简单改进模块大多针对COCO这种细粒度小目标数据集设计工程车是少类别、大目标改进的收益不突出。我的建议是先把baseline训练到极致再考虑加改进否则你根本分不清精度提升是改进模块的功劳还是调参的运气。4. 训练全流程实操4.1 数据集目录结构YOLOv8训练前数据集的目录结构必须长这样datasets/ ├── train/ │ ├── images/ │ │ ├── 001.jpg │ │ └── 002.jpg │ └── labels/ │ ├── 001.txt │ └── 002.txt ├── val/ │ ├── images/ │ └── labels/ └── test/ ├── images/ └── labels/labels目录下的txt文件每行代表一个目标格式是class_id x_center y_center width height其中坐标值都是归一化到0-1的小数不是像素坐标。如果你是用LabelImg标注后导出YOLO格式ultralytics会帮你处理坐标转换。如果你是自己写脚本处理数据这个格式千万别搞错我见过太多人把像素坐标直接写进去导致训练直接报错或者loss收敛到NaN。4.2 data.yaml配置在数据集根目录下新建一个data.yaml内容如下train: datasets/train val: datasets/val test: datasets/test nc: 4 names: 0: loader 1: mixer 2: excavator 3: dumper这里注意两点train和val的路径建议相对于你执行训练命令的工作目录来写或者写绝对路径不要用~/这种家目录符号Windows环境经常解析失败names这个列表的索引顺序必须和标注txt文件里的class_id对应一旦错位模型会学着把挖掘机当成搅拌车而且混淆矩阵根本看不出来是顺序错了。4.3 训练命令与关键超参目录和配置文件都准备好之后训练命令很简单yolo detect train datadata.yaml modelyolov8s.pt epochs150 imgsz640 batch8 patience20这个命令是最小可用的版本但每个参数都值得细抠modelyolov8s.pt这里自动加载COCO预训练权重做迁移学习。工程车虽然不在COCO类别里但COCO训练出来的backbone特征提取能力依然非常有用能让模型快速收敛。不要用yolov8s.yaml从零开始训练否则300个epoch也不见得能收敛到同样的效果。imgsz640标准分辨率。工程车是大目标640完全够用不用强行上1280。如果你用的是1080P的监控画面且目标占比很大可以先降采样到640再训练推理时再处理高分辨率图效果和速度都能兼顾。batch8这个值受显存限制。GTX 1660Ti 6GB跑yolov8s时batch开8是极限开16会直接OOM。batch小的话训练会不稳但配合patience早停和适当降低学习率问题不大。如果显存更小把模型换成yolov8n。patience20连续20个epoch验证集mAP没有提升就提前结束训练。这个是显存小、时间紧的玩家的必备配置。epochs150工程车数据集规模如果每类只有几百张150个epoch基本足够跑完看曲线再决定要不要继续。不用一上来就冲300很多情况下100左右就收敛了。4.4 训练过程中怎么判断正常不正常训练启动后终端会滚动输出每一轮的loss、精度、召回率、mAP50等指标。很多人对着这些数字一脸茫然不知道自己的训练正不正常。我给几个能直接用的判断标准loss必须稳步下降前20轮loss下降快是正常的后面进入平台期。如果loss反复震荡且没有下行趋势先怀疑学习率太大或者数据标注有问题。mAP50如果在60个epoch后还没过0.8说明很可能数据量不足或标注质量参差不齐优先回头补数据而不是盲目加epoch。val_loss如果先降后升train_loss还在继续降这是标准的过拟合信号加数据增强、加dropout或者减小模型容量是三个解决方向。另外强烈建议打开YOLOv8自带的训练可视化结果。训练结束后在runs/detect/train/目录下会生成results.png里面包含了box_loss、cls_loss、dfl_loss、precision、recall、mAP50、mAP50-95共7条曲线的趋势。这张图是评估训练是否健康的第一手资料下面专门用一节来拆解它。5. 损失函数曲线怎么看从图里读出问题训练过程中loss曲线是最直观的模型健康检查报告。YOLOv8的loss有三个分量它们各自的意义完全不同很多人只盯总和其实是不对的。box_loss边界框回归损失衡量预测框和真实框的位置差距。这个值下降意味着模型框得越来越准。工程车是大目标box_loss的天然上限本来就不高如果它一直横盘不降大概率是标注框质量不行边缘参差不齐。cls_loss分类损失衡量类别预测的对错。这个值是判断类别混淆的最关键指标。如果cls_loss收敛缓慢结合后面混淆矩阵去看往往能找到哪两个类别互相纠缠。dfl_lossDistribution Focal Loss这是YOLOv8新引入的用于优化边界框的分布预测。它对小目标和边界模糊目标更敏感工程车这种目标轮廓清晰dfl_loss通常不会太高。基于GTX 1660Ti实测的经验值yolov8s在1000张训练图左右的数据集上训练到80-120个epoch时box_loss会从最初的2.x降到1.xcls_loss从2.x降到0.xdfl_loss从1.x降到0.x。如果loss降不下去有一个很隐蔽的原因是数据集里某类图片数量过少模型整体过拟合到了数据多的类别上。过拟合的经典曲线train_loss一路下降val_loss先降后升这就是典型的训练时间过长、模型开始背答案了。此时不要急着把epoch数加到300而是该做三件事打开数据增强开关特别是mosaic和mixup的概率调高一点增加验证集数据量让验证集的类分布更平滑设置更低的weight_decay默认0.0005可以试试0.001loss出现NaN怎么办这个问题比较少见但一旦遇到就是个大坑。大概率是数据扩充时出现了异常值比如标注框坐标超出图片边界或者数据集里有损坏的图片文件。排查方式是先用脚本检查所有图片能否正常读取再检查label文件里有没有索引越界或者坐标为负数的行。6. 评估指标与效果测试别只盯着mAP训练完成后YOLOv8会自动在验证集上计算指标并保存混淆矩阵、PR曲线等结果。但mAP只是一个笼统的数字要判断模型能不能真正上线还得拆开看。6.1 混淆矩阵是最有价值的图工程车识别项目里我最先看的不是mAP而是confusion_matrix.png。这张图能直接告诉你哪些类别之间互相混淆。以工程车四类为例最容易出现两类问题一是装载机和拉土车的大轮廓相似导致互相误判二是搅拌车和罐车如果你加了罐车类别的圆罐特征相似导致误判。如果混淆矩阵里这两个错误的数值比较高说明模型还没有学到足够区分的细节特征。此时不要盲目加数据而是先检查标注时有没有把这类车标注得过于随意比如有的标注框把装载机的铲斗排除在外、有的包含在内标准不一致模型就只能学到一个混乱的特征。6.2 P/R曲线与置信度阈值的选择YOLOv8推理时可以调置信度阈值conf参数越高框越少误检越低漏检越高参数越低框越多漏检越低误检越高。什么时候用什么阈值取决于你的业务是怕漏还是怕误。工程车场景通常是管理场景误检代价往往高于漏检。比如搅拌站误把挖掘机识别成搅拌车可能导致错误订单而纯漏检的话至少还有视频可以做人工复核。所以工程车项目的conf建议设在0.35-0.5之间要结合你的PR曲线在哪个置信度区间取得不错的平衡。在results.png里会有PR曲线曲线越靠近右上角说明模型越好。曲线下面的面积就是AP值。工程车四类目标大形态差异相对明显AP50在0.9以上是大概率能达到的水平。如果某一类AP值明显低于其它类就不用说了回到混淆矩阵去查那一类的问题。6.3 批量推理测试训练好的模型可以用yolo predict命令快速跑一批测试图yolo detect predict modelbest.pt sourcetest_images/ conf0.4跑完之后在runs/detect/predict目录下会生成标注好的图片。不要只看这些图片上的框准不准我推荐把漏检和误检的图单独挑出来分类统计原因。最常见的几种失败模式挖掘机大臂呈特定角度时漏检因为训练数据里这个角度比例太少夜间红外下搅拌车的轮廓泛白模型识别成“障碍物”或者直接不识别多辆车叠在一起互相遮挡时模型只会出其中一辆的框每次统计完失败模式就是一次数据补充的指导清单缺哪个角度补哪个角度缺哪种光照补哪种光照每一轮迭代都有明确的目标而不是盲目堆数据量。7. 部署落地从PyTorch模型到多平台运行模型训练完成只是第一步部署才是真正决定项目成败的环节。工程车识别系统常见的部署形态有三种PC端实时识别、手机端辅助识别、嵌入式设备边缘推理。7.1 模型导出为ONNX不管部署到哪个平台第一步都是把模型转成中间格式。ONNX是目前兼容性最好的选择。YOLOv8导出ONNX一句话yolo export modelbest.pt formatonnx imgsz640 opset11导出后在相同目录下会生成best.onnx。ONNX文件是跨平台的Windows/Linux/ARM都能跑后面部署就是围绕这个文件来的。如果你是用C或者C#做PC端应用可以直接接入OpenCV DNN模块或者ONNX Runtime不依赖PyTorch环境这样目标机器上连Python都不用装。7.2 ONNX输出的含义与C/C#后处理ONNX模型输出的张量形状一般是(1, 84, 8400)。8400是YOLOv8在不同尺度特征图上预测的候选目标总数84 4边界框坐标 80COCO类别概率。而你的工程车模型输出就是(1, 7, 8400)因为类别数改成了4所以448等一下这里需要澄清一下——YOLOv8的nc表示类别数输出的通道数为4nc。如果是4类输出就是(1, 8, 8400)。如果看到COCO的80说明你加载的是预训练权重而没做迁移训练。后处理的流程是先对8400个候选框做置信度过滤按最大类别概率如果大于conf阈值则保留然后做NMS非极大值抑制去重。这一步在C里实现就是排序遍历IoU过滤代码不复杂但要注意坐标是相对于输入图像的归一化值需要乘回原图尺寸。很多C/C#项目里会直接用OpenCV的dnn::NMSBoxes函数处理一句话就能完成NMS比手写靠谱得多。7.3 嵌入式设备部署以RK3588为例嵌入式部署是目前智慧工地项目里最热的方向之一因为现场往往没有PC服务器需要一个低功耗的盒子直接跑算法。RK3588是瑞芯微的旗舰边缘计算芯片6TOPS NPU算力部署YOLOv8s可以做到实时是性价比很高的选择。RK3588部署的完整链条是把best.pt导出成ONNX用RKNN-Toolkit2把ONNX转成RKNN格式转换时选择INT8量化可以把模型体积压缩到原来的1/4左右推理速度也大幅提升在板子上用RKNN Runtime加载模型推理这一步里最容易出问题的就是量化精度损失。INT8量化后模型的mAP通常会掉1%-3%对于工程车这种大目标影响相对可控。如果出现个别类别掉得厉害有几个解决办法用更大、更有代表性的量化校准数据集让量化器更准确地估算激活值范围对量化不友好的层比如某些注意力模块做混合量化保持FP16优先用yolov8n量化因为小模型量化后的精度损失一般比大模型更稳定如果你部署到的是Jetson平台流程也类似只是把RKNN换成TensorRT用trtexec工具把ONNX转成engine格式可以开启FP16精度损失比INT8小。7.4 手机端部署手机上跑YOLOv8也不是什么难事了。现在主流的方式是通过NCNN或者TNN把模型转成手机端可执行的格式然后嵌入到Flutter或者Android原生应用里。YOLOv8官方没有直接支持手机端但社区里已经有不少现成转换脚本使用起来也直接。需要提醒的是手机端NPU对算力的限制yolov8n在主流中端手机上大概能跑到20-30FPSyolov8s会降到10FPS以下所以手机端我建议只用n模型。8. 我踩过的坑和最终的几点建议最后分享一下这个项目里我踩过印象最深的几个坑以及现在换项目时一定会提前规避的事情。数据标注规范是我吃过的最大的亏。第一版数据标注时没有统一说明要不要框铲斗结果不同标注员框得五花八门。训练出来的模型在装载机侧前方角度总是漏检排查了很久最后看标注文件才发现有的铲斗在框内、有的在框外标注框面积差异波动极大。后来改了标注规范重新统一标准模型mAP直接涨了4个百分点。标注不是纯体力活标准先行非常重要。第二个坑是过拟合早停。我当时用了一个每类只有150张的小数据集上来直接设置了patience10结果在第30个epoch就触发了早停mAP停在0.75上不去。后来把学习率调低、数据增强加强、patience放宽到30才勉强练到0.85。小数据集下早停阈值设置太敏感反而会误杀模型宁可多跑几个epoch也别让它早停。要有耐心多跑几个版本验证。第三个坑在转ONNX的时候。我一开始用opset17结果在RKNN转换工具里报了一堆算子不支持的错。后来把opset降到11转换过程干净利落。这提醒我做嵌入式部署模型版本太新、算子太新不一定全是好事兼容性才是王道。如果你现在手头也要做工程车识别项目我的建议是别一来就追求大模型和花哨的改进模块。先把数据质量打牢把yolov8s baseline跑出稳定的效果再逐步迭代。工程车识别这个方向属于典型的“场景特殊但目标简单”的任务数据的边际收益远超模型的边际收益。不过话说回来模板化的代码比如我的config文件、训练命令网上到处都是真正拉开差距的其实是数据采集的覆盖度、标注规范的统一程度以及对每一条loss曲线的敏感度。能沉下心把这几件事做到位挖掘机、装载机、搅拌车、拉土车一个都跑不出你的模型手心。本文还有配套的精品资源点击获取