時(shí)間:2007-11-15 15:45:00來源:dujing
本文結(jié)合攝像頭圖像采集,以VC++6.0為開發(fā)工具,實(shí)現(xiàn)人機(jī)對弈情況的自動識別。首先介紹機(jī)器視覺的特點(diǎn),以及基于計(jì)算機(jī)與嵌入式系統(tǒng)的不同點(diǎn)。然后描述系統(tǒng)結(jié)構(gòu)及其執(zhí)行過程。最后構(gòu)建針對五子棋運(yùn)行的測試程序,并測試。通過程序測試,系統(tǒng)能夠準(zhǔn)確識別出人在棋盤上的落子情況,并在屏幕上顯示計(jì)算機(jī)應(yīng)對落子的坐標(biāo)圖像。在結(jié)合執(zhí)行模塊后可現(xiàn)場執(zhí)子與人對弈。
1 引言
人類感知外部世界的手段主要通過視覺、觸覺、聽覺和嗅覺等感覺器官,其中約83%的信息是由視覺獲取。機(jī)器視覺是利用光電成像系統(tǒng)采集被控目標(biāo)的圖像,經(jīng)計(jì)算機(jī)或?qū)S玫膱D像處理模塊進(jìn)行數(shù)字處理,進(jìn)行被控目標(biāo)尺寸、形狀、顏色等特征的識別,獲取周圍環(huán)境的信息,以指導(dǎo)機(jī)器人進(jìn)行運(yùn)動。機(jī)器視覺是一門綜合了計(jì)算機(jī)軟硬件、數(shù)字圖像處理、機(jī)械、光學(xué)、模擬與數(shù)字電路等技術(shù)的綜合學(xué)科。在機(jī)器人領(lǐng)域中,計(jì)算機(jī)視覺為機(jī)器人提供眼睛的功能。簡言之,機(jī)器視覺就是用機(jī)器代替人眼來做測量和判斷。機(jī)器視覺是機(jī)器人研究領(lǐng)域中的一個(gè)非常重要的方向,它在機(jī)器人研究和應(yīng)用中占有十分重要的地位,對機(jī)器人的智能化起著決定性作用。
2 思路分析
2.1 可行性
從視覺系統(tǒng)的運(yùn)行環(huán)境可分為基于計(jì)算機(jī)和嵌入式兩大類系統(tǒng)。 基于計(jì)算機(jī)系統(tǒng)利用了其開發(fā)性,高度的編程靈活性和良好的操作界面,同時(shí)系統(tǒng)總體成本較低,在WINDOWS環(huán)境下編程。用戶可用它快速開發(fā)復(fù)雜高級的應(yīng)用。
嵌入式系統(tǒng)中,系統(tǒng)軟件固化在圖像處理器中,通過類似于游戲鍵盤的簡單裝置對顯示在監(jiān)視器中的菜單進(jìn)行配置,或在計(jì)算機(jī)上開發(fā)軟件然后下載。系統(tǒng)在體現(xiàn)了可靠性高、集成化、小型化、高速化、低成本等特點(diǎn)的同時(shí)也反映出智能化較差、程序的應(yīng)變能力不強(qiáng)等劣勢。為了使機(jī)器人能夠適應(yīng)復(fù)雜、動態(tài)的環(huán)境,具有學(xué)習(xí)、歸納和分析的能力,我們常常要把神經(jīng)網(wǎng)絡(luò)、決策樹、遺傳算法等機(jī)器學(xué)習(xí)方法應(yīng)用到機(jī)器視覺中來,實(shí)現(xiàn)復(fù)雜條件下的圖像分割以及目標(biāo)識別,于是在很多情況下,系統(tǒng)需要處理繁冗的程序,和可靈活的調(diào)試相結(jié)合。因此,測試系統(tǒng)采用基于計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)對物體識別的機(jī)器視覺。
自上世紀(jì)八十年代以來,機(jī)器視覺的研究已經(jīng)歷了從實(shí)險(xiǎn)室走向?qū)嶋H應(yīng)用的發(fā)展階段,國內(nèi)外學(xué)者進(jìn)行了相當(dāng)規(guī)模的研究及其實(shí)踐,解決了很多技術(shù)和應(yīng)用層面的問題,為后續(xù)研究打開了方便之門。從簡單的二值圖象處理到高分辨率多灰度的圖象處理,從一般的二維信息處理到三維視覺機(jī)理以及模型和算法的研究都取得了很大的進(jìn)展。而計(jì)算機(jī)工業(yè)水平的飛速提高以及人工智能、并行處理和神經(jīng)元網(wǎng)絡(luò)等學(xué)科的相應(yīng)發(fā)展,更促進(jìn)了機(jī)器視覺系統(tǒng)的實(shí)用化和許多復(fù)雜視覺過程的研究成為可能。
2.2 設(shè)想思路
圖1為1997年5月,IBM的“深藍(lán)”在國際象棋比賽中擊敗國際特級大師卡斯帕羅夫的現(xiàn)場(其中右為“深藍(lán)”現(xiàn)場操作者)。但遺憾的是,“深藍(lán)”需要人來幫助看局勢、判斷棋子位置和移動棋子,它沒有視覺感知和行為能動能力,在超過1頓體重具有超級快速的運(yùn)算能力下,“深藍(lán)”的能力僅限于推理,并不能完成卡斯帕羅夫所作的一切工作,甚至連一個(gè)小孩的行為都實(shí)現(xiàn)不了。
要使計(jì)算機(jī)具有看局勢的能力,它就應(yīng)該擁有類似人眼功能的外設(shè)。幸運(yùn)的是,計(jì)算機(jī)攝像器材結(jié)合軟件已經(jīng)可以勝任這些工作。通過一系列的圖像減運(yùn)算,并對其結(jié)果進(jìn)行直方圖化就可以得到所落子的坐標(biāo),如圖3所示,其中,3a 為N時(shí)刻采集的圖像,3b N+1時(shí)刻采集的圖像,而兩圖像相減的圖像的水平及垂直直方圖分別為3c和3d。
于是,本系統(tǒng)的思路是基于PC機(jī)下的VC編程應(yīng)用,利用攝像頭采集人機(jī)對弈過程圖像,再通過圖像處理技術(shù)在已采集的圖像中識別出玩家所落子的位置坐標(biāo),計(jì)算機(jī)分析此落點(diǎn),在策略庫中找出應(yīng)對策略,進(jìn)而完成機(jī)器人的視覺系統(tǒng),真正實(shí)現(xiàn)人機(jī)實(shí)時(shí)對弈。結(jié)構(gòu)示意圖如圖2所示。
3 系統(tǒng)組成
根據(jù)以上思路,系統(tǒng)分成三個(gè)主要部分:1)采集部分,2)識別部分,3)策略部分。其中攝像頭負(fù)責(zé)采集圖像,而識別和下棋策略是由軟件編程實(shí)現(xiàn)的。
3.1 采集部分
攝像頭相當(dāng)于人的眼睛,對預(yù)處理的圖像采集進(jìn)而傳入計(jì)算機(jī)。兼顧傳入圖像質(zhì)量,價(jià)格和可移植性的考量,攝像頭選擇一般常用的普通攝像頭,即webcam。
現(xiàn)在市面上的攝像頭一般都可達(dá)到800×600以上的分辨率,而價(jià)格合適,大量使用USB接口,因而可移植性強(qiáng)而廣泛的使用。經(jīng)過測試,系統(tǒng)可以在176×144及其以上分辨率正確運(yùn)行。考慮到運(yùn)行速度和圖像質(zhì)量之間的矛盾,以及許多用戶的機(jī)器配置(老機(jī)器如P3以下,老式攝像頭),程序中加入輸入圖像可調(diào)整設(shè)置。
攝像頭鏡頭朝下,放置于棋盤上方,類似機(jī)器人足球比賽的攝像機(jī)架設(shè)狀態(tài)。但對放置位置的水平和垂直方向要求不需非常精確,偏差幾度亦可實(shí)現(xiàn)功能,不用專業(yè)工具,一般人員即可調(diào)試成功,有更好的實(shí)際應(yīng)用性和可移植性。
3.2 識別部分
傳入計(jì)算機(jī)的圖像轉(zhuǎn)化為象素矩陣,首先識別出棋盤范圍及網(wǎng)格坐標(biāo),再經(jīng)過若干次點(diǎn)運(yùn)算計(jì)算出人所走的棋子坐標(biāo)。
要對棋盤進(jìn)行識別,就要對待初始化棋盤圖像進(jìn)行邊沿計(jì)算,本文中采用的是拉普拉斯算子。然后二值化所計(jì)算后的象素矩陣,再分別在水平方向及垂直方向?qū)ζ渲狈綀D計(jì)算,得出棋盤范圍及網(wǎng)格坐標(biāo)。如圖4所示,其中4a為輸入棋盤圖像,4b為此圖像的水平直方圖,4c為同圖的垂直直方圖。
對落子位置的識別要計(jì)算一個(gè)檢測周期內(nèi)兩幀圖像的差值,如圖5(圖像N+1及N時(shí)刻的差值),再直方圖計(jì)算出落子坐標(biāo)。但要排除人身體部分及其它干擾。設(shè)B(x)為對圖像x的相對二值化過程 (這里是相對于均值二值化而言的),P(x , y)為點(diǎn)x , y的灰度值,有:
且, 其中, w1、w2分別為棋盤區(qū)域左右邊界,h1、h2分別為棋盤區(qū)域上下邊界,Smin~Smax為棋子大小范圍,Nmin~Nmax為噪聲、人身體陰影等干擾范圍,Δ為經(jīng)過計(jì)算的象素點(diǎn)的個(gè)數(shù),即在此范圍中的情況屬于已落子的情況。
3.3 策略部分
知道對手落子位置還不能達(dá)到系統(tǒng)要求,如圖5流程所示,還需要讓計(jì)算機(jī)判斷應(yīng)該怎樣對應(yīng),所以還要加入策略庫。
在策略庫設(shè)計(jì)中,計(jì)算機(jī)必須要知道有那些獲勝的組合,因此它必須計(jì)算獲勝組合的總數(shù),這樣便可以在游戲中建立一個(gè)數(shù)組來判斷勝負(fù)。策略組在下每步棋時(shí)都要計(jì)算有那些獲勝的方式,即有多少種獲勝的可能,計(jì)算出每下一步棋到棋盤上的獲勝幾率,進(jìn)而作出攻防應(yīng)對。
因?yàn)榭紤]到本系統(tǒng)程序只是測試圖像采集并處理的可行性,只是要求計(jì)算機(jī)作出基本的對策,并沒有加入交互式學(xué)習(xí)或多層次學(xué)習(xí)等復(fù)雜的人工智能決策。盡管如此,經(jīng)最后程序測試證明,計(jì)算機(jī)對手還是有相當(dāng)?shù)膽?zhàn)斗力。
4 程序測試
在程序的總體測試之前,那些未知的參數(shù)必須通過試驗(yàn)推測出來。首先測試Nmin~Nmax的范圍。在盡量減少外界擾動的情況下,隨機(jī)測試兩時(shí)間間隔,假設(shè)為1秒,即比較第N秒和第N+1秒的,結(jié)果如表2。然后測試Smin~Smax的范圍。把一定數(shù)量的棋子放到棋盤上后取一時(shí)刻圖像(其中包括隨機(jī)擾動),與棋盤初始化圖像比較,減去Nmin~Nmax的均值,即去掉干擾量,再除以擺上的棋子數(shù)量,結(jié)果如表1。當(dāng)然,我們可以逐一對棋子進(jìn)行測量,但這樣需要113次試驗(yàn)。
得到的S或N的參數(shù)只是針對測試時(shí)的圖像分辨率320×240的絕對參數(shù),但實(shí)際運(yùn)用在多個(gè)分辨率模式下就要對其相對化。設(shè)X’為所要的在分辨率R下的參數(shù)值,而X為在320×240下的數(shù)值,則有X’/X=R/320×240。
經(jīng)過測試,程序可對多種材質(zhì)棋盤及棋子進(jìn)行正確識別并作出對應(yīng)的策略,滿足實(shí)際的應(yīng)用需要,如圖6程序截圖所示(圖上框架為顯示窗,下為采集窗口,此次測試使用手工繪制紙質(zhì)棋盤及紙質(zhì)棋子,人執(zhí)子在紙上下棋,計(jì)算機(jī)作出對應(yīng)并顯示)。
5 結(jié)束語
程序試驗(yàn)證明,測試程序能實(shí)現(xiàn)設(shè)想的功能,不僅可以正確的識別出棋子的位置,而且具有一定的棋力。加入更復(fù)雜的策略算法和機(jī)械手執(zhí)行模塊之后,可使系統(tǒng)具有更加重大的科研和實(shí)用的價(jià)值。
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>以簡驅(qū)繁,精準(zhǔn)智控 | 維智S1系列新一代...
2024-11-01
2024-10-31
2024-10-31
2024-10-31
2024-10-31
2024-10-29
推薦專題
更多>