李順君,錢 強(qiáng),史金龍,葛俊彥,茅凌波
江蘇科技大學(xué) 計算機(jī)學(xué)院,江蘇 鎮(zhèn)江 212100
咽拭子是最主要的采樣方法,但在采樣時,醫(yī)務(wù)人員須與患者近距離接觸,患者咳嗽、用力呼吸等產(chǎn)生大量飛沫,具有較高的交叉感染風(fēng)險。同時,醫(yī)務(wù)人員的采集技術(shù)、操作規(guī)范程度的差異會對咽拭子采樣結(jié)果造成影響,容易出現(xiàn)檢測錯誤的情況。利用計算機(jī)視覺與機(jī)器人結(jié)合的咽拭子采樣機(jī)器人系統(tǒng)可以避免以上問題。
將機(jī)器人技術(shù)應(yīng)用到醫(yī)療行業(yè),是醫(yī)工結(jié)合[1]和打造智能醫(yī)療體系的嘗試。2019年,譚文君等[2]研發(fā)的智能吸痰機(jī)器人,采用機(jī)械臂仿真轉(zhuǎn)動模擬真實吸痰動作,在模型上可有效吸出模擬痰;Balter等[3]研制的機(jī)器人靜脈穿刺裝置,采用近紅外和超聲成像技術(shù)掃描選擇合適的注射部位,并采用9自由度機(jī)器人根據(jù)圖像和力引導(dǎo)將針頭插入血管中心;2020年2月在浙江省人民醫(yī)院,全國首例5G超聲機(jī)器人遠(yuǎn)程操作成功實施,隨后應(yīng)用于湖北疫情一線[4];2020年2月,廣州呼吸健康研究院鐘南山院士團(tuán)隊與中科院沈陽自動化研究所,聯(lián)合研制成功國內(nèi)首臺咽拭子采樣機(jī)器人,3月開展的臨床試驗顯示,該機(jī)器可以取得較好的采樣效果,且受試者無不良反應(yīng)[5]。上述文獻(xiàn)對各種醫(yī)用機(jī)器人技術(shù)進(jìn)行了研究,但目前對扁桃體識別定位以及設(shè)備遠(yuǎn)程控制采樣的研究較少,且沒有公開發(fā)表的文章。
扁桃體檢測屬于視覺檢測的一種應(yīng)用。視覺檢測廣泛應(yīng)用于人臉識別、手勢識別[6]和自動駕駛等眾多領(lǐng)域,是機(jī)器視覺領(lǐng)域最重要的技術(shù)之一。卷積神經(jīng)網(wǎng)絡(luò)[7](convolutional neural networks,CNN)通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)提取圖像的多尺度特征[8],有效地避免了人工設(shè)計特征對原始圖像表達(dá)能力不足的缺點,能取得更高的分類檢測準(zhǔn)確度。RCNN(region-CNN)系列[9-10]網(wǎng)絡(luò)模型是基于深度學(xué)習(xí)目標(biāo)檢測的代表模型,已廣泛應(yīng)用于醫(yī)學(xué)檢測領(lǐng)域。Lu等[11]基于RCNN網(wǎng)絡(luò)在磁共振成像(magnetic resonance imaging,MRI)上檢測淋巴結(jié);Liu等[12]將RCNN用于檢測結(jié)腸炎,針對二維層面生成一系列候選框,再進(jìn)行類別分類和定位回歸;Sun等[13]將RCNN網(wǎng)絡(luò)改成基于三維(3D)的網(wǎng)絡(luò),并實現(xiàn)肺結(jié)節(jié)檢測。
本文主要針對咽拭子采樣,探索智能機(jī)器人在醫(yī)療輔助方向的應(yīng)用。本系統(tǒng)基本思路是:采集受試者面部數(shù)據(jù);采用兩步檢測模型檢測、識別、定位扁桃體;控制機(jī)械臂將一次性棉簽伸向受試者扁桃體處,并進(jìn)行咽拭子采樣。
本系統(tǒng)硬件主要包括RGB-D深度相機(jī)(Intel Realsense D435i)和UR5機(jī)械臂;功能主要分為扁桃體檢測和機(jī)械臂控制兩部分,總體流程如圖1所示。
圖1 總體流程圖Fig.1 Overall flow chart
RGB-D深度相機(jī)用來采集人體面部的彩色圖像和深度圖像;扁桃體檢測,將彩色圖像輸入到兩步檢測模型中,檢測并識別扁桃體與懸雍垂的類別、像素值和邊界框;機(jī)械臂控制,結(jié)合深度圖像計算扁桃體到相機(jī)的距離,完成機(jī)械臂運動學(xué)解算,獲得扁桃體相對于機(jī)械臂基座的三維坐標(biāo),并進(jìn)行運動軌跡規(guī)劃,控制機(jī)械臂運動到指定位置,實現(xiàn)咽拭子采樣。
數(shù)據(jù)集不足是深度學(xué)習(xí)面臨的挑戰(zhàn)之一。醫(yī)學(xué)類圖像對數(shù)據(jù)的專業(yè)性要求較高,其標(biāo)注成本也相對較高,因此目前公開的口腔數(shù)據(jù)集較少。本實驗使用Intel Realsense D435i相機(jī)采集圖像,實驗中將其固定在機(jī)械臂末端,并拍攝907張1 280×720分辨率的圖片,用于構(gòu)建兩步檢測數(shù)據(jù)集。
本實驗使用自制人體面部數(shù)據(jù)集進(jìn)行訓(xùn)練和測試。數(shù)據(jù)集由20個受試者的面部圖像組成,詳細(xì)信息見表1。實驗中,將口腔作為目標(biāo)區(qū)域,先由三位經(jīng)驗豐富的醫(yī)學(xué)影像醫(yī)生使用標(biāo)注軟件LabelMe進(jìn)行標(biāo)注,再由兩位醫(yī)生對標(biāo)注結(jié)果進(jìn)行檢查。標(biāo)注圖像如圖2所示,標(biāo)注點將圖像分為兩部分,標(biāo)注點內(nèi)部為口腔的目標(biāo)區(qū)域,其余為背景。
表1 人體面部數(shù)據(jù)集的詳細(xì)信息Table 1 Detailed information of human face dataset
圖2 口腔標(biāo)注圖Fig.2 Oral cavity labeling chart
將口腔區(qū)域從原圖中裁剪出來,并在其基礎(chǔ)上標(biāo)注出懸雍垂與扁桃體的位置,標(biāo)注方法同口腔的標(biāo)注。扁桃體數(shù)據(jù)集的詳細(xì)信息見表2,扁桃體與懸雍垂的標(biāo)注示例見圖3。
圖3 扁桃體與懸雍垂的標(biāo)注Fig.3 Marking tonsils and uvula
表2 扁桃體數(shù)據(jù)集的詳細(xì)信息Table 2 Details of tonsil data set
扁桃體識別的難點主要在于人體面部圖像背景復(fù)雜且扁桃體的像素較少,可視為復(fù)雜背景下小尺寸目標(biāo)檢測問題。卷積神經(jīng)網(wǎng)絡(luò)在檢測性能、檢測速度等因素上優(yōu)于傳統(tǒng)的模板匹配[14]算法。但一般的基礎(chǔ)骨干神經(jīng)網(wǎng)絡(luò)(如VGG系列和ResNet系列)常常會忽略特征圖中的小尺寸目標(biāo)信息,導(dǎo)致小目標(biāo)的檢測效果差。因此,本文提出兩步檢測模型以提高檢測精度,如圖4所示。
圖4 兩步檢測模型圖Fig.4 Two-step detection model diagram
兩步檢測模型分兩步完成扁桃體檢測:
第一步,將人體面部圖像輸入口腔檢測模塊中,切割出口腔圖像,去除復(fù)雜背景提高檢測精度。
第二步,將切割出的口腔圖像輸入到扁桃體檢測模塊中,識別并定位出扁桃體的位置信息。由于檢測過程中可能會出現(xiàn)受試者抖動,以及棉簽遮擋扁桃體等問題,本文利用懸雍垂尺寸較大容易檢測,且處于扁桃體中間位置的特點,在檢測扁桃體時同時檢測懸雍垂,以輔助計算扁桃體的位置。
口腔檢測模塊與扁桃體檢測模塊采用相同的網(wǎng)絡(luò)結(jié)構(gòu),均基于Mask R-CNN網(wǎng)絡(luò)[15]。該網(wǎng)絡(luò)結(jié)構(gòu)由3部分組成:(1)ResNet-50-FPN主干網(wǎng);(2)區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN);(3)頭網(wǎng)絡(luò),如圖5所示。算法基本流程為:
圖5 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.5 Network structure diagram
首先,將圖像(面部圖像或口腔圖像)輸入到特征提取網(wǎng)絡(luò)中獲得相應(yīng)的特征圖,并對特征圖中的每個點設(shè)定一定量的感興趣區(qū)域(region of interest,RoI);然后,將生成的候選RoI送入RPN網(wǎng)絡(luò)進(jìn)行二值分類(前景或背景)和邊框回歸,對剩下的RoI進(jìn)行RoI Align操作;最后,對這些RoI進(jìn)行分類、邊框回歸和掩碼生成。在訓(xùn)練期間,每個采樣RoI上都定義了一個多任務(wù)損失函數(shù),如式(1)所示:
其中,邊界框損失Rcam2tcp和分類損失Lcls與Faster R-CNN[16]中的定義相同。分割損失Lmask是對每一個像素應(yīng)用sigmoid函數(shù),然后取RoI上所有像素交叉熵的平均值,Lmask的作用是為每個對象類生成掩碼。
本文采用張正友標(biāo)定法[17]實現(xiàn)相機(jī)自身標(biāo)定,計算相機(jī)內(nèi)參。
4.1.1 手眼標(biāo)定
手眼標(biāo)定是為了求得機(jī)械臂末端(TCP)到相機(jī)的坐標(biāo)變換。圖6為手眼標(biāo)定示意圖,其中W為機(jī)械臂的世界坐標(biāo)系;E為機(jī)械臂末端坐標(biāo)系;C為相機(jī)坐標(biāo)系;G為標(biāo)定板坐標(biāo)系;T1代表坐標(biāo)系W到E之間的轉(zhuǎn)換,在每次末端姿態(tài)變化后,可以由機(jī)械臂參數(shù)中獲得;T2代表坐標(biāo)系E到C之間的轉(zhuǎn)換,是一個待求取的未知固定矩陣,也是手眼標(biāo)定需要求取的參數(shù);T3代表坐標(biāo)系C到G之間的轉(zhuǎn)換,在每次末端姿態(tài)變化后,求取得到相機(jī)相對于標(biāo)定板的外參數(shù)。
圖6 手眼標(biāo)定示意圖Fig.6 Schematic diagram of hand-eye calibration
設(shè)T5是坐標(biāo)系W到G之間的變換,則根據(jù)坐標(biāo)系之間的變換關(guān)系,可以得到拍攝標(biāo)定圖像的轉(zhuǎn)換公式為:
改變標(biāo)定板位置,分多次采集標(biāo)定圖像,獲得方程組,解方程組即可求得T2的值。
4.1.2 棉簽頭試教
由于棉簽頭(頂部視作一個點)的位置未知,本文采用試教方法獲得棉簽頭相對于機(jī)械臂末端E的位置。多次將棉簽頭觸碰棋盤格角點,拍攝圖片,獲得角點的坐標(biāo),如圖6所示,可以得到棉簽頭相對于機(jī)械臂末端E的位置公式如式(3),其中,T4代表坐標(biāo)系E到G之間的轉(zhuǎn)換。
將相機(jī)坐標(biāo)系下的扁桃體中心點標(biāo)記為,圖像中的點由二維到三維的投影公式(4)計算得到;
其中,[u,v]是圖像中的像素坐標(biāo);Zd是對應(yīng)的深度值;f x、f y分別是相機(jī)在x軸與y軸的焦距;[c x,c y]是圖像的中心坐標(biāo)。
完成上述步驟后,就可以把相機(jī)坐標(biāo)系下的三維信息轉(zhuǎn)換成機(jī)械臂世界坐標(biāo)系下的三維信息。扁桃體中心點在械臂世界坐標(biāo)系下的坐標(biāo)(Xcenter_base,Ycenter_base,Zcenter_base),表示為:
其中,Rtcp2base是W到E的旋轉(zhuǎn)矩陣,ttcp2base是W到E的平移矩陣;Rcam2tcp是E到C的旋轉(zhuǎn)矩陣,tcam2tcp是E到C的平移矩陣。
圖7所示為采樣系統(tǒng)的單次采樣圖。系統(tǒng)開始工作后,控制機(jī)械臂進(jìn)入初始狀態(tài);拍攝并上傳圖像;使用在服務(wù)器中訓(xùn)練好的識別模型對扁桃體進(jìn)行識別并返回像素坐標(biāo);根據(jù)手眼標(biāo)定算法計算扁桃體相對于機(jī)械臂世界坐標(biāo)系的坐標(biāo);控制機(jī)械臂運動以實現(xiàn)咽拭子采樣;完成后機(jī)械臂運動回到初始狀態(tài);等待下一次采樣指令。
圖7 單次采樣圖Fig.7 Single sampling diagram
采樣時根據(jù)本文檢測算法檢測口腔壓舌器并返回其像素坐標(biāo),控制機(jī)械臂先運動到人臉前方,經(jīng)過坐標(biāo)系轉(zhuǎn)換得到白色口腔壓舌器的坐標(biāo),當(dāng)棉簽頭延長線在口腔壓舌器中時,機(jī)械臂向前推進(jìn),根據(jù)扁桃體的位置信息采樣;當(dāng)棉簽頭延長線不在口腔壓舌器中時,機(jī)械臂停止運行并重新返回初始位置。扁桃體在口腔內(nèi)距離嘴邊大約70~80 mm的位置,將機(jī)械臂設(shè)置約束,當(dāng)棉簽頭向口腔內(nèi)推進(jìn)大于80 mm時,機(jī)械臂報錯停止運行,出錯后機(jī)械臂響應(yīng)速度快,且安全起見控制機(jī)械臂運動速度較慢,受試者有反應(yīng)時間緊急躲避。
本系統(tǒng)采用PyTorch1.2.0深度學(xué)習(xí)框架,使用Python3.7實現(xiàn)算法網(wǎng)絡(luò)編程,配備有NVIDIA GeForce GTX 1080 TI顯卡和64位Ubuntu 18.10操作系統(tǒng),圖形顯卡驅(qū)動依賴為Cuda 10.0。基于Socket接口實現(xiàn)電腦端與UR5機(jī)器臂端之間的通信。
為了證明本實驗檢測算法的有效性,本文先使用RealSense D435i深度相機(jī)采集數(shù)據(jù)集,并使用工具LabelMe對907張圖像進(jìn)行掩膜標(biāo)注。其中,D435i相機(jī)在0.4~4.6 m范圍內(nèi)能夠精準(zhǔn)地測量物體深度,且深度精度誤差小于6毫米。最后使用Mask-RCNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練參數(shù)設(shè)置為:batch_size=2,learning_rate=0.001,epoch=2 000。完成訓(xùn)練后,使用文獻(xiàn)[18]的部分評價指標(biāo)對訓(xùn)練結(jié)果進(jìn)行評估。
咽拭子采樣機(jī)器人系統(tǒng)場景如圖8所示。本實驗采樣視頻見:https://www.bilibili.com/video/BV1eT4y1o7zv/。
圖8 咽拭子采樣機(jī)器人系統(tǒng)場景圖Fig.8 Scene diagram of throat swab sampling robot system
圖9(a)為裁剪的人臉圖片;圖9(b)中的紅色框代表扁桃體標(biāo)注結(jié)果,綠色框代表懸雍垂標(biāo)注結(jié)果;圖9(c)為口腔檢測分割結(jié)果;圖9(d)為扁桃體目標(biāo)檢測結(jié)果。從圖9(d)可以看出,本文的方法可以正確地檢測出感興趣的區(qū)域。
圖9 實驗結(jié)果Fig.9 Experimental result
本文實驗對醫(yī)學(xué)圖像目標(biāo)檢測的3個重要指標(biāo)進(jìn)行評估:平均精確度(average precision,AP)、AP50(IoU閾值大于0.5的平均精度)和檢測平均時間。實驗得到本文兩步檢測模塊的檢測指標(biāo)結(jié)果,如表3所示。
表3 本算法實驗結(jié)果Table 3 Experimental results of this algorithm
為了驗證方法的性能,本文做了三個對比實驗,其中,在口腔檢測模塊做了兩個比較實驗,在扁桃體檢測模塊做了一個比較實驗。
第一個實驗,將口腔檢測模塊方法與Mask R-CNN算法的不同主干網(wǎng)絡(luò)進(jìn)行對比實驗。對比實驗結(jié)果如表4所示:口腔檢測模塊采用ResNet-50-FPN主干網(wǎng)時,分割(segm)檢測精度最高且檢測的平均時間最短。
表4 網(wǎng)絡(luò)對比實驗結(jié)果Table 4 Network comparison experiment results
第二個實驗,將模板匹配算法與本文算法進(jìn)行對比實驗。由于光照不均等因素影響,本文在傳統(tǒng)的模板匹配的基礎(chǔ)上增加HOG算法進(jìn)行識別,再裁剪識別出的口腔區(qū)域。對比實驗結(jié)果如表5所示:模板匹配算法的平均檢測時間是本文算法的3~4倍,因此本文算法極大地降低了咽拭子采樣時間。咽拭子采集可能會使人產(chǎn)生惡心、嘔吐等不適反應(yīng),為了避免此類情況,咽拭子采樣的時間需要在人體承受范圍之內(nèi),因此檢測扁桃體的時間也是本算法的一個重要評價指標(biāo)。另外,傳統(tǒng)算法檢測的檢測錯誤率較高,如圖10所示。
表5 模板匹配+HOG算法對比實驗的評價指標(biāo)Table 5 Evaluation index of template+HOG algorithm comparison experiment
圖10 傳統(tǒng)算法實驗結(jié)果圖Fig.10 Experimental result diagram of traditional algorithm
第三個實驗,將ResNet-50-FPN與Mask R-CNN算法的不同主干網(wǎng)進(jìn)行了對比實驗。檢測結(jié)果如表6所示:本算法采用的主干網(wǎng)與其余主干網(wǎng)的檢測精度相差不大,但檢測平均時間最短。
表6 網(wǎng)絡(luò)對比實驗的評價指標(biāo)Table 6 Evaluation index of network comparison experiment
為了證明兩階段檢測方法的必要性,本實驗在人體面部數(shù)據(jù)集上進(jìn)行消融實驗,即將拍攝到的原圖直接輸入到深度學(xué)習(xí)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,本實驗同樣使用Mask R-CNN的ResNet-50-FPN作為主干網(wǎng)絡(luò)。
由于扁桃體在原圖上可以視為小目標(biāo)且與口腔內(nèi)部顏色相近,使檢測產(chǎn)生諸多困難,導(dǎo)致在原圖上檢測扁桃體出現(xiàn)圖11所示的問題:圖11(a)中,懸雍垂被錯誤檢測成扁桃體;圖11(b)中,扁桃體位置檢測錯誤且未檢測出懸雍垂;圖11(c)中,未檢測出扁桃體,圖11(d)中,扁桃體與懸雍垂均未檢測出。
圖11 消融實驗檢測結(jié)果Fig.11 Ablation test results
消融實驗性能指標(biāo)如表7所示,與表3扁桃體檢測模塊實驗結(jié)果進(jìn)行比較顯示:bbox與segm的AP50分別下降了65.1%和67.4%。
表7 消融實驗的評價指標(biāo)Table 7 Evaluation index of ablation experiment
本文設(shè)計了基于深度學(xué)習(xí)與機(jī)器人技術(shù)的咽拭子采樣系統(tǒng)。在采樣過程中,使用本文設(shè)計的兩階段檢測算法對扁桃體進(jìn)行識別及定位。通過手眼標(biāo)定、棉簽頭試教、三維坐標(biāo)轉(zhuǎn)換,計算出扁桃體的三維空間坐標(biāo),控制機(jī)械臂完成采樣。系統(tǒng)利用自制的數(shù)據(jù)集訓(xùn)練識別模型,對扁桃體進(jìn)行識別,不僅能高效、準(zhǔn)確地檢測出扁桃體,而且對比實驗與消融實驗也證明了兩階段檢測模型的有效性,提高了采樣機(jī)器人的智能性。