摘 要: 在Visual Studio 2010開發環境中以C++為編程語言,使用計算機視覺計算中的開源OpenCV庫處理圖像,判定手勢運動方向,構造基于視覺手勢識別技術的智能窗簾系統。通過調用Windows API函數實現PC與LPC2131之間的串口通信,從而通過控制步進電機的轉動方向來實現窗簾的打開和關閉操作。系統具有人機交互界面良好、操作簡單、窗簾的長度可自行設定等優點。
關鍵詞: 智能窗簾;計算機視覺;手勢識別;串口通信;人機交互
隨著科學技術的發展,人民生活和工作條件的不斷改善,智能窗簾越來越為人所接受,在歐美等發達國家,智能窗簾已廣泛應用。智能窗簾產品不但實現了自動化和智能化,而且通過應用傳感器和無線電遙控技術可以降低勞動強度,延長產品的使用壽命。基于視覺的手勢識別是實現新一代人機交互所不可缺少的一項關鍵技術。將其應用到智能窗簾的研究中,不僅可以美化家居環境,也可以使窗簾的智能化推向一個新的高度,極大地方便了人們的日常生活,從而使家居裝飾更具現代化。
方便與享受的智能窗簾對于現代化快節奏生活的人們來說,是適應現代化辦公和生活環境的需要,是人們生活水平提高的一個標志。據介紹,智能窗簾根據操作機構和裝飾效果的不同分為智能開合布簾系列、智能升降簾系列、智能天棚簾、智能遮陽棚系列,具體如百葉簾、卷簾、羅馬簾、風情簾、蜂巢簾、垂直簾、香格里拉簾等。目前,市場上所出售的智能窗簾大多數具有可根據室內環境狀況自動調節光線強度、空氣濕度、平衡室溫等特性。但是,基于視覺手勢識別技術的智能窗簾并沒有在市場上出現,也沒有相關的研究。因此,我們特地提出了將基于視覺的手勢識別技術應用于智能窗簾研究的想法,并通過試驗取得了良好的成果。
1 設計方案
本系統以ARM7嵌入式芯片LPC2131最小系統為核心。首先,通過攝像頭獲取手勢圖像,利用計算機將手勢從背景圖片中分離出來,對手勢進行建模、分析,再進行動態識別,從而判斷出手勢的運動方向;然后,計算機調用Windows API 函數與LPC2131進行串口通信[1],將已判定的手勢運動方向以數據方式發送到LPC2131;最后,LPC2131接收到計算機發來的數據后進行解析,進而控制步進電機的轉動方向,實現窗簾的打開和關閉。系統總體流程如圖1所示。
2 硬件設計
本系統的硬件工作流程如圖2所示。首先,LPC2131通過UART0與計算機進行串口通信,接收計算機發送來的數據;然后,LPC2131對接收到的數據進行分析,判斷出數據所表示的手勢運動方向;最后,根據數據分析的結果控制步進電機的轉動方向。
2.1 MAX232工作原理
MAX232包含4個部分:雙路電荷泵DC-DC電壓轉換器、RS-232驅動器、RS-232接收器以及接收器與發射器使能控制輸入。內部有兩個電荷泵,將+5 V轉換為+10 V或-10 V(空載),為RS-232驅動器提供工作電壓。第一個轉換器利用電容C1將+5 V輸入加倍,得到V+輸出端C3上的+10 V;第二個轉換器利用電容C2將+10 V轉換為V-輸出端C4上的-10 V。可以從V+和V-輸出端獲取少量的電源功率,為外部電路供電,但由于V+、V-未經穩壓,所以輸出電壓會隨負載電流增大而下降。當V+、V-為外部電路提供電流時,注意不要因為所加負載的原因,使V+、V-低于輸出電壓最小值的限制。如果負載是標準值為5 kΩ的RS-232接收器,且Vcc=+5 V時,驅動器輸出電壓擺幅的典型值為+8 V~-8 V。空載時驅動器輸出電壓范圍是(V+ -1.3 V)~(V- +0.5 V)。
2.2 電平轉換電路
由于單片機使用的是TTL電平,其低電平“0”小于0.8 V,高電平“1”在2.4 V~5 V之間,而PC機與單片機之間的通信通常使用RS-232接口,規定低電平“0”在+5 V~+15 V之間,高電平“1”在-5 V~-15 V之間,因此不能與TTL電平直接相連,所以需要用電平轉換芯片對電路電平進行轉換,否則將使TTL電路燒壞。MAX232內含雙路電荷泵電壓轉換器C4、C5、C9、C10用于升壓或降壓(具體用法參照MAX232芯片使用手冊),一般為1 μF左右,C7、C8為去耦電容,一般大小最好相差100倍。具體電平轉換電路如圖3所示。
3.1 手勢建模
在手勢識別框架中,手勢模型是一個最基本的部分。根據不同的應用背景,手勢識別采用的模型會有不同,而對于不同的手勢模型,采用的手勢檢測與跟蹤算法、特征提取、識別技術也會有差別。手勢建模主要分為基于表觀的手勢模型與基于三維的手勢模型。
基于表觀的手勢建模是一種二維建模,從二維平面觀察得到的平面圖像信息來描述手勢的特征。
基于表觀的手勢模型[2]主要包括基于顏色的模型與基于輪廓的模型兩種。
基于顏色的手勢模型是把手勢圖像看作像素顏色的集合,通過提取手部顏色的特征來描述手勢。基于顏色的手勢模型的常用特征是顏色直方圖。
基于輪廓的手勢模型是把手看作一個輪廓,通過提取手部圖像中手的輪廓的幾何特征來描述手勢。
3.2 手勢的檢測與跟蹤
手勢檢測與跟蹤[2]是手勢識別處理流程中最前端的處理部分,它處理從攝像頭獲取到的手勢序列圖像,從中檢測和分割手勢對象。如果是動態手勢識別,還要對手進行跟蹤。
基于運動信息的方法是假設在視頻中只有手是運動物體。其中一種方法是背景減法。它要求背景靜止不變,把視頻中的每幀與背景相減,背景相同的部分變為零,不同的部分就認為是運動的物體,即手。另一種方法是差幀法,通過當前幀與前一幀(前若干幀)相減,檢測出兩幀之間的差異來確定手部運動的起始區域。但是一般相鄰幀之間的手勢運動幅度不大,差幀法只能檢測出運動的輪廓,一般要以比較低的幀采樣率或者隔若干幀做減法才能正確檢測與分割出運動的手部。
Dt(x,y)=It(x,y)-Ibg(x,y)
3.3 手勢圖像的預處理
將手勢圖像從RGB空間變換到YCbCr空間,利用YCbCr色彩空間亮度和色度分離的特性,在一定程度上克服了光照的干擾,然后用最大類間方差法Otsu對Cb和Cr通道的圖像進行二值化處理。實驗結果表明,與Y通道相比,Cb和Cr色差通道具有更好的分割效果。
但是用Otsu法得到的手勢分割[3]圖像還存在一定的噪聲,所以考慮運用形態學的開運算,先膨脹后腐蝕,從而得到較理想的分割效果。為了對手的區域進行更好的特征提取,本文使用灰度投影法來獲取準確的手勢區域。具體方法是對經過預處理的二值圖像分別在垂直方向和水平方向采用灰度投影法,從而得到手勢在X方向和Y方向的坐標范圍(x1-x2),(y1-y2)。如圖5所示,(a)是從實時視頻中截取的手的RGB圖像,(b)為(a)對應的二值化圖像,(c)為通過灰度投影確定的準確的手區域。
3.4 手勢特征提取
手勢特征的提取與手勢模型密切相關,不同的手勢模型會有不同的手勢特征。例如基于模型的手勢模型有手的每個關節的狀態特征,基于表觀模型的手勢特征是輪廓特征、位置特征、膚色特征等。
靜態手勢識別和動態手勢識別的特征也不同,靜態手勢特征只是描述手的靜態信息,例如輪廓、面積等。動態手勢特征是連續的靜態特征序列。
3.5 手勢識別
(1)靜態手勢識別
靜態手勢識別的方法有很多,例如基于規則的方法、模板匹配的方法等。
基于規則的識別方法[4]是最簡單的一種識別方法。它為手勢之間建立關系、定義識別規則。對于輸入的手勢特征,按照這些規則判別即可。基于規則的方法效率很高,缺點是這些規則需要預先編碼在規則庫中。
基于模板匹配的方法[4]是采集靜態手勢作為樣本,提取特征作為模板特征庫。在識別時把輸入的手勢特征與模板庫的模板進行匹配。其中比較經典的是使用彈性圖匹配(Elastic Graph Matching)方法。
在基于模板的識別方法中比較重要的是定義特征的距離函數。距離函數需要根據特征的特點來選取。Hausdorff距離是用來度量兩個集合之間的相似度,它的數學定義如下:A和B是兩個集合,元素個數分別是n和m。
(2)動態手勢識別
動態手勢是具有時間和空間變化的,手勢特征量化編碼之后成為時間上的符號序列。目前有許多方法可以對時間序列數據進行分類。
圖像處理領域最基本的直方圖技術在某些情況下用于動態手勢識別是非常有效的。直方圖能反映手勢序列的整體特征。雖然它丟失了序列的時間特征,但是在一些手勢種類少而且運動軌跡區別明顯的手勢識別應用中,不失為一種好選擇,它的識別處理效率很高。
窗簾是家居環境中必不可少的日常生活用品。在歐洲,窗簾智能化已經成為了時尚家居的一大標志。基于視覺手勢識別技術的智能窗簾不僅具有結構簡單、操作方便等優點,而且還能使家居環境更加美觀,更具現代化,為人們的日常生活帶來極大方便。測試表明,本系統具有靈活、穩定和低能環保的特點,是一種比較理想的研究。因此,基于視覺手勢識別技術的智能窗簾在今后會有更加廣闊的發展前景,其低能環保的優點定會受到廣大群眾的歡迎。
參考文獻
[1] 周立功,王祖麟,陳明計,等.ARM嵌入式系統基礎教程(第2版)[M].北京:北京航空航天大學出版社,2008.
[2] 胡友樹.手勢識別技術綜述[J].中國科技信息,2005(2):41-42.
[3] 劉俊梅,阮秋琦.一種復雜背景下的手勢分割新方法[J].北京電子科技學院學報,2006,14(2):23-26.
[4] 任海兵,祝遠新,徐光,等.基于視覺手勢識別的研究綜述[J].電子學報,2000,28(2):118-121.