陳潤(rùn)杰,古宇成
(中山大學(xué)南方學(xué)院,廣州 510970)
醫(yī)療機(jī)器技術(shù)在現(xiàn)代醫(yī)療中有舉足輕重的地位,在科學(xué)技術(shù)發(fā)展的進(jìn)程中是最受關(guān)注的方向之一。目前,針對(duì)醫(yī)療方向的機(jī)器技術(shù)研究一直有推出新成果,而且隨著科技的不斷進(jìn)步以及人口老齡化、戰(zhàn)爭(zhēng)技術(shù)儲(chǔ)備需求高端化發(fā)展,機(jī)器技術(shù)在醫(yī)療領(lǐng)域?qū)?huì)受到更廣泛而深入的研究和應(yīng)用。
根據(jù)已知研究得出,大部分引導(dǎo)跟隨技術(shù)較為欠缺的地方是都需要目標(biāo)自身手持或佩戴特殊儀器,增加了識(shí)別目標(biāo)自身的生理上和心理上負(fù)擔(dān),也沒(méi)有考慮到老年人群體對(duì)身上多出的掛件是否會(huì)產(chǎn)生抵觸情緒。
因此,為解決上述不足,決定研發(fā)出一種能夠盡可能減少受眾負(fù)擔(dān)的,更仿生的基于計(jì)算機(jī)視覺(jué)的圖像識(shí)別技術(shù)來(lái)實(shí)現(xiàn)人體識(shí)別與跟隨。通過(guò)讓跟隨目標(biāo)穿上印有特殊圖案的衣服或者在目標(biāo)的衣服上貼上特定圖案的貼紙,再通過(guò)機(jī)器上的攝像頭進(jìn)行識(shí)別跟隨,減少了跟隨對(duì)象的負(fù)擔(dān)。
根據(jù)以上得出的問(wèn)題,在移動(dòng)機(jī)器人的基礎(chǔ)上,研發(fā)一種可遠(yuǎn)程監(jiān)控、采集人體相關(guān)參數(shù)等功能并通過(guò)圖像識(shí)別引導(dǎo)跟隨的履帶式機(jī)器人。針對(duì)移動(dòng)機(jī)器人的參數(shù)采集和目標(biāo)識(shí)別跟隨兩大功能進(jìn)行了研究分析,最后驗(yàn)證了硬件系統(tǒng)和跟隨算法的可行性。
本文設(shè)計(jì)一種可遠(yuǎn)程監(jiān)控、采集人體相關(guān)參數(shù)等功能并通過(guò)圖像識(shí)別引導(dǎo)跟隨的履帶式機(jī)器人。采用基于STM32的車(chē)載主控制器,基于計(jì)算機(jī)視覺(jué)圖像識(shí)別的人體跟隨、參數(shù)采集模塊,客戶端應(yīng)用程序采用基于Linux的Java程序設(shè)計(jì)語(yǔ)言進(jìn)行Android開(kāi)發(fā),數(shù)據(jù)遠(yuǎn)程存取采用云服務(wù)器平臺(tái),三者互聯(lián)為醫(yī)療機(jī)器人系統(tǒng)?;赟TM32F103車(chē)載主控制器通過(guò)驅(qū)動(dòng)溫濕度模塊、接觸式體溫檢測(cè)模塊、接觸式心率測(cè)量模塊來(lái)實(shí)時(shí)采集監(jiān)護(hù)對(duì)象的身體參數(shù),將采集到的數(shù)據(jù)通過(guò)Wi-Fi模塊聯(lián)網(wǎng)上傳至云服務(wù)器平臺(tái)進(jìn)行儲(chǔ)存,An?droid客戶端可與云服務(wù)器進(jìn)行交互,從而提取已存儲(chǔ)的人體參數(shù),客戶端能夠在3秒內(nèi)完成提取參數(shù),并判斷其是否超過(guò)警報(bào)值而做出警報(bào)。系統(tǒng)總體結(jié)構(gòu)圖如圖1所示。
醫(yī)療機(jī)器人為獨(dú)居老人的生活安全提供了一定的保障,減輕了傳統(tǒng)型家庭養(yǎng)老的負(fù)擔(dān),提高了突發(fā)事件的應(yīng)對(duì)能力和降低了財(cái)產(chǎn)的損失風(fēng)險(xiǎn),實(shí)現(xiàn)了對(duì)獨(dú)居老人的遠(yuǎn)程監(jiān)護(hù)。
圖1
系統(tǒng)軟件部分包括客戶端主界面、各類(lèi)參數(shù)圖像化子界面,界面模塊結(jié)構(gòu)如圖2所示??蛻舳藨?yīng)用程序采用Java程序設(shè)計(jì)語(yǔ)言進(jìn)行Android開(kāi)發(fā),采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,把對(duì)象抽象成類(lèi)進(jìn)行封裝,主界面每個(gè)功能鍵可打開(kāi)對(duì)應(yīng)的子界面;每個(gè)子界面以折線圖或柱形圖的形式動(dòng)態(tài)顯示參數(shù)值;當(dāng)任一子界面中的參數(shù)達(dá)到預(yù)警值則彈出警報(bào)界面并響起警報(bào)聲。
圖2
在交互方案中,云服務(wù)器預(yù)設(shè)可接受多種通信協(xié)議的命令,而客戶端利用TCP(Transmission Control Pro?tocol)協(xié)議向服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求命令,TCP傳輸控制協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC 793定義,使用三次握手協(xié)議建立連接。
當(dāng)主動(dòng)方發(fā)出SYN連接請(qǐng)求后,等待對(duì)方回答TCP的三次握手SYN+ACK,并最終對(duì)對(duì)方的SYN執(zhí)行ACK確認(rèn)。這種建立連接的方法可以防止產(chǎn)生錯(cuò)誤的連接,TCP使用的流量控制協(xié)議是可變大小的滑動(dòng)窗口協(xié)議,具體流程如圖3所示。
圖3
在物聯(lián)網(wǎng)和云技術(shù)的結(jié)合下,本系統(tǒng)可分為三部分,由STM32及其驅(qū)動(dòng)外設(shè)人體跟隨、參數(shù)采集模塊構(gòu)成的車(chē)載部分;云服務(wù)器部分;用于將人體數(shù)據(jù)圖像化與用戶交互的Android客戶端部分;而車(chē)載系統(tǒng)又由基于STM32處理器的車(chē)載系統(tǒng)①基于樹(shù)莓派處理器的車(chē)載系統(tǒng),②兩部分組成。總體結(jié)構(gòu)圖如圖4所示。
圖4
整個(gè)系統(tǒng)的工作原理是每隔一段預(yù)設(shè)時(shí)間,機(jī)器人向監(jiān)護(hù)對(duì)象發(fā)出信號(hào)提示需要進(jìn)行體檢采集人體參數(shù),待體檢完成后,車(chē)載主控板將參數(shù)通過(guò)Wi-Fi模塊與室內(nèi)路由器互聯(lián),并通過(guò)后者與云服務(wù)器進(jìn)行數(shù)據(jù)交互以存入人體參數(shù);云服務(wù)器接收到參數(shù)后則將其分類(lèi)存儲(chǔ)在預(yù)先設(shè)置好的數(shù)據(jù)塊中,等待Android客戶端向服務(wù)器提出參數(shù)提取請(qǐng)求命令;Android客戶端通過(guò)TCP協(xié)議向服務(wù)器發(fā)出命令,服務(wù)器已預(yù)設(shè)收到正確命令后自動(dòng)返回對(duì)應(yīng)類(lèi)別的人體參數(shù),客戶端提取到參數(shù)后則通過(guò)數(shù)據(jù)圖像化及預(yù)警值判斷進(jìn)行實(shí)時(shí)顯示。具體部署如圖5所示。
圖5
系統(tǒng)功能包括:
①監(jiān)護(hù)客戶端實(shí)時(shí)監(jiān)控人體異常;
②車(chē)載攝像頭模塊對(duì)監(jiān)護(hù)對(duì)象進(jìn)行跟隨;
③車(chē)載數(shù)據(jù)采集模塊為監(jiān)護(hù)對(duì)象體檢;
④云服務(wù)器遠(yuǎn)程儲(chǔ)存數(shù)據(jù),保障數(shù)據(jù)的安全性以及便捷性。
圖6
如圖6的程序流程圖所示,在STM32中,定時(shí)器4用于心率測(cè)量模塊的計(jì)時(shí),定時(shí)器1用于體檢間隔計(jì)時(shí)。當(dāng)主控制器啟動(dòng)時(shí),驅(qū)動(dòng)溫濕度模塊、攝像頭模塊進(jìn)行室內(nèi)溫濕度的收集和人體跟隨,同時(shí)定時(shí)器1開(kāi)始計(jì)時(shí),當(dāng)定時(shí)器1計(jì)數(shù)到達(dá)預(yù)設(shè)值溢出時(shí),控制器啟動(dòng)主程序,開(kāi)始分別啟動(dòng)蜂鳴器、心率模塊、體溫模塊,進(jìn)行為時(shí)30秒的體檢(人體參數(shù)收集),當(dāng)收集完成時(shí)再次啟動(dòng)蜂鳴器發(fā)出體檢結(jié)束信號(hào),繼續(xù)溫濕度的收集和跟隨,同時(shí)驅(qū)動(dòng)Wi-Fi模塊將收集到的參數(shù)上傳至服務(wù)器。
對(duì)顏色進(jìn)行建模以達(dá)到顏色數(shù)值化的方法可理解為“建立顏色空間坐標(biāo)系”,一般來(lái)說(shuō),生活中的任何顏色都可以用具體的數(shù)值來(lái)表示。
RGB顏色模型分別是變量R-紅色、G-綠色、B-藍(lán)色的取值變化,這三種顏色可以通過(guò)不同的取值進(jìn)行顏色疊加來(lái)獲得各種不同的顏色效果,具體模型如圖7所示。
圖7
HSL顏色模型分別是H-色相值、S-飽和度、L-亮度的取值變化,這三個(gè)變量通過(guò)不同的取值進(jìn)行效果疊加來(lái)獲得各種不同的顏色效果,特別的,該顏色模型比RGB更為人性化。
HSL是對(duì)RGB顏色的另一種表示,該模型展示了比RGB更準(zhǔn)確、更容易理解的顏色聯(lián)系,HSL顏色模型對(duì)應(yīng)于圓柱坐標(biāo)系中的一個(gè)圓錐形子集,模型如圖8所示,圓錐的Y軸頂點(diǎn)對(duì)應(yīng)L=1,該點(diǎn)可在RGB模型中表示為R=1,G=1,B=1時(shí)的三個(gè)面,所代表的顏色較亮。色相值軸由繞L軸的旋轉(zhuǎn)角取得,例如角度為0°時(shí),即H值為0°時(shí),代表了當(dāng)前顏色為紅色,綠色則為120°,藍(lán)色對(duì)應(yīng)于240°。在HSL顏色模型中,每一種顏色和它的補(bǔ)色相差180°。
圓錐的X軸,即飽和度S取值的取值范圍,最大值為1。當(dāng)取值為圓錐的原點(diǎn),此時(shí)L=0,H值與S值無(wú)法被定義,該點(diǎn)的顏色效果為黑色。當(dāng)取值為圓錐的Y軸的頂點(diǎn),此時(shí)S=0,L=1,H值無(wú)法被定義,顏色效果為白色。從Y軸頂點(diǎn)到原點(diǎn)的過(guò)程,表示顏色的亮度漸變暗,在該過(guò)程,S=0,H值無(wú)法被定義。在圓錐頂面圓周上的各個(gè)點(diǎn),它們的L值和S值都為1,這些點(diǎn)的顏色效果都是純色。
圖9、10、11分別是HSL三個(gè)值的概念圖,HSL的色相值即H分量,代表的是人眼所能感知的顏色范圍,可理解為在一個(gè)平面的色相環(huán)上,每個(gè)角度代表了一種顏色。色相值的意義在于,在不改變光感的情況下,通過(guò)改變色相環(huán)上的角度來(lái)改變顏色。色相環(huán)上有六個(gè)主色用作基本參照:0°紅、60°黃、120°綠、180°青、240°藍(lán)、300°粉,它們?cè)谏喹h(huán)上按照60°圓心角的間隔排列。
S分量,指的是色彩的飽和度,它用0%至100%的值描述了相同色相、明度下顏色純度的變化,數(shù)值越大,則顏色越鮮艷。
L分量,指的是色彩的明度,作用是控制色彩的明暗變化。同樣使用了0%至100%的取值范圍。數(shù)值越小,色彩越暗,越接近于黑色;數(shù)值越大,色彩越亮,越接近于白色。
圖8
圖9
圖10
圖11
當(dāng)(r,g,b)為某個(gè)顏色的 RGB 空間模型坐標(biāo),r、g、b的值是在0到1之間的實(shí)數(shù)。將max取值于r、g和b中的最大值。將min取值于三個(gè)值中的最小值。當(dāng)RGB要轉(zhuǎn)換為HSL顏色模型中的坐標(biāo)(h,s,l)時(shí),該坐標(biāo)點(diǎn)的 h∈[0,360),代表的是色相角,而 s,l∈[0,1],分別代表飽和度和亮度。
色相值h的轉(zhuǎn)換公式為:
飽和度s的轉(zhuǎn)換公式為:
亮度l的轉(zhuǎn)換公式為:
樹(shù)莓派開(kāi)發(fā)板的開(kāi)發(fā)工具十分廣泛,由于Python語(yǔ)言易讀寫(xiě)、移植性好以及維護(hù)容易等優(yōu)點(diǎn),因此在樹(shù)莓派上采用Python語(yǔ)言進(jìn)行程序編寫(xiě)。程序編寫(xiě)完成后,在IDE界面完成程序編譯即可運(yùn)行。
圖像識(shí)別軟件流程圖如圖12所示,主要包括初始化模塊和主循環(huán)模塊。初始化包括了線程初始化,攝像頭初始化、線程池初始化,主循環(huán)模塊為圖像識(shí)別邏輯處理塊。
在系統(tǒng)開(kāi)始啟動(dòng)后,樹(shù)莓派開(kāi)發(fā)板驅(qū)動(dòng)USB攝像頭并和獲取圖像數(shù)據(jù)。①樹(shù)莓派開(kāi)發(fā)板獲取到圖像數(shù)據(jù)后,對(duì)圖像進(jìn)行灰度處理,再與儲(chǔ)存器中的目標(biāo)識(shí)別規(guī)范進(jìn)行邏輯對(duì)比處理。②提取圖像中部圓形范圍內(nèi)一定數(shù)量像素點(diǎn)的HSL值,判斷每個(gè)像素點(diǎn)該值是否都在對(duì)應(yīng)指定顏色值范圍內(nèi)。③獲取識(shí)別目標(biāo)在攝像頭的相對(duì)中心點(diǎn)位置,判斷識(shí)別對(duì)象的相對(duì)位置。當(dāng)條件①通過(guò)后,進(jìn)入條件②,此時(shí)當(dāng)條件②通過(guò)后即進(jìn)入邏輯③,經(jīng)過(guò)邏輯③的處理并得出結(jié)果后,通過(guò)引腳輸出特定脈沖電平時(shí)序信號(hào)和高低電平信號(hào)分別控制舵機(jī)與STM32處理器進(jìn)行姿態(tài)調(diào)整。程序偽代碼如下:BEGIN
圖12
圖像識(shí)別是人工智能的一個(gè)重要領(lǐng)域,原理是利用計(jì)算機(jī)對(duì)圖像進(jìn)行處理、分析和理解,拍攝圖片后再利用軟件根據(jù)圖片灰階差做進(jìn)一步識(shí)別處理,以識(shí)別各種不同模式的目標(biāo)和對(duì)象的技術(shù)。
跟隨功能通過(guò)根據(jù)目標(biāo)區(qū)域(藍(lán)色框)在所建視圖框中的相對(duì)坐標(biāo)值,將目標(biāo)區(qū)域限制在攝像中心區(qū)域(黃色框)中。當(dāng)目標(biāo)區(qū)域與中心區(qū)域相交時(shí)則觸發(fā)人機(jī)相對(duì)姿態(tài)調(diào)節(jié)信號(hào),STM32收到相應(yīng)指令對(duì)電機(jī)作出相應(yīng)調(diào)節(jié)。同時(shí)基于低能耗高處理速度的樹(shù)莓派ARM Cortex-A53處理器進(jìn)行圖片灰度處理,圖片流最快可達(dá)18幀每秒的速度。從而實(shí)現(xiàn)實(shí)時(shí)的、準(zhǔn)確的人體跟隨。效果如圖13所示。
在圖14可觀察到在樹(shù)莓派終端界面顯示了程序執(zhí)行時(shí)成功開(kāi)啟了兩個(gè)線程:攝像頭云臺(tái)初始化;建立網(wǎng)絡(luò)Socket連接并傳輸機(jī)器采集到的數(shù)據(jù)。在向云服務(wù)器發(fā)送圖像監(jiān)控或人體參數(shù)的數(shù)據(jù)后獲得的發(fā)送成功回執(zhí)如圖15所示。而后并無(wú)異常。
圖13
圖14
圖15
基于Java程序設(shè)計(jì)語(yǔ)言的Android開(kāi)發(fā),該客戶端程序測(cè)試了人體數(shù)據(jù)可視化功能,在建立了初步的圖形主、子界面后,能夠流暢地通過(guò)主界面的功能鍵進(jìn)入子界面,通過(guò)TCP協(xié)議獲取到的參數(shù)無(wú)亂碼且正確,相關(guān)數(shù)據(jù)也能夠如圖16在子界面正確展示。
圖16
隨著人類(lèi)是社會(huì)生活水平的提高,各種類(lèi)型的機(jī)器人類(lèi)型需求隨著出現(xiàn),目前機(jī)器人幾乎已經(jīng)滲透到生活的各個(gè)方面。
針對(duì)使用在醫(yī)療監(jiān)護(hù)方面的自主跟隨機(jī)器人進(jìn)行研究和系統(tǒng)開(kāi)發(fā)。在機(jī)械平臺(tái)上,對(duì)運(yùn)動(dòng)控制、數(shù)據(jù)采集子系統(tǒng)進(jìn)行了軟硬件研究與設(shè)計(jì),使其運(yùn)動(dòng)性能安全穩(wěn)定,且數(shù)據(jù)采集準(zhǔn)確穩(wěn)定。對(duì)計(jì)算機(jī)視覺(jué)子系統(tǒng)在樹(shù)莓派開(kāi)發(fā)板上設(shè)計(jì)了有效的圖像處理算法,通過(guò)實(shí)驗(yàn)驗(yàn)證了算法的可行性,配合整套系統(tǒng),該機(jī)器人能夠完成自主運(yùn)行,達(dá)到實(shí)際控制要求,圖像處理方法方面能夠得到的正確的結(jié)果,使得機(jī)器人實(shí)現(xiàn)正確地跟隨。最終搭建出基于圖像識(shí)別的醫(yī)療機(jī)器人。