基于目标检测与对比学习的药品识别方法及系统
未命名
07-12
阅读:165
评论:0
1.本发明涉及药品识别技术领域,尤其公开了一种基于目标检测与对比学习的药品识别方法及系统。
背景技术:
2.随着医疗技术的快速发展和城市人口迅速数量的增加,医院、诊所每日在配制注射药物、发放处方药品等环节对药品的识别与核对工作量十分巨大,相关工作人员面临巨大压力。现有药别识别与核对主要依靠医护人员人工识别和核对药品种类,在人力不足和工作量增大的情况下药品识别错误率增加。此外,各厂商药品存在许多外观相似但是使用功能截然不同的药品,加重了医护人员识别与核对药品的难度。作为重要关口,药品的识别与核对工作及其重要,关乎人民群众生命安全。因识别核对错误导致重大医疗事故,会造成重大经济损失影响医院声誉。
3.人工智能的快速发展,正在推动产业升级换代,在智能交通、智能医疗等领域产生积极正面影响。目前基于深度学习的目标检测网络能够精确定位和识别上万种目标,同时基于度量学习的人脸识别系统,已经展开大规模商用,支付宝的刷脸支付,能否在数以亿计的人员样本中精确识别人员,充分说明这类技术的高可靠性。采用基于深度学习的目标检测与度量学习相结合的药品实时识别方法,可以极大提高药品识别与核对的工作效率,增加药品识别和核对环节的可靠性,减轻医护人员心理压力。
4.目前大多数药品识别方法主要依靠外观信息使用简单的检测或分类网络,使用softmax或者sigmod损失函数的多分类器或者来识别药品的种类。如专利cn113837070主要依靠外观信息,对药品图片进行处理,实现药品的检验分类。
5.这种依靠softmax或者sigmod损失函数的多分类器进行药品识别的方式存在以下两个问题。一是该类损失函数仅要求对药品分类正确,不约束同类药品类内紧凑,也不要求增加不同药品的类间距离,在决策边界上有明显的模糊性,不利于对于识别精度有非常高要求的药品识别任务。二是模型的通用性不强,当增加新的药品种类时,需要重新训练模型,才能识别这类药品,这极大的增加了后续系统维护的工作量,降低了系统的可用性。度量学习试图将数据映射到一个嵌入空间,在这个空间中,相似的数据靠得很近,类型不同的数据离的很远。
6.因此,现有药别识别与核对存在的上述缺陷,是目前亟待解决的技术问题。
技术实现要素:
7.本发明提供了一种基于目标检测与对比学习的药品识别方法及系统,旨在解决现有药别识别与核对存在的上述缺陷。
8.本发明的一方面涉及一种基于目标检测与对比学习的药品识别方法,应用于药品抓取装置中,药品抓取装置包括按序设置的振动盘式理瓶机、振动式循环输送带、摄像机组件和机械臂组件,振动盘式理瓶机用于将待抓取药品输送至振动式循环输送带上,振动式
循环输送带用于承接振动盘式理瓶机上输送过来的待抓取药品,并采取振动方式将待抓取药品上的商品标签向上展示;摄像机组件设于振动式循环输送带的上方,用于当待抓取药品的商品标签向上展示时进行拍摄,识别待抓取药品的相关信息,若识别的相关信息符合预设的要求,则发送控制指令至械臂组件进行抓取,并在械臂组件抓取待抓取药品后旋转瓶盖朝上,放入分类轨道或分类物料格中,基于目标检测与对比学习的药品识别方法包括以下步骤:
9.视频采集:采集训练样本;
10.训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;
11.药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果;
12.基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;
13.识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。
14.进一步地,训练数据集制作的步骤包括:
15.收集训练图片:使用摄像机组件中的高清摄像头全程连续采集药品拍摄区的视频,该视频将药品按照不同的组合、不同的方向和不同的位置,放在不同区域,之后从视频中抽取训练图片;
16.标注训练图片:标注出药品的包围框和药品种类,对于不需要系统识别的其他种类的药品也要正确标注包围框和药品种类;
17.制作药品检测数据集:在标注的图片中,对于不要求识别的其他类药品,将其种类标签全部转换为其他种类标签样式,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集;
18.制作药品识别数据集:在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充;将每一类药品建立一个文件夹,并将所有的该类的切片放入对应文件夹;同样按照3:1的比例分为训练集和验证集。
19.进一步地,基于度量学习的药品识别模型训练的步骤中,基于度量学习的药品识别模型采用度量学习的方式,将药品切片表示为一个多维向量,使用各类损失函数,以三元组形式进行优化,不同类特征的距离要比同类特征的距离至少大一个常数,能使得类内紧凑和类间分离,最大化分类边界;损失函数包括arcface loss,则常用的softmax损失函数为:
[0020][0021]
其中,l
soft
为常用的softmax损失函数,n为训练样本数,xi表示第i个样本属于第yi个类的深度特征,其维度设置为512;为最后一层全连接矩阵w第yi列权重的转置,b
yi
为第yi类的偏执,为表示最后一个全连接层的权重矩阵w的第j列的转置,bj和n分别表示偏
置项和总类别数;
[0022]
通过l2范数归一化将权重向量和样本特征的模归一化为1和s,让权重向量wj和样本特征xi分别位于半径为1和s的超球面上,则:
[0023][0024]
其中,为wj的转置,wj表示第j类的类中心,θ
yi
是第y个样本与第j类中心的夹角,xi为第i个样本特征,θj为该样本特征,s为一个常量超参数;
[0025]
此时的损失函数变为:
[0026][0027]
其中,l2为总损失,θ
yi
为第y个样本与第j类中心的夹角,θj为不同的训练样本与第j类中心的夹角,n为训练样本数,n表示总的类别数量。
[0028]
进一步地,基于度量学习的药品识别模型训练的步骤中,特征向量分布在一个半径为s的超球面上,在w
yi
和xi之间添加一个额外的角度惩罚m以同时增加以同时增强类内紧凑性和类间差异性,最终arcface loss的计算公式可表示为:
[0029][0030]
其中,l
arc
为arcface损失,n为训练样本数,s为超球面的半径,m为角度惩罚,θ
yi
是样本与其类中心的夹角;xi为与yi的ground-truth类对应的第i个特征向量,wj是第j类的权重向量,θj为wj与xi的夹角。
[0031]
进一步地,识别结果融合的步骤包括:
[0032]
使用药品检测模型获得药品的位置和分类;
[0033]
根据药品检测模型获取的检测的位置,从原图中获得药品切片,将其送入基于度量学习的药品识别模型中,输出该药品的分类置信度;
[0034]
融合药品检测模型和基于度量学习的药品识别模型两种模型的分类结果。
[0035]
本发明的另一方面涉及一种基于目标检测与对比学习的药品识别系统,应用于药品抓取装置中,药品抓取装置包括按序设置的振动盘式理瓶机、振动式循环输送带、摄像机组件和机械臂组件,振动盘式理瓶机用于将待抓取药品输送至振动式循环输送带上,振动式循环输送带用于承接振动盘式理瓶机上输送过来的待抓取药品,并采取振动方式将待抓取药品上的商品标签向上展示;摄像机组件设于振动式循环输送带的上方,用于当待抓取药品的商品标签向上展示时进行拍摄,识别待抓取药品的相关信息,若识别的相关信息符合预设的要求,则发送控制指令至械臂组件进行抓取,并在械臂组件抓取待抓取药品后旋转瓶盖朝上,放入分类轨道或分类物料格中,基于目标检测与对比学习的药品识别系统包括:
[0036]
视频采集模块,用于视频采集:采集训练样本;
[0037]
训练数据集制作模块,用于训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;
[0038]
药品检测模型训练模块,用于药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果;
[0039]
药品识别模型训练模块,用于基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;
[0040]
识别结果融合模块,用于识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。
[0041]
进一步地,训练数据集制作模块包括:
[0042]
收集训练图片单元,用于收集训练图片:使用摄像机组件中的高清摄像头全程连续采集药品拍摄区的视频,该视频将药品按照不同的组合、不同的方向和不同的位置,放在不同区域,之后从视频中抽取训练图片;
[0043]
标注训练图片单元,用于标注训练图片:标注出药品的包围框和药品种类,对于不需要系统识别的其他种类的药品也要正确标注包围框和药品种类;
[0044]
制作药品检测数据集单元,用于制作药品检测数据集:在标注的图片中,对于不要求识别的其他类药品,将其种类标签全部转换为其他种类标签样式,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集;
[0045]
制作药品识别数据集单元,用于制作药品识别数据集:在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充;将每一类药品建立一个文件夹,并将所有的该类的切片放入对应文件夹;同样按照3:1的比例分为训练集和验证集。
[0046]
进一步地,药品识别模型训练模块中,基于度量学习的药品识别模型采用度量学习的方式,将药品切片表示为一个多维向量,使用各类损失函数,以三元组形式进行优化,不同类特征的距离要比同类特征的距离至少大一个常数,能使得类内紧凑和类间分离,最大化分类边界;损失函数包括arcface loss,则常用的softmax损失函数为:
[0047][0048]
其中,l
soft
为常用的softmax损失函数,n为训练样本数,xi表示第i个样本属于第yi个类的深度特征,其维度设置为512;为最后一层全连接矩阵w第yi列权重的转置,b
yi
为第yi类的偏执,为表示最后一个全连接层的权重矩阵w的第j列的转置,bj和n分别表示偏置项和总类别数;
[0049]
通过l2范数归一化将权重向量和样本特征的模归一化为1和s,让权重向量wj和样本特征xi分别位于半径为1和s的超球面上,则:
[0050][0051]
其中,为wj的转置,wj表示第j类的类中心,θ
yi
是第y个样本与第j类中心的夹角,xi为第i个样本特征,θj为该样本特征,s为一个常量超参数;
[0052]
此时的损失函数变为:
[0053][0054]
其中,l2为总损失,θ
yi
为第y个样本与第j类中心的夹角,θj为不同的训练样本与第j类中心的夹角,n为训练样本数,n表示总的类别数量。
[0055]
进一步地,药品识别模型训练模块中,特征向量分布在一个半径为s的超球面上,在w
yi
和xi之间添加一个额外的角度惩罚m以同时增加以同时增强类内紧凑性和类间差异性,最终arcface loss的计算公式可表示为:
[0056][0057]
其中,l
arc
为arcface损失,n为训练样本数,s为超球面的半径,m为角度惩罚,θ
yi
是样本与其类中心的夹角;xi为与yi的ground-truth类对应的第i个特征向量,wj是第j类的权重向量,θj为wj与xi的夹角。
[0058]
进一步地,药品识别模型训练模块包括:
[0059]
第一获取单元,用于使用药品检测模型获得药品的位置和分类;
[0060]
第二获取单元,用于根据药品检测模型获取的检测的位置,从原图中获得药品切片,将其送入基于度量学习的药品识别模型中,输出该药品的分类置信度;
[0061]
融合单元,融合药品检测模型和基于度量学习的药品识别模型两种模型的分类结果,输出最终分类置信度。
[0062]
本发明所取得的有益效果为:
[0063]
本发明提供一种基于目标检测与对比学习的药品识别方法及系统,通过视频采集:采集训练样本;训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果;基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。本发明提供的基于目标检测与对比学习的药品识别方法及系统,可以达到每秒处理15帧图像,对视频进行实时处理,减轻操作人员压力;两种模型识别结果相互比对,相互增强,极大增加了系统的可靠性,系统的错误率可以控制在0.01%以下。
附图说明
[0064]
图1为本发明提供的基于目标检测与对比学习的药品识别方法一实施例的流程图;
[0065]
图2为rtmdet目标检测网络训练流程图;
[0066]
图3(a)为普通softmax的分类边界示意图;
[0067]
图3(b)为arcface的分类边界示意图;
[0068]
图4为arcface特征提取示意图;
[0069]
图5为arcface损失计算示意图;
[0070]
图6为rtmdet目标检测网络推理示意图;
[0071]
图7为rtmdet目标检测网络推理流程图;
[0072]
图8为本发明提供的基于目标检测与对比学习的药品识别方法推理阶段总体流程图;
[0073]
图9为图1中所示的训练数据集制作的步骤一实施例的细化流程示意图;
[0074]
图10为图1中所示的识别结果融合的步骤一实施例的细化流程示意图;
[0075]
图11为本发明提供的基于目标检测与对比学习的药品识别系统一实施例的功能框图;
[0076]
图12为图11中所示的训练数据集制作模块一实施例的功能模块示意图;
[0077]
图13为图11中所示的药品识别模型训练模块一实施例的功能模块示意图。
[0078]
附图标号说明:
[0079]
10、视频采集模块;20、训练数据集制作模块;30、药品检测模型训练模块;40、药品识别模型训练模块;50、识别结果融合模块;21、收集训练图片单元;22、标注训练图片单元;23、制作药品检测数据集单元;24、制作药品识别数据集单元;51、第一获取单元;52、第二获取单元;53、融合单元。
具体实施方式
[0080]
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
[0081]
本发明提供一药品抓取装置,药品抓取装置包括按序设置的振动盘式理瓶机、振动式循环输送带、摄像机组件和机械臂组件,振动盘式理瓶机用于将待抓取药品输送至振动式循环输送带上,振动式循环输送带用于承接振动盘式理瓶机上输送过来的待抓取药品,并采取振动方式将待抓取药品上的商品标签向上展示;摄像机组件设于振动式循环输送带的上方,用于当待抓取药品的商品标签向上展示时进行拍摄,识别待抓取药品的相关信息,若识别的相关信息符合预设的要求,则发送控制指令至械臂组件进行抓取,并在械臂组件抓取待抓取药品后旋转瓶盖朝上,放入分类轨道或分类物料格中。
[0082]
在本实施例中,药品抓取装置包括振动盘式理瓶机、振动式循环输送带、摄像机组件和机械臂组件。
[0083]
1、振动盘式理瓶机:该设备为成熟技术装备,市面上可以定制化购买,分为半自动和和自动化装备;半自动装备从顶部放料至物料盘,利用振动盘将物料震荡后沿轨道螺旋上升,通过在轨道上设计合适大小的凸出裙边,将物料方向调整成一个方向落入轨道输送或循环输送带;自动化装备为进料有单独进料槽,利用输送带搬运物料进入物料盘,其他机构与半自动一致。
[0084]
2、振动式循环输送带:本方案设计为,在现有可调速振动式循环输送带上设计带有凹槽的固定治具,用于承接理瓶机上输送来的物料,在循环过程中利用输送带的振动效果,将物料(例如西林瓶)进行震荡,有利于将物料(西林瓶)的商品标签向上展示。
[0085]
3、摄像机组件:该组件为可联网的高速摄像机,包括高速摄像机、处理器、存储器、
网络传输模块,利用蚂蟥钉式结构将摄像机横跨固定于振动式循环输送带上方,当振动式循环输送带上带有凹槽的固定治具将物料(西林瓶)的商品标签向上展示时进行快速拍摄,将相关信息传输至系统进行识别后,利用机械臂组件将该物料进行识别和抓取。
[0086]
4、机械臂组件:机械臂的抓取机构设计有橡胶套或气动硅胶吸盘,用于在抓取过程中减缓抓取时的机械应力破坏物料;该组件有两种方案,方案一为分体式,即机械臂组件与摄像机组件为分离式设计,通过蓝牙或固定网络进行通信;摄像机组件拍摄到物料(西林瓶)的商品标签向上展示时,系统通过识别品名及规格,符合要求者,将发送指令至机械臂组件进行抓取,抓取后旋转瓶盖朝上,放入分类轨道或分类物料格中。
[0087]
方案二为一体式,摄像机组件安装于机械臂组件的抓取机构上方,工作原理为该一体式机械臂悬停在振动式循环输送带上,当振动式循环输送带上带有凹槽的固定治具将物料(西林瓶)的商品标签向上展示时进行快速拍摄并进行识别后,利用机械臂组件将该物料进行识别和抓取,抓取后旋转瓶盖朝上,放入分类轨道或分类物料格中,完成识别分类整理,减轻人员分辨的工作量,且降低出错率。
[0088]
工作流程概述:振动盘式理瓶机将物料(西林瓶)转运至振动式循环输送带,在循环过程中将物料(西林瓶)的商品标签向上展示,高速摄像机对特定位置的物料(西林瓶)进行拍摄并识别,符合要求者,通过指令命令机械臂组件进行抓取,抓取后旋转瓶盖朝上,放入分类轨道或分类物料格中。
[0089]
物料(西林瓶)在振动盘式理瓶机底部堆积体积较大的物料无法通过轨道输送时,通过计算下料数量和抓取数量,得出理瓶机底部无法正常输送物料数量,小于20%,或者连续30秒/40秒未抓取到物料时,机械臂自动从理瓶机物料盘底部抓取物料并识别物料,抓取后旋转瓶盖朝上,放入分类轨道或分类物料格中。
[0090]
在完全识别并抓取完物料(西林瓶)后,设备将自动发出声光警报,以提醒操作人员。
[0091]
请见图1至图8,图1为本发明提供的基于目标检测与对比学习的药品识别方法一实施例的流程图,该基于目标检测与对比学习的药品识别方法,应用于药品抓取装置中,包括以下步骤:
[0092]
步骤s100、视频采集:采集训练样本。
[0093]
视频采集主要负责为采集训练样本和实时药品识别提供视频输入;视频采集在流水线上,在方便操作的前提下,控制摄像头拍摄区域背景相对稳定,以此提高药品识别的鲁棒性。
[0094]
步骤s200、训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集。
[0095]
制作训练样本集,主要负责工作为:一是收集训练图片,二是标注训练图片,三是药品检测数据集制作,四是药品识别数据集制作。
[0096]
步骤s300、药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果。
[0097]
药品检测模型主要负责工作为:一是检测药品所在的位置区域,为基于对比学的药品识别提供药品切片。二是识别药品的种类,该检测网络使用softmax或者sigmod损失函数训练模型,可以输出参与过模型训练药品的分类置信度,对于其他的药品种类输出类别
为“其他”类别。在药品检测模型中,使用通用的实时目标检测算法,比如yolov4、yolov5、yolov6、yolov7、yolox、rtmdet。以rtmdet为例,该网络的结构如图2所示,在训练过程中采用mosaic和mixup数据扩充方式,增加模型的表达能力。
[0098]
步骤s400、基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果。
[0099]
基于度量学习的药品识别模型要负责输出药品切片的分类置信度。模型采用度量学习的方式,将药品切片表示为一个多维向量(例如512维),使用各类损失函数(如tripletloss、center-loss、cosface loss、arcface loss),以三元组形式进行优化,不同类特征的距离要比同类特征的距离至少大一个常数,能使得类内紧凑和类间分离,最大化分类边界。
[0100]
以arcface loss(additive angular marginloss,加性角度间隔损失函数)为例,arcface loss是直接在角度空间中最大化分类界限。则常用的softmax损失函数为:
[0101][0102]
在公式(1)中,l
soft
为常用的softmax损失函数,n为训练样本数,xi表示第i个样本属于第yi个类的深度特征,其维度设置为512;为最后一层全连接矩阵w第yi列权重的转置,b
yi
为第yi类的偏执,为表示最后一个全连接层的权重矩阵w的第j列的转置,bj和n分别表示偏置项和总类别数。
[0103]
通过l2范数归一化将权重向量和样本特征的模归一化为1和s,让权重向量wj和样本特征xi分别位于半径为1和s的超球面上,则:
[0104][0105]
在公式(2)中,为wj的转置,wj表示第j类的类中心,θ
yi
是第y个样本与第j类中心的夹角,xi为第i个样本特征,θj为该样本特征,s为一个常量超参数。
[0106]
此时的损失函数变为:
[0107][0108]
在公式(2)中,l2为总损失,θ
yi
为第y个样本与第j类中心的夹角,θj为不同的训练样本与第j类中心的夹角,n为训练样本数,n表示总的类别数量。
[0109]
特征向量分布在一个半径为s的超球面上,在w
yi
和xi之间添加一个额外的角度惩罚m以同时增加以同时增强类内紧凑性和类间差异性,最终arcface loss的计算公式可表示为:
[0110]
[0111]
在公式(4)中,l
arc
为arcface损失,n为训练样本数,s为超球面的半径,m为角度惩罚,θ
yi
是样本与其类中心的夹角;xi为与yi的ground-truth类对应的第i个特征向量,wj是第j类的权重向量,θj为wj与xi的夹角。
[0112]
arcface loss强行拉大了同类之间的角度,使得神经网络更努力地将同类收得更紧。具体训练过程为首先将特征xi向量和权重进行l2归一化,获得其两者之间的cosθj,通过计算arccos(θ
yi
)(反余弦),获得特征xi与真值(ground truth)权重w
yi
之间的角度θ
yj
。然后通过在目标角度(真值)θ
yj
上添加角度边界惩罚项m。最后,计算之后乘特征尺度,将所有到softmax函数得到各类别概率。再用真值(ground truth)和one hot vector一起算出交叉熵损失。
[0113]
步骤s500、识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。
[0114]
识别结果融合主要负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。
[0115]
整个系统分为训练和推理两个阶段。在训练阶段,主要训练基于深度学习的药品检测网络和基于度量学习的药品识别两个网络。
[0116]
基于深度学习的药品检测网络训练流程如图2所示,训练药品检测网络执行以下操作:
[0117]
1)使用预处理模块将图像随机缩放后从中裁剪固定大小的图像以方便网络进行处理,并加载和相关标注。
[0118]
2)对图像进行水平翻转、颜色抖动、以及进行mosaic和mixup数据扩充。
[0119]
3)加载在coco数据集上的预训练模型。
[0120]
4)使用药品检测数据集在训练集上训练模型直至收敛,通过训练集在验证集上的检测精度获得不同超参数下的检测结果,取在验证集上精度最高的模型最为最终推理模型。
[0121]
基于度量学习的药品识别网络在训练阶段执行以下操作:
[0122]
1)使用预处理模块将图像缩放为尺寸一致的样本图像以方便网络进行处理。
[0123]
2)加载在大规模人脸数据集上训练的预训练模型。
[0124]
3)通过模型将提取图片特征,并将其转换为512维向量(如图4所示)。
[0125]
4)使用arcface loss计算损失函数,(如图5所示)并进行梯度后传,更新模型参数。
[0126]
5)训练模型直至收敛。通过训练集在验证集上的检测精度获得不同超参数下的检测结果,取在验证集上精度最高的模型最为最终推理模型。
[0127]
推理阶段总体流程如图8所示,通过对基于深度学习的药品检测模型的识别结合和基于度量学习的识别结果相融合获得最终的识别结果。
[0128]
药品检测模型推理阶段示意图如图6所示。其流程图如图7所示,执行以下操作:
[0129]
1)加载训练好的药品检测模型初始化网络参数。
[0130]
2)加载摄像头获取的图像,并进行相关预处理。
[0131]
3)使用药品检测模块获取药品位置以及分类置信度。
[0132]
基于度量学习的药品识别网络在推理阶段,执行以下操作:
[0133]
一、建立药品特征库。
[0134]
1)加载训练好的药品识别模型,初始化网络参数。
[0135]
2)根据标注获取药品区域切片,并进行预处理。
[0136]
3)通过训练好的模型中的特征提取器将该切片转换为一个512维度的向量,把这个特征向量存储在数据库中,与药品种类绑定,作为该药品的基准特征向量。
[0137]
二、进行药品识别
[0138]
1)加载训练好的药品识别模型,初始化网络参数。
[0139]
2)根据药品检测获取的药品区域裁剪出药品切片,并进行预处理。
[0140]
3)通过训练好的模型中的特征提取器将该切片转换为一个512维度的向量。
[0141]
4)将获取的特征向量会和系统药品数据库中所有药品的基准特征向量进行计算距离。如果发现与数据库中某个人的向量相似度值超过阈值,即表示该切片为这类药品。
[0142]
识别结果融合流程如图8所示:
[0143]
1)使用基于深度学习的检测模型获取药品类别、置信度以及药品区域坐标。
[0144]
2)基于检测获得药品区域获取药品切片。
[0145]
3)将药品切片送入基于度量学习的药品识别网络获取药品类别和置信度。
[0146]
4)融合药品检测模型和基于度量学习的药品识别模型的识别结果。
[0147]
本实施例提供的基于目标检测与对比学习的药品识别方法,同现有技术相比,通过视频采集:采集训练样本;训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果;基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。本实施例提供的基于目标检测与对比学习的药品识别方法,可以达到每秒处理15帧图像,对视频进行实时处理,减轻操作人员压力;两种模型识别结果相互比对,相互增强,极大增加了系统的可靠性,系统的错误率可以控制在0.01%以下。
[0148]
进一步地,请见图9,图9为图1中所示的步骤s200一实施例的细化流程示意图,在本实施例中,步骤s200包括:
[0149]
步骤s210、收集训练图片:使用摄像机组件中的高清摄像头全程连续采集药品拍摄区的视频,该视频将药品按照不同的组合、不同的方向和不同的位置,放在不同区域,之后从视频中抽取训练图片。
[0150]
使用高清摄像头全程连续采集将药品按照不同的组合、不同的方向和不同的位置,随意横排放置在传送带上通过拍摄置区的视频。这种方式收集训练图片的优点有:一、采用视频采集的方式,不需要人工手动拍照,采集速度快。二、训练图片拍摄的环境与系统识别药品一致,提高了系统鲁棒性,提高了识别精度。此外在数据收集阶段还需要准备数量众多的不需要识别的其他种类的药品,以增加系统的鲁棒性,确保当出现新的药品种类时系统能够正确检测和识别药品。
[0151]
步骤s220、标注训练图片:标注出药品的包围框和药品种类,对于不需要系统识别的其他种类的药品也要正确标注包围框和药品种类。
[0152]
在标注过程中需要标注出药品的包围框和药品种类,对于额外添加的不需要系统识别其他种类的药品也要正确标注包围框和药品种类。
[0153]
步骤s230、制作药品检测数据集:在标注的图片中,对于不要求识别的其他类药品,将其种类标签全部转换为其他种类标签样式,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集。
[0154]
首先在标注的图片中,对于额外添加的不要求识别其他类药品,将其种类标签全部转换为“其他”,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集。训练集主要用于训练模型,而验证集主要负责验证模型的效果,指导相关超参数的调节。
[0155]
步骤s240、制作药品识别数据集:在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充;将每一类药品建立一个文件夹,并将所有的该类的切片放入对应文件夹;同样按照3:1的比例分为训练集和验证集。
[0156]
按照人脸识别数据集lfw(labeled faces in the wild,人脸数据库)的格式准备数据。一、在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充。其具体操作为:首先根据图片标注框,对裁剪框做细微的位置偏移和尺寸变化,其次对裁剪出的图片进行颜色空间变换,以模拟识别系统运行时检测框的细微抖动和增加训练样本的多样性。二、将每一类药品建立一个文件夹,并将所有的该类的切片放入该文件夹。三、将所有需要识别的药品作为训练集,其他类药品作为验证集。如果其他类药品种类数量较多,则按照训练集验证集总体3:1的比例,将其他类药的文件夹分别放入训练集和验证集。
[0157]
本实施例提供的基于目标检测与对比学习的药品识别方法,同现有技术相比,通过收集训练图片:使用摄像机组件中的高清摄像头全程连续采集药品拍摄区的视频,该视频将药品按照不同的组合、不同的方向和不同的位置,放在不同区域,之后从视频中抽取训练图片;标注训练图片:标注出药品的包围框和药品种类,对于不需要系统识别的其他种类的药品也要正确标注包围框和药品种类;制作药品检测数据集:在标注的图片中,对于不要求识别的其他类药品,将其种类标签全部转换为其他种类标签样式,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集;制作药品识别数据集:在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充;将每一类药品建立一个文件夹,并将所有的该类的切片放入对应文件夹;同样按照3:1的比例分为训练集和验证集。本实施例提供的基于目标检测与对比学习的药品识别方法,可以达到每秒处理15帧图像,对视频进行实时处理,减轻操作人员压力;两种模型识别结果相互比对,相互增强,极大增加了系统的可靠性,系统的错误率可以控制在0.01%以下。
[0158]
优选地,参见图10,图10为图1中所示的步骤s500一实施例的细化流程示意图,在本实施例中,步骤s500包括:
[0159]
步骤s510、使用药品检测模型获得药品的位置和分类。
[0160]
首先使用药品检测模型获得药品的位置和分类,(对于新添加的药品种类,将被分类为“其他”类别。
[0161]
步骤s520、根据药品检测模型获取的检测的位置,从原图中获得药品切片,将其送
入基于度量学习的药品识别模型中,输出该药品的分类置信度。
[0162]
根据药品检测模型获取的检测的位置从原图中获得药品切片,将其送入基于度量学习的识别网络,输出该药品的分类置信度。
[0163]
步骤s530、融合药品检测模型和基于度量学习的药品识别模型两种模型的分类结果。
[0164]
最后融合两种模型的分类结果。融合规则如下:一、对于所有检测获得的“其他”类,在分类类别和置信度全部使用基于度量学习的识别网络的输出。二、对于检测获得了正常的类别的目标,而且该类别与基于度量学习的识别模型获得的类别相同的目标,则输出的置信度为两者置信度相乘。三、对于检测获得了正常的类别的目标,但该类别与基于度量学习的识别模型获得的类别不相同的目标,不输出值置信度,进行重新识别。
[0165]
本实施例提供的基于目标检测与对比学习的药品识别方法,同现有技术相比,通过使用药品检测模型获得药品的位置和分类;根据药品检测模型获取的检测的位置,从原图中获得药品切片,将其送入基于度量学习的药品识别模型中,输出该药品的分类置信度;融合药品检测模型和基于度量学习的药品识别模型两种模型的分类结果。本实施例提供的基于目标检测与对比学习的药品识别方法,可以达到每秒处理15帧图像,对视频进行实时处理,减轻操作人员压力;两种模型识别结果相互比对,相互增强,极大增加了系统的可靠性,系统的错误率可以控制在0.01%以下。
[0166]
如图10所示,图10为图1中所示的识别结果融合的步骤一实施例的细化流程示意图,在本实施例中,该基于目标检测与对比学习的药品识别系统应用于上述的药品抓取装置中,包括视频采集模块10、训练数据集制作模块20、药品检测模型训练模块30、药品识别模型训练模块40和识别结果融合模块50,其中,视频采集模块10,用于视频采集:采集训练样本;训练数据集制作模块20,用于训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;药品检测模型训练模块30,用于药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果;药品识别模型训练模块40,用于基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;识别结果融合模块50,用于识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。
[0167]
视频采集模块10主要负责为采集训练样本和实时药品识别提供视频输入;视频采集在流水线上,在方便操作的前提下,控制摄像头拍摄区域背景相对稳定,以此提高药品识别的鲁棒性。
[0168]
训练数据集制作模块20制作训练样本集,主要负责工作为:一是收集训练图片,二是标注训练图片,三是药品检测数据集制作,四是药品识别数据集制作。
[0169]
药品检测模型训练模块30主要负责工作为:一是检测药品所在的位置区域,为基于对比学的药品识别提供药品切片。二是识别药品的种类,该检测网络使用softmax或者sigmod损失函数训练模型,可以输出参与过模型训练药品的分类置信度,对于其他的药品种类输出类别为“其他”类别。在药品检测模型中,使用通用的实时目标检测算法,比如yolov4、yolov5、yolov6、yolov7、yolox、rtmdet。以rtmdet为例,该网络的结构如图2所示,在训练过程中采用mosaic和mixup数据扩充方式,增加模型的表达能力。
[0170]
药品识别模型训练模块40基于度量学习的药品识别模型要负责输出药品切片的分类置信度。模型采用度量学习的方式,将药品切片表示为一个多维向量(例如512维),使用各类损失函数(如tripletloss、center-loss、cosface loss、arcface loss),以三元组形式进行优化,不同类特征的距离要比同类特征的距离至少大一个常数,能使得类内紧凑和类间分离,最大化分类边界。
[0171]
以arcface loss(additive angular marginloss,加性角度间隔损失函数)为例,arcface loss是直接在角度空间中最大化分类界限。则常用的softmax损失函数为:
[0172][0173]
在公式(5)中,l
soft
为常用的softmax损失函数,n为训练样本数,xi表示第i个样本属于第yi个类的深度特征,其维度设置为512;为最后一层全连接矩阵w第yi列权重的转置,b
yi
为第yi类的偏执,为表示最后一个全连接层的权重矩阵w的第j列的转置,bj和n分别表示偏置项和总类别数。
[0174]
通过l2范数归一化将权重向量和样本特征的模归一化为1和s,让权重向量wj和样本特征xi分别位于半径为1和s的超球面上,则:
[0175][0176]
在公式(6)中,为wj的转置,wj表示第j类的类中心,θ
yi
是第y个样本与第j类中心的夹角,xi为第i个样本特征,θj为该样本特征,s为一个常量超参数。
[0177]
此时的损失函数变为:
[0178][0179]
在公式(7)中,l2为总损失,θ
yi
为第y个样本与第j类中心的夹角,θj为不同的训练样本与第j类中心的夹角,n为训练样本数,n表示总的类别数量。
[0180]
特征向量分布在一个半径为s的超球面上,在w
yi
和xi之间添加一个额外的角度惩罚m以同时增加以同时增强类内紧凑性和类间差异性,最终arcface loss的计算公式可表示为:
[0181][0182]
在公式(8)中,l
arc
为arcface损失,n为训练样本数,s为超球面的半径,m为角度惩罚,θ
yi
是样本与其类中心的夹角;xi为与yi的ground-truth类对应的第i个特征向量,wj是第j类的权重向量,θj为wj与xi的夹角。
[0183]
arcface loss强行拉大了同类之间的角度,使得神经网络更努力地将同类收得更
紧。具体训练过程为首先将特征xi向量和权重进行l2归一化,获得其两者之间的cosθj,通过计算arccos(θ
yi
)(反余弦),获得特征xi与真值(ground truth)权重w
yi
之间的角度θ
yj
。然后通过在目标角度(真值)θ
yj
上添加角度边界惩罚项m。最后,计算之后乘特征尺度,将所有到softmax函数得到各类别概率。再用真值(ground truth)和one hot vector一起算出交叉熵损失。
[0184]
识别结果融合模块50识别结果融合主要负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。
[0185]
整个系统分为训练和推理两个阶段。在训练阶段,主要训练基于深度学习的药品检测网络和基于度量学习的药品识别两个网络。
[0186]
基于深度学习的药品检测网络训练流程如图2所示,训练药品检测网络执行以下操作:
[0187]
1)使用预处理模块将图像随机缩放后从中裁剪固定大小的图像以方便网络进行处理,并加载和相关标注。
[0188]
2)对图像进行水平翻转、颜色抖动、以及进行mosaic和mixup数据扩充。
[0189]
3)加载在coco数据集上的预训练模型。
[0190]
4)使用药品检测数据集在训练集上训练模型直至收敛,通过训练集在验证集上的检测精度获得不同超参数下的检测结果,取在验证集上精度最高的模型最为最终推理模型。
[0191]
基于度量学习的药品识别网络在训练阶段执行以下操作:
[0192]
1)使用预处理模块将图像缩放为尺寸一致的样本图像以方便网络进行处理。
[0193]
2)加载在大规模人脸数据集上训练的预训练模型。
[0194]
3)通过模型将提取图片特征,并将其转换为512维向量(如图4所示)。
[0195]
4)使用arcface loss计算损失函数,(如图5所示)并进行梯度后传,更新模型参数。
[0196]
5)训练模型直至收敛。通过训练集在验证集上的检测精度获得不同超参数下的检测结果,取在验证集上精度最高的模型最为最终推理模型。
[0197]
推理阶段总体流程如图8所示,通过对基于深度学习的药品检测模型的识别结合和基于度量学习的识别结果相融合获得最终的识别结果。
[0198]
药品检测模型推理阶段示意图如图6所示。其流程图如图7所示,执行以下操作:
[0199]
1)加载训练好的药品检测模型初始化网络参数。
[0200]
2)加载摄像头获取的图像,并进行相关预处理。
[0201]
3)使用药品检测模块获取药品位置以及分类置信度。
[0202]
基于度量学习的药品识别网络在推理阶段,执行以下操作:
[0203]
一、建立药品特征库。
[0204]
1)加载训练好的药品识别模型,初始化网络参数。
[0205]
2)根据标注获取药品区域切片,并进行预处理。
[0206]
3)通过训练好的模型中的特征提取器将该切片转换为一个512维度的向量,把这个特征向量存储在数据库中,与药品种类绑定,作为该药品的基准特征向量。
[0207]
二、进行药品识别
[0208]
1)加载训练好的药品识别模型,初始化网络参数。
[0209]
2)根据药品检测获取的药品区域裁剪出药品切片,并进行预处理。
[0210]
3)通过训练好的模型中的特征提取器将该切片转换为一个512维度的向量。
[0211]
4)将获取的特征向量会和系统药品数据库中所有药品的基准特征向量进行计算距离。如果发现与数据库中某个人的向量相似度值超过阈值,即表示该切片为这类药品。
[0212]
识别结果融合流程如图8所示:
[0213]
1)使用基于深度学习的检测模型获取药品类别、置信度以及药品区域坐标。
[0214]
2)基于检测获得药品区域获取药品切片。
[0215]
3)将药品切片送入基于度量学习的药品识别网络获取药品类别和置信度。
[0216]
4)融合药品检测模型和基于度量学习的药品识别模型的识别结果。
[0217]
本实施例提供的基于目标检测与对比学习的药品识别系统,同现有技术相比,采用视频采集模块10、训练数据集制作模块20、药品检测模型训练模块30、药品识别模型训练模块40和识别结果融合模块50,通过视频采集:采集训练样本;训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果;基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。本实施例提供的基于目标检测与对比学习的药品识别方法,可以达到每秒处理15帧图像,对视频进行实时处理,减轻操作人员压力;两种模型识别结果相互比对,相互增强,极大增加了系统的可靠性,系统的错误率可以控制在0.01%以下。
[0218]
进一步地,请见图12,图12为图11中所示的训练数据集制作模块一实施例的功能模块示意图,在本实施例中,训练数据集制作模块20包括收集训练图片单元21、标注训练图片单元22、制作药品检测数据集单元23和制作药品识别数据集单元24,其中,收集训练图片单元21,用于收集训练图片:使用摄像机组件中的高清摄像头全程连续采集药品拍摄区的视频,该视频将药品按照不同的组合、不同的方向和不同的位置,放在不同区域,之后从视频中抽取训练图片;标注训练图片单元22,用于标注训练图片:标注出药品的包围框和药品种类,对于不需要系统识别的其他种类的药品也要正确标注包围框和药品种类;制作药品检测数据集单元23,用于制作药品检测数据集:在标注的图片中,对于不要求识别的其他类药品,将其种类标签全部转换为其他种类标签样式,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集;制作药品识别数据集单元24,用于制作药品识别数据集:在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充;将每一类药品建立一个文件夹,并将所有的该类的切片放入对应文件夹;同样按照3:1的比例分为训练集和验证集。
[0219]
收集训练图片单元21使用高清摄像头全程连续采集将药品按照不同的组合、不同的方向和不同的位置,随意横排放置在传送带上通过拍摄置区的视频。这种方式收集训练图片的优点有:一、采用视频采集的方式,不需要人工手动拍照,采集速度快。二、训练图片拍摄的环境与系统识别药品一致,提高了系统鲁棒性,提高了识别精度。此外在数据收集阶
段还需要准备数量众多的不需要识别的其他种类的药品,以增加系统的鲁棒性,确保当出现新的药品种类时系统能够正确检测和识别药品。
[0220]
标注训练图片单元22在标注过程中需要标注出药品的包围框和药品种类,对于额外添加的不需要系统识别其他种类的药品也要正确标注包围框和药品种类。
[0221]
制作药品检测数据集单元23首先在标注的图片中,对于额外添加的不要求识别其他类药品,将其种类标签全部转换为“其他”,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集。训练集主要用于训练模型,而验证集主要负责验证模型的效果,指导相关超参数的调节。
[0222]
制作药品识别数据集单元24按照人脸识别数据集lfw(labeled faces in the wild,人脸数据库)的格式准备数据。一、在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充。其具体操作为:首先根据图片标注框,对裁剪框做细微的位置偏移和尺寸变化,其次对裁剪出的图片进行颜色空间变换,以模拟识别系统运行时检测框的细微抖动和增加训练样本的多样性。二、将每一类药品建立一个文件夹,并将所有的该类的切片放入该文件夹。三、将所有需要识别的药品作为训练集,其他类药品作为验证集。如果其他类药品种类数量较多,则按照训练集验证集总体3:1的比例,将其他类药的文件夹分别放入训练集和验证集。
[0223]
本实施例提供的基于药品检测与对比学习的药品识别系统,同现有技术相比,训练数据集制作模块20采用收集训练图片单元21、标注训练图片单元22、制作药品检测数据集单元23和制作药品识别数据集单元24,通过收集训练图片:使用摄像机组件中的高清摄像头全程连续采集药品拍摄区的视频,该视频将药品按照不同的组合、不同的方向和不同的位置,放在不同区域,之后从视频中抽取训练图片;标注训练图片:标注出药品的包围框和药品种类,对于不需要系统识别的其他种类的药品也要正确标注包围框和药品种类;制作药品检测数据集:在标注的图片中,对于不要求识别的其他类药品,将其种类标签全部转换为其他种类标签样式,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集;制作药品识别数据集:在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充;将每一类药品建立一个文件夹,并将所有的该类的切片放入对应文件夹;同样按照3:1的比例分为训练集和验证集。本实施例提供的基于药品检测与对比学习的药品识别系统,可以达到每秒处理15帧图像,对视频进行实时处理,减轻操作人员压力;两种模型识别结果相互比对,相互增强,极大增加了系统的可靠性,系统的错误率可以控制在0.01%以下。
[0224]
优选地,参见图13,图13为图11中所示的药品识别模型训练模块一实施例的功能模块示意图,在本实施例中,识别结果融合模块50包括第一获取单元51、第二获取单元52和融合单元53,其中,第一获取单元51,用于使用药品检测模型获得药品的位置和分类;第二获取单元52,用于根据药品检测模型获取的检测的位置,从原图中获得药品切片,将其送入基于度量学习的药品识别模型中,输出该药品的分类置信度;融合单元53,融合药品检测模型和基于度量学习的药品识别模型两种模型的分类结果,输出最终分类置信度。
[0225]
第一获取单元51首先使用药品检测模型获得药品的位置和分类,(对于新添加的药品种类,将被分类为“其他”类别。
[0226]
第二获取单元52根据目标检测模型获取的检测的位置从原图中获得药品切片,将
其送入基于度量学习的识别网络,输出该药品的分类置信度。
[0227]
融合单元53最后融合两种模型的分类结果。融合规则如下:一、对于所有检测获得的“其他”类,在分类类别和置信度全部使用基于度量学习的识别网络的输出。二、对于检测获得了正常的类别的目标,而且该类别与基于度量学习的识别模型获得的类别相同的目标,则输出的置信度为两者置信度相乘。三、对于检测获得了正常的类别的目标,但该类别与基于度量学习的识别模型获得的类别不相同的目标,不输出值置信度,进行重新识别。
[0228]
本实施例提供的基于药品检测与对比学习的药品识别系统,同现有技术相比,识别结果融合模块50采用第一获取单元51、第二获取单元52和融合单元53,通过使用药品检测模型获得药品的位置和分类;根据药品检测模型获取的检测的位置,从原图中获得药品切片,将其送入基于度量学习的药品识别模型中,输出该药品的分类置信度;融合药品检测模型和基于度量学习的药品识别模型两种模型的分类结果。本实施例提供的基于药品检测与对比学习的药品识别系统,可以达到每秒处理15帧图像,对视频进行实时处理,减轻操作人员压力;两种模型识别结果相互比对,相互增强,极大增加了系统的可靠性,系统的错误率可以控制在0.01%以下。
[0229]
如图1至图13所示,本发明提供的基于目标检测与对比学习的药品识别方法及系统,下面以具体的实施例来进行说明:
[0230]
本实施例提供的基于药品检测与对比学习的药品识别系统,主要由药品检测模块、特征向量提取模块、向量检索模块、以及结果融合模块四个模块组成。
[0231]
药品检测模块,基于目前的深度卷积神经网络,检测出图片中的一个或者多个药品的位置坐标,并对其进行初步分类。将图像中的药品区域裁剪下来,用于后续的基于对比学习的药品识别,药品检测任务是整个流程的前序步骤,可以提高整个模型的识别精度。
[0232]
特征向量提取模块,是药品识别中的关键一环,其作用为将输入的裁剪得到的药品切片转化为固定维度的特征向量,以用于后续的向量检索。基于对比学习的特征提取方法,能够使得获得的特征具有相似度保持性,即在特征空间中,相似度高的药品切片对其特征相似度要比较高(或者距离比较近),而相似度较低的图片对,其特征相似度要比较小(或者距离比较远)。
[0233]
向量检索模块,主要目的是在已经建立好的向量库中,对于给定的查询向量,与库中所有的待查询向量进行特征向量的相似度(或距离)计算,得到相似度排序。由于需要识别的药品种类繁多,采用hnsw32为检索算法,使得检索精度、检索速度能够取得较好的平衡,更为贴切药品向量检索的实际应用场景的使用需求。
[0234]
结果融合模块,负责融合药品检测模型和基于度量学习的药品识别模型的识别结果,输出最终分类置信度。
[0235]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
技术特征:
1.一种基于目标检测与对比学习的药品识别方法,应用于药品抓取装置中,其特征在于,所述药品抓取装置包括按序设置的振动盘式理瓶机、振动式循环输送带、摄像机组件和机械臂组件,振动盘式理瓶机用于将待抓取药品输送至所述振动式循环输送带上,所述振动式循环输送带用于承接所述振动盘式理瓶机上输送过来的待抓取药品,并采取振动方式将待抓取药品上的商品标签向上展示;所述摄像机组件设于所述振动式循环输送带的上方,用于当所述待抓取药品的商品标签向上展示时进行拍摄,识别所述待抓取药品的相关信息,若识别的相关信息符合预设的要求,则发送控制指令至所述械臂组件进行抓取,并在所述械臂组件抓取所述待抓取药品后旋转瓶盖朝上,放入分类轨道或分类物料格中,所述基于目标检测与对比学习的药品识别方法包括以下步骤:视频采集:采集训练样本;训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果;基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。2.如权利要求1所述的基于目标检测与对比学习的药品识别方法,其特征在于,所述训练数据集制作的步骤包括:收集训练图片:使用摄像机组件中的高清摄像头全程连续采集药品拍摄区的视频,该视频将药品按照不同的组合、不同的方向和不同的位置,放在不同区域,之后从视频中抽取训练图片;标注训练图片:标注出药品的包围框和药品种类,对于不需要系统识别的其他种类的药品也要正确标注包围框和药品种类;制作药品检测数据集:在标注的图片中,对于不要求识别的其他类药品,将其种类标签全部转换为其他类别,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集;制作药品识别数据集:在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充;将每一类药品建立一个文件夹,并将所有的该类的切片放入对应文件夹;同样按照3:1的比例分为训练集和验证集。3.如权利要求1所述的基于目标检测与对比学习的药品识别方法,其特征在于,所述基于度量学习的药品识别模型训练的步骤中,基于度量学习的药品识别模型采用度量学习的方式,将药品切片表示为一个多维向量,使用各类损失函数,以三元组形式进行优化,不同类特征的距离要比同类特征的距离至少大一个常数,能使得类内紧凑和类间分离,最大化分类边界;所述损失函数包括arcface loss,则常用的softmax损失函数为:
其中,l
soft
为常用的softmax损失函数,n为训练样本数,x
i
表示第i个样本属于第y
i
个类的深度特征,其维度设置为512;为最后一层全连接矩阵w第y
i
列权重的转置,b
yi
为第y
i
类的偏执,为表示最后一个全连接层的权重矩阵w的第j列的转置,b
j
和n分别表示偏置项和总类别数;通过l2范数归一化将权重向量和样本特征的模归一化为1和s,让权重向量w
j
和样本特征x
i
分别位于半径为1和s的超球面上,则:其中,为w
j
的转置,w
j
表示第j类的类中心,θ
yi
是第y个样本与第j类中心的夹角,x
i
为第i个样本特征,θ
j
为该样本特征,s为一个常量超参数;此时的损失函数变为:其中,l2为总损失,θ
yi
为第y个样本与第j类中心的夹角,θ
j
为不同的训练样本与第j类中心的夹角,n为训练样本数,n表示总的类别数量。4.如权利要求3所述的基于目标检测与对比学习的药品识别方法,其特征在于,所述基于度量学习的药品识别模型训练的步骤中,特征向量分布在一个半径为s的超球面上,在w
yi
和x
i
之间添加一个额外的角度惩罚m以同时增加以同时增强类内紧凑性和类间差异性,最终arcface loss的计算公式可表示为:其中,l
arc
为arcface损失,n为训练样本数,s为超球面的半径,m为角度惩罚,θ
yi
是样本与其类中心的夹角;x
i
为与y
i
的ground-truth类对应的第i个特征向量,w
j
是第j类的权重向量,θ
j
为w
j
与x
i
的夹角。5.如权利要求4所述的基于目标检测与对比学习的药品识别方法,其特征在于,所述识别结果融合的步骤包括:使用药品检测模型获得药品的位置和分类;根据药品检测模型获取的检测的位置,从原图中获得药品切片,将其送入基于度量学习的药品识别模型中,输出该药品的分类置信度;融合所述药品检测模型和所述基于度量学习的药品识别模型两种模型的分类结果。6.一种基于目标检测与对比学习的药品识别系统,应用于药品抓取装置中,其特征在于,所述药品抓取装置包括按序设置的振动盘式理瓶机、振动式循环输送带、摄像机组件和机械臂组件,振动盘式理瓶机用于将待抓取药品输送至所述振动式循环输送带上,所述振动式循环输送带用于承接所述振动盘式理瓶机上输送过来的待抓取药品,并采取振动方式
将待抓取药品上的商品标签向上展示;所述摄像机组件设于所述振动式循环输送带的上方,用于当所述待抓取药品的商品标签向上展示时进行拍摄,识别所述待抓取药品的相关信息,若识别的相关信息符合预设的要求,则发送控制指令至所述械臂组件进行抓取,并在所述械臂组件抓取所述待抓取药品后旋转瓶盖朝上,放入分类轨道或分类物料格中,所述基于目标检测与对比学习的药品识别系统包括:视频采集模块(10),用于视频采集:采集训练样本;训练数据集制作模块(20),用于训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;药品检测模型训练模块(30),用于药品检测模型训练:训练药品检测模型,输出药品的分类置信度,以获取基于深度学习的药品检测的识别结果;药品识别模型训练模块(40),用于基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;识别结果融合模块(50),用于识别结果融合:负责融合基于深度学习的药品检测的结果和基于度量学习的识别结果,输出最终分类置信度。7.如权利要求6所述的基于目标检测与对比学习的药品识别系统,其特征在于,所述训练数据集制作模块(20)包括:收集训练图片单元(21),用于收集训练图片:使用摄像机组件中的高清摄像头全程连续采集药品拍摄区的视频,该视频将药品按照不同的组合、不同的方向和不同的位置,放在不同区域,之后从视频中抽取训练图片;标注训练图片单元(22),用于标注训练图片:标注出药品的包围框和药品种类,对于不需要系统识别的其他种类的药品也要正确标注包围框和药品种类;制作药品检测数据集单元(23),用于制作药品检测数据集:在标注的图片中,对于不要求识别的其他类药品,将其种类标签全部转换为其他类别,然后将经过类别转换的数据集按照3:1的比例分为训练集和验证集;制作药品识别数据集单元(24),用于制作药品识别数据集:在原始的标注图片中依据图中的标注框裁剪出药品区域,并在裁剪过程中进行数据扩充;将每一类药品建立一个文件夹,并将所有的该类的切片放入对应文件夹;同样按照3:1的比例分为训练集和验证集。8.如权利要求6所述的基于目标检测与对比学习的药品识别系统,其特征在于,所述药品识别模型训练模块(40)中,基于度量学习的药品识别模型采用度量学习的方式,将药品切片表示为一个多维向量,使用各类损失函数,以三元组形式进行优化,不同类特征的距离要比同类特征的距离至少大一个常数,能使得类内紧凑和类间分离,最大化分类边界;所述损失函数包括arcface loss,则常用的softmax损失函数为:其中,l
soft
为常用的softmax损失函数,n为训练样本数,x
i
表示第i个样本属于第y
i
个类的深度特征,其维度设置为512;为最后一层全连接矩阵w第y
i
列权重的转置,b
yi
为第y
i
类的偏执,为表示最后一个全连接层的权重矩阵w的第j列的转置,b
j
和n分别表示偏置
项和总类别数;通过l2范数归一化将权重向量和样本特征的模归一化为1和s,让权重向量w
j
和样本特征x
i
分别位于半径为1和s的超球面上,则:其中,为w
j
的转置,w
j
表示第j类的类中心,θ
yi
是第y个样本与第j类中心的夹角,x
i
为第i个样本特征,θ
j
为该样本特征,s为一个常量超参数;此时的损失函数变为:其中,l2为总损失,θ
yi
为第y个样本与第j类中心的夹角,θ
j
为不同的训练样本与第j类中心的夹角,n为训练样本数,n表示总的类别数量。9.如权利要求8所述的基于目标检测与对比学习的药品识别系统,其特征在于,所述药品识别模型训练模块(40)中,特征向量分布在一个半径为s的超球面上,在w
yi
和x
i
之间添加一个额外的角度惩罚m以同时增加以同时增强类内紧凑性和类间差异性,最终arcface loss的计算公式可表示为:其中,l
arc
为arcface损失,n为训练样本数,s为超球面的半径,m为角度惩罚,θ
yi
是样本与其类中心的夹角;x
i
为与y
i
的ground-truth类对应的第i个特征向量,w
j
是第j类的权重向量,θ
j
为w
j
与x
i
的夹角。10.如权利要求9所述的基于目标检测与对比学习的药品识别系统,其特征在于,所述识别结果融合模块(50)包括:第一获取单元(51),用于使用药品检测模型获得药品的位置和分类;第二获取单元(52),用于根据药品检测模型获取的检测的位置,从原图中获得药品切片,将其送入基于度量学习的药品识别模型中,输出该药品的分类置信度;融合单元(53),融合所述药品检测模型和所述基于度量学习的药品识别模型两种模型的分类结果,输出最终分类置信度。
技术总结
本发明公开了一种基于目标检测与对比学习的药品识别方法及系统,通过视频采集:采集训练样本;训练数据集制作:收集训练图片,标注训练图片,制作药品检测数据集,制作药品识别数据集;药品检测模型训练:训练药品检测模型,输出参与过模型训练药品的分类置信度,以获取基于深度学习的药品检测的识别结果;基于度量学习的药品识别模型训练:训练药品识别模型,输出药品切片的分类置信度,以获取基于度量学习的识别结果;识别结果融合:负责融合基于深度学习的药品检测的识别结果和基于度量学习的识别结果,输出最终分类置信度。本发明减轻操作人员压力、极大增加了系统的可靠性,系统的错误率可以控制在0.01%以下。的错误率可以控制在0.01%以下。的错误率可以控制在0.01%以下。
技术研发人员:张锋 周伯庭 黄雨婷
受保护的技术使用者:中南大学湘雅医院
技术研发日:2023.03.17
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
