
1. 项目背景与核心价值硬币在现代金融流通体系中依然扮演着重要角色银行、超市、公交系统等场景每天都需要处理大量硬币清点工作。传统人工计数方式效率低下且容易出错而市面上的商用清分机往往价格昂贵、体积庞大。这个项目正是为了解决这个痛点——通过机器视觉技术实现硬币的自动化识别与计数。我去年在本地商业银行实习时亲眼目睹柜员花费40多分钟清点一袋混合面值的硬币。这种低效操作促使我开发了这个系统经过三个月的迭代优化现在处理同样数量的硬币只需不到2分钟准确率稳定在99.6%以上。2. 系统架构设计2.1 整体方案选型系统采用前端采集云端处理的混合架构前端800万像素工业相机搭配环形LED光源处理端基于YOLOv5s的改进模型运行在NVIDIA Jetson Xavier NX传输协议RTSP视频流传输选择YOLOv5而非更新的v7/v8版本主要考虑到硬币检测属于小目标密集场景v5的FPN结构对2-5mm大小的硬币特征提取更有效在Jetson平台上的TensorRT加速支持更成熟模型体积仅14.4MB满足边缘设备部署需求2.2 关键组件参数组件型号/参数选择依据工业相机海康威视MV-CE080-10GM全局快门避免运动模糊光源白色环形LED(直径150mm)消除硬币表面反光处理平台Jetson Xavier NX21TOPS算力支持实时处理镜头8mm定焦镜头工作距离15cm时视场覆盖A4纸大小区域3. 核心算法实现3.1 数据准备与增强我们收集了包含12种常见硬币的标注数据集人民币1元、5角、1角新旧版外币美元、欧元、日元等常见币种数据量原始图像3,200张通过增强扩展到25,600张特殊的数据增强策略模拟硬币堆叠随机擦除部分区域光照变化调整HSV空间的V通道±30%运动模糊添加5-15px的线性模糊# 示例数据增强代码 transform transforms.Compose([ transforms.RandomErasing(p0.5, scale(0.02, 0.1)), transforms.ColorJitter(hue0, saturation0, brightness0.3), transforms.GaussianBlur(kernel_size(5,15), sigma(0.1,2.0)) ])3.2 模型改进方案在YOLOv5s基础上引入注意力机制在Backbone末端添加CBAM模块改进损失函数使用SIoU替代CIoU自适应特征融合BiFPN结构替换原PANet改进后的模型在自建测试集上mAP0.5从0.921提升到0.963特别是对小面额硬币的识别准确率提升显著。关键技巧硬币识别中边缘齿纹特征比中心图案更具区分度。我们在训练时对图像边缘区域给予更高采样权重。4. 工程实现细节4.1 图像预处理流水线背景分割使用HSV色彩空间的饱和度通道进行OTSU阈值分割透视校正检测硬币堆边缘进行Homography变换光照均衡CLAHE算法处理局部过曝/欠曝区域// OpenCV实现示例 Mat clahe_apply(Mat src) { Mat lab, dst; cvtColor(src, lab, COLOR_BGR2Lab); vectorMat channels; split(lab, channels); PtrCLAHE clahe createCLAHE(2.0, Size(8,8)); clahe-apply(channels[0], channels[0]); merge(channels, lab); cvtColor(lab, dst, COLOR_Lab2BGR); return dst; }4.2 多硬币重叠解决方案针对堆叠硬币的识别难题我们开发了三级处理策略初级检测YOLO输出所有候选框轮廓分析对低置信度检测结果进行GrabCut分割几何验证基于硬币直径先验知识过滤误检5. 系统部署与优化5.1 Jetson平台优化关键优化措施模型量化FP32→INT8量化速度提升2.3倍内存优化使用TensorRT的显存池技术流水线处理将图像采集与推理分线程运行# TensorRT转换命令示例 ./trtexec --onnxcoin_yolov5s.onnx --fp16 --int8 --saveEnginecoin_yolov5s.engine5.2 性能指标指标优化前优化后处理速度15FPS38FPS内存占用2.1GB1.4GB功耗18W12W6. 常见问题与解决方案6.1 典型故障排查表现象可能原因解决方案识别率突然下降镜头污染清洁镜片并重新校准白平衡计数结果偏多硬币反光过强调整光源角度或降低亮度30%系统卡顿温度过高检查散热风扇必要时降频运行6.2 实际应用中的经验环境光干扰在设备外围加装遮光罩效果显著新旧硬币区分建议客户定期更新训练数据每半年一次外币识别可通过在线API补充实时汇率查询功能7. 扩展应用方向当前系统已成功应用于商业银行硬币存款机公交公司零钱清分系统超市自助收银台的找零验证未来可扩展结合区块链技术实现硬币流通溯源增加磨损程度检测辅助残币回收适配纪念币等特殊币种的识别这个项目最让我意外的是原本为解决银行需求开发的系统后来在收藏品鉴定领域获得了更多应用。许多钱币收藏者使用我们的识别系统来快速分类整理藏品这促使我们增加了对历史货币的支持模块。