1. 项目背景与核心价值
药品包装识别与分类系统在医药流通、零售药房和医疗机构的库存管理中具有重要应用价值。传统人工分拣方式存在效率低、错误率高的问题,尤其面对海量SKU时更为明显。我们基于Faster R-CNN R50 FPN架构开发的这套系统,在Groie数据集上实现了94.7%的mAP(mean Average Precision),能够准确识别药盒上的关键信息(如药品名称、规格、批号、有效期等),并自动完成分类归档。
这个项目的技术亮点在于针对药品包装的特殊性做了多项优化:
- 处理反光材质包装的成像干扰
- 解决相似包装的细粒度分类问题
- 适应多语言文字混排场景
- 支持倾斜角度拍摄的包装识别
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术方案选型解析
2.1 为什么选择Faster R-CNN R50 FPN
在目标检测领域,我们对比了YOLO系列和SSD等主流架构后,最终选择Faster R-CNN的原因包括:
-
精度优势:对于药品包装这类需要精确边界框的场景,two-stage检测器在定位精度上明显优于one-stage方案。实测显示,在Groie数据集上Faster R-CNN比YOLOv5高3.2%的mAP。
-
特征提取能力:ResNet50+FPN的组合在保持计算效率的同时,能有效捕捉药品包装上不同尺度的特征。特别是对于小字号文字(如批号、有效期),FPN的多尺度特征融合表现出色。
-
实际部署考量:虽然推理速度不如YOLO系列,但在药品分拣场景下,30FPS的检测速度已完全满足产线需求(标准分拣线速度约20件/分钟)。
2.2 Groie数据集特性与增强
原始Groie数据集包含12,845张药品包装图像,涵盖3,217个不同SKU。我们进行了以下增强处理:
python复制# 典型的数据增强流程
transform = A.Compose([
A.RandomBrightnessContrast(p=0.5), # 应对反光问题
A.Rotate(limit=15, p=0.7), # 增加角度鲁棒性
A.GaussNoise(var_limit=(10, 50), p=0.3), # 模拟低质量图像
A.RandomResizedCrop(102
