您現在的位置:新聞首頁» 原創文章 »正文

基于K60的手勢識別系統設計

  來源:現代科學儀器網2017-03-09點擊:967


【核心介紹】該系統以飛思卡爾系列單片機K60為主控芯片,CMOS攝像頭OV7620作為圖像傳感器,將采集的手勢圖像送到單片機進行圖像壓縮、去噪濾波、動態閾值二值化、輪廓跟蹤、指尖檢測等處理步驟,完成手勢的識別。并將識別結果通過語音模塊輸出,根據識別結果實現風扇的調速控制。手勢輪廓的提取采用八鄰域跟蹤算法,指尖檢測采用K_COS算法,并結合待測點與質心的距離,剔除指谷的影響。該項目不僅完成對特定手勢的識別和風扇的調速控制,而且實時識別過程中脫離計算機,使用方便小巧的單片機,實現良好的人機交互,讓手勢控制成為了更為大眾化  

基于K60的手勢識別系統設計

高華帥  郭晶晶  高 飛  鄭曉瑞  彭 振

(青島理工大學 自動化工程學院 青島266520)

該系統以飛思卡爾系列單片機K60為主控芯片,CMOS攝像頭OV7620作為圖像傳感器,將采集的手勢圖像送到單片機進行圖像壓縮、去噪濾波、動態閾值二值化、輪廓跟蹤、指尖檢測等處理步驟,完成手勢的識別。并將識別結果通過語音模塊輸出,根據識別結果實現風扇的調速控制。手勢輪廓的提取采用八鄰域跟蹤算法,指尖檢測采用K_COS算法,并結合待測點與質心的距離,剔除指谷的影響。該項目不僅完成對特定手勢的識別和風扇的調速控制,而且實時識別過程中脫離計算機,使用方便小巧的單片機,實現良好的人機交互,讓手勢控制成為了更為大眾化的一種控制方法。

關鍵詞 手勢識別;圖像壓縮;輪廓跟蹤;MK60DN512OV7620

中圖分類號 TP29 文獻標識碼 A


Design of Gesture Recognition System based on K60

Gao  Huashuai, Guo  Jingjing, Gao  Fei, Zheng  Xiaorui, Peng  Zhen

(College of Automation Engineering ,Qingdao University of Technology ,Qingdao ,266520)


Abstract The system uses Freescale MCU K60 as the main control chip and CMOS camera OV7620 as the image sensor. The collected gesture images are sent to the MCU for image compression, denoising filtering, dynamic threshold binarization, contour tracking, fingertip detection and so on, which completes the recognition of the gesture.Then the recognition result is output through the voice module, and the speed regulation control of the fan is realizedaccording to the recognition result.The eight-field tracking algorithm is used to extract the gesture contours. The K_COS algorithm is applied to the fingertip detection, and the influence of the finger’svalley is eliminated by combining the distance between the measured points and the center of mass.The project,with the convenient single chip microcomputer rather than the computer,not only completes the recognition of specific gesture and the speed control of the fan, but also realizes good human-computer interaction, which makes the gesture controlbecome a more popular control methodin the process of real-time recognition.

Key  words gesture recognition; image compression;contour tracking; MK60DN512; OV7620

引 言

計算機和互聯網的普及使得人機交互成為人們日常生活的重要組成部分,比如智能手機配備的指紋識別技術,應用于虛擬現實、遙控機器人及遠程醫療等的觸覺交互技術,應用于呼叫路由、家庭自動化及語音撥號等場合的語音識別技術。眼睛虹膜、語音、唇讀、人臉等人類特征都可作為人機交互的重要特征,而手勢作為人類最自然的表達方式之一,在日常生活中得到了廣泛的應用。手勢生動、形象、直觀,而且蘊涵著豐富的信息,是人與人溝通的重要媒介。目前基于手勢的交互已經成為人機交互的重要內容。現在基于計算機的手勢識別甚至人臉識別研究已經初見起色。但是這些無疑有一個很大的弊端,那就是一定要用計算機,使用不方便。

