0 引言
雙目立體視覺測量是基于視差原理,由多幅圖像獲取物體三維幾何信息的方法。在計算機視覺系統(tǒng)中,雙目立體視覺測量一般由雙攝像機從不同的角度同時獲取周圍景物的兩幅圖像,或有單攝像機在不同時刻從不同角度獲取周圍景物的兩幅數(shù)字圖像,并基于視差原理即可恢復(fù)出物體的三維幾何模型,重建周圍景物的三維形狀與位置。
在雙目立體視覺測量的許多應(yīng)用中,可以在待測物體表面分布一些具有明顯特征且易于識別的元素作為標(biāo)記點,如圓、十字刻畫線等。若給標(biāo)記點加載唯一的身份信息,即對標(biāo)記點進(jìn)行編碼,對圖像中標(biāo)記點進(jìn)行唯一身份識別后,可以方便,可靠地實現(xiàn)多幅圖像間標(biāo)記點的對應(yīng)匹配。
基于上述原理,在實驗室自主研發(fā)并聯(lián)機器人雙目主動立體視覺監(jiān)測平臺的過程中,需要事先知道兩個攝像機的初始位置,由于光柵尺的造價昂貴及圓形光柵尺的生產(chǎn)加工難度大,我們設(shè)計了含有編碼標(biāo)志點的特殊靶標(biāo)。靶標(biāo)的關(guān)鍵部分為編碼標(biāo)志點,本文主要對實驗中所用編碼標(biāo)志點的設(shè)計與識別進(jìn)行研究。
1 靶標(biāo)的設(shè)計
本文設(shè)計了如圖1所示的靶標(biāo)(其中,中心處的編碼標(biāo)志點是不同的),利用其已知信息,完成對攝像機位置的標(biāo)定,實現(xiàn)了與圓形光柵尺相同的作用。在圓形導(dǎo)軌內(nèi)側(cè)均勻設(shè)置了6組(12塊)含有一個編碼標(biāo)志點和18個非編碼點的靶標(biāo)(如圖2所示),其中編碼標(biāo)志點位于靶標(biāo)的中心,其余非編碼點均為正方形,按一定尺寸關(guān)系均勻分布在編碼標(biāo)志點的兩側(cè)。
根據(jù)實際需要,本文采用了馬揚飚等設(shè)計的編碼標(biāo)志點。編碼標(biāo)志點由編碼點和標(biāo)志點組成,其中標(biāo)志點提供位置信息,編碼信息被編譯儲存在編碼點的排布中。編碼標(biāo)志點應(yīng)該滿足以下要求:
·旋轉(zhuǎn)與改變比例的不變性;
·對可能存在誤差修正的目標(biāo)數(shù)量的強魯棒陛識別幾率;
·制定一個能精確測量與物體上一個控制點對應(yīng)的標(biāo)志點的中心的規(guī)則;
·在沒有統(tǒng)—對比度的圖像中,—個標(biāo)志點的強檢測幾率。
為了滿足這些要求,本文采用的8位編碼標(biāo)志點如圖3所示。其中標(biāo)志點和編碼點全部為圓形,標(biāo)志點位于中央,面積較大,編碼點規(guī)則排布在同一個圓周上,面積較小,整個編碼標(biāo)志點的位置信息由中央的標(biāo)志點圓心位置提供,各個編碼位上編碼點的有無決定了不同的編碼信息。編碼點由8個圓構(gòu)成,因此可能得到個編碼,然而由于一個編碼應(yīng)滿足旋轉(zhuǎn)和改變比例不變的需要,只有34個(編碼點個數(shù)為1的丟棄)可以作為編碼。
2 靶標(biāo)的識別
2.1 編碼標(biāo)志點的識別
2.1.1 圖像截取
使用雙目主動立體視覺監(jiān)測平臺上的任一攝像機拍攝一幅靶標(biāo)圖像,其中可以含有幾個靶標(biāo),使用圖像截取函數(shù),從圖像中截取出只包含編碼標(biāo)志點的圖像。
2.1.2 圖像二值化
為了簡化目標(biāo)識別過程,需要將截取出的彩色圖像轉(zhuǎn)化成灰度圖像,然后再將灰度圖像轉(zhuǎn)化為二值圖像,通過與閾值比較,圖像二值化按下式執(zhí)行:
其中:f(x,y)初始圖像,b(x,y)為二值圖像,t(x,y)為像素的閾值。由于圖像中對比度比較統(tǒng)一,應(yīng)用一個自適應(yīng)的閾值t(x,y)=t0,可以比較精確地將對象閾值初始化。
2.1.3 圓點質(zhì)心查詢
為了提取每個圓點的區(qū)域,使用"標(biāo)簽算法",執(zhí)行標(biāo)簽算法后,每個區(qū)域得到一個唯一的數(shù)字。對每一個連通區(qū)域使用"測量圖像中的對象屬性"方法,得到各個區(qū)域的面積和質(zhì)心。對中央標(biāo)志點圓來說,其質(zhì)心為(x0,y0),對于外圍的編碼點圓來說,其質(zhì)心為(xc,yc)。按照參數(shù)讀入的順序?qū)λ袇^(qū)域進(jìn)行編號,通過比較,找到面積最大的圓,即中心標(biāo)志點,記住其編號。
2.1.4 質(zhì)心角的求取
以任意一點為起始點,按照逆時針的順序?qū)幋a點進(jìn)行排序,然后利用相鄰兩個編碼點的質(zhì)心信息與中心標(biāo)志點的質(zhì)心信息,求出各個相鄰編碼點間的質(zhì)心角θn(其中0°≤θn≤180°,2≤n≤8),并按逆時針順序存儲。
2.1.5 目標(biāo)編碼讀取
由于起始編碼點一定存在,故將其環(huán)形碼相應(yīng)位置"1"。對于8位編碼標(biāo)志點,當(dāng)8個編碼點都存在時,各個相鄰編碼點間的質(zhì)心角均為45°。利用這個信息,按照存儲順序,將求得的質(zhì)心角θn分別與45°的整數(shù)倍進(jìn)行比較,如果相等,表示在該角度位置存在一個編碼點。實際操作中,編碼點質(zhì)心角θn值是根據(jù)圖像處理中求得的編碼點質(zhì)心與中心標(biāo)志點質(zhì)心值計算所得,由于誤差的存在,質(zhì)心角θn值的實際值往往與理論取值(m×45°,1≤m≤4)有出入,所以在判斷某個角度位置是否有編碼點存在時,可以先設(shè)定一個誤差允許范圍δ(0≤δ<22.5°),如果θn的實際值介于理論值±δ的范圍內(nèi),就說明該角度位置上存在編碼點,將環(huán)形碼相應(yīng)位置"1"。通過循環(huán),對編碼點質(zhì)心角θn的實際值逐一判斷,看其是否在上述的取值區(qū)間內(nèi),從而決定將環(huán)形碼相應(yīng)位置"0"或置"1".
如前文所示,同一個編碼標(biāo)志點對應(yīng)的環(huán)形碼不唯一,將該環(huán)形碼在任意位置處截斷后,再將后一子序列置于前一子序列之前(此操作稱為"循環(huán)截斷"),所得到的序列仍然表示該標(biāo)志點,這里稱這些序列為"同胚"序列。因此,預(yù)先將每個標(biāo)志點的編號和給定的逆時針順序下它的最小循環(huán)碼存儲起來。識別時只要得到一個最小環(huán)形碼的"同胚"特征序列,將該序列反復(fù)做循環(huán)截斷,直到它等于最小環(huán)形碼為止,根據(jù)后者即可取出對應(yīng)的編號。
2.2 非編碼標(biāo)志點的識別
由于編碼標(biāo)志點的唯一性,通過對編碼標(biāo)志點的識別可以確定出靶標(biāo)的編號,從而得到靶標(biāo)上各靶標(biāo)點的空間位置。靶標(biāo)上的其余非編碼點均為正方形,且和編碼標(biāo)志點有確定的位置關(guān)系,都可以通過角點檢測等步驟實現(xiàn)對其圖像的識別,從而完成對整個靶標(biāo)的識別。
3 數(shù)值實驗
在本文的實驗中,只用到其中的12個編碼標(biāo)志點,我們按其在圓形導(dǎo)軌內(nèi)側(cè)順時針排列的順序進(jìn)行重新編號。為驗證所提算法的效果,對拍攝的多幅圖像進(jìn)行了數(shù)值實驗,其中一幅如圖4(a)所示(由于頁面原因,對圖像作了裁剪和縮小,但保留了所有有效信息)。圖4(b)為從這幅圖像中按順時針順序截取出的四個編碼標(biāo)志點的圖像。表1給出了各幅編碼標(biāo)志點圖像中每個圓的質(zhì)心坐標(biāo)值。表2給出了實驗中得到的各幅編碼標(biāo)志點圖像中相關(guān)質(zhì)心角的值、環(huán)形碼值及編碼標(biāo)志點的編號。實驗表明,該算法對任意一幅圖像中編碼標(biāo)志點的識別率接近100%。
4 結(jié)論
在雙目立體視覺中,靶標(biāo)識別問題對于目標(biāo)圖像的重構(gòu)起著關(guān)鍵性的作用。本文提出了基于質(zhì)心角的方法,對各幅編碼標(biāo)志點圖像進(jìn)行準(zhǔn)確的識別。通過大量的數(shù)值試驗,驗證了此算法的有效性,實驗結(jié)果表明,本文提出的基于質(zhì)心角的標(biāo)志點識別算法,對于采用本文所用的特定平臺等背景不太復(fù)雜的情況具有很高的識別性和實用性。通過編碼標(biāo)志點的準(zhǔn)確識別及相對確定的位置信息,即可通過對角點的檢測,實現(xiàn)對整個靶標(biāo)的準(zhǔn)確識別.