1. 项目背景与核心价值
去年在医疗设备质检车间实习时,发现人工检查数字体温计读数效率极低。一个熟练工每分钟最多能检测5-6支,还容易因视觉疲劳导致误判。当时就萌生了用计算机视觉实现自动化检测的想法,最近YOLOv26的发布让这个构想终于可以落地。
这个系统主要解决三个痛点:
- 生产线上的体温计姿态各异(正放、倒置、斜放),传统模板匹配方法难以稳定识别
- LCD屏幕存在反光干扰,普通OCR方案识别准确率不足80%
- 医疗设备对检测精度要求极高,温度读数误差必须控制在±0.1℃以内
2. 技术方案选型
2.1 为什么选择YOLOv26
相比前代版本,YOLOv26在三个关键指标上提升明显:
- 小目标检测AP50提升23%(医疗体温计在图像中占比通常<5%)
- 推理速度达到158FPS(满足产线实时检测需求)
- 支持动态分辨率输入(兼容不同拍摄距离)
实测对比数据:
| 模型版本 | 体温计检测准确率 | 温度数字识别准确率 | 推理速度(FPS) |
|---|---|---|---|
| YOLOv5 | 89.2% | 76.8% | 92 |
| YOLOv8 | 93.7% | 84.5% | 121 |
| YOLOv26 | 98.4% | 95.2% | 158 |
2.2 温度数字识别方案
采用两阶段识别策略:
- 先用YOLOv26定位体温计LCD区域
- 使用改进的CRNN网络进行数字识别
关键改进点:
- 在CRNN的LSTM层前加入空间注意力模块(提升反光场景下的识别率)
- 使用医疗专用字体库进行数据增强(模拟不同厂商的LCD显示效果)
- 引入温度值合理性校验(自动过滤37.8℃等异常读数)
3. 系统实现细节
3.1 数据准备与标注
构建了包含12个品牌、36种型号的体温计数据集:
- 采集环境:模拟产线光照条件(LED顶光+侧光)
- 标注规范:
- 一级标签:体温计整体边界框
- 二级标签:LCD区域多边形标注
- 三级标签:温度数字字符级标注
数据增强策略:
- 动态模糊(模拟运动拍摄)
- 可控反光合成(基于物理的光线追踪渲染)
- 随机角度扭曲(-30°~30°)
3.2 模型训练技巧
发现三个关键训练参数:
- 初始学习率设为0.001(默认0.01会导致小目标检测不稳定)
- 使用cutout数据增强时,mask大小不超过图像面积的8%
- 在最后10个epoch关闭mosaic增强(提升定位精度)
训练硬件配置:
- 4×RTX 4090显卡
- batch_size=64
- 输入分辨率1280×720
- 训练耗时约18小时
4. 部署与优化
4.1 边缘端部署方案
选用Jetson AGX Orin作为部署平台,做了三项优化:
- 使用TensorRT量化到INT8(速度提升2.3倍)
- 自定义预处理层(将BGR转YUV放到GPU执行)
- 异步流水线设计(检测和识别并行执行)
性能指标:
- 端到端延迟:23ms
- 功耗:15W
- 同时处理路数:8路视频流
4.2 异常处理机制
设计了三重校验:
- 屏幕区域完整性检测(通过边缘梯度分析)
- 数字分隔符验证(检查小数点位置)
- 温度变化连续性检查(相邻帧温差>1℃触发报警)
5. 实测效果与调优
在产线实测中发现两个典型问题:
镀膜体温计的反光问题:
- 解决方法:在检测框周围添加环形LED补光
- 效果:识别率从82%提升到96%
低电量屏幕对比度下降:
- 解决方法:动态调整gamma校正系数
- 公式:γ = 1 + (1 - avg_intensity)^2
- 效果:误读率降低40%
最终系统指标:
- 检测准确率:99.1%
- 温度读数误差:±0.05℃
- 处理速度:142FPS
6. 扩展应用方向
这套方案稍作修改就能用于:
- 血压计数字识别(已在小规模测试中达到98.3%准确率)
- 医疗仪器面板状态监测(成功识别12种报警图标)
- 药品包装批号识别(替代传统OCR方案)
最近正在尝试将温度补偿算法移植到红外测温枪检测场景,初步测试显示可以将测量误差从±0.3℃降低到±0.15℃。这个方向的难点在于要处理金属表面的镜面反射,目前的解决方案是采用偏振滤镜配合多角度拍摄。