本文設計的系統就避免了這一弊端,僅用小巧的單片機完成特定手勢的識別。為克服單片機相對計算機處理速度慢的問題,在圖像采集方面采用DMA進行數據傳輸,然后在不失真的前提下選用合適的壓縮比對圖像進行壓縮,極大的提高了數據采集和處理速度。為解決灰度圖像轉化為二值圖像手指背影的影響,本文采用動態閾值二值化的方法,相對于傳統的定值二值化和硬件二值化,較好的克服了背景影響。本文設計,結構輕巧,成本低,較好的完成手勢的識別和風扇的調速控制。

1硬件系統設計

手勢識別系統包括攝像頭OV7620采集手勢圖像、主控芯片K60進行數據處理、電源模塊給系統各模塊供電、驅動模塊驅動風扇電機以及語音模塊輸出識別結果。系統總體設計結構圖如圖1-1

1-1 系統總體設計結構

1.1 攝像頭采集模塊

本文圖像采集模塊選用OV7620,OV76201/3CMOS彩色/黑白圖像傳感器。它支持連續和隔行兩種掃描模式,VGAQVGA兩種圖像格式;最高像素為664*492,幀速率為30fps;數據格式包括YUVYCrCbRGB三種,能夠滿足一般圖像采集系統的要求,較好的適應了手勢圖像采集。

1.2 電機驅動模塊

驅動部分用的是IRF540 N溝道MOS管和IR2104驅動芯片,因為只需要驅動電機的單向轉動,所以只用了一個MOS管,以簡化硬件電路圖。所構成的原理圖如圖1-2

1-2 驅動電路原理圖

1.3電源供電模塊

電源模塊相當于房屋的基石,供電的穩定直接關系到整個系統的穩定運行。系統整體用的是7.2V 2000mAh Ni-Cd 電池供電。單片機用ASM1117-3.3V芯片轉換成3.3.V電壓供電。PWM驅動芯片IR2104需要12V供電,本文先用LM2940芯片將電池電壓轉換成5V,再用一個B05S12芯片產生所需的12V電壓給IR2104供電。所用的原理圖嚴格按照數據手冊提供的原理圖設計,原理圖如圖1-3

1-3 電源模塊原理圖

2 軟件系統設計

2.1整體設計流程

主程序首先進行完成攝像頭等模塊的初始化,獲取圖像進行壓縮濾波、動態閾值二值化處理,然后提取輪廓邊緣,進行指尖檢測并將匹配結果通過語音模塊和OLED顯示,利用匹配的結果來控制電機轉速。

DMA中斷子程序主要完成攝像頭圖像數據的采集,并將獲取結果存儲到數組中,大大減輕了CPU的負擔。

軟件設計流程如圖2-1

2-1 軟件設計流程框圖

2.2識別原理與算法

圖像處理過程中,濾波采用中值濾波,濾去圖像中的高頻雜點。二值化采用動態閾值的算法,準確屏蔽背景影響。提取輪廓采用八鄰域順序提取邊緣算法,使圖像變為單層連續的手勢圖形。指尖檢測采用K_COS算法。手勢圖像的處理示意圖如圖2-2

2-2 手勢圖像處理示意圖

2.2.1圖像壓縮、濾波預處理

由于采集的手勢圖像較大,會占用單片機大量的處理周期,不利于后續數據的處理,所以本系統對圖像進行了壓縮處理。在不影響手勢輪廓提取的前提下,選用合適的壓縮比,對圖像進行隔行隔列掃描,將掃描后的灰度值放到數組中,以便后續數據處理。

另外,采集的圖像含有大量高頻噪點,進行了濾波去噪處理,濾波算法采用了中值濾波算法。該算法采用一個滑動窗口,用窗口中各點灰度的中值來代替窗口中心像素的灰度值。該算法能較好的去除高頻噪點的影響,且編程算法簡單可靠。

2.2.2動態閾值二值化

為了減少背景的影響,采取OTSU算法將灰度圖像變為二值圖像的閾值設為動態的,即隨整幅圖形的像素落差自動計算閾值。OTSU算法原理如下:

對灰度圖像,記T為前景與背景的分割閾值,前景點數占圖像比例為W0,平均灰度為U0;背景點數占圖像比例為W1,平均灰度為U1。圖像的總平均灰度為:U=W0*U0+W1*U1 。從最小灰度值到最大灰度值遍歷,依次計算類間方差σB2,當σB2最大時的T即為分割的最佳閾值,計算公式如下:

