新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 光柵式結(jié)構(gòu)光傳感器的編碼方法

光柵式結(jié)構(gòu)光傳感器的編碼方法

作者: 時(shí)間:2011-09-27 來源:網(wǎng)絡(luò) 收藏

隨著生產(chǎn)自動(dòng)化水平的提高,人們對(duì)生產(chǎn)環(huán)節(jié)的的要求也越來越高,視覺檢測系統(tǒng)能滿足生產(chǎn)線上檢測的實(shí)時(shí)性要求,并且具有一定的柔性,精度適中,因此得到了廣泛地應(yīng)用。一般來說,視覺檢測系統(tǒng)包括結(jié)構(gòu)、多線結(jié)構(gòu)、雙目視覺傳感器。本文主要討論多線結(jié)構(gòu),即光傳感器。

1光傳感器原理

光傳感器是一種基于主動(dòng)三角法的視覺傳感器。由光投射器在空間投射出一系列光平面,每個(gè)光平面通過攝像機(jī)建立與象平面間的透視對(duì)應(yīng),幾何結(jié)構(gòu)如圖1所示。

圖1光柵式結(jié)構(gòu)光傳感器結(jié)構(gòu)

在第K個(gè)光平面上以O(shè)(K)L為原點(diǎn)建立直角坐標(biāo)系O(K)Lx(K)Ly(K)L,其它為攝像機(jī)模型結(jié)構(gòu)。則有點(diǎn)的象面坐標(biāo)與其在光平面坐標(biāo)的關(guān)系[1]如下:

可見,若要求得點(diǎn)的光平面坐標(biāo)必須知道點(diǎn)屬于哪個(gè)光平面。故光柵式結(jié)構(gòu)光傳感器存在著光條的識(shí)別問題,通過光條可以解決這個(gè)問題。

2結(jié)構(gòu)光

2.1結(jié)構(gòu)光問題概述

由于線結(jié)構(gòu)光傳感器獲得的信息較少(只能獲得一個(gè)光平面內(nèi)的位置信息),人們相應(yīng)地開發(fā)了光柵式結(jié)構(gòu)光傳感器和網(wǎng)格式結(jié)構(gòu)光傳感器。但點(diǎn)的匹配問題也相應(yīng)地出現(xiàn)了。

為了解決點(diǎn)的對(duì)應(yīng)問題,人們將投射的光進(jìn)行編碼。Altschulter[2]和Posdamer[3]采用了激光光閘的編碼技術(shù)。128×128激光網(wǎng)格通過一個(gè)可編程的空間光調(diào)制器投射到物體表面,在象面上產(chǎn)生點(diǎn)陣模型。可編程的空間光調(diào)制器[4]通過編程可以使某些激光束通過,而某些激光束被阻擋。通過對(duì)應(yīng)于不同激光束的一系列圖像,可以解決點(diǎn)的對(duì)應(yīng)問題。文獻(xiàn)[5]提出了一種使用灰度碼的時(shí)間序列編碼方案。對(duì)于通常的三維靜態(tài)物體,這兩種方法能夠很好地完成點(diǎn)的對(duì)應(yīng),但對(duì)于動(dòng)態(tài)實(shí)時(shí)的問題這些方法顯然不能使用。

對(duì)于動(dòng)態(tài)實(shí)時(shí)的問題,我們希望有一種通過單一圖像即可解決點(diǎn)的匹配的方案。Boyer和Kav[6]使用一種彩色的光條,通過相鄰光條的顏色進(jìn)行編碼。Vysteke和Oosterlinck[6]將一種方的模板投射到物體上,模板是通過二值化編碼的。Minarv[6]等人提出了一種基于三級(jí)灰度等級(jí)的網(wǎng)格式結(jié)構(gòu)光的編碼方法。

從上面的討論可以看出,網(wǎng)格式結(jié)構(gòu)光可以利用二維信息進(jìn)行編碼,可利用的信息多,所以編碼問題比較容易解決。但網(wǎng)格式結(jié)構(gòu)光傳感器不能進(jìn)行特征點(diǎn)的精確測量。為了完成特征點(diǎn)的精確測量,我們采用光柵式結(jié)構(gòu)光傳感器。因此,需要研究光柵式結(jié)構(gòu)光傳感器的編碼方案。

