李顺君,钱 强,史金龙,葛俊彦,茅凌波
江苏科技大学 计算机学院,江苏 镇江 212100
咽拭子是最主要的采样方法,但在采样时,医务人员须与患者近距离接触,患者咳嗽、用力呼吸等产生大量飞沫,具有较高的交叉感染风险。同时,医务人员的采集技术、操作规范程度的差异会对咽拭子采样结果造成影响,容易出现检测错误的情况。利用计算机视觉与机器人结合的咽拭子采样机器人系统可以避免以上问题。
将机器人技术应用到医疗行业,是医工结合[1]和打造智能医疗体系的尝试。2019年,谭文君等[2]研发的智能吸痰机器人,采用机械臂仿真转动模拟真实吸痰动作,在模型上可有效吸出模拟痰;Balter等[3]研制的机器人静脉穿刺装置,采用近红外和超声成像技术扫描选择合适的注射部位,并采用9自由度机器人根据图像和力引导将针头插入血管中心;2020年2月在浙江省人民医院,全国首例5G超声机器人远程操作成功实施,随后应用于湖北疫情一线[4];2020年2月,广州呼吸健康研究院钟南山院士团队与中科院沈阳自动化研究所,联合研制成功国内首台咽拭子采样机器人,3月开展的临床试验显示,该机器可以取得较好的采样效果,且受试者无不良反应[5]。上述文献对各种医用机器人技术进行了研究,但目前对扁桃体识别定位以及设备远程控制采样的研究较少,且没有公开发表的文章。
扁桃体检测属于视觉检测的一种应用。视觉检测广泛应用于人脸识别、手势识别[6]和自动驾驶等众多领域,是机器视觉领域最重要的技术之一。卷积神经网络[7](convolutional neural networks,CNN)通过训练神经网络提取图像的多尺度特征[8],有效地避免了人工设计特征对原始图像表达能力不足的缺点,能取得更高的分类检测准确度。RCNN(region-CNN)系列[9-10]网络模型是基于深度学习目标检测的代表模型,已广泛应用于医学检测领域。Lu等[11]基于RCNN网络在磁共振成像(magnetic resonance imaging,MRI)上检测淋巴结;Liu等[12]将RCNN用于检测结肠炎,针对二维层面生成一系列候选框,再进行类别分类和定位回归;Sun等[13]将RCNN网络改成基于三维(3D)的网络,并实现肺结节检测。
本文主要针对咽拭子采样,探索智能机器人在医疗辅助方向的应用。本系统基本思路是:采集受试者面部数据;采用两步检测模型检测、识别、定位扁桃体;控制机械臂将一次性棉签伸向受试者扁桃体处,并进行咽拭子采样。
本系统硬件主要包括RGB-D深度相机(Intel Realsense D435i)和UR5机械臂;功能主要分为扁桃体检测和机械臂控制两部分,总体流程如图1所示。
图1 总体流程图Fig.1 Overall flow chart
RGB-D深度相机用来采集人体面部的彩色图像和深度图像;扁桃体检测,将彩色图像输入到两步检测模型中,检测并识别扁桃体与悬雍垂的类别、像素值和边界框;机械臂控制,结合深度图像计算扁桃体到相机的距离,完成机械臂运动学解算,获得扁桃体相对于机械臂基座的三维坐标,并进行运动轨迹规划,控制机械臂运动到指定位置,实现咽拭子采样。
数据集不足是深度学习面临的挑战之一。医学类图像对数据的专业性要求较高,其标注成本也相对较高,因此目前公开的口腔数据集较少。本实验使用Intel Realsense D435i相机采集图像,实验中将其固定在机械臂末端,并拍摄907张1 280×720分辨率的图片,用于构建两步检测数据集。
本实验使用自制人体面部数据集进行训练和测试。数据集由20个受试者的面部图像组成,详细信息见表1。实验中,将口腔作为目标区域,先由三位经验丰富的医学影像医生使用标注软件LabelMe进行标注,再由两位医生对标注结果进行检查。标注图像如图2所示,标注点将图像分为两部分,标注点内部为口腔的目标区域,其余为背景。
表1 人体面部数据集的详细信息Table 1 Detailed information of human face dataset
图2 口腔标注图Fig.2 Oral cavity labeling chart
将口腔区域从原图中裁剪出来,并在其基础上标注出悬雍垂与扁桃体的位置,标注方法同口腔的标注。扁桃体数据集的详细信息见表2,扁桃体与悬雍垂的标注示例见图3。
图3 扁桃体与悬雍垂的标注Fig.3 Marking tonsils and uvula
表2 扁桃体数据集的详细信息Table 2 Details of tonsil data set
扁桃体识别的难点主要在于人体面部图像背景复杂且扁桃体的像素较少,可视为复杂背景下小尺寸目标检测问题。卷积神经网络在检测性能、检测速度等因素上优于传统的模板匹配[14]算法。但一般的基础骨干神经网络(如VGG系列和ResNet系列)常常会忽略特征图中的小尺寸目标信息,导致小目标的检测效果差。因此,本文提出两步检测模型以提高检测精度,如图4所示。
图4 两步检测模型图Fig.4 Two-step detection model diagram
两步检测模型分两步完成扁桃体检测:
第一步,将人体面部图像输入口腔检测模块中,切割出口腔图像,去除复杂背景提高检测精度。
第二步,将切割出的口腔图像输入到扁桃体检测模块中,识别并定位出扁桃体的位置信息。由于检测过程中可能会出现受试者抖动,以及棉签遮挡扁桃体等问题,本文利用悬雍垂尺寸较大容易检测,且处于扁桃体中间位置的特点,在检测扁桃体时同时检测悬雍垂,以辅助计算扁桃体的位置。
口腔检测模块与扁桃体检测模块采用相同的网络结构,均基于Mask R-CNN网络[15]。该网络结构由3部分组成:(1)ResNet-50-FPN主干网;(2)区域建议网络(region proposal network,RPN);(3)头网络,如图5所示。算法基本流程为:
图5 网络结构图Fig.5 Network structure diagram
首先,将图像(面部图像或口腔图像)输入到特征提取网络中获得相应的特征图,并对特征图中的每个点设定一定量的感兴趣区域(region of interest,RoI);然后,将生成的候选RoI送入RPN网络进行二值分类(前景或背景)和边框回归,对剩下的RoI进行RoI Align操作;最后,对这些RoI进行分类、边框回归和掩码生成。在训练期间,每个采样RoI上都定义了一个多任务损失函数,如式(1)所示:
其中,边界框损失Rcam2tcp和分类损失Lcls与Faster R-CNN[16]中的定义相同。分割损失Lmask是对每一个像素应用sigmoid函数,然后取RoI上所有像素交叉熵的平均值,Lmask的作用是为每个对象类生成掩码。
本文采用张正友标定法[17]实现相机自身标定,计算相机内参。
4.1.1 手眼标定
手眼标定是为了求得机械臂末端(TCP)到相机的坐标变换。图6为手眼标定示意图,其中W为机械臂的世界坐标系;E为机械臂末端坐标系;C为相机坐标系;G为标定板坐标系;T1代表坐标系W到E之间的转换,在每次末端姿态变化后,可以由机械臂参数中获得;T2代表坐标系E到C之间的转换,是一个待求取的未知固定矩阵,也是手眼标定需要求取的参数;T3代表坐标系C到G之间的转换,在每次末端姿态变化后,求取得到相机相对于标定板的外参数。
图6 手眼标定示意图Fig.6 Schematic diagram of hand-eye calibration
设T5是坐标系W到G之间的变换,则根据坐标系之间的变换关系,可以得到拍摄标定图像的转换公式为:
改变标定板位置,分多次采集标定图像,获得方程组,解方程组即可求得T2的值。
4.1.2 棉签头试教
由于棉签头(顶部视作一个点)的位置未知,本文采用试教方法获得棉签头相对于机械臂末端E的位置。多次将棉签头触碰棋盘格角点,拍摄图片,获得角点的坐标,如图6所示,可以得到棉签头相对于机械臂末端E的位置公式如式(3),其中,T4代表坐标系E到G之间的转换。
将相机坐标系下的扁桃体中心点标记为,图像中的点由二维到三维的投影公式(4)计算得到;
其中,[u,v]是图像中的像素坐标;Zd是对应的深度值;f x、f y分别是相机在x轴与y轴的焦距;[c x,c y]是图像的中心坐标。
完成上述步骤后,就可以把相机坐标系下的三维信息转换成机械臂世界坐标系下的三维信息。扁桃体中心点在械臂世界坐标系下的坐标(Xcenter_base,Ycenter_base,Zcenter_base),表示为:
其中,Rtcp2base是W到E的旋转矩阵,ttcp2base是W到E的平移矩阵;Rcam2tcp是E到C的旋转矩阵,tcam2tcp是E到C的平移矩阵。
图7所示为采样系统的单次采样图。系统开始工作后,控制机械臂进入初始状态;拍摄并上传图像;使用在服务器中训练好的识别模型对扁桃体进行识别并返回像素坐标;根据手眼标定算法计算扁桃体相对于机械臂世界坐标系的坐标;控制机械臂运动以实现咽拭子采样;完成后机械臂运动回到初始状态;等待下一次采样指令。
图7 单次采样图Fig.7 Single sampling diagram
采样时根据本文检测算法检测口腔压舌器并返回其像素坐标,控制机械臂先运动到人脸前方,经过坐标系转换得到白色口腔压舌器的坐标,当棉签头延长线在口腔压舌器中时,机械臂向前推进,根据扁桃体的位置信息采样;当棉签头延长线不在口腔压舌器中时,机械臂停止运行并重新返回初始位置。扁桃体在口腔内距离嘴边大约70~80 mm的位置,将机械臂设置约束,当棉签头向口腔内推进大于80 mm时,机械臂报错停止运行,出错后机械臂响应速度快,且安全起见控制机械臂运动速度较慢,受试者有反应时间紧急躲避。
本系统采用PyTorch1.2.0深度学习框架,使用Python3.7实现算法网络编程,配备有NVIDIA GeForce GTX 1080 TI显卡和64位Ubuntu 18.10操作系统,图形显卡驱动依赖为Cuda 10.0。基于Socket接口实现电脑端与UR5机器臂端之间的通信。
为了证明本实验检测算法的有效性,本文先使用RealSense D435i深度相机采集数据集,并使用工具LabelMe对907张图像进行掩膜标注。其中,D435i相机在0.4~4.6 m范围内能够精准地测量物体深度,且深度精度误差小于6毫米。最后使用Mask-RCNN网络进行训练,训练参数设置为:batch_size=2,learning_rate=0.001,epoch=2 000。完成训练后,使用文献[18]的部分评价指标对训练结果进行评估。
咽拭子采样机器人系统场景如图8所示。本实验采样视频见:https://www.bilibili.com/video/BV1eT4y1o7zv/。
图8 咽拭子采样机器人系统场景图Fig.8 Scene diagram of throat swab sampling robot system
图9(a)为裁剪的人脸图片;图9(b)中的红色框代表扁桃体标注结果,绿色框代表悬雍垂标注结果;图9(c)为口腔检测分割结果;图9(d)为扁桃体目标检测结果。从图9(d)可以看出,本文的方法可以正确地检测出感兴趣的区域。
图9 实验结果Fig.9 Experimental result
本文实验对医学图像目标检测的3个重要指标进行评估:平均精确度(average precision,AP)、AP50(IoU阈值大于0.5的平均精度)和检测平均时间。实验得到本文两步检测模块的检测指标结果,如表3所示。
表3 本算法实验结果Table 3 Experimental results of this algorithm
为了验证方法的性能,本文做了三个对比实验,其中,在口腔检测模块做了两个比较实验,在扁桃体检测模块做了一个比较实验。
第一个实验,将口腔检测模块方法与Mask R-CNN算法的不同主干网络进行对比实验。对比实验结果如表4所示:口腔检测模块采用ResNet-50-FPN主干网时,分割(segm)检测精度最高且检测的平均时间最短。
表4 网络对比实验结果Table 4 Network comparison experiment results
第二个实验,将模板匹配算法与本文算法进行对比实验。由于光照不均等因素影响,本文在传统的模板匹配的基础上增加HOG算法进行识别,再裁剪识别出的口腔区域。对比实验结果如表5所示:模板匹配算法的平均检测时间是本文算法的3~4倍,因此本文算法极大地降低了咽拭子采样时间。咽拭子采集可能会使人产生恶心、呕吐等不适反应,为了避免此类情况,咽拭子采样的时间需要在人体承受范围之内,因此检测扁桃体的时间也是本算法的一个重要评价指标。另外,传统算法检测的检测错误率较高,如图10所示。
表5 模板匹配+HOG算法对比实验的评价指标Table 5 Evaluation index of template+HOG algorithm comparison experiment
图10 传统算法实验结果图Fig.10 Experimental result diagram of traditional algorithm
第三个实验,将ResNet-50-FPN与Mask R-CNN算法的不同主干网进行了对比实验。检测结果如表6所示:本算法采用的主干网与其余主干网的检测精度相差不大,但检测平均时间最短。
表6 网络对比实验的评价指标Table 6 Evaluation index of network comparison experiment
为了证明两阶段检测方法的必要性,本实验在人体面部数据集上进行消融实验,即将拍摄到的原图直接输入到深度学习网络中进行训练,本实验同样使用Mask R-CNN的ResNet-50-FPN作为主干网络。
由于扁桃体在原图上可以视为小目标且与口腔内部颜色相近,使检测产生诸多困难,导致在原图上检测扁桃体出现图11所示的问题:图11(a)中,悬雍垂被错误检测成扁桃体;图11(b)中,扁桃体位置检测错误且未检测出悬雍垂;图11(c)中,未检测出扁桃体,图11(d)中,扁桃体与悬雍垂均未检测出。
图11 消融实验检测结果Fig.11 Ablation test results
消融实验性能指标如表7所示,与表3扁桃体检测模块实验结果进行比较显示:bbox与segm的AP50分别下降了65.1%和67.4%。
表7 消融实验的评价指标Table 7 Evaluation index of ablation experiment
本文设计了基于深度学习与机器人技术的咽拭子采样系统。在采样过程中,使用本文设计的两阶段检测算法对扁桃体进行识别及定位。通过手眼标定、棉签头试教、三维坐标转换,计算出扁桃体的三维空间坐标,控制机械臂完成采样。系统利用自制的数据集训练识别模型,对扁桃体进行识别,不仅能高效、准确地检测出扁桃体,而且对比实验与消融实验也证明了两阶段检测模型的有效性,提高了采样机器人的智能性。