陳潤杰,古宇成
(中山大學南方學院,廣州 510970)
醫療機器技術在現代醫療中有舉足輕重的地位,在科學技術發展的進程中是最受關注的方向之一。目前,針對醫療方向的機器技術研究一直有推出新成果,而且隨著科技的不斷進步以及人口老齡化、戰爭技術儲備需求高端化發展,機器技術在醫療領域將會受到更廣泛而深入的研究和應用。
根據已知研究得出,大部分引導跟隨技術較為欠缺的地方是都需要目標自身手持或佩戴特殊儀器,增加了識別目標自身的生理上和心理上負擔,也沒有考慮到老年人群體對身上多出的掛件是否會產生抵觸情緒。
因此,為解決上述不足,決定研發出一種能夠盡可能減少受眾負擔的,更仿生的基于計算機視覺的圖像識別技術來實現人體識別與跟隨。通過讓跟隨目標穿上印有特殊圖案的衣服或者在目標的衣服上貼上特定圖案的貼紙,再通過機器上的攝像頭進行識別跟隨,減少了跟隨對象的負擔。
根據以上得出的問題,在移動機器人的基礎上,研發一種可遠程監控、采集人體相關參數等功能并通過圖像識別引導跟隨的履帶式機器人。針對移動機器人的參數采集和目標識別跟隨兩大功能進行了研究分析,最后驗證了硬件系統和跟隨算法的可行性。
本文設計一種可遠程監控、采集人體相關參數等功能并通過圖像識別引導跟隨的履帶式機器人。采用基于STM32的車載主控制器,基于計算機視覺圖像識別的人體跟隨、參數采集模塊,客戶端應用程序采用基于Linux的Java程序設計語言進行Android開發,數據遠程存取采用云服務器平臺,三者互聯為醫療機器人系統。基于STM32F103車載主控制器通過驅動溫濕度模塊、接觸式體溫檢測模塊、接觸式心率測量模塊來實時采集監護對象的身體參數,將采集到的數據通過Wi-Fi模塊聯網上傳至云服務器平臺進行儲存,An?droid客戶端可與云服務器進行交互,從而提取已存儲的人體參數,客戶端能夠在3秒內完成提取參數,并判斷其是否超過警報值而做出警報。系統總體結構圖如圖1所示。
醫療機器人為獨居老人的生活安全提供了一定的保障,減輕了傳統型家庭養老的負擔,提高了突發事件的應對能力和降低了財產的損失風險,實現了對獨居老人的遠程監護。

圖1
系統軟件部分包括客戶端主界面、各類參數圖像化子界面,界面模塊結構如圖2所示。客戶端應用程序采用Java程序設計語言進行Android開發,采用面向對象的程序設計方法,把對象抽象成類進行封裝,主界面每個功能鍵可打開對應的子界面;每個子界面以折線圖或柱形圖的形式動態顯示參數值;當任一子界面中的參數達到預警值則彈出警報界面并響起警報聲。

圖2
在交互方案中,云服務器預設可接受多種通信協議的命令,而客戶端利用TCP(Transmission Control Pro?tocol)協議向服務器發出數據請求命令,TCP傳輸控制協議是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,由IETF的RFC 793定義,使用三次握手協議建立連接。
當主動方發出SYN連接請求后,等待對方回答TCP的三次握手SYN+ACK,并最終對對方的SYN執行ACK確認。這種建立連接的方法可以防止產生錯誤的連接,TCP使用的流量控制協議是可變大小的滑動窗口協議,具體流程如圖3所示。

圖3
在物聯網和云技術的結合下,本系統可分為三部分,由STM32及其驅動外設人體跟隨、參數采集模塊構成的車載部分;云服務器部分;用于將人體數據圖像化與用戶交互的Android客戶端部分;而車載系統又由基于STM32處理器的車載系統①基于樹莓派處理器的車載系統,②兩部分組成。總體結構圖如圖4所示。

