凌遠(yuǎn)坤 仲志丹 李棟 金容鑫 姚晨輝 王繼茂
摘?要:本文對基于機器視覺的圖像識別及處理提供了通用思路?;贠penCV庫所提供的算法進(jìn)行識別乒乓球。在機器視覺和圖像處理領(lǐng)域,處理方法的選擇和其處理順序?qū)⒅苯佑绊憴C器視覺的準(zhǔn)確性和穩(wěn)定性。對一些常用的機器視覺識別處理方法進(jìn)行了簡單介紹。
關(guān)鍵詞:OpenCV;顏色過濾;邊緣檢測;霍夫變換;HSV
1 緒論
機器視覺是人工智能正在快速發(fā)展的一個分支。通俗地講,機器視覺就是用機器代替人眼來做測量和判斷。機器視覺系統(tǒng)是通過攝像頭等圖像采集裝置將被攝取目標(biāo)轉(zhuǎn)換成圖像信號,通過對圖像的像素特征進(jìn)行處理運算得到目標(biāo)的特征進(jìn)而根據(jù)結(jié)果來進(jìn)行下一步操作。生產(chǎn)生活中人們對智能化產(chǎn)品的需求日益劇增,機器視覺作為人工智能不可或缺的一個分支,具有非常重要的研究價值。
2 圖片模糊
模糊操作時圖像處理中最簡單和常用的操作之一,使用該操作的原因之一是給圖像減低噪聲。圖片模糊包括均值濾波、中值濾波、高斯濾波、雙邊濾波等。本次采用的濾波器是雙邊濾波。對原圖(a)進(jìn)行雙邊濾波處理效果如圖(b)。雙邊濾波器比高斯濾波器多了一個高斯方差Σ-d,它是基于空間分布的高斯濾波函數(shù),所以在邊緣附近,離的較遠(yuǎn)的像素不會太多影響到邊緣上的像素,這樣就能對邊緣附近的像素值予以保存,但是由于保存過多的高頻信息,對于彩色圖像里的高頻噪聲,雙邊濾波器不能夠干凈的濾掉,只能夠?qū)τ诘皖l信息進(jìn)行較好的濾除。
3 不同顏色空間下的顏色過濾
RGB系統(tǒng)是從電子顯示器角度出發(fā),通過發(fā)射三種不同強度的電子束使屏幕殘剩色彩,而HSV則是從人類對色彩的定義出發(fā),從色調(diào),飽和度和亮度三方面區(qū)分顏色。RGB系統(tǒng)能很好地吻合人眼強烈感知紅,綠,藍(lán)三原色的顏色,并且對硬件實施也很理想,但它卻無法很好地適應(yīng)人類實際上解釋的顏色,因為我們并不認(rèn)為彩色圖像是由三原色圖像混合形成的,一般過濾顏色不只是過濾單一的客觀顏色,而是一類顏色,RGB中想要過濾這一類顏色需要確定三原色的取值,而HSV模型是一種直觀的顏色模型,過濾時只需要設(shè)定H的閾值即可,因此這里我們選用HSV顏色模型進(jìn)行顏色過濾。對經(jīng)過模糊之后的圖(b)處理效果如圖(c)。
4 邊緣檢測
我們?nèi)搜弁ㄟ^邊緣來判斷不同物體之間的界線。邊緣檢測作為機器視覺中重要的一部分具有很多的應(yīng)用。機器視覺中大量使用一階微分和二階微分來實現(xiàn)邊緣檢測。通過推斷,我們得到以下結(jié)論:(1)一階微分會產(chǎn)生較二階微分“粗”的邊緣;(2)二階微分對細(xì)節(jié),如細(xì)線、孤立點有較強的響應(yīng)幅度;(3)二階微分在灰度斜坡和灰度臺階過渡處會產(chǎn)生雙邊緣響應(yīng);(4)二階微分的符號可以用于確定邊緣的過渡是從亮到暗還是從暗到亮。[1]這里我們采用雙閾值操作的Canny邊緣檢測,對顏色過濾之后的圖(c)處理效果如圖(d)。
5 霍夫(Hough)變換
霍夫變換是基于坐標(biāo)變換產(chǎn)生的一種檢測簡單幾何形狀的方法,在二值圖像中使用此方法可以較為快速檢測到簡單的幾何形狀,如線、圓等。
5.1 霍夫線變換
霍夫線變換的基本推理為假定已知一幅圖像中的n個點,且這些點中有若干點位于不同直線上。首先取其中一條直線,利用斜截式方程將直線參數(shù)化,設(shè)定斜率為k,截距為b,直線方程可以表達(dá)為y=kx+b。而后利用坐標(biāo)變換,將直線表達(dá)式轉(zhuǎn)換為以k為縱坐標(biāo),b為橫坐標(biāo)的表達(dá)式,即b=-xk+y,轉(zhuǎn)換后的坐標(biāo)系稱為霍夫空間。通過這樣的轉(zhuǎn)換,不僅可以將原先直角坐標(biāo)系的直線就轉(zhuǎn)變成為了霍夫空間中所對應(yīng)的點,而且可以將原先坐標(biāo)系中的點轉(zhuǎn)化為霍夫空間中的直線。直角坐標(biāo)轉(zhuǎn)換存在缺陷。因為斜截式方程的緣故,對于斜率無窮大或者無窮小的直線,這種轉(zhuǎn)化就會變得頗為難以計算。因此,可以采用另一種變換方式即極坐標(biāo)變換,通過這種方式就可以將直角坐標(biāo)系中的點以霍夫空間中的線表達(dá)出來,最后將(ρ,θ)坐標(biāo)系進(jìn)行細(xì)化,細(xì)化的程度決定了共線精度,對各個線的交點對應(yīng)的坐標(biāo)取整后進(jìn)行累加,找到局部數(shù)值最大的點就是直角坐標(biāo)系中所求的直線。
5.2 霍夫圓變換
霍夫圓變換的推理與霍夫線變換的方法類似,不同之處在于圓變換所需三個參數(shù),分別為圓心位置x,y和圓的半徑r,累加過程就要從累加平面轉(zhuǎn)化為累加立體的體積。但這就意味著圓變換必線變換需要更大的內(nèi)存和計算量,而在OpenCV中通過采用霍夫梯度法防止此類問題的出現(xiàn)。這里我們對邊緣處理之后的圖(d)進(jìn)行霍夫圓變換,并且用紅色圓圈在原圖中標(biāo)出圓形所在位置,處理效果如圖(e)。
6 結(jié)語
測試結(jié)果如上圖所示,這表明,本文設(shè)計的基于OpenCV的自動識別乒乓球系統(tǒng),能夠檢測和識別到乒乓球及無線傳輸現(xiàn)場圖像,對開發(fā)撿球機器人具有較好的價值。設(shè)計時采用了OpenCV庫函數(shù),減少了開發(fā)周期,起到了事倍功半的效果,而且對從事圖像的和機器人視覺研究很有幫助。
參考文獻(xiàn):
[1]拉斐爾·C·岡薩雷斯,查理德·E·伍茲.數(shù)字圖像處理(第三版)[M].電子工業(yè)出版社,2017:447.