摘要

本研究针对药品识别领域的需求,构建了一个基于YOLO26的药物检测系统,旨在实现对多种药品及其颜色属性的自动识别。该系统可识别8个类别,包括4种药品(Cipro 500、Ibuphil 600 mg、Ibuphil Cold 400-60、Xyzall 5mg)和4种颜色属性(蓝色、粉色、红色、白色)。实验采用451张标注图像,按7:2:1比例划分为训练集(316张)、验证集(90张)和测试集(45张)。模型在验证集上取得了优异的表现,整体mAP50达到0.973,mAP50-95达到0.893,精度为0.949,召回率为0.851。各类别中,颜色类别的识别效果最佳,召回率均达到1.0,药品类别的mAP50也均在0.89以上。实验结果表明,该系统能够有效识别各类药品及其颜色特征,具有良好的实用价值和应用前景。

详细功能展示视频

https://www.bilibili.com/video/BV1iKd2BcEec/?spm_id_from=333.1387.upload.video_card.click&vd_source=8279e3d5f4d5d4f0cb2bf5c842393764https://www.bilibili.com/video/BV1iKd2BcEec/?spm_id_from=333.1387.upload.video_card.click&vd_source=8279e3d5f4d5d4f0cb2bf5c842393764https://www.bilibili.com/video/BV1iKd2BcEec/

目录

  摘要

详细功能展示视频

功能模块

1、用户管理模块

2、界面与交互模块

3、检测源管理模块

4、检测参数配置模块

5、YOLO检测核心模块

6、结果显示模块

7、结果保存模块

8、工具栏功能

9、辅助功能

10、数据校验模块

引言

背景

药品自动识别的需求与挑战

计算机视觉在药品识别中的应用

本研究的定位

应用前景

数据集介绍

类别设置

训练结果​

Ultralytics YOLO26

概述

主要功能

详细功能展示视频


功能模块

用户登录注册:支持密码检测,密码加密。

注册

登录

✅ 图片检测:可对图片进行检测,返回检测框及类别信息。

支持选择检测目标:可以选择一个或者多个类目的目标进行检测

参数实时调节(置信度和IoU阈值)

✅ 视频检测:支持视频文件输入,检测视频中每一帧的情况。

✅ 摄像头实时检测:连接USB 摄像头,实现实时监测。

日志记录:日志标签页记录操作和错误信息,带时间戳

结果保存模块:支持图片/视频/摄像头检测结果保存

1、用户管理模块

功能 描述
用户注册 用户名、密码、确认密码、邮箱(选填)注册,密码SHA256加密存储
用户登录 用户名密码验证,自动跳转主界面
用户数据存储 JSON文件存储用户信息(密码加密、注册时间、邮箱)
登录状态 主界面显示当前登录用户名

2、界面与交互模块

功能 描述
玻璃效果界面 半透明毛玻璃背景,圆角边框,现代化视觉风格
无边框窗口 自定义标题栏,支持窗口拖动、最小化、最大化、关闭
响应式布局 主窗口三栏布局(左侧控制区、中央显示区、右侧信息区)
状态栏 显示设备信息、模型状态、当前用户、实时时间

3、检测源管理模块

功能 描述
图片检测 支持JPG/JPEG/PNG/BMP格式图片载入
视频检测 支持MP4/AVI/MOV/MKV格式视频载入
摄像头检测 实时调用摄像头(默认ID 0)进行检测
检测源切换 下拉菜单切换三种检测模式,自动更新界面状态

4、检测参数配置模块

功能 描述
置信度阈值 滑动条调节(0-100%,步长1%),实时显示当前值
IoU阈值 滑动条调节(0-100%,步长1%),实时显示当前值
类别选择 动态生成检测类别复选框,支持全选/取消全选
参数同步 参数实时同步到检测器核心

5、YOLO检测核心模块

功能 描述
模型加载 加载best.pt模型文件,自动检测GPU可用性,支持CPU/GPU切换
多模式检测 图片检测、视频检测、摄像头实时检测
检测线程 基于QThread的多线程处理,避免界面卡顿
检测结果 返回目标类别、置信度、边界框坐标
FPS计算 实时计算处理帧率
进度反馈 视频处理进度条实时更新

6、结果显示模块

