
做AI视觉开门柜核心就两件事硬件跑得动模型认得准。本文不讲理论只讲数据准备、训练策略、部署优化这些实战细节。一、数据准备6万张图是怎么来的很多人的第一反应是直接用公开数据集不就完了公开数据集确实有但自动售货机场景比较特殊——商品密集摆放、互相遮挡、光照条件差、SKU五花八门。公开数据集根本不适用。我们的数据来源实景采集在20台测试设备上部署数据采集功能用户真实购物时自动记录视频和识别结果持续采集了3个月积累了约4.5万张真实场景图片。主动补拍针对数据不足的SKU和场景夜间、遮挡、极端角度专门组织补拍约1.2万张。合成数据用图像合成技术生成了一些数据——把商品抠出来随机贴在背景上约3000张。合成数据对提升模型泛化能力有一定帮助。数据标注找了8个标注人员标注了全部6万多张图片。每张图标注商品类别和边界框总共标注了41万个目标。最终训练集6万张验证集3000张测试集3000张。覆盖SKU 300多种——饮料、零食、泡面、文具、日用品都有。二、模型选型YOLOv11n为什么是最佳选择我们对比了YOLOv5s、YOLOv8n、YOLOv11n和轻量级方案。YOLOv5s推理速度只有15FPS在RK3588上跑不太动。淘汰。YOLOv8n推理速度20FPS精度尚可。YOLOv11n发布后性价比更高。淘汰。YOLOv11n推理速度23FPSmAP0.5约89.7%模型体积不到45MB。最终选择。轻量级方案如MobileNetSSD精度只有80%出头远不够用。淘汰。三、训练策略让模型适应售货机场景训练过程分了四步第一步用COCO预训练权重初始化冻结主干网络只训练检测头。这一步很快1个epoch就能看到效果。第二步解冻全部网络用较小学习率1e-4微调整个模型。这一步最耗时但也是精度提升的关键。第三步数据增强训练——Mosaic增强、随机遮挡、随机亮度调整、随机旋转。专门加入遮挡和低光照的数据增强模拟售货机真实场景。第四步用实际测试中表现不佳的图片做hard negative mining重新训练一个epoch专门处理难样本。整个过程在单张RTX 3090上跑了大约5天。四、夜间识别准确率为什么掉到91%怎么解决的白天自然光下准确率96%以上夜间补光条件下只有91%-93%。这是最头疼的问题。原因分析夜间LED补光不均匀有的区域过亮有的过暗商品包装的反光材质在补光下产生眩光模型对低光照条件下的特征提取能力不足。我们的解决方案数据侧在训练数据中加入大量低光照样本亮度降低到原始图像的30%-50%让模型适应低光环境。硬件侧调整LED补光灯的安装位置和角度从顶部直射改为两侧45度照射减少眩光。同时通过RK ISP的tuning工具调整白平衡和曝光参数。算法侧在推理管道中加入图像预处理——自动对比度拉伸提升暗部细节。最终结果夜间准确率从91.3%提升到了95.8%。加上重力辅助校验后端到端准确率稳定在98%以上。五、SKU变化怎么处理新增一种饮料要重新训吗零售场景的SKU变化非常频繁。今天上新一款饮料明天下架一款零食。每次新增SKU都要重新训练模型的话运维成本太高了。我们的方案是两步走核心模型识别商品的大类饮料、零食、日用品和粗略特征包装颜色、形状、大小。在大类内再做增量学习用少量样本10-20张训练一个轻量级分类器区分同一大类的不同SKU。新增SKU时只需要采集20张图片用增量学习更新分类器即可不需要重新训练整个模型。整个过程约30分钟不需要重新部署。实测增量学习的分类准确率约92%加上核心模型的初筛整体准确率损失不到1%。六、模型蒸馏让轻量级模型学会大模型的本事RK3588虽然算力够但同时也跑着视觉推理、Android系统、支付模块、广告播放。YOLOv11n已经是最轻量级的版本但23FPS的推理速度占用了大部分NPU资源。我们尝试了模型蒸馏——用YOLOv11m更大的模型作为教师模型蒸馏出更轻量的学生模型。蒸馏结果是学生模型推理速度从23FPS提升到38FPSmAP下降约2个百分点。速度换精度对某些场景要求更低功耗、更长续航有价值。七、总结核心经验模型精度不是瓶颈数据质量和场景适配才是。YOLOv11n在RK3588上的精度完全够用白天96%夜间95.8%配合重力感应辅助校验后稳定在98%以上。真正需要花时间的是数据采集的覆盖率光照、角度、遮挡、SKU、背景。硬件ISP调优曝光、白平衡、降噪、补光均匀性。边缘端推理的稳定性降频、延迟、内存泄漏。如果你正在做类似项目建议把80%的精力放在数据、硬件和工程上模型本身反而是最好解决的问题。