圖4
整個系統的工作原理是每隔一段預設時間,機器人向監護對象發出信號提示需要進行體檢采集人體參數,待體檢完成后,車載主控板將參數通過Wi-Fi模塊與室內路由器互聯,并通過后者與云服務器進行數據交互以存入人體參數;云服務器接收到參數后則將其分類存儲在預先設置好的數據塊中,等待Android客戶端向服務器提出參數提取請求命令;Android客戶端通過TCP協議向服務器發出命令,服務器已預設收到正確命令后自動返回對應類別的人體參數,客戶端提取到參數后則通過數據圖像化及預警值判斷進行實時顯示。具體部署如圖5所示。

圖5
系統功能包括:
①監護客戶端實時監控人體異常;
②車載攝像頭模塊對監護對象進行跟隨;
③車載數據采集模塊為監護對象體檢;
④云服務器遠程儲存數據,保障數據的安全性以及便捷性。

圖6
如圖6的程序流程圖所示,在STM32中,定時器4用于心率測量模塊的計時,定時器1用于體檢間隔計時。當主控制器啟動時,驅動溫濕度模塊、攝像頭模塊進行室內溫濕度的收集和人體跟隨,同時定時器1開始計時,當定時器1計數到達預設值溢出時,控制器啟動主程序,開始分別啟動蜂鳴器、心率模塊、體溫模塊,進行為時30秒的體檢(人體參數收集),當收集完成時再次啟動蜂鳴器發出體檢結束信號,繼續溫濕度的收集和跟隨,同時驅動Wi-Fi模塊將收集到的參數上傳至服務器。
對顏色進行建模以達到顏色數值化的方法可理解為“建立顏色空間坐標系”,一般來說,生活中的任何顏色都可以用具體的數值來表示。
RGB顏色模型分別是變量R-紅色、G-綠色、B-藍色的取值變化,這三種顏色可以通過不同的取值進行顏色疊加來獲得各種不同的顏色效果,具體模型如圖7所示。

圖7
HSL顏色模型分別是H-色相值、S-飽和度、L-亮度的取值變化,這三個變量通過不同的取值進行效果疊加來獲得各種不同的顏色效果,特別的,該顏色模型比RGB更為人性化。
HSL是對RGB顏色的另一種表示,該模型展示了比RGB更準確、更容易理解的顏色聯系,HSL顏色模型對應于圓柱坐標系中的一個圓錐形子集,模型如圖8所示,圓錐的Y軸頂點對應L=1,該點可在RGB模型中表示為R=1,G=1,B=1時的三個面,所代表的顏色較亮。色相值軸由繞L軸的旋轉角取得,例如角度為0°時,即H值為0°時,代表了當前顏色為紅色,綠色則為120°,藍色對應于240°。在HSL顏色模型中,每一種顏色和它的補色相差180°。
圓錐的X軸,即飽和度S取值的取值范圍,最大值為1。當取值為圓錐的原點,此時L=0,H值與S值無法被定義,該點的顏色效果為黑色。當取值為圓錐的Y軸的頂點,此時S=0,L=1,H值無法被定義,顏色效果為白色。從Y軸頂點到原點的過程,表示顏色的亮度漸變暗,在該過程,S=0,H值無法被定義。在圓錐頂面圓周上的各個點,它們的L值和S值都為1,這些點的顏色效果都是純色。
圖9、10、11分別是HSL三個值的概念圖,HSL的色相值即H分量,代表的是人眼所能感知的顏色范圍,可理解為在一個平面的色相環上,每個角度代表了一種顏色。色相值的意義在于,在不改變光感的情況下,通過改變色相環上的角度來改變顏色。色相環上有六個主色用作基本參照:0°紅、60°黃、120°綠、180°青、240°藍、300°粉,它們在色相環上按照60°圓心角的間隔排列。
S分量,指的是色彩的飽和度,它用0%至100%的值描述了相同色相、明度下顏色純度的變化,數值越大,則顏色越鮮艷。
L分量,指的是色彩的明度,作用是控制色彩的明暗變化。同樣使用了0%至100%的取值范圍。數值越小,色彩越暗,越接近于黑色;數值越大,色彩越亮,越接近于白色。