2.2寬度編碼的可行性

對(duì)于光柵式結(jié)構(gòu)光傳感器,我們利用光條的寬度信息進(jìn)行編碼。要想利用光條的寬度進(jìn)行編碼。必須確保等寬的光條在象面上投影的寬度比等于1或接近1。根據(jù)透視變換原理,由分析可知,對(duì)于f=25mm的透鏡,在工作距離為400mm時(shí)相鄰兩光條寬度投影變化不大,故根據(jù)光條投影的寬度進(jìn)行編碼是可行的。圖2為將寬窄光條的寬度比作成2:1,投影在一個(gè)平板上,攝像機(jī)接收到的圖像,在象面上求得寬光條寬約20~25個(gè)象素,窄光條寬約11~15個(gè)象素??梢妼捳鈼l可以很容易地區(qū)分開。

圖2二進(jìn)制編碼的光條圖象

3二進(jìn)制編碼方法

3.1n位二進(jìn)制編碼方法

圖3為結(jié)構(gòu)光投射器原理,投射器模板的圖樣模式基本上決定了光平面和物體表面相交后的光條圖樣。光柵式結(jié)構(gòu)光傳感器的編碼就是通過對(duì)模板上的圖樣模式編碼來實(shí)現(xiàn)的。

圖3光柵式結(jié)構(gòu)光投射原理

在模板上刻一系列寬窄不同的兩種線條組成的圖案,該模板經(jīng)投射形成的光平面和物體相交后形成的圖樣是一系列寬窄不同的光條。在模板上按二進(jìn)制方式對(duì)圖樣進(jìn)行編碼。用“0”表示窄光條,用“1”表示寬光條。將所有的光條按順序分組,每組對(duì)應(yīng)一個(gè)序號(hào),用一個(gè)二進(jìn)制碼表示每組的序號(hào),該二進(jìn)制碼和該組的圖案相對(duì)應(yīng)。例如用三位二進(jìn)制碼表示每組的序號(hào),序號(hào)為4的那一組用二進(jìn)制碼“100”表示,相應(yīng)的線條圖案為“寬”、“窄”、“窄”。假設(shè)用n位二進(jìn)制碼表示每組對(duì)應(yīng)的序號(hào),則線條模式共有2n個(gè)分組,于是最多可以對(duì)n.2n個(gè)光條進(jìn)行編碼。圖4給出了一個(gè)用三位二進(jìn)制編碼的模板圖樣。

圖4三位二進(jìn)制編碼圖樣

對(duì)經(jīng)過二進(jìn)制編碼的光平面識(shí)別是簡便的。首先,對(duì)攝像機(jī)接受到的光條進(jìn)行處理,根據(jù)光條的寬窄將光條譯成由二進(jìn)制碼組成的序列,然后根據(jù)編碼規(guī)則將得到的序列分解成組,最后識(shí)別出每一個(gè)具體的光平面。需要指出的是,由于被測物體表面尺寸和攝像機(jī)視場的限制,攝象機(jī)獲得的光條數(shù)一般來說總是小于投射器投射的光平面數(shù)。

例如,采用二位二進(jìn)制碼對(duì)攝像機(jī)接受的光條處理后得到“001101”,按二位一組對(duì)該序列進(jìn)行分組,只可能有兩種結(jié)果:“00”“11”“01”和“0”“01”“10”“1”。前者對(duì)應(yīng)的分組序號(hào)為0、1、3這顯然是與編碼規(guī)則相矛盾的。后者對(duì)應(yīng)的分組序號(hào)為未知、1、2、未知,這是符合編碼規(guī)則的。據(jù)此可得到前面的未知光條為0分組第二根光條,后面的未知光條為3分組第一根光條??梢?,視場中的每根光條都可以有效地識(shí)別出來。

