由于傳統(tǒng)電視機(jī)遙控器的按鍵操作比較機(jī)械且缺乏娛樂(lè)性,設(shè)計(jì)了一種以DSP2812為核心的手勢(shì)識(shí)別算法。通過(guò)將用戶(hù)手勢(shì)運(yùn)動(dòng)的信息轉(zhuǎn)換成相應(yīng)的紅外信號(hào),從而實(shí)現(xiàn)手勢(shì)遙控電視機(jī)更換頻道和調(diào)節(jié)音量的目的。該系統(tǒng)主要由雙端口RAM通信的雙DSP 并行處理器、CMOS 數(shù)字?jǐn)z像頭、紅外遙控模塊、上位機(jī)調(diào)試軟件和以太網(wǎng)通信模塊組成。實(shí)驗(yàn)測(cè)試表明,該系統(tǒng)能夠?qū)崿F(xiàn)用戶(hù)手勢(shì)圖像的采集、手勢(shì)動(dòng)作的識(shí)別、紅外遙控及以太網(wǎng)通信功能。
傳統(tǒng)電視機(jī)遙控器是一種按鍵操控方式,其操作比較機(jī)械且缺乏娛樂(lè)性。本文提出一種采用直接判斷使用者手部動(dòng)作的方法遙控電視機(jī),使用者在攝像頭拍攝范圍內(nèi)按照規(guī)定的擺放方式移動(dòng)手部,就能夠遙控電視機(jī)進(jìn)行音量增減或頻道變換等操作。設(shè)計(jì)使人們對(duì)電視機(jī)的遙控操作更加便捷、人性化,豐富大眾的日常生活。
1. 系統(tǒng)設(shè)計(jì)方案
手勢(shì)識(shí)別電視機(jī)遙控器是集合圖像采集、手勢(shì)識(shí)別和紅外遙控三大主要功能的控制裝置。依據(jù)要實(shí)現(xiàn)的采集圖像能力和DSP 處理視頻流能力的功能要求,確定系統(tǒng)結(jié)構(gòu)如圖1 所示。
圖1 手勢(shì)識(shí)別電視遙控器系統(tǒng)結(jié)構(gòu)
本系統(tǒng)采用了雙DSP 共同工作的方式,主要由六個(gè)模塊組成。
1) 攝像頭模塊: 由攝像頭OV7620 及驅(qū)動(dòng)電路組成,負(fù)責(zé)手勢(shì)圖像采集。
2) DSP1: 核心是TMS320F2812,負(fù)責(zé)對(duì)圖像采集及預(yù)處理,與上位機(jī)網(wǎng)絡(luò)通信和用戶(hù)按鍵信息的輸入。
3) 上位機(jī): 顯示實(shí)時(shí)采集的圖像,圖像處理結(jié)果和調(diào)試參數(shù)等。
4) 雙端口RAM 模塊: 實(shí)現(xiàn)兩個(gè)DSP 之間的高效數(shù)據(jù)通信。
5) DSP2: 負(fù)責(zé)提取手勢(shì)圖像特征和向紅外遙控模塊發(fā)送指令。它從雙端口RAM 獲取圖像數(shù)據(jù),從圖像中提取有用的特征,并將判斷結(jié)果轉(zhuǎn)換成相應(yīng)的遙控指令。
6) 紅外遙控模塊: 負(fù)責(zé)學(xué)習(xí)電視機(jī)配套遙控器的紅外遙控指令,將其放入指定的存儲(chǔ)空間中。在DSP2 給出發(fā)射指令時(shí),查詢(xún)存儲(chǔ)空間,獲取對(duì)應(yīng)的紅外指令并發(fā)射。
2. 系統(tǒng)硬件設(shè)計(jì)
2. 1 雙DSP 處理器及內(nèi)存空間設(shè)計(jì)
本設(shè)計(jì)使用雙TMS320F2812 的DSP 進(jìn)行圖像采集、圖像處理并且實(shí)現(xiàn)紅外遙控和網(wǎng)絡(luò)通信等功能。這樣可以滿(mǎn)足并行圖像處理能力和快速響應(yīng)的速度要求,同時(shí)兩個(gè)DSP 擴(kuò)展了512 K × 16 位的RAM 空間,以滿(mǎn)足圖像處理的空間要求。
為了實(shí)現(xiàn)雙DSP 之間的通信,系統(tǒng)采用Cypress公司的一款64 K × 16 位的雙端口RAM 芯片CY7C028 搭建一個(gè)數(shù)據(jù)通道。DSP1 把采集到的圖像通過(guò)時(shí)間控制有規(guī)律寫(xiě)入數(shù)據(jù)通道中,DSP2 從數(shù)據(jù)通道中提取圖像數(shù)據(jù)存放到自己的RAM 中,然后進(jìn)行相關(guān)的圖像處理。在設(shè)計(jì)工作狀態(tài)時(shí),使用雙端口中斷判優(yōu)方式,數(shù)據(jù)傳遞采用握手的通信模式。當(dāng)DSP1 向雙端口RAM 中寫(xiě)完數(shù)據(jù)之后,通過(guò)中斷握手的方式,通知DSP2 讀取數(shù)據(jù)。DSP2 要求數(shù)據(jù)時(shí),也會(huì)以同樣的方式通知DSP1,從而實(shí)現(xiàn)雙DSP 高速有規(guī)律地?cái)?shù)據(jù)傳遞。雙端口RAM 與兩個(gè)DSP 之間的硬件連接如圖2 所示。
圖2 雙端口RAM 與雙DSP 的硬件連接圖
2. 2 圖像采集電路設(shè)計(jì)
本系統(tǒng)直接使用DSP1 通過(guò)外部中斷NMI 和INT2,分別同步攝像頭OV7620 的VSN 和HREF 信號(hào),同時(shí)通過(guò)綁定DSP 的8 根I /O 線同步讀取圖像到DSP 內(nèi)存中,從而實(shí)現(xiàn)了系統(tǒng)的圖像采集工作。為了讓DSP 的時(shí)鐘頻率與OV7620 的時(shí)鐘頻率匹配,必須要降低攝像頭的輸出時(shí)鐘頻率。對(duì)攝像頭OV7620 內(nèi)部的寄存器進(jìn)行設(shè)置,達(dá)到減慢數(shù)據(jù)傳輸速度的目的。OV7620 模塊與DSP1 的硬件連接和OV7620 的同步讀取時(shí)序分別如圖3 和圖4 所示。
圖4 OV7620 同步讀取時(shí)序圖
通過(guò)時(shí)序圖可知,DSP 先捕獲攝像頭的場(chǎng)中斷信號(hào),準(zhǔn)備好存儲(chǔ)一幀圖像的數(shù)組。然后,DSP 等待HREF 行中斷信號(hào)。最后,在行中斷中判斷PCLK信號(hào),當(dāng)PCLK 處于高電平時(shí),DSP 讀取該像素值。為了在不丟失手勢(shì)特征信息的前提下采集盡量小的圖像,DSP 采集視野中間隔行的100 × 100 大小的圖像,存放在100 × 100 的數(shù)組中。通過(guò)修改讀取程序可以改變采集圖像的大小。
2. 3 內(nèi)存及DSP 網(wǎng)絡(luò)通信設(shè)計(jì)
本系統(tǒng)采用RTL8019AS 與DSP1 通過(guò)連接對(duì)應(yīng)的地址數(shù)據(jù)總線,設(shè)置片選信號(hào),實(shí)現(xiàn)DSP 的以太網(wǎng)通信。RTL8019AS 與DSP1 的硬件連接如圖5 所示。
RTL8019AS 內(nèi)部有兩塊RAM 區(qū),一塊16 K 字節(jié),地址為0 × 4000 ~ 0 × 7FFF; 一塊32 個(gè)字節(jié),地址為0 × 0000 ~ 0 × 001F。RAM 按每256 字節(jié)為一頁(yè)存儲(chǔ)。一般將RAM 前12 頁(yè)( 即0 × 4000 ~ 0 ×4BFF) 存儲(chǔ)區(qū)作為發(fā)送緩沖區(qū); 后52 頁(yè)( 即0 ×4C00 ~ 0 × 7FFF) 存儲(chǔ)區(qū)作為接收緩沖區(qū)。第0 頁(yè)只有32 字節(jié)( 地址為0 × 0000 ~ 0 × 001F),用于存儲(chǔ)以太網(wǎng)物理地址。要接收和發(fā)送數(shù)據(jù)包就必須通過(guò)DMA 讀寫(xiě)RTL8019AS 內(nèi)部的16KB RAM。
圖5 RTL8019AS 與DSP1 硬件連接圖
2. 4 紅外遙控模塊電路設(shè)計(jì)
紅外遙控模塊包括三個(gè)部分: 接收部分、發(fā)送部分和數(shù)據(jù)處理部分。接收部分包括光電轉(zhuǎn)換、解調(diào)、高速采樣以及數(shù)據(jù)分析等模塊,發(fā)送部分包括遙控發(fā)送和電光轉(zhuǎn)換模塊,數(shù)據(jù)處理部分包括中央處理以及存儲(chǔ)模塊。
3 系統(tǒng)軟件設(shè)計(jì)
3. 1 手勢(shì)圖像預(yù)處理算法
手勢(shì)圖像提取算法選擇幀間差分的方法實(shí)現(xiàn)手部圖像分割。利用間隔短暫時(shí)間的兩幀圖像比較,獲取兩張圖像運(yùn)動(dòng)方向的手部圍成的一小段白色區(qū)域,然后采用閾值分割的方法對(duì)獲取的圖像二值化,消除噪聲,最后根據(jù)此圖像序列含有的白色像素點(diǎn)的多少來(lái)確定圖像序列中有無(wú)物體存在。對(duì)手勢(shì)圖像預(yù)處理的算法描述如下:
1) 從視頻圖像序列中選取相鄰n 幀的兩幀圖像,其中前一幀圖像為Pk-1( x,y ),如圖6( a) 所示,后一幀圖像為Pk( x,y),如圖6( b) 所示;
圖6 從視頻圖像序列中選取的圖像
2) 為了減少計(jì)算量,將480 × 640 的圖像隔4 行6 列提取像素點(diǎn),左右各忽略20 列,上下各忽略40行,獲得兩幀100 × 100 的圖像,如圖7( a) 和7( b) 所示;
圖7 縮小后的圖像
3) 計(jì)算后一幀與前一幀的差為Gk( x,y) ,得到目標(biāo)的變化量,如圖8 所示;
圖8 兩幅圖像的目標(biāo)變化量
4) 對(duì)幀間差分法得到的圖像按選定的閾值進(jìn)行二值化,得到目標(biāo)圖像序列的二值化圖像序列Fk( x,y) ,如圖9 所示。其中,
式( 1) 中,T 為閾值。對(duì)于給定視頻序列的圖像,假設(shè)像素點(diǎn)k 處沒(méi)有運(yùn)動(dòng),其幀差dk服從均值為0,方差為σ2 的Gauss 分布N( 0,σ2):
式( 2) 中,H0表示無(wú)運(yùn)動(dòng)假設(shè),σ2 是幀差的統(tǒng)計(jì)方差,通常認(rèn)為它等于攝像頭噪聲方差的兩倍。根據(jù)概率統(tǒng)計(jì)假設(shè)檢驗(yàn)“3σ”法則和“正確的閾值T 應(yīng)該能消除大部分噪聲”的原則。經(jīng)試驗(yàn)測(cè)試得閾值T選擇在35 ~ 45 之間比較合適。二值化后的圖像如圖9 所示。觀察Fk( x,y) 的圖像序列,可以看到圖像中的噪聲很少,這是因?yàn)棰賻g差分法達(dá)到了加大目標(biāo)信息的權(quán)重,同時(shí)抑制了靜態(tài)背景的效果;②攝像頭采集范圍背景比較單一,光線均勻。
Fk( x,y) 中主要存在兩大類(lèi)的噪聲。一種是由于光線變化產(chǎn)生的噪聲,這種噪聲往往以孤立的黑色像素點(diǎn)的形式出現(xiàn)。第二種噪聲是一些面積較小的背景塊。為了盡可能消除這兩種噪聲,可以求每個(gè)N × M 小塊的灰度平均值,根據(jù)灰度平均值可估計(jì)出白色區(qū)域的大小。當(dāng)灰度平均值小于某一閾值時(shí),可以認(rèn)為是噪聲,把對(duì)應(yīng)的N × M 個(gè)點(diǎn)賦值為0.算法實(shí)現(xiàn)如下:
( 1) 建立一個(gè)大小是Fk( x,y) 的1 /25 倍的矩陣來(lái)存20 × 20 個(gè)5 × 5 像素塊的平均灰度值fk( x,y)。
( 2) fk( x,y) 和Hk( x,y) 滿(mǎn)足如下關(guān)系:
圖10 噪聲消除后的圖像
通過(guò)這種處理方法,原圖像中的小塊噪聲和椒鹽噪聲基本被消除,手部圖像邊緣的某些像素點(diǎn)也會(huì)被當(dāng)作噪聲消除,但是不影響后續(xù)處理。經(jīng)過(guò)噪聲消除后的圖像如圖10( a) 所示。使用同樣的處理算法,可以得到后一幀的圖像處理結(jié)果如圖10( b)所示。
3. 2 特征提取及動(dòng)作識(shí)別
獲取只含手部運(yùn)動(dòng)區(qū)域的圖像Hk( x,y) 和Hk+1( x,y) 后,掃描出手部圖像邊界,通過(guò)比較與計(jì)算判斷手?jǐn)[放位置和區(qū)域中心位置Pk( xk,yk) 和Pk+1( xk+1,yk+1) .手部擺放位置可以判斷手的上下或是左右運(yùn)動(dòng)。圖像處理和特征提取流程圖如圖11 所示。
( 1) Hk+1( x,y ) 和Hk( x,y ) 是相同的縱向擺放位置,手部在左右運(yùn)動(dòng)。
( 2) 根據(jù)列坐標(biāo)的大小來(lái)判斷手左右方向的移動(dòng)如下:
判斷上下運(yùn)動(dòng)的算法與判斷左右類(lèi)似。若出現(xiàn)無(wú)法判斷的情況,則重新采集圖像,進(jìn)行處理和判斷,直到能夠判斷方向?yàn)橹埂?/p>
圖11 圖像處理算法流程圖
3. 3 紅外遙控算法原理
本系統(tǒng)選擇最常用的一種編碼方式uPD6121進(jìn)行學(xué)習(xí)、解碼和發(fā)射。紅外遙控器的紅外信號(hào)一般都是通過(guò)38 ~ 40kHz的載波調(diào)制而成。先對(duì)接收到的紅外信號(hào)進(jìn)行解調(diào),再記錄遙控編碼信號(hào)的脈沖寬度。學(xué)習(xí)子程序的流程圖如圖12 所示。采用計(jì)數(shù)器對(duì)信號(hào)高低電平計(jì)數(shù)的方法采集數(shù)據(jù)并保存。
發(fā)射模塊根據(jù)DSP2 發(fā)送的指令找到對(duì)應(yīng)的編碼信號(hào)在外擴(kuò)RAM 的位置,將編碼調(diào)入內(nèi)存,然后通過(guò)編碼發(fā)送子程序,將編碼調(diào)制在38 kHz 載波上發(fā)送出去。用定時(shí)中斷0 產(chǎn)生38 kHz 的載波信號(hào),用學(xué)習(xí)到的遙控編碼信號(hào)的低電平去控制載波輸出,此時(shí)定時(shí)器0 定時(shí)長(zhǎng)度由相應(yīng)的遙控信號(hào)低電平寬度計(jì)數(shù)值確定。如果需發(fā)射的遙控信號(hào)為高電平,關(guān)定時(shí)中斷0; 如果為低電平,則開(kāi)定時(shí)中斷0,從而實(shí)現(xiàn)遙控信號(hào)的脈寬調(diào)制發(fā)射。發(fā)射子程序流程如圖13 所示。
圖12 學(xué)習(xí)子程序流程圖
圖13 發(fā)射子程序流程圖
3. 4 網(wǎng)卡驅(qū)動(dòng)程序及上位機(jī)軟件設(shè)計(jì)
3. 4. 1 網(wǎng)卡驅(qū)動(dòng)程序及UDP 協(xié)議實(shí)現(xiàn)
RTL8019AS 已經(jīng)實(shí)現(xiàn)以太網(wǎng)通信物理層功能,只需初始化芯片相應(yīng)的寄存器,編寫(xiě)DSP 下驅(qū)動(dòng),便可啟動(dòng)RTL8019AS.本系統(tǒng)采用TCP /IP 協(xié)議族中的UDP 協(xié)議( user datagram protocol) 進(jìn)行通信,實(shí)現(xiàn)通過(guò)網(wǎng)絡(luò)把DSP 采集到的圖像信息發(fā)送到上位機(jī)。
3. 4. 2 上位機(jī)軟件編寫(xiě)
上位機(jī)軟件采用C#語(yǔ)言編寫(xiě),實(shí)現(xiàn)UDP通信協(xié)議。上位機(jī)軟件實(shí)現(xiàn)接收下位機(jī)的數(shù)據(jù),還原圖像數(shù)據(jù)并顯示等功能。同時(shí),上位機(jī)還可以向下位機(jī)發(fā)送命令,方便系統(tǒng)調(diào)試。
3. 4. 3 圖像數(shù)據(jù)發(fā)送及還原
下位機(jī)采用UDP發(fā)送數(shù)據(jù),把數(shù)據(jù)的每一行作為一個(gè)UDP數(shù)據(jù)包,一幅圖像分成100個(gè)數(shù)據(jù)包進(jìn)行發(fā)送。為了讓上位機(jī)完整接收一幅圖像,在每幅圖像開(kāi)始發(fā)送之前,先發(fā)送一個(gè)規(guī)定的幀開(kāi)頭數(shù)據(jù)包,在每一幅圖像發(fā)送完畢之后,也發(fā)送一個(gè)規(guī)定幀結(jié)尾數(shù)據(jù)包。上位機(jī)根據(jù)這些標(biāo)定將100個(gè)數(shù)據(jù)包利用C#語(yǔ)言的相關(guān)函數(shù),轉(zhuǎn)換一定的圖片格式,在上位機(jī)進(jìn)行顯示。
4. 系統(tǒng)測(cè)試
4. 1 測(cè)試流程
創(chuàng)建手勢(shì)樣本庫(kù)、手勢(shì)圖像預(yù)處理、特征提取、實(shí)時(shí)手勢(shì)圖像與庫(kù)模型預(yù)測(cè)、識(shí)別結(jié)果、執(zhí)行操作等。
4. 2 測(cè)試結(jié)果
本設(shè)計(jì)自定義手勢(shì)及編號(hào)如圖14所示,其中手勢(shì)1表示開(kāi)機(jī),手勢(shì)2表示關(guān)機(jī)、手勢(shì)3表示換臺(tái)的遞增,手勢(shì)4表示換臺(tái)的遞減,手勢(shì)5表示音量增加,手勢(shì)6表示音量減小等功能。
對(duì)組裝好硬件電路系統(tǒng)進(jìn)行整體測(cè)試。測(cè)試者在攝像頭的拍攝范圍內(nèi)進(jìn)行上述6種手勢(shì)各從左向右、從右向左、從上向下和從下向上10次緩慢運(yùn)動(dòng),在每種手勢(shì)40次的識(shí)別中識(shí)別率如表1所示。
表1 識(shí)別率
測(cè)試結(jié)果表明,本算法識(shí)別手勢(shì)的準(zhǔn)確率在96%左右,遙控的有效范圍在4 m 左右,能夠?qū)崿F(xiàn)電視機(jī)的頻道更換和音量調(diào)節(jié)功能。
5. 總結(jié)
本文設(shè)計(jì)的手勢(shì)識(shí)別電視遙控器系統(tǒng),利用攝像頭使手勢(shì)動(dòng)作與電視機(jī)進(jìn)行交互,采用紅外信號(hào)遙控電視機(jī),在紅外傳輸有效距離內(nèi),可以根據(jù)個(gè)人喜好,任意改變手勢(shì)識(shí)別樣本庫(kù)系統(tǒng),使得電視遙控更加人性化,并為實(shí)現(xiàn)家庭數(shù)字設(shè)備操控一體化提供可能。
圖14 自定義手勢(shì)及編號(hào)
-
芯片
+關(guān)注
關(guān)注
453文章
50406瀏覽量
421813 -
遙控器
+關(guān)注
關(guān)注
18文章
829瀏覽量
65973 -
電視機(jī)
+關(guān)注
關(guān)注
7文章
394瀏覽量
44026
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論