圖8

圖9

圖10

圖11
當(r,g,b)為某個顏色的 RGB 空間模型坐標,r、g、b的值是在0到1之間的實數。將max取值于r、g和b中的最大值。將min取值于三個值中的最小值。當RGB要轉換為HSL顏色模型中的坐標(h,s,l)時,該坐標點的 h∈[0,360),代表的是色相角,而 s,l∈[0,1],分別代表飽和度和亮度。
色相值h的轉換公式為:

飽和度s的轉換公式為:

亮度l的轉換公式為:

樹莓派開發板的開發工具十分廣泛,由于Python語言易讀寫、移植性好以及維護容易等優點,因此在樹莓派上采用Python語言進行程序編寫。程序編寫完成后,在IDE界面完成程序編譯即可運行。
圖像識別軟件流程圖如圖12所示,主要包括初始化模塊和主循環模塊。初始化包括了線程初始化,攝像頭初始化、線程池初始化,主循環模塊為圖像識別邏輯處理塊。
在系統開始啟動后,樹莓派開發板驅動USB攝像頭并和獲取圖像數據。①樹莓派開發板獲取到圖像數據后,對圖像進行灰度處理,再與儲存器中的目標識別規范進行邏輯對比處理。②提取圖像中部圓形范圍內一定數量像素點的HSL值,判斷每個像素點該值是否都在對應指定顏色值范圍內。③獲取識別目標在攝像頭的相對中心點位置,判斷識別對象的相對位置。當條件①通過后,進入條件②,此時當條件②通過后即進入邏輯③,經過邏輯③的處理并得出結果后,通過引腳輸出特定脈沖電平時序信號和高低電平信號分別控制舵機與STM32處理器進行姿態調整。程序偽代碼如下:BEGIN


圖12
圖像識別是人工智能的一個重要領域,原理是利用計算機對圖像進行處理、分析和理解,拍攝圖片后再利用軟件根據圖片灰階差做進一步識別處理,以識別各種不同模式的目標和對象的技術。
跟隨功能通過根據目標區域(藍色框)在所建視圖框中的相對坐標值,將目標區域限制在攝像中心區域(黃色框)中。當目標區域與中心區域相交時則觸發人機相對姿態調節信號,STM32收到相應指令對電機作出相應調節。同時基于低能耗高處理速度的樹莓派ARM Cortex-A53處理器進行圖片灰度處理,圖片流最快可達18幀每秒的速度。從而實現實時的、準確的人體跟隨。效果如圖13所示。
在圖14可觀察到在樹莓派終端界面顯示了程序執行時成功開啟了兩個線程:攝像頭云臺初始化;建立網絡Socket連接并傳輸機器采集到的數據。在向云服務器發送圖像監控或人體參數的數據后獲得的發送成功回執如圖15所示。而后并無異常。

圖13

圖14

圖15
基于Java程序設計語言的Android開發,該客戶端程序測試了人體數據可視化功能,在建立了初步的圖形主、子界面后,能夠流暢地通過主界面的功能鍵進入子界面,通過TCP協議獲取到的參數無亂碼且正確,相關數據也能夠如圖16在子界面正確展示。

圖16
隨著人類是社會生活水平的提高,各種類型的機器人類型需求隨著出現,目前機器人幾乎已經滲透到生活的各個方面。
針對使用在醫療監護方面的自主跟隨機器人進行研究和系統開發。在機械平臺上,對運動控制、數據采集子系統進行了軟硬件研究與設計,使其運動性能安全穩定,且數據采集準確穩定。對計算機視覺子系統在樹莓派開發板上設計了有效的圖像處理算法,通過實驗驗證了算法的可行性,配合整套系統,該機器人能夠完成自主運行,達到實際控制要求,圖像處理方法方面能夠得到的正確的結果,使得機器人實現正確地跟隨。最終搭建出基于圖像識別的醫療機器人。