2.2.3八鄰域輪廓跟蹤算法

提取手勢二值圖像后,本文采用八鄰域輪廓跟蹤算法提取手勢輪廓,以便利用K_COS算法進行手勢指尖檢測。該算法相對于Freeman算法來說,計算量相對較小,更適用于單片機,并且C語言算法容易實現。其算法步驟如下:

二值圖像每個像素點有八個方向與其連接,共定義了八個方向遍歷,如圖2-3所示,定義左下方順時針旋轉到正下方分別編碼0-7。算法步驟如下:? 從左到右、從上向下依次遍歷各像素點,直到尋找到第一個非孤立白點,即輪廓跟蹤的初始點O,記錄其坐標。? 以O點左下方作為初始方向進行跟蹤,若該點為白點,則跳出本次循環。否則,順時針旋轉45°直到找到下一個白點,并記錄其坐標。? 把該白點作為新的起始點,以當前跟蹤方向上逆時針旋轉90°繼續跟蹤。? 如此循環遍歷,直到再次找到初始點0,遍歷結束跳出總循環。

2-3 輪廓跟蹤方向

2.2.4K_COS算法

曲率定義為某一點的切向角度相對于弧長的變化率,曲率越大,曲線的彎曲程度越大。觀察手勢輪廓指尖曲率最大,且曲率具有旋轉、平移不變性,可作為手勢特征。

由于曲率公式較為復雜,C語言編程復雜,所以本文采用K_COS算法,利用兩向量夾角余弦值近似曲率進行指尖檢測,以此判斷手指個數。點PiXi,Yi的K向量表示為:

K_COS算法對k值的選取較為敏感,該值選取太小,不能克服噪點影響,選取太大不能良好的反映曲率的變化。經過多次實驗,選取了k=6,其較好的反映了曲率變化。另外,當指尖張開較小時指谷也會包含進去,對此我們求取圖像質心,當候選點與質心的距離小于一定閾值時將其舍棄。通過不斷的試驗,選取COSθi=0.73作為指尖檢測的閾值。

3 實驗測試與分析

本文以數字056個手勢作為系統研究對象,每種手勢分別由10個不同的人進行測試,一共進行了60組測試,通過觀察電機轉速的變化以及語音模塊的輸出來判斷手勢識別的正確與否。通過測試,本文系統在該6種靜態手勢的識別率較高,平均識別率為95.17%,基本完成了人機交互的任務。但在手勢3的識別中存在一定的誤差,這主要是手勢3的大拇指方向有凸起,利用K_COS算法進行指尖檢測時,由于凸起可能會造成該處曲率過大的情況而誤判為指尖,從而影響手指個數的判斷。綜上所示,利用八鄰域輪廓跟蹤算法和K_COS算法能較好的進行指尖檢測,識別出手指個數。手勢識別率如表1

1 手勢識別率



4 結語

本文在查閱關于手勢識別的文獻和進行相應的程序調試后,識別出數字056種手勢。該系統識別過程中完全脫離電腦設備,利用單片機進行處理,圖像壓縮、八鄰域輪廓跟蹤算法大大縮短了單片機的處理時間,K_COS算法較好的進行指尖檢測,語音模塊和風扇調速實現了良好的人機交互。本文手勢識別系統具有簡易通用性,為后續單片機的圖像處理研究提供參考借鑒。

參考文獻

[1] 段洪偉.實時基于視覺的手勢識別及其應用[D].上海:上海大學,2004.

[2] 何陽青.基于幾何特征的手勢識別算法研究[D].上海:上海海事大學,2004.

[3] 龔聲榮,劉純平,王強.數字圖像處理與分析[M].北京:清華大學出版社,2006.7.

[4] 李華林.指尖檢測與空間定位關鍵技術研究[D].武漢:華中科技大學,2012.

[5] 任海兵,祝遠新,徐光祐等.基于視覺手勢識別的研究—綜述[J].電子學報,2000.

[6]高守傳,姚領田.Visual c++數字圖像處理與工程應用篇[M].北京鐵道出版社,2006,1.







(資訊來源:現代科學儀器 期刊,由現代科學儀器網官方發布,禁止轉載)

  (來源:現代科學儀器網

關注本網官方微信 隨時訂閱權威資訊





35选7一等奖多少钱