對(duì)于表面法向基本不變或變化很小的物體,由文獻(xiàn)[1]可知,將寬窄光條的寬度比做成2:1,即可以非常有效地將寬窄光條區(qū)分開來。記threshold1=1.5,threshold2=0.6。則若Δ1/Δ2>threshold1=1.5,可判斷1為寬光條,2為窄光條;若Δ1/Δ2Δ1/Δ2的值,直到出現(xiàn)前兩種情況,我們就可以判斷出光條到底為寬或窄。(Δ1/Δ2分別為光條1、2在象面投影的寬度)。

3.2偽隨機(jī)序列編碼方法

前面講的n位二進(jìn)制編碼方法可以對(duì)n.n2個(gè)光條進(jìn)行編碼。當(dāng)n增大時(shí),能夠編碼的光條數(shù)增加很快。但是,我們衡量一種編碼方法優(yōu)劣的主要標(biāo)準(zhǔn)是解碼所需信息的多少,解碼所需的信息量越少越好。

在n位二進(jìn)制編碼中,為確保能夠正確譯碼,至少需要接受到3n-1個(gè)連續(xù)的光條。對(duì)于n=4的情況,能對(duì)64個(gè)光條進(jìn)行編碼。但要正確譯碼,則至少需要接收到連續(xù)11個(gè)光條。現(xiàn)在我們要考慮的問題是能否盡量減少譯碼所需的光條數(shù)。研究發(fā)現(xiàn):M序列[7]能夠使譯碼所需的信息減少。

下面先來講述M序列的構(gòu)成。設(shè)一無限長二元序列各元素之間存在下列關(guān)系:

Xi=a1Xi-1a2Xi-2…apXi-p(2)

其中:i=p+1,p+2,…,系數(shù)a1,a2,……,ap-1取值0或1,系數(shù)ap總和為1,表示模2的和。

只要適當(dāng)?shù)剡x擇系數(shù)a1,a2,……,ap,就可以使序列以(2p-1)bit的最長周期循環(huán)。這種最長周期的二值序列就稱為M序列。

取X4=1,X3=0,X2=1,X1=0,

令Xi=Xi-3Xi-4則可得X15,X14,……X1如下:111100010011010。我們發(fā)現(xiàn)對(duì)于任意連續(xù)的4個(gè)x,其二進(jìn)制值均不相同,故只要知道了任意連續(xù)的4個(gè)x,即可知道這組x在序列中所處的位置,從而進(jìn)行有效的譯碼。

對(duì)M序列譯碼所需的信息比n位二進(jìn)制碼少,當(dāng)p=6時(shí),可以對(duì)63根光條進(jìn)行編碼,這時(shí)在視場中只要看到連續(xù)的6根光條即可進(jìn)行譯碼;而對(duì)于n位二進(jìn)制編碼如果對(duì)64根光條進(jìn)行了編碼,譯碼則需要11根光條。

用二維數(shù)組a[15][4]存放每相鄰4根光條的編號(hào)。例如,第12、11、10、9根光條其二進(jìn)制表示為1000,則a[8]={12,11,10,9};第8、7、6、5根光條,其二進(jìn)制表示為1001,則a[9]={8,7,6,5}。假設(shè)我們得到連續(xù)的4根光條二進(jìn)制表示為1001,則通過查數(shù)組a的第9行,得到這4根光條的序號(hào)分別是8、7、6、5譯碼完成。

可見,通過光柵式結(jié)構(gòu)光傳感器的編碼在一定程度上解決了光條的識(shí)別問題,提高了傳感器的使用范圍。若物體的表面有些地方法向變化非常劇烈,按照上面的方法需將寬窄光條的比值做得很大,而為了保證光條中心的計(jì)算精度窄光條又不能做得太窄,若單單通過提高寬窄光條的比值,必然導(dǎo)致視場中的光條急劇減少。由于法向變化非常劇烈的地方是很少的,通過糾錯(cuò)編碼技術(shù)就可以將光條的寬度局部反轉(zhuǎn)的地方糾正過來,使問題得到解決。

傳感器相關(guān)文章:傳感器工作原理


全息投影相關(guān)文章:全息投影原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