1. 项目背景与核心价值
药品包装识别与分类系统在医药流通领域具有重要应用价值。想象一下药房仓库里堆积如山的药品箱,传统人工分拣不仅效率低下,还容易因视觉疲劳导致错分。我们开发的这套系统,正是为了解决这个行业痛点。
Faster R-CNN R50 FPN作为目标检测领域的经典模型,在精度和速度之间取得了良好平衡。我们选择这个架构,主要是考虑到药品包装通常具有以下特征:
- 包装尺寸差异大(从几厘米的药盒到几十厘米的大箱)
- 印刷样式复杂(包含大量文字、条形码和彩色图案)
- 摆放角度多变(仓库中可能任意角度堆叠)
Groie数据集是专门针对药品包装收集的标注数据集,包含超过5万张标注图像,覆盖2000多种常见药品包装。这个数据集的最大特点是:
- 标注了包装的6个关键点(4个角点+2个中心点)
- 包含多角度拍摄样本
- 标注了包装表面的主要文字区域
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构详解
2.1 模型选型考量
为什么选择Faster R-CNN而不是YOLO或SSD?我们在预实验中对比发现:
- 对于小包装检测(如药盒),Faster R-CNN的FPN结构能更好地保留细节特征
- R50 backbone在精度和推理速度上达到最佳平衡(实测V100上可达23FPS)
- 两阶段检测对重叠包装的区分度更好
模型配置关键参数:
python复制model = fasterrcnn_resnet50_fpn(
pretrained=True,
box_score_thresh=0.85, # 提高阈值减少误检
box_nms_thresh=0.3, # 适度放宽NMS以处理密集包装
box_detections_per_img=200 # 单图最大检测数
)
2.2 数据预处理流水线
针对药品包装的特殊性,我们设计了增强方案:
python复制transforms = [
RandomRotate(degrees=(-15,15)), # 模拟仓库随机摆放
ColorJitter(brightness=0.3, contrast=0.2), # 应对不同光照条件
RandomErasing(p=0.5, scale=(0.02,0.1)), #
