王玉群,孟名柱
(南京医科大学附属常州第二人民医院1.药剂科;2.医学影像科,常州 213164)
医院门急诊药房药品调配差错的防控依然是当前的热点话题。调配差错通常是指药房调配的药品与医师处方内容不一致,分内差和外差2种情况。內差为前台核发药师发现后台药师调配的处方有错,在发给患者之前予以纠正的差错,外差为前台药师没有发现后台药师调配的处方有错,发给患者之后发现的差错[1-2]。降低内差的发生率是提高门急诊药房药品调配质量与降低外差发生率的重要环节,其不仅直接影响到患者用药的安全性和有效性,而且是提升门急诊药学服务质量的重要举措。调配差错的原因集中在人员因素和药品因素两方面。数据显示,调配差错中,拿错药品占调配差错的比例高达63.39%[3]。随着医院信息化自动化建设逐步完善,药品管理自动化及智慧门诊药房已成大医院发展的必然方向[4-5]。
本文依据“你只看一次”第5版本(you only look once version 5,YOLO-V5)算法,开发能准确识别门急诊药品包装盒的YOLO-V5深度学习预测模型,以期能够最大程度减少门急诊药房的药品调配差错的发生率,最终实现药品调配“零差错”。
1.1数据收集与处理 使用智能手机(华为Mate20)收集我院门诊、急诊药房常用药品包装盒照片(.jpg格式)资料。通过多角度、不同距离进行拍摄。照片拍摄时模拟药房发药过程,例如使用或不使用发药框,发药框内摆放不同药品种类和数量等。共拍摄照片2 560张,收集药品种类136个。
1.2研究方法
1.2.1建立人工智能辅助药师发药系统 将基于YOLO-V5预测模型的人工智能辅助药师发药系统(智能辅助发药系统)与医院医嘱信息平台进行对接,智能辅助发药系统通过摄像头获取预发放的药品信息,并与处方信息进行核对,当智能辅助发药系统发现预发放的药品信息与处方信息不一致时就会及时发出错误提示,药师根据提示信息进行纠错后再进行药品发放。
1.2.2数据标注 使用离线数据标注工具(labelImg)对照片进行分类标注,标注格式为YOLO格式。共标注标签 7 482个。
1.2.3计算机环境配置 采用Windows 10企业版 64位操作系统,处理器为酷睿i7 10700F,8核心16线程,GPU为NVIDIA GeForce RTX2060,显存12GB。数据存储硬盘为西部数据500G NVMe M.2高速固态硬盘。
1.2.4损失函数与交并比 交并比(intersection over union,IoU)为2个方框相交区域面积(S1)与相并部分面积(S2)的比值。计算IoU系列损失函数需要使用矩形框左上角、右下角的坐标,假设预测矩形框的左上角、右下角坐标分别为(Xp1,Yp1)、(Xp2,Yp2),标签矩形框的左上角、右下角坐标分别为(Xl1,Yl1)、(Xl2,Yl2),见图1所示。
图1 损失函数与交并比计算示意图
S1=(min(Xp2,Xl2)-max(Xp1,Xl1))×
(min(Yp2,Yl2)-max(Yp1,Yl1))
(1)
(2)
(3)
lossIoU=1-IoU
(4)
S3=(max(Xp2,Xl2)-min(Xp1,Xl1))×
(max(Yp2,Yl2)-min(Yp1,Yl1))
(5)
IoU的取值范围为0~1,当2个矩形框完全没有交集时,IoU为0,当它们完全重合时IoU为1,即重合度越小,IoU越接近0,重合度越大IoU越接近1。本文采用GIoU算法,GIoU是在IoU的基础上,把包围矩形框A和矩形框B的最小矩形框(图1C)的面积也加入到计算中。GIoU可按下式计算:
(6)
其中S1为A、B相交部分的面积(红色区域)。其中S3为包围A、B的最小矩形框的面积,S2为A、B相并区域的面积(蓝色+红色+灰色区域)。GIoU的取值范围是-1~1,当A、B完全没有重叠区域时IoU为0,那么GIoU取负值,极端情况,当A、B无重叠区域且距离无限远时,此时(S3-S2)/S3=1,那么GIoU取-1;另一个极端情况,当A、B完全重叠时(S3-S2)/S3等于0,IoU为1,那么GIoU取1。因此,GIOU解决了当A、B完全没有重叠区域时IoU恒为0的问题。最后得到
GIoU损失值的计算公式为:
lossGIoU=1-GIoU
(7)
1.2.5YOLO-V5模型结构及超参数设置 YOLO-V5可以根据模型的复杂度分为4个子模型,分别为YOLO-V5s、YOLO-V5m、YOLO-V5l和YOLO-V5x,见表1。
表1 YOLO-V5 4个子模型的比较
本文使用相同的数据集和相同的训练超参数,对YOLO-V5的4个子模型的性能进行比较研究。YOLO-V5的模型结构(图2)由体部和头部组成。在体部由卷积模块、C3x模块和SPPF模块对输入图像的特征进行提取,然后再输入模型头部继续运算并进行分类预测。YOLO-V5训练超参数设置见表2。深度学习程序运行时关闭其他所有应用程序。
表2 YOLO-V5的超参数设置
模型由体部和头部组成,输入图像经过不同模块进行特征提取及计算,最后输出检测结果。
1.2.6模型性能评价指标 以下指标用来衡量YOLO-V5模型的性能,分别为精确度(precision,Pr)、召回率(recall,Rc)和均值平均精确度(mean average precision,mAP),计算公式如下:
(8)
(9)
(10)
TP和TN分别表示模型正确识别的目标图像数量。FP和FN分别表示模型错误识别的目标图像数量。召回率指的是模型正确识别的图像数占这个类别图像的比例。平均精确度(average precision,AP)是某一类别的精确度-召回率曲线下的面积,表示精确度和召回率所包含的区域的双轴映射[6]。mAP是各个类别的均值平均精确度,是检测模型精确度的最常用参数。
2.1智能辅助发药系统的流程 智能辅助发药系统由对接、信息获取、信息识别与核对、错误信息报警、人工纠错等步骤组成。在没有错误信息报警的情况下,无需人工纠错步骤。见图3。
图3 人工智能辅助药师发药系统流程图
2.2模型的训练和验证结果 损失值均随着训练轮回的增加而逐渐减低,Pr、Rc、mAP_0.5及mAP_0.5:0.95均随着训练轮回的增加而逐渐增高(图4)。4个模型在训练第300个轮回时Pr均达到1.00。YOLO-V5x模型的mAP_0.5为0.95,高于其他3个模型,说明YOLO-V5x模型精确度相对较高。YOLO-V5x模型精确度曲线图和精确度-召回率(precision-recall,PR)曲线分别见图5和图6。YOLO-V5l和YOLO-V5x模型的mAP_0.5:0.95均0.85,高于YOLO-V5m(0.84)和YOLO-V5s(0.84)。YOLO-V5x的训练耗时、模型大小、单幅图片检测速度均高于其他3个模型(表3)。
表3 YOLO-V5 4个子模型比较
train/val/box_loss:训练集/验证集检测框的损失值;train/val/obj_loss:训练集/验证集目标检测损失值;train/val/cls_loss:训练集/验证集目标分类损失值。mAP_0.5:0.95:表示在不同IoU阈值(从0.5到0.95,步长0.05,即0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。mAP_0.5:表示阈值为0.5的平均mAP。
蓝色曲线为所有类别的平均值曲线。
蓝色曲线为所有类别的平均值曲线。曲线下面积即为平均精确度。mAP_0.5注释参照图4。
2.3模型实例化检测结果 为了进一步测试YOLO-V5x模型泛化能力,选取3种不同包装的氯吡格雷来对模型进行实例化测试,分别为硫酸氢氯吡格雷片(波立维)每片75 mg、硫酸氢氯吡格雷片(帅信)每片75 mg和硫酸氢氯吡格雷片(帅泰)每片25 mg。这3种药品通用名相同,商品名和规格不同,外包装也非常相似,其中波立维和帅信颜色、图案最相近,帅信和帅泰包装盒大小相似。测试结果显示模型对3种药品全部检测准确并归类正确(图7)。
3种药品全部准确检测。数字45~47为药物类别,0.8和0.9为预测的置信度。
在门急诊药学服务实践中,会经常遇到包装相似的药品和药品名称相同但厂家与包装不同的药品。对于这些药品,通过人的视觉都是可以完全识别开来,但是人的视觉容易疲劳,尤其在日处方流量高峰期的时候,难免会产生调配差错[7]。药学服务的精细化管理[8],例如品管圈方法[9]已经在一定程度上减少了调配差错的发生。但是由于每个医疗单位的管理水平不一,品管圈最大功能的发挥还需要经过时间的考验。
随着计算机视觉领域的不断发展,尤其是在深度学习技术的推动下,已经出现了更加精确的深度学习解决方案来区分不同图像之间的细微差别,从而为解决难以避免的药品调配差错提供了新的思路。YOLO-V5是集成目标检测和分类于一体的一步式神经网络模型,具有速度快、精确度高的特点,已经在工业检测[10]、农业检测[11]以及医学图像检测领域[6]有所研究。本研究使用YOLO-V5作为深度学习框架来对门急诊药房药品包装数据集进行训练和验证,数据显示4个模型在训练集中的Pr均达到1.00,mAP值在4个子模型中也相差不大。mAP_0.5最高的是YOLO-V5x模型(0.95),比YOLO-V5n模型(0.94)高0.01,这个差别可能会随着数据量的增加以及训练轮回的增加而逐渐减小,还有待于进一步研究。YOLO-V5x模型的训练耗时最长是其缺点之一,这个缺点可以通过提升计算机硬件的性能来弥补。虽然YOLO-V5s模型的精确度相对较低,但是在单幅图片检测速度方面要优于YOLO-V5x。笔者挑选了3个通用名相同、外包装盒也非常相似的药品进一步地对模型进行实例化测试,结果YOLO-V5x模型对3种药品均准确率识别并进行了分类,进一步验证了YOLO-V5x模型具有较高的泛化能力。在门急诊药学服务实践中,日处方流量高峰期会出现排长队现象。本组数据显示,YOLO-V5模型对单张图像的最快检测速度可达11 ms,最慢也有14 ms。这样的检测速度即使是在处方流量高峰期也不会影响药品发放速度而导致高峰期排队现象的加剧。
YOLO-V5对药品包装的分类检测相对于其对医学图像(例如医学影像图像中肿瘤的检测)的分类检测不同,前者的任务更容易完成。首先,前者的数据比较容易获取,而后者较难。药品种类虽然众多,但是门急诊药房的药品品规数量还是有限的,这些药品的包装盒图片资料很容易完全获取。其次,同一类别的药品(剂量相同)包装盒大小、形态相对固定,这为深度学习模型高准确率奠定了充分的基础。最后,在门急诊发药窗口布置图片获取装置也比较容易,只需要在合适的位置安装捕捉药品包装盒信息的摄像头就能完成。TING等[12]使用YOLO算法(具体版本未指定)对250种门诊泡罩包装药品进行深度学习,其准确率高于0.90。
本研究与其不同之处重点在于本研究采用的是药品包装盒数据,而后者采用的是药品的泡罩包装。布置泡罩包装药品分类的深度学习任务较盒装药品包装盒的难,因为泡罩包装药物相似度更高,且需要检测的目标更小。
本研究的不足之处主要是数据的采集没有包括门急诊药品的全部类别。更深入的研究需要采集门急诊全部药品的包装盒资料,当然这需要花费更多的人力成本和时间成本。人工智能辅助临床药师发药系统将有力地推动医院药学分级服务模式迈向一个新的高度[13]。
YOLO-V5深度学习模型能够精准识别门诊药品包装盒信息,人工智能辅助药师发药系统的部署能够辅助药师减少药品调配差错,是最终实现药品调配“零差错”的可行方法。