基于OPENCV手勢識別的啟蒙教育機器人的設計與實現(xiàn)
祝朝坤,魏倫勝 (鄭州工商學院,河南 鄭州450000)
本文引用地址:http://www.ex-cimer.com/article/201910/406448.htm摘?要:基于視覺的手勢識別與遠程控制機械手相結合,通過攝像頭采集用戶的手勢圖像并提取手勢命令,轉換為機械手舵機的控制命令并通過無線藍牙發(fā)送至機械手控制單元,實現(xiàn)視覺手勢對機械手的遠程控制,使操作簡潔化。機械手端則由兩個STM32協(xié)同進行控制。符合低齡兒童啟蒙期的學習智商,幫助低齡兒童學習,娛樂,啟蒙教育。從小培養(yǎng)兒童的學習積極性。
關鍵詞:OPENCV;STM32;無線傳輸;手勢識別;啟蒙教育
0 引言
在國外,機器人教育一直是個熱點:早在1994年麻省理工學院(MIT)就設立了 “設計和建造LEGO機器人”課程(Martin),目的是提高工程設計專業(yè)學生的設計和創(chuàng)造能力。 隨著機器人技術的進一步發(fā)展,機器人除了智能程度在持續(xù)提高,其應用范圍也從工業(yè)向各個行業(yè)滲透。目前市面上的早教機器人仍是傳統(tǒng)的人機交互模式,在當今人工智能全球化背景下,這一類型的智能機器人已經(jīng)逐漸落后,無論是在先進性還是智能性,都對傳統(tǒng)的人機交互提出了更多的要求。本設計對早教機器人加以更新型的改進,使得人機交互更加智能,更加符合時代潮流。
1 啟蒙教育機器人的設計框圖
由圖1可知:啟蒙教育機器人主要分為兩大系統(tǒng),分別是手勢識別系統(tǒng)和機械手控制系統(tǒng)。手勢識別系統(tǒng)由PC端攝像頭采集手勢信息,進而通過OPENCV以及相應的算法進行圖像預處理,從而得到手勢所包含的控制指令;最后將手勢指令信息通過無線藍牙發(fā)送至機械手控制系統(tǒng),按照設定程序,將運動指令轉換為機械手各個舵機和語音模塊的控制指令,通過各舵機的協(xié)同操作實現(xiàn)運動效果和不同功能從而實現(xiàn)更加智能的早教機器人,幫助孩子提升學習的興趣。
2 啟蒙教育機器人的硬件設計
本設計采用以STM32F429ZI6為核心,加載超聲波測距模塊、語音識別模塊、藍牙模塊、TTS串口轉語音播放模塊、擴展SD卡模塊、MP3播放器模塊以及最核心的機械手舵機控制模塊,通過各種硬件的配合從而實現(xiàn)了各種功能。其中STM32承載了全部的計算任務,是整個設計的“大腦”,而機械手和各類傳感器則是設計的手足和五官,從而進行運動和收發(fā)信息的功能,該設計的整體電路如圖2所示。
2.1 語音識別模塊
語音處理技術是人機交互的核心技術之一,隨著智能化的提升,越來越多的場景需要用到語音處理技術,HBR740可以很簡單地配置語音命令,實現(xiàn)語音識別功能。其系統(tǒng)架構如圖3:
在該設計中,使用語音識別主要進行控制五大模式,為了使得識別誤差更低,則采用二級指令進行校準識別。
2.2 無線藍牙通信模塊
機器人在進行手勢識別時,用到的OpenCV手勢識別技術需要在PC端進行操作,在PC端與機械手控制系統(tǒng)的信息傳輸中將手勢指令信息通過藍牙發(fā)送至機械手接收單元,故藍牙模塊的無線傳輸功能是兩個系統(tǒng)溝通的橋梁,有著極為重要的作用。
2.3 MP3播放器模塊
VS1003是一個單片MP3/WMA/MIDI音頻解碼器和 ADPCM編碼器。在本設計中,其接收輸入的MP3數(shù)據(jù),經(jīng)過VS1003內置的采樣DAC轉換為音頻模擬量,最后通過Left﹑Right輸出,該模塊主要用于“兒歌播放模式”以及“講故事模式”中進行音樂以及故事的播放。
2.4 TTS串口轉語音播放模塊
TTS串口轉語音播放模塊只需要用串口發(fā)送中文指令及可以實時輸出語音,可以很方便地將文字轉化為語音。本設計中使用該模塊用來進行語音提示。例如總控制系統(tǒng)通過語音識別進入到猜拳模式時,該模塊會播報“已進入猜拳模式”,從而提醒使用者機器人當前位于哪種模式,實現(xiàn)更加人性化的設計。
2.5 超聲波模塊
HC-SR04超聲波測距模塊可提供2cm至400cm的非接觸式距離感測功能,本設計采用超聲波傳感器感應是否有人位于啟蒙教育機器人的前方,從而判斷是否觸發(fā)自啟動模式。
3 啟蒙教育機器人的軟件設計
3.1 軟件設計概述
軟件設計主要分為兩大部分,第一部分是PC端的OPENCV手勢識別算法,其配合USB攝像頭進行實時的手勢圖像采集;第2部分是STM32端的程序設計。
3.2 OPENCV手勢識別
手勢是一種人類的基本特征,手勢識別技術的發(fā)展,為人與機器或其他設備的交互提供了可能。根據(jù)手勢在時間和空間上的差異,手勢可分為靜態(tài)手勢和動態(tài)手勢,對靜態(tài)手勢的研究主要考慮手勢的位置信息,而研究動態(tài)手勢除了要考慮手勢空間位置變化,還需要考慮手勢在時序中的變化規(guī)律。
整個設計中具有決定性地位的便是OPENCV動態(tài)手勢識別算法,它是整個系統(tǒng)的核心。
3.2.1 手勢識別算法分析
通過攝像頭來完成對圖像的捕獲工作,攝像頭類似人眼,對周圍的環(huán)境和運動目標有著較強的感知能力。而攝像頭獲取的圖像顏色信息非常豐富,直接用來進行識別和檢測,會降低跟蹤和識別效果,而通過顏色空間轉換、降噪操作、二值化等方式處理之后,再用與識別和檢測,效果會大大提升,其過程被稱為圖像的預處理過程。
3.2.2 HSV顏色空間
HSV 是由色調、飽和度、 亮度組合而成的,屬于非線性色彩系統(tǒng),如圖4所示的圓錐體子集所組成的模型即為HSV模型:
HSV模型和RGB模型之間有著緊密聯(lián)系,并且可以相互轉換,而通過這種轉換,最大的好處就是不同的顏色有著不同的HSV參數(shù)值,若取值V=S=1,則從色彩開始,顏色空間會隨著黑白兩種色彩的變化而變化,當不斷增加白色時,發(fā)現(xiàn)參數(shù)V的值會保持不變,而參數(shù)S的值卻會減小,正是由于這種特性,才便于對手勢圖像的預處理,有利于對動態(tài)手勢的跟蹤監(jiān)測,且其受干擾程度很低,更方便后續(xù)的形態(tài)學噪聲處理。
3.2.3 OPENCV手勢輪廓提取與指尖標定
將基于膚色分割的類膚色圖像與基于運動前景分割的動態(tài)手勢圖像進行與操作,得到手勢的二值圖像。該圖像已排除了大部分類膚色區(qū)域,但仍包含較多的斑點噪聲。因此,需要對該圖像進行形態(tài)學處理消除這些區(qū)域,以減少后期手勢識別過程中的干擾信息。采用OPENCV開源視覺庫中的輪廓操作函數(shù):輪廓查找( ovFindContours),輪廓繪制( cvDrawContours),輪廓凸包查找(ovConvexHull2),凸缺陷查找(cvConvexityDefects)。從圖像中提取出可以描述連通域的特征分量:輪廓、骨架、凸包和凸缺陷,進而進行手勢輪廓提取。
對于設計中的指尖標定,采用最大曲率法可以求取圖像上各點處的曲率,設置相應的閾值,提取到指尖和指縫,再根據(jù)其他條件分離指尖和指縫,最終實現(xiàn)指尖定位。這種方法很好滴避免了手腕和手臂上的干擾點對指尖定位的干擾,且曲率大小與手勢朝向無關,這樣增加了手勢識別的靈活性以及準確性。
3.2.4 手勢識別核心代碼
int main(){
MyImage m(0);//圖像采集初始化
HandGesture hg;//定義手勢采集信息變量
usartinit();//串口初始化,用于藍牙發(fā)送到
STM32端
init(&m);//初始化顏色空間
m.cap>>m.src;
n a m e d W i n d o w ( “ i m g 1 ” , W I N D O W _
KEEPRATIO);//輸出手勢輪廓提取的圖像
out.open(“out.avi”, CAP_OPENCV_
MJPEG, 15, m.src.size(), true);//輸出實時的攝像頭圖像
waitForPalmCover(&m);//手勢分割
average(&m);// 圖像二值化
destroyWindow(“img1”);//關閉圖像輸出
initWindows(m);//初始化窗口
initTrackbars();//初始化拖動條
for(;;){
hg.frameNumber++;
m.cap>>m.src;
flip(m.src,m.src,1);//圖像反轉
pyrDown(m.src,m.srcLR);// 對圖像進行高斯平滑,然后再進行降采樣
blur(m.srcLR,m.srcLR,Size(3,3));//均值濾波
cvtColor(m.srcLR,m.srcLR,ORIGCOL2COL);//顏色空間轉換
produceBinaries(&m);// 生成二進制
cvtColor(m.srcLR,m.srcLR,COL2ORIGCOL);//顏色空間轉換
makeContours(&m, &hg);\計數(shù)
hg.getFingerNumber(&m);//輸出手勢識別的數(shù)字
showWindows(m);//打開窗口
out <<m.src;
if(cv::waitKey(30) == char(‘q’)) break;
}
destroyAllWindows();//關閉所有窗口
out.release();//向外釋放內存空間
m.cap.release();
return 0;
}
手勢識別測試如圖5:
3.3 STM32機械手程序功能設計
在設計組成的兩大關鍵中,機械手控制是不可或缺的一部分,當上位機識別手勢識別完成后,將識別結果通過藍牙傳輸發(fā)送至機械手控制系統(tǒng)。控制系統(tǒng)則進入相應的模式,完成各項指令任務,總程序分為若干部分,分開執(zhí)行,其大致流程圖如圖6所示。
4 總結
啟蒙教育機器人其適用人群為兒童,當前市場上也有很多的兒童早前教育機器人。然而真正與手勢識別完全結合在一起的卻少之又少,與手勢互動的更是幾乎沒有。因此,本文中的啟蒙教育機器人在設計之初就為了能與兒童有更多的互動,增加其學習的興趣,實現(xiàn)手勢識別技術在人機交互中的創(chuàng)新意義。其對于啟蒙教育而言則有了新的進步,能幫助兒童進行早期學前啟蒙,是處于全球人工智能背景下的設計,實現(xiàn)了人工智能技術在教育領域的前沿探索。
5 參考文獻
[1]張瑞,焦曉瓊.基于OpenCV的圖像處理技術在國畫中的應用[J].自動化與儀器儀表,2019(09):226-229.
[2]楊帆,徐軍.基于人臉識別技術的電源開關控制系統(tǒng)[J/OL].傳感器與微系統(tǒng),2019(09):93-95,98[2019-10-09].
[3]李杰,劉子龍.基于計算機視覺的無人機物體識別追蹤[J/OL].軟件導刊:1-5[2019-10-09].
[4]王禾生,梁維保.一種自動夾取及碼垛的機械手裝置設計[J].機電信息,2019(27):103-104.
[5]侯勇,毛潤華,何獻章,張曉宇,李金桐.CNC多工位自動上卸料機械臂設計[J].制造業(yè)自動化,2019(09):125-128,148.
[6]周挺,楊榮.多媒體網(wǎng)絡語音音調數(shù)據(jù)特征智能識別方法[J].自動化與儀器儀表,2019(09):132-135.
[7]梁慧.嵌入式英語語音識別系統(tǒng)誤差自動檢測方法研究[J].自動化與儀器儀表,2019(09):55-58.
作者簡介:
祝朝坤,男,碩士,主要研究方向:嵌入式系統(tǒng)、模式識別與圖像處理
魏倫勝,男,本科,主要研究方向:嵌入式系統(tǒng)、圖像處理
本文來源于科技期刊《電子產(chǎn)品世界》2019年第11期第77頁,歡迎您寫論文時引用,并注明出處。
評論