關鍵詞: 手勢識別 , FPGA
1設計摘要
目前,研究自然化的人機交互是當今計算機科學技術領域的主要研究熱點之一,手勢輸入作為一種自然、豐富、直接的交互手段在人機交互技術中占有重要的地位。本項目提出以Xilinx公司Spartan 6系列FPGA為核心器件的手勢識別系統設計的方案,采用FPGA芯片的內置DSP硬核作為手勢識別模塊的核心,負責圖像識別算法的實現,采用FPGA作為圖像采集模塊的控制中心,負責圖像的采集,完成預處理和攝像頭聚焦和云臺的控制工作,以FPGA高速強大的處理能力保證了系統的實時性。手勢識別部分融合人手顏色信息和手勢運動信息,利用種子算法對復雜背景下的手勢進行分割。根據分割出的手勢區域大大加速了運動特征參數的提取,并結合手勢區域的形狀特征,建立手勢的時空表觀模型。識別時,采用獨立分布的多狀態高斯概率模型,進行時間規整,通過DSP和FPGA在處理不同結構算法的優勢, 大大提高了手勢識別的處理速度和準確性。高速性將是該手勢識別系統最突出的優點,可實現更高層次產品的開發并擴大應用前景。
2項目背景
研究自然化的人機交互是當今計算機科學技術領域的主要研究熱點之一,手勢是一種自然、直觀、易于學習的人機交互手段,手勢輸入是實現自然、直接人機交互不可缺少的關鍵技術。目前的手勢識別技術主要分為基于數據手套和基于視覺兩種。基于視覺的動態手勢識別系統更是當前科學研究領域的熱點之一。手勢輸入作為一種自然、豐富、直接的交互手段在人機交互技術中占有重要的地位。
盡管手勢識別技術的起步比較早,但絕大多數只是簡單的停留在軟件層次上,這些技術有的只是進行簡單的比對,速度比較慢,實時性比較差,另外一些這是識別效率較低。因此需要一個從硬件上著手,專門用來識別手勢的設備,以彌補上述兩個方面的不足。
以現場可編程門陣列FPGA作為核心器件來完成圖像的采集和預處理系統,該系統具有小型化、集成化且實時性好、靈活性高的特點。該系統將一些單調、不復雜、工作量大且耗費時間的處理交給FPGA來完成,不僅能充分利用FPGA速度高的優越性,也能為DSP提供更多的時間進行更復雜的手勢圖像分析,使得手勢識別的結果更為可靠,提高了整個系統的性能。近幾年具有乘法器及內存塊資源的大容量FPGA以及基于IP核嵌入的FPGA開發技術的出現,可以將嵌入式微處理器、專用字器件和高速DSP以IP核的形式方便地嵌FPGA,以硬件編程的方法實現高速信號處理算法。本文的目的在于如何利用DSP和FPGA各自的優勢,設計出滿足實時手勢識別處理要求的硬件平臺。
綜述,本文提出的高速基于DSP+FPGA架構的手勢識別系統的設計,它綜合了FPGA和DSP的優點,通過DSP和FPGA在處理不同結構算法的優勢,大大提高了手勢識別的速度和準確率。
3應用前景
手勢識別技術的應用范圍很廣泛,主要有以下幾個方面:
1、用于虛擬環境的交互。如虛擬制造和虛擬裝配、產品設計等。虛擬裝配通過手的運動直接進行零件的裝配,同時通過手勢與語音的合成來靈活的定義零件之間的裝配關系。還可以將手勢識別用于復雜設計信息的輸入;2、智能家居、多媒體設備的控制。通過手勢識別可以是使用者通過簡單的顯而易見的手勢對多媒體、家具設備實現控制,如開關空調、多媒體展示等;
3、用于多通道、多媒體用戶界面。正如鼠標沒有取代鍵盤,手勢輸入也不能取代鍵盤、鼠標等傳統交互設備,手勢非常適合于指點、表達形狀、幾何變換和裝配等任務。語音對于表達抽象概念及離散屬性(或命令)是具有絕對優勢的,而且可以涉及視覺不及的對象。視線應用于人機交互在目標選擇等方面具有直接性、自然性和雙向性等特點。將手勢輸入和這些交互通道結合,將增強現有的人機交互模式,從而實現更為直接、自然、和諧的人機接口。這種多模式的人機交互技術已經成為當前研究的熱點,多通道人機界面將在可預見的將來占主導地位,并進一步促進虛擬現實技術的發展;
4、聾啞患者與正常人的交流。手語是聾啞人使用,的語言,是由手型動作輔之以表情姿勢由符號構成的比較穩定的表達系統,是一種靠動作/視覺交際的語言。手勢識別可以讓機器“看懂”聾人的手語。識別手語和手語合成相結合,構成一個“人-機手語翻譯系統”便于聾人與周圍環境的交流;
4系統設計方案
通過攝像頭采集手勢圖像,將圖像數據存儲到SDRAM中, FPGA處理系統通過對SDRAM的控制,實現云臺控制和攝像頭聚焦,且將圖像數據按照所需時序從SDRAM中將數據讀出,并進行銳化、與背景分離、消除噪聲以及等預處理,再將預處理后的數據送到MicroBlaze處理器中,在MicroBlaze處理器中對手勢圖像進行復雜的手勢識別處理,完成手勢分割、手勢識別,并將識別出的手勢信息實時傳給FPGA,由FPGA實時顯示在顯示設備上。
4.1設計框圖
圖1 系統設計框圖
4.2系統設計
FPGA是整個系統的時序控制中心和數據交換橋梁,而且能夠實現對底層的信號快速預處理。在很多信號處理系統中,底層的信號預處理算法要處理的數據量很大,對處理速度要求很高,但算法結構相對比較簡單,適于用FPGA進行硬件編程實現。而高層處理算法的特點是數據量較低,但算法控制結構復雜,適于用運算速度快、尋址靈活、通信機制強大的DSP芯片來實現。
4.2.1圖像采集模塊
普通固定式攝像頭不能調整方向,難以對移動中的目標進行實時的抓取、捕獲,不能滿足本項目對手勢圖像采集的要求。我們擬采用通過控制云臺來實現對手勢的實時精確抓取。先通過幾何人臉識別的方法識別出目標者,然后通過調節云臺上的水平與垂直兩個電機來調節攝像頭的方向,最大限度的采集目標者的圖像,然后再通過光學變焦,使目標者清晰成像,這樣可以在更大范圍內獲得包含手勢的目標者的圖像,從而能夠更加精確的提取手勢圖像,進行手勢分割,增加手勢識別的精度。
一體化攝像機內置光學鏡頭,具有變倍、自動聚焦功能的攝像機,其結構小巧、使用方便、監控范圍廣。變焦控制可實現圖像的變倍、自動聚焦,是一體化攝像機中的關鍵技術之一。步進電機可將電脈沖信號轉換成角位移,每接收一個脈沖信號就可驅動步進電機轉動一個固定角度,實現物體的準確定位,通過控制脈沖的頻率可控制電機轉動的速度,步進電機已廣泛應用于高精度控制系統中。一體化攝像機光學鏡頭中包含變倍步進電機與聚焦步進電機,變倍電機轉動時,為使圖像聚焦清晰,聚焦電機也應隨之轉動,具體轉動步數與物距有關,具體參數可由鏡頭生產廠家提供的變焦跟蹤曲線獲得。為了適應不同物距的清晰成像,變倍跟蹤結束后,配合自動聚焦,以顯示清晰的圖像。
可通過人臉幾何特征識別算法識別出目標者,幾何特征的人臉識別方法:幾何特征可以是眼、鼻、嘴等的形狀和它們之間的幾何關系(如相互之間的距離)。這些算法識別速度快,需要的內存小,識別率較低,但是可以滿足方向調節的需求。
4.2.2 FPGA預處理模塊
圖像計算模塊讀取參數表數據,FPGA對采集模塊輸入并存儲在外部原始圖像SRAM中的原始圖像數據進行計算處理,并將處理好的圖像數據存儲到結果圖像SDRAM中,最后,FPGA內部的圖像輸出模塊從結果圖像SDRAM中將處理后的圖像數據讀出。
4.2.3手勢識別模塊
手勢研究分為手勢合成和手勢識別。手勢識別技術分為基于數據手套和基于計算機視覺兩大類。本文針對基于視覺的手勢識別技術,手勢是人手或者手和臂結合所產生的各種姿勢和動作,它包括靜態手勢(指姿態,單個手形)和動態手勢(指動作,由一系列姿態組成)。靜態手勢對應空間里的一個點,而動態手勢對應著模型參數空間里的一條軌跡,需要使用隨時間變化的空間特征來表述。
本文提出了單目視覺技術中一種復雜背景下的手勢分割和識別方法。首先把運動著的手從復雜的背景中分割出來,然后提取運動和形狀特征參數,建立手勢的時空表觀模型,采用獨立分布的多狀態高斯概率模型進行時間規整,最后得到識別結果,如圖2。
圖2 手勢識別框圖
手勢分割
手勢分割(Gesture Segmentation)是基于計算機視覺的,是指如何把手勢從手圖像中分離出來。在復雜背景情況下,手勢分割困難重重,還沒有成熟的理論作為指導,現有的算法計算度高,效果也不理想。主要有以下幾種a)增加限制的方法,如使用黑色和白色的墻壁,深色的服裝等簡化背景,或者要求人手戴特殊的手套等強調前景,來簡化手勢區域與背景區域的劃分。(b)大容量手勢形狀數據庫方法,如密西根州立大學計算機系的CuiYuntao建立了一個數據庫,其中有各種手勢類在各個時刻不同位置不同比例的手型圖像,作為基于模板匹配識別方法的模板。(c)立體視覺的方法,如紐約哥倫比亞大學計算機系的Gluckman利用兩個不在同一平面鏡子的反射圖像,計算物體與攝像機之間的距離,根據距離信息分割出人手。
手部區域中,膚色概率高于一定閾值的像素用一種符號標記,其他像素用另一種符號標記。這樣,就可以得到一張關于手部區域的二值圖。在二值圖中,手連通區域里經常會包含一些由于圖像噪音引起的空洞。需要對二值圖逐步求精。在此系統中,采用了形學分析中的小結構閉運算算子對分割圖進行處理。通過區域合并與標號的算法,可以計算出手部區域二值圖中的連通區域,選取面積最大的區域作為人手區域,就得到了平滑后的手部區域二值圖,進而提取手勢輪廓。如圖3。
圖3 手勢區域二值圖
②手勢模型
手勢模型對于手勢識別系統至關重要,特別是對確定識別范圍起關鍵性作用。模型的選取根本上取決于具體應用,如果要實現自然的人機交互,那么必須建立一個精細有效的手勢模型,使得識別系統能夠對用戶所做的絕大多數手勢做出正確的反應。目前,幾乎所有的手勢建模方法都可以歸結為兩大類:基于表觀的手勢建模和基于3D模型的手勢建模。基于3D模型的手勢建模方法考慮了手勢產生的中間媒體(手和臂),遵循的建模過程:首先給手(和臂)的運動以及姿態建模,然后從運動和姿態模型參數估計手勢模型參數。
③手勢分析
手勢分析階段的任務就是估計選定的手勢模型的參數。一般由特征檢測和參數估計組成。在特征檢測過程中,首先必須定位做手勢的主體(人手)。定位技術有:ⅰ、基于顏色定位:利用限制性背景或者顏色手套。ⅱ、基于運動的定位:這種定位技術通常跟某些假設一起使用。例如假設通常情況下只有一個人在做手勢,并且手勢者相對于背景的運動量很小。ⅲ、基于多模式定位:例如利用運動和顏色信息的融合定位人手,優點是能克服單個線索定位的局限。
④手勢識別
現有的動態手勢識別技術可以分歸三類:基于隱馬爾可夫模型(Hidden Markov Models, HMM)的識別,基于動態時間規整(Dynamic Time Warping, DTW)的識別,基于壓縮時間軸的識別。我們采取隱馬爾可夫模型來識別手勢,通過幾率的形式來對手勢特征建立相應的模型,從而達到手勢識別的目的。
5可行性分析
5.1手勢識別算法
就目前情況來說,目前手勢識別算法已經相當成熟。通常手勢識別算法分為兩大模塊,即預處理模塊和識別模塊。
在預處理階段,主要是對圖像進行銳化處理、與背景分離以及消除噪聲等操作。其中,銳化處理的目的是突出手勢圖像的邊緣輪廓,為此,我們采用拉普拉斯銳化算法:
這里的fxy和f*xy分別為處理前后對應的像素分布。
此外,我們分別采用二值化處理和閾值面積消影法來圖像進行分離和消除噪聲。
在識別階段,主要包括邊界特征值的提取和手勢的最終識別。對手部進行特征提取時,我們選用六個自由度,即(x1,x2,x3,x4,x5,x6)。其中,x1:手指個數;x2:指定手指;x3:指間距離集合
x4:指定手指關節;x5:指定手指指根;x6:特定手勢的檢測。
對于最終的手勢識別,我們采用結構分類的算法,對不同的手勢特征建立相應的數據庫,其流程如下圖:
圖4 識別流程圖
Spartan-6提供了大量的邏輯資源,有高達14.7萬個邏輯單元,可通過對FPGA的編程實現更多的功能, 多重高效率集成模塊,可以在FPGA中通過編程實現微處理器、存儲管理、RAM管理、總線管理等模塊的構建。
優化 I/O 標準選擇,具有多電壓、多標準 SelectIO? 接口 bank,每對差分 I/O 的數據傳輸速率均高達 1,080Mb/s,可選輸出驅動器,每個引腳的電流最高達 24mA,兼容 3.3V ~ 1.2V I/O 標準和協議, 符合熱插拔規范可調 I/O 轉換速率,提高信號完整性;內置高速 GTP 串行收發器,最高速度達 3.2Gb/s,支持高速接口,包括:串行 ATA、Aurora、1G 以太網、PCI,能夠充分滿足我們所要求的高速數據交換的要求。
Spartan-6 FPGA擁有定制低功耗專用的 DSP48A1 Slice,可進行高性能算術與信號處理,每個 DSP48A1 Slice 都由專用的 18 x 18 位二進制補碼乘法器和 48 位累加器組成,二者均可在最高 390MHz 的速率下運行。DSP48A1 Slice 可提供廣泛而豐富的流水線和擴展功能,能夠為眾多應用提升速度與效率,甚至超越數字信號處理的范疇,比如寬動態總線移位器、存儲器地址生成器、寬總線多路 復用器以及存儲器映射的 I/O 寄存器文件等。此外,累加器還可用作同步向上/向下計數器。乘法器能夠執行桶形移位。這樣的優點可以加以利用,能完成大量數據的處理,實現圖像處理與分 析,目標抓取,進而對手勢進行識別。
基于算法和硬件兩方面的考慮,我們任務的核心內容就是使這些算法在 FPGA平臺上得以實現。從上述分析可以看出,現在手勢識別算法已日趨完善,加之有Spartan-6這種高性能的FPGA芯片,我們不僅有理由相信,而 且有能力達到預期的設計目標。除此之外,我們在日后的設計中會力求更優算法,同時使設計電路更加合理化,以便使我們設計的手勢識別系統不斷提高精度和速 度。
評論
查看更多