文/齊鳳河 陰玥茹
近年來,隨著科學技術的不斷發展,計算機領域的技術水平更是突飛猛進。人與計算機的交互越來越成為人們日常生活中一個重要組成部分,人們青睞于用計算機來代替人們本身完成各種事情。手勢識別是計算機科學與人類交流方式的一個技術主題,于是,人機交互的概念便成為人與計算機溝通橋梁的代名詞。為實現這樣一種需求,設計了一款手勢識別裝置,通過揮動手勢,不僅可以代替車載導航裝置的上、下、左、右四個實體鍵對顯示屏幕進行操作,還可以在生活中任意一個與計算機相關的裝置中應用,作為開關控制輸入部分。設計目標是:
(1)研究手勢識別裝置的可實現功能,設計實現該系統的實體電路。
(2)在以APDS9960 傳感器模塊作為系統核心器件的基礎上添加其他模塊器件,制作該裝置。
(3)為達到識別的功能而設計適合的算法來實現。
(4)在軟硬件平臺的支撐下用C 語言來完成程序的編寫,最終實現設計。
分割技術是進行手勢識別的基礎,手勢分割的效果直接決定著是否能夠準確地對手勢進行識別,從而判定識別技術是否成熟。

表1:手勢識別裝置的調試結果分析
為了改善單目視覺法對手勢搭建模型線條過于單一的缺點,推出了立體視覺法。這種手勢分割的方法與上述方法類似,都是提取處理圖像信息,而不同的是立體視覺是通過比較合并多個設備采集到的圖像,進行整合處理,搭建出三維立體模型,此種方式得到的手勢信息準確,效果很好。
手勢分析同樣是手勢識別技術中關鍵的一步。無論是指關節跟蹤法,還是質心手指多特征結合法,抑或是邊緣輪廓提取法,其目的都是為了提取手指信息的關鍵特征,獲取其運動軌跡和運動過程中的形態變化趨勢。
手勢識別這一過程即是將第一步手勢分割后采集到的基本模型信息繪制成的二維或三維手勢形態模型進行歸類整合,并進行進一步輸出整理。模板匹配法、神經網絡法和Hidden Markov Model(簡稱HMM)是幾種常見的識別技術。
通過傳感器、單片機、顯示器與電源模塊四部分組合實現了一款手勢識別裝置。
這個手勢識別裝置,是通過APDS9960傳感器檢測識別手勢動作,將經過處理的手勢信號轉化為數字信號輸送到中央微控制器,由控制器進行功能調配,在顯示屏上輸出手勢動作狀態信號。
APDS9960 傳感器利用四個不同方向的光電二極管來反射由集成LED 產生的IR 能量,將速度、方向和距離等信息轉換成數字信號進行輸送。此種傳感器的手勢引擎架構可以自主激活,對環境光進行適應識別,消除串擾,延遲省電互換和以I2C 總線形式交互等。
STM32 系列微型處理器是嵌入式微控制器家族的一員。此裝置選用的是STM32F103C8T6 微型處理器,其基于ARM Cortex-M 內核的程序存儲器容量有64kB,最優工作電壓是3.3V,工作環境溫度下至零下四十攝氏度,上至零上八十五攝氏度,總線寬度達到32 位,工頻為72 兆赫,且以I2C 總線形式交互。與STC12C5A60S2 單片機類似,同樣具有Flash 程序存儲器類型和內部振蕩器等。因其類似的功能和相同的電壓使用范圍,但規避了無法用51 系列單片機編寫程序的弊端,本文選用此種微控制器作為整體裝置的控制器部分。
顯示模塊選擇以I2C 總線形式交互的OLED12864 液晶顯示屏來配合連接3.3V 電壓的微型控制器。本裝置的主要功用是作為電氣設備的輸入開關,以手勢識別裝置部分的弱電壓輸入端來控制啟動高電壓部分的電器設備,以實現不同的功用效果。
此模塊是整個裝置的核心部分,是手勢檢測識別的基礎。運行電壓為3.3V,SCK 串行時鐘輸入終端與STM32 微型控制器的第21 引腳相連接,SDA 為串行數據端口,與第22 引腳相連接,以I2C 總線協議形式進行信息的交互。除必要的運行電壓接口與電源地線接口,此種傳感器僅需兩根數據總線交傳信息,布線清晰,編排便利。
此裝置的顯示模塊采用的是OLED12864顯示屏,在通過APDS9960 傳感器將檢測識別到的手勢信息轉換為數字信號傳送給單片機后,顯示屏幕出現UP、DOWN、LEFT、RIGHT 四個表明手勢狀態的語言信息。
除了顯示屏用于顯示檢測識別到的手勢狀態之外,還預留了四個以光電耦合器作為電氣隔離開關的端口,用于連接需要用手勢語言進行控制的外部電路。本裝置以四個發光二極管模擬替代高電壓回路部分,四個發光二極管分別代表一個對應的手勢,即表示可以用一個手勢控制一個狀態,實現臨近無接觸手勢語言對計算機的控制效果。
由于此裝置中模塊的工作電壓均為3.3V,因此裝置選用LM1117 穩壓模塊為裝置提供穩定的工作電壓。
根據選擇好的元器件用PROTEL 軟件進行電路圖的搭建,注意器件間的連接方式是串行方式接入或是I2C 總線協議形式進行數據交流。初步選擇51 系列的STC12C5A60S2 單片機作為控制器,但在后續解讀APDS9960 傳感器過程中發現其程序寫讀方式需用ARM 來運行。最終選擇STM32 系列單片機。電路初步搭建的過程中擬采用LCD1602 顯示屏作為顯示輸出端,但為使顯示部分的電源與其它模塊工作電壓適配,選用工作電壓為3.3V 的OLED12864 顯示屏重新搭建裝置電路。修正器件適配參數后,進行電路的實體焊接。測試結果如表1所示。
根據測試結果對裝置進行分析,傳感器的有效識別范圍處于2 厘米至10 厘米之間。手勢接近范圍小于2 厘米時,顯示NEAR,接近感應;范圍超出10 厘米且不大于12 厘米時,顯示FAR,遠離感應。此裝置的感應識別效果除了受距離影響外,還與手勢運動速度有關,運動速度平穩,識別效果好,否則系統自動記為無效手勢,無正確顯示輸出。
基于APDS9960 傳感器的特性設計了一款由傳感器、處理器、顯示器與電源模塊四個部分組成的手勢識別裝置,利用傳感器對手勢進行識別、分割、檢測及對環境光感應的性質,實現了計算機對人體手勢語言的識別,進而用手勢語言替代上、下、左、右四個實體鍵進行輸入功能,為人們用手勢語言控制計算機的功能提供便利。