劉小龍,賀 晨,齊 錦,桑紀(jì)元,張 鑫
(西北大學(xué) 信息科學(xué)與技術(shù)學(xué)院,陜西 西安 710127)
隨著科技的進(jìn)步,便捷高效的醫(yī)患交互模式研究在醫(yī)學(xué)方面的應(yīng)用將更有意義。例如山西大學(xué)應(yīng)用手勢(shì)識(shí)別技術(shù)結(jié)合牙醫(yī)椅,發(fā)明了面向牙醫(yī)椅的手勢(shì)識(shí)別裝置,擬實(shí)現(xiàn)無(wú)接觸手勢(shì)識(shí)別控制牙醫(yī)椅的姿態(tài),實(shí)現(xiàn)定制手勢(shì)在醫(yī)療設(shè)備上的應(yīng)用。本文針對(duì)臨床口腔治療中,醫(yī)患交流障礙與手術(shù)細(xì)菌感染等問題,提出了面向臨床牙醫(yī)的控制與交互系統(tǒng)。系統(tǒng)允許醫(yī)師在獲取患者口腔內(nèi)部畫面的同時(shí)將畫面信息通過藍(lán)牙模塊傳回手機(jī)端,并控制畫面的凍結(jié)與照明。醫(yī)生可以在手機(jī)端或電腦端下載畫面,通過觀察圖片中的患處進(jìn)行病因分析?;颊咴谥委熤惺褂檬謩?shì)識(shí)別技術(shù)告知醫(yī)師自身情況。系統(tǒng)不但可以保持手術(shù)處于無(wú)菌環(huán)境,還能夠解決口腔治療中的醫(yī)患交流問題。
牙醫(yī)系統(tǒng)主要利用手勢(shì)識(shí)別技術(shù)與醫(yī)學(xué)交叉結(jié)合,支持無(wú)接觸狀態(tài)下利用手勢(shì)實(shí)現(xiàn)對(duì)手術(shù)設(shè)備的操控與思想表達(dá),有效解決了口腔治療中出現(xiàn)的醫(yī)患交流與細(xì)菌感染問題。設(shè)計(jì)思路:以STM32作為主控芯片,將手勢(shì)識(shí)別模塊安裝到便于醫(yī)師與患者控制的位置,攝像頭模塊與照明電路集成于口腔探測(cè)筆的前端。醫(yī)師通過口腔探測(cè)筆采集患者口腔內(nèi)部圖像,在LCD上顯示,并傳回手機(jī)端,通過手勢(shì)識(shí)別技術(shù)對(duì)圖像、照明亮度進(jìn)行控制?;颊呖梢酝ㄟ^手勢(shì)識(shí)別技術(shù)表達(dá)信息。
牙醫(yī)系統(tǒng)主要由3部分構(gòu)成,即手勢(shì)識(shí)別部分、圖像采集顯示部分、主控板控制部分。手勢(shì)識(shí)別部分選擇PAJ7620手勢(shì)識(shí)別模塊,圖像采集部分選擇OV7670攝像頭與OLED屏幕,控制部分包括STM32主控芯片與基于BUCK電路的PWM控制照明模塊。系統(tǒng)硬件設(shè)計(jì)如圖1所示。
圖1 牙醫(yī)系統(tǒng)硬件設(shè)計(jì)
產(chǎn)品內(nèi)部采用的OV7670傳感器具有小體積、低電壓等巨大優(yōu)勢(shì)。基于SCCB總線通信,能夠依照需求以最高達(dá)30 FPS的速度輸出圖像。根據(jù)官方提供的手冊(cè),可以通過修改寄存器值讀取圖像相關(guān)參數(shù),并利用寄存器對(duì)處理圖像實(shí)現(xiàn)如白平衡等參數(shù)調(diào)節(jié)。傳感器工作原理:當(dāng)一個(gè)目標(biāo)物體向外反射出大量自然光時(shí),此時(shí)該模塊內(nèi)部的感光陣列在收光時(shí)會(huì)溢出電子,從而經(jīng)過電子溢出生成一個(gè)模擬量,輸入到模擬信號(hào)處理單元。
由模擬信號(hào)處理單元將相應(yīng)的模擬量進(jìn)行模數(shù)轉(zhuǎn)換,得到數(shù)字信號(hào),最后由模塊內(nèi)部的數(shù)字信號(hào)處理器進(jìn)行處理并插值,形成色彩像素陣列信號(hào),將圖像顯示在屏幕上。
不帶FIFO芯片的OV7670模塊:這種方案在硬件模塊選擇上更簡(jiǎn)單、直接,但相應(yīng)的軟件設(shè)計(jì)卻很繁瑣。由于CMOS芯片處理速度遠(yuǎn)遠(yuǎn)超過單片機(jī)本身I/O口的速度,導(dǎo)致兩者無(wú)法直接通信。如要使兩者傳輸速率匹配,只能將CMOS芯片的輸出速度降低至能夠匹配單片機(jī)I/O口的速度水平,此時(shí)方可實(shí)現(xiàn)低速率畫面實(shí)時(shí)采集。但這一系列操作需要共同設(shè)置鎖相環(huán)、時(shí)鐘晶振電路、圖像單元時(shí)鐘以及幀速相關(guān)的多個(gè)寄存器單元。設(shè)置寄存器強(qiáng)制匹配速率的操作有可能導(dǎo)致硬件處理圖像的速度降到1 FPS以下,帶來嚴(yán)重像素陣列失真。不帶FIFO芯片的OV7670模塊如圖2所示。
圖2 不帶FIFO芯片的OV7670模塊
帶FIFO芯片的OV7670模塊:采用FIFO緩存的OV7670模塊由于其模塊本身已經(jīng)集成有FIFO數(shù)據(jù)存儲(chǔ)器,從而大大簡(jiǎn)化了采集數(shù)據(jù)的工藝和方法,所以如何使用該模塊對(duì)目標(biāo)圖像進(jìn)行讀寫是研究的重點(diǎn)。從圖3可以看出,攝像頭模塊內(nèi)部帶有一個(gè)頻率為12 MHz的有源晶振,作為 XCLK口的輸入信號(hào)和時(shí)鐘。它所帶有的FIFO存儲(chǔ)器的容量為384 KB,所以其能夠同時(shí)緩存約2 KB的QVGA(分辨率為320×240)圖像數(shù)據(jù)。帶FIFO芯片的OV7670模塊如圖3所示。
圖3 帶FIFO芯片的OV7670模塊
圖4所示為OV7670攝像模塊內(nèi)部結(jié)構(gòu)。
圖4 ATK-OV7670模塊內(nèi)部結(jié)構(gòu)
存儲(chǔ)圖像數(shù)據(jù)進(jìn)程如下:
(1)定時(shí)查詢幀同步信號(hào);
(2)對(duì)FIFO數(shù)據(jù)存儲(chǔ)器寫入數(shù)據(jù);
(3)再次查詢到第二個(gè)幀同步信號(hào),此時(shí)FIFO數(shù)據(jù)存儲(chǔ)器禁止寫入數(shù)據(jù)。
讀取圖像數(shù)據(jù)過程:
(1)FIFO數(shù)據(jù)存儲(chǔ)器讀出數(shù)據(jù);
(2)FIFO按時(shí)鐘循環(huán)讀取像素點(diǎn)。
牙醫(yī)系統(tǒng)采用PAJ7620模塊實(shí)現(xiàn)手勢(shì)信息識(shí)別。PAJ7620模塊內(nèi)部包含發(fā)光二極管驅(qū)動(dòng)器、手勢(shì)識(shí)別陣列、目標(biāo)信息特征提取模塊以及傳感器信號(hào)感應(yīng)模塊。在模塊正常運(yùn)作時(shí),內(nèi)部紅外發(fā)光二極管向傳感器發(fā)射若干紅外線信號(hào),此時(shí)傳感器的感應(yīng)電路準(zhǔn)確識(shí)別信號(hào),并分析得出所探測(cè)的目標(biāo)物體特征,再經(jīng)過特征信息提取模塊提取被探測(cè)物體的特征。此時(shí)物體特征被處理為像素陣列,將此數(shù)據(jù)存入相應(yīng)寄存器中。電路再進(jìn)行數(shù)據(jù)的計(jì)算與判斷,最后把結(jié)果保存到相關(guān)寄存器中。單片機(jī)通過IC接口讀取相關(guān)寄存器,即手勢(shì)識(shí)別結(jié)果。
圖5所示為手勢(shì)識(shí)別模塊框架。該模塊是一款基于紅外陣列技術(shù)檢測(cè)動(dòng)態(tài)的手勢(shì)識(shí)別模塊,分別針對(duì)定義的8種常見手勢(shì)如:向上、向下、向左、向右、向前、向后、順時(shí)針與逆時(shí)針進(jìn)行識(shí)別,據(jù)相關(guān)測(cè)試,其平均識(shí)別率可達(dá)94.63%?;诩t外發(fā)光二極管陣列技術(shù)的應(yīng)用在對(duì)常見自定義手勢(shì)的識(shí)別中效率和準(zhǔn)確性都很高。
圖5 手勢(shì)識(shí)別模塊框架
照明模塊采用基于BUCK電路改進(jìn)的輸出PWM控制的LED模塊。采用BUCK電路方便實(shí)現(xiàn)后續(xù)拓展功能。并且此電路加入了補(bǔ)償網(wǎng)絡(luò)控制,使輸出電壓避免由于負(fù)載引入而導(dǎo)致的電壓波動(dòng)。PWM調(diào)光LED驅(qū)動(dòng)電路如圖6所示。
圖6 基于BUCK電路的PWM調(diào)光電路
HC-05藍(lán)牙模塊具有集成度小、靈敏度高等優(yōu)點(diǎn)。該模塊有命令響應(yīng)和自動(dòng)連接2種工作模式。藍(lán)牙采用全雙工異步通信方式,分主機(jī)、從機(jī)部分。本文將帶有藍(lán)牙模塊的電腦端或手機(jī)端作為主機(jī),進(jìn)行搜索和連接,HC-05藍(lán)牙模塊作為從機(jī),匹配通信。
軟件部分分為手勢(shì)識(shí)別處理部分、攝像頭圖像采集處理部分與LED控制部分。程序設(shè)計(jì)思路:首先初始化各基礎(chǔ)函數(shù)部分(例如延時(shí)、IC通信),并進(jìn)行模塊正常初始化檢測(cè),若基礎(chǔ)模塊檢測(cè)有誤,則重新調(diào)整,否則繼續(xù)。然后初始化攝像頭與手勢(shì)識(shí)別模塊,并進(jìn)行手勢(shì)識(shí)別判斷,分別根據(jù)不同的使用方提供相應(yīng)的功能。整體程序設(shè)計(jì)流程如圖7所示。
圖7 整體程序設(shè)計(jì)流程
PAJ7620模塊支持物體接近檢測(cè)和手勢(shì)識(shí)別功能。在手勢(shì)識(shí)別模塊中有2個(gè)BANK寄存器,但我們只用到了手勢(shì)檢測(cè)功能,所以只需選擇BANK1寄存器即可實(shí)現(xiàn)手勢(shì)識(shí)別。手勢(shì)識(shí)別模塊可識(shí)別9種手勢(shì),目前我們只使用其中4種,其余5種手勢(shì)可以當(dāng)作拓展進(jìn)行改進(jìn)。對(duì)其余不同手勢(shì)對(duì)應(yīng)的寄存器位進(jìn)行判斷即可判別是否完成手勢(shì)識(shí)別。
由于手勢(shì)識(shí)別需要不斷進(jìn)行手勢(shì)捕獲,所以我們需要將手勢(shì)獲取部分的代碼放入中斷服務(wù)函數(shù)中。手勢(shì)識(shí)別模塊進(jìn)行信息讀取處理的過程如下:
(1)使能MCU與PAJ7620進(jìn)行IC通信,MCU利用中斷以固定周期進(jìn)行對(duì)相應(yīng)寄存器的讀?。?/p>
(2)將讀取得到的數(shù)值在模塊內(nèi)進(jìn)行手勢(shì)判斷,判斷后將結(jié)果送回MCU分類從而觸發(fā)其他對(duì)應(yīng)操作。
ATK-OV7670模塊采用18腳雙列直插式封裝,模塊向外延伸8條數(shù)據(jù)線,內(nèi)部連接FIFO存儲(chǔ)器。OV7670通過IC方式實(shí)現(xiàn)通信時(shí)鐘同步與控制信號(hào)傳輸模式配置。OV7670前端采集數(shù)據(jù),以PCLK時(shí)鐘為基準(zhǔn)對(duì)FIFO存儲(chǔ)器進(jìn)行數(shù)據(jù)寫入操作。MCU以RCLK對(duì)FIFO中的圖像信息進(jìn)行讀取。與手勢(shì)識(shí)別模塊類似,攝像頭模塊無(wú)需不斷進(jìn)行圖像信息的采集與更新,所以圖像獲取部分的代碼可直接放入中斷服務(wù)函數(shù)中。
在藍(lán)牙通信程序中,首先設(shè)置通信模式為自動(dòng)連接模式中的輸出模式,并確定特定的通信波特率;之后檢測(cè)是否與主機(jī)藍(lán)牙模塊成功配對(duì),當(dāng)檢測(cè)到不同手勢(shì)時(shí),在LCD上顯示對(duì)應(yīng)信息,此時(shí)藍(lán)牙通信模塊會(huì)在用戶端同步該信息。
在主程序中斷服務(wù)函數(shù)中,進(jìn)行定時(shí)手勢(shì)信息結(jié)果讀取與圖像信息采集。主控板對(duì)手勢(shì)信息結(jié)果進(jìn)行判斷,凍結(jié)畫面并發(fā)送圖像數(shù)據(jù)、控制LED的亮度或在屏幕上顯示等操作。除手勢(shì)識(shí)別結(jié)果的判斷外,主函數(shù)需要讀取攝像頭模塊中FIFO儲(chǔ)存的信息,經(jīng)處理顯示于LCD屏幕。主函數(shù)中還有一部分程序是LED控制部分,即通過定時(shí)器控制PWM波的占空比。圖8所示為程序部分電路模塊設(shè)計(jì)。
圖8 程序部分電路模塊設(shè)計(jì)
圖9所示為成品圖。醫(yī)師手持口腔手術(shù)筆(即圖中A,由OV7670模塊外加LED燈構(gòu)成),B處為手勢(shì)識(shí)別模塊,該模塊可以通過杜邦線延長(zhǎng)與主控板相連。C處為顯示屏,顯示屏也可通過杜邦線延伸。
圖9 成品圖
醫(yī)師可使用口腔手術(shù)筆檢查患者口腔內(nèi)部,采集的畫面會(huì)在顯示屏處顯示。此時(shí)醫(yī)師可以利用預(yù)存的手勢(shì)對(duì)畫面進(jìn)行操作,或控制LED燈的亮度,患者可以使用預(yù)存于芯片中的手勢(shì)進(jìn)行意愿的表達(dá)。本次實(shí)驗(yàn)中不同手勢(shì)功能設(shè)定見表1所列。
表1 不同手勢(shì)功能設(shè)定
不同距離下手勢(shì)識(shí)別的準(zhǔn)確率如圖10所示。手勢(shì)距離手勢(shì)模塊3 cm時(shí)識(shí)別效果最好,而距離6 cm時(shí),手勢(shì)識(shí)別準(zhǔn)確率下降嚴(yán)重??傮w來看,左右方向手勢(shì)的識(shí)別準(zhǔn)確率最高。由于6 cm為識(shí)別極限距離,導(dǎo)致“向前”“向后”的手勢(shì)活動(dòng)范圍超過可識(shí)別距離,致使手勢(shì)識(shí)別率在6 cm處識(shí)別準(zhǔn)確率最低。
圖10 不同距離下手勢(shì)識(shí)別的準(zhǔn)確率
相近手勢(shì)正確識(shí)別率見表2所列。相較于其他獨(dú)立手勢(shì)而言,順時(shí)針與逆時(shí)針手勢(shì)更易被識(shí)別為其他分解手勢(shì)。
表2 相近手勢(shì)正確識(shí)別率 %
本文將手勢(shì)識(shí)別技術(shù)應(yīng)用于解決臨床口腔醫(yī)學(xué)治療中遇到的問題,實(shí)現(xiàn)了醫(yī)師端無(wú)接觸式控制以及醫(yī)患間通過手勢(shì)進(jìn)行溝通的功能。完成了前沿技術(shù)在口腔醫(yī)學(xué)上的交叉應(yīng)用,也期望能夠?yàn)槲磥砀嗟慕徊嫜芯繋硇碌乃悸?。由于本次使用手?shì)識(shí)別模塊受識(shí)別模式的限制,只能識(shí)別較少的手勢(shì),而人類的手部具有較強(qiáng)的靈活性和不易混淆的特點(diǎn),可以考慮以自定義手勢(shì)的方式結(jié)合無(wú)線模塊來解決更多問題。