功能 描述
实时画面 中央区域显示检测结果图像(带标注框)
统计信息 检测状态、目标数量、FPS、处理帧数实时更新
检测列表 右侧列表显示当前帧所有检测到的目标(类别+置信度)
日志记录 日志标签页记录操作和错误信息,带时间戳
占位显示 未选择检测源时显示系统LOGO和提示文字

7、结果保存模块

功能 描述
保存开关 复选框控制是否保存检测结果
路径选择 自定义保存路径,支持图片/视频格式自动识别
自动命名 保存文件自动添加时间戳(detection_result_20240101_120000.jpg
视频保存 支持检测结果视频录制(MP4格式)
手动保存 工具栏保存按钮可随时保存当前画面
保存反馈 保存成功弹窗提示,日志记录保存路径

8、工具栏功能

功能 描述
图片按钮 快速切换到图片检测模式并打开文件选择器
视频按钮 快速切换到视频检测模式并打开文件选择器
摄像头按钮 快速切换到摄像头检测模式
保存按钮 手动保存当前显示画面

9、辅助功能

功能 描述
错误处理 统一错误弹窗提示,日志记录错误详情
资源清理 检测停止时自动释放摄像头、视频文件、视频写入器资源
时间显示 状态栏实时显示系统时间
模型状态 状态栏显示模型加载状态和当前设备(CPU/GPU)

10、数据校验模块

功能 描述
注册验证 用户名长度≥3,密码长度≥6,密码一致性检查,邮箱格式验证
协议确认 注册前需勾选同意用户协议
文件校验 模型文件存在性检查,文件大小验证(≥6MB)
输入非空 登录/注册时必填项非空检查

引言

随着医疗健康领域的数字化发展,药品的自动识别技术在药房管理、用药安全监测、智能售药系统等场景中发挥着越来越重要的作用。传统的药品识别主要依赖人工核对或条码扫描,存在效率低下、易出错、适用范围有限等问题。基于计算机视觉的目标检测技术为实现药品的自动识别提供了新的解决方案。

然而,药品识别面临诸多挑战:药品包装相似、同一药品可能有多种规格、颜色特征对药品区分具有重要作用等。因此,一个理想的药品识别系统不仅要能识别药品名称,还应能识别药品的颜色特征,以提高识别的准确性和可靠性。

本研究采用YOLO26目标检测算法,构建了一个能够同时识别药品类型和颜色属性的多类别检测系统。系统可识别8个类别,涵盖4种常见药品及其4种颜色属性,为药品的自动化识别和管理提供技术支持。

背景

药品自动识别的需求与挑战

在医疗健康领域,药品的准确识别对于保障用药安全、提高医疗效率具有重要意义。据统计,用药错误是医疗事故中常见的原因之一,其中药品混淆是主要因素。在药房配药、住院用药、家庭用药等场景中,人工核对药品往往依赖于药师的个人经验和注意力,存在主观性和疲劳导致的误判风险。

药品包装具有多样性和相似性的特点。不同药厂的同一药品可能有不同包装,而不同药品的包装也可能相似,这增加了人工识别的难度。此外,药品的颜色特征在药品识别中扮演着重要角色,同一药品可能有不同颜色的剂型或包装,颜色信息对于药品的正确识别至关重要。

计算机视觉在药品识别中的应用

近年来,计算机视觉技术在医疗领域的应用不断深入。在药品识别方面,研究者们尝试了多种技术路线。早期的研究主要基于传统的图像处理方法,如颜色直方图、SIFT特征等,结合机器学习分类器进行识别。这些方法在受控环境下取得了一定效果,但对光照、角度、遮挡等变化的鲁棒性较差。

随着深度学习技术的发展,卷积神经网络在图像识别任务中展现出强大的能力。目标检测算法的发展为药品识别提供了更精确的解决方案。Faster R-CNN、SSD、YOLO系列等算法能够同时定位和识别图像中的多个目标,更符合实际应用场景的需求。

本研究的定位

本研究基于YOLO26算法,构建了一个专门针对药品识别的检测系统。系统的创新之处在于同时识别药品名称和颜色属性,这种多属性识别方式更贴近实际应用需求。例如,在识别"Xyzall 5mg"的同时,还能识别其颜色为"蓝色",这种细粒度的识别结果有助于进一步确认药品的正确性。

系统涵盖的8个类别中,4个药品类别(Cipro 500、Ibuphil 600 mg、Ibuphil Cold 400-60、Xyzall 5mg)代表了不同类型的药品,4个颜色类别(蓝色、粉色、红色、白色)则是这些药品可能呈现的颜色属性。通过这种组合识别方式,系统能够提供更丰富的药品信息,为后续的药品管理和核对提供更可靠的依据。

应用前景

该系统的应用前景广阔。在药房自动化方面,可用于自动核对配药结果;在家庭用药安全方面,可通过手机应用帮助用户识别药品;在医疗机构中,可用于药品库存管理和分发核对。此外,该系统还可扩展用于药品真伪鉴别、过期药品识别等场景。

随着医疗信息化的发展,药品自动识别技术将与电子处方、药品追溯系统等结合,形成完整的用药安全闭环。本研究为这一目标的实现提供了基础技术支持。

数据集介绍

本研究构建了一个专门用于药品识别的图像数据集,包含451张标注图像。数据集按7:2:1的比例划分为训练集(316张)、验证集(90张)和测试集(45张),确保了模型训练、调优和评估的独立性。

类别设置

数据集包含8个类别,分为药品名称类和颜色属性类:

药品名称类:

  • Cipro 500:一种抗生素药品,标注样本26个

  • Ibuphil 600 mg:布洛芬制剂,由于样本较少仅1个实例

  • Ibuphil Cold 400-60:复方感冒药,标注样本10个

  • Xyzall 5mg:抗过敏药物,标注样本10个

颜色属性类:

  • blue(蓝色):药品的蓝色特征,标注样本15个

  • pink(粉色):药品的粉色特征,标注样本15个

  • red(红色):药品的红色特征,标注样本15个

  • white(白色):药品的白色特征,标注样本10个

训练结果

1、模型总体表现

从 fce65ee7-4b7b-4539-891b-53e554f0df89.png 中可以看到:

  • 总样本数:90 张图像,98 个目标实例

  • 总体指标

    • 精度(Precision):0.949

    • 召回率(Recall):0.851

    • mAP50:0.973

    • mAP50-95:0.893

结论:模型整体表现非常优秀,mAP50 高达 0.973,说明在 IoU=0.5 的情况下检测准确率极高;mAP50-95 为 0.893,说明模型在不同 IoU 阈值下也保持良好的稳定性。


2、各类别表现分析

类别 精度(P) 召回率(R) mAP50 样本数
Cipro 500 0.95 0.923 0.941 26
Ibuphil 600 mg 0 0.995 0.895 1
Ibuphil Cold 0.908 0.993 0.913 10
Xyzall 5mg 1.0 0.89 0.962 10
blue 0.976 1.0 0.995 15
pink 0.96 1.0 0.995 15
red 0.98 1.0 0.995 15
white 0.809 1.0 0.986 10

观察:

  • 颜色类别(blue/pink/red/white) 召回率均为 1.0,说明模型几乎不会漏检这些类别。

  • 白色(white) 精度较低(0.809),可能存在误检或特征不明显的问题。

  • Ibuphil 600 mg 样本极少(仅 1 张),但召回率很高(0.995)。


3、混淆矩阵分析

从 confusion_matrix_normalized.png 和原始矩阵来看:

  • 大部分类别之间没有明显混淆,说明类别区分度较好。

  • 背景被误检为目标的情况较少,模型对背景的抑制能力较强。

  • 但部分类别(如白色)可能与其他颜色类别有一定混淆,需进一步观察。


4、精度-置信度曲线(BoxP_curve.png)

  • 所有类别的精度在置信度 1.0 时达到 0.99,说明模型在最高置信度下非常可靠。

  • 随着置信度降低,精度略有下降,但整体保持较高水平。


5、召回率-置信度曲线(BoxR_curve.png)

  • 所有类别在置信度 0.0 时召回率最高(0.93),说明模型对低置信度预测也能覆盖大多数目标。

  • 随着置信度提高,召回率下降,符合预期。


6、训练过程(results.png)

  • 训练损失(box/cls/dfl) 持续下降,未出现明显震荡。

  • 验证损失 同样下降平稳,说明模型没有过拟合。

  • mAP50 和 mAP50-95 在训练后期趋于稳定,说明模型已收敛。

Ultralytics YOLO26

概述

Ultralytics  YOLO26 是 YOLO 系列实时对象检测器的最新演进,从头开始专为边缘和低功耗设备而设计。它引入了简化的设计,消除了不必要的复杂性,同时集成了有针对性的创新,以实现更快、更轻、更易于访问的部署。

YOLO26 的架构遵循三个核心原则:

  • 简洁性: YOLO26是一个原生的端到端模型,直接生成预测结果,无需非极大值抑制(NMS)。通过消除这一后处理步骤,推理变得更快、更轻量,并且更容易部署到实际系统中。这种突破性方法最初由清华大学的王傲在YOLOv10中开创,并在YOLO26中得到了进一步发展。
  • 部署效率: 端到端设计消除了管道的整个阶段,从而大大简化了集成,减少了延迟,并使部署在各种环境中更加稳健。
  • 训练创新:YOLO26 引入了MuSGD 优化器,它是SGD 和MUON的混合体——灵感来源于 Moonshot AI 在 LLM 训练中Kimi K2的突破。该优化器带来了增强的稳定性和更快的收敛,将语言模型中的优化进展转移到计算机视觉领域。
  • 任务特定优化:YOLO26 针对专业任务引入了有针对性的改进,包括用于 Segmentation 的语义分割损失和多尺度原型模块,用于高精度 姿势估计 的残差对数似然估计 (RLE),以及通过角度损失优化解码以解决 旋转框检测 中的边界问题。

这些创新共同提供了一个模型系列,该模型系列在小对象上实现了更高的精度,提供了无缝部署,并且在 CPU 上的运行速度提高了 43% — 使 YOLO26 成为迄今为止资源受限环境中最实用和可部署的 YOLO 模型之一。

主要功能

  • DFL 移除
    分布式焦点损失(DFL)模块虽然有效,但常常使导出复杂化并限制了硬件兼容性。YOLO26 完全移除了 DFL,简化了推理过程,并拓宽了对边缘和低功耗设备的支持。

  • 端到端无NMS推理
    与依赖NMS作为独立后处理步骤的传统检测器不同,YOLO26是原生端到端的。预测结果直接生成,减少了延迟,并使集成到生产系统更快、更轻量、更可靠。

  • ProgLoss + STAL
    改进的损失函数提高了检测精度,在小目标识别方面有显著改进,这是物联网、机器人、航空影像和其他边缘应用的关键要求。

  • MuSGD Optimizer
    一种新型混合优化器,结合了SGD和Muon。灵感来自 Moonshot AI 的Kimi K2,MuSGD 将 LLM 训练中的先进优化方法引入计算机视觉,从而实现更稳定的训练和更快的收敛。

  • CPU推理速度提升高达43%
    YOLO26专为边缘计算优化,提供显著更快的CPU推理,确保在没有GPU的设备上实现实时性能。

  • 实例分割增强
    引入语义分割损失以改善模型收敛,以及升级的原型模块,该模块利用多尺度信息以获得卓越的掩膜质量。

  • 精确姿势估计
    集​成残差对数似然估计​(RLE),以实现更精确的关键点定位,并优化解码过程以提高推理速度。

  • 优化旋转框检测解码
    引入专门的角度损失以提高方形物体的检测精度,并优化旋转框检测解码以解决边界不连续性问题。

假设您现在准备好进行标注。有几种开源工具可以帮助简化数据标注流程。以下是一些有用的开放标注工具:

Label Studio:一个灵活的工具,支持各种标注任务,并包含用于管理项目和质量控制的功能。 CVAT:一个强大的工具,支持各种标注格式和可定制的工作流程,使其适用于复杂的项目。 Labelme:一个简单易用的工具,可以快速标注带有多边形的图像,非常适合简单的任务。 LabelImg: 一款易于使用的图形图像标注工具,特别适合以 YOLO 格式创建边界框标注。

用于实例分割的 LabelMe 标注工具

这些开源工具经济实惠,并提供一系列功能来满足不同的标注需求。

界面核心代码:

 详细功能展示视频

https://www.bilibili.com/video/BV1iKd2BcEec/?spm_id_from=333.1387.upload.video_card.click&vd_source=8279e3d5f4d5d4f0cb2bf5c842393764https://www.bilibili.com/video/BV1iKd2BcEec/?spm_id_from=333.1387.upload.video_card.click&vd_source=8279e3d5f4d5d4f0cb2bf5c842393764https://www.bilibili.com/video/BV1iKd2BcEec/

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