邢生平,蔡 寧,林 斌
浙江大學 現(xiàn)代光學儀器國家重點實驗室 國家光學儀器工程技術研究中心,浙江 杭州 310027
數(shù)字條紋投影三維測量技術通過采集被物體高度調(diào)制后的變形條紋圖像解析三維高度信息[1-3],具有低成本、高精度、非接觸等優(yōu)點[3-6],在虛擬現(xiàn)實、零件加工、三維重建等領域應用廣泛。但是商用投影儀的非線性效應在投射條紋圖案時對條紋的正弦性產(chǎn)生了干擾,嚴重影響實驗結(jié)果。
通過研究人員的不斷深入研究發(fā)現(xiàn),離焦二元編碼技術能消除投影儀的非線性誤差,避免各種方式的誤差補償操作[7-9]。因為離焦二元編碼對象只有0 和1,位深只有一位,不需要進行非線性校正,因此非線性問題能夠得到解決,而且二值離焦技術投射的二值圖像能提高投影儀的投影速度,可以實現(xiàn)高速動態(tài)測量,但是測量精度仍有待提高。
為了解決這個問題,研究人員提出了二值方波離焦技術[10]、最優(yōu)脈沖寬度調(diào)制技術[11]等,條紋周期較短時,這些技術有效解決了測量精度的問題。但是這些一維調(diào)制技術對圖像二維信息的利用率不夠,條紋周期增加時,仍然存在測量誤差問題。
抖動技術有效利用圖案的二維信息,在離焦投影后可以產(chǎn)生高質(zhì)量的二值條紋,極大改進了離焦結(jié)構光三維測量在處理長周期條紋時的實驗效果,但是短周期測量時仍存在測量誤差[12-13]。抖動優(yōu)化技術最大程度地減小二值條紋與理想正弦條紋之間的灰度差值,提高不同周期時條紋的正弦性,得到高質(zhì)量的離焦二值條紋,有效改進不同周期的條紋的實驗效果。
本文提出一種基于改進二進制蟻群算法的優(yōu)化方法,提高不同離焦程度時二值條紋的正弦性,減小相位誤差。通過對二值塊的優(yōu)化替代二值圖案的優(yōu)化,提高了優(yōu)化過程。仿真和實驗結(jié)果表明:在不同離焦程度下,本文所提方法能有效提高測量精度。
相移法是目前應用較為廣泛的光學測量方法之一,具有運算簡單、精度高等特點,相移步數(shù)越多,測量精度越高。三步相移法因只需要最少的投影圖像而廣泛應用于動態(tài)三維測量。操作中,將正弦條紋分3 次投影到物體表面,每次投影光柵的相位差為2π/3,灰度值可以表示為
式中:B表示背景光強,A表示調(diào)制參數(shù),φ(x,y)表示待求相位值,求解后得到:
分析上式中的反正切函數(shù),其值域在(-π,π]主值區(qū)間內(nèi),通過相位解包裹操作后得到連續(xù)的絕對相位,實現(xiàn)精確的三維重建[5,14]。
抖動技術在圖像處理、打印等領域應用廣泛,其中較為典型的是誤差擴散抖動技術[15],有Floyd-Steinberg 抖動技術、Sierra-lite 抖動技術等。相比隨機抖動和有序抖動等方法,誤差擴散抖動方法在自身灰度值基礎上,還考慮了鄰近像素擴散的量化誤差,模擬正弦條紋的效果更好,成像質(zhì)量更佳。誤差擴散抖動算法將當前像素的量化誤差擴散到相鄰像素上的過程表示為
式中:I′(i,j)表示量化誤差擴散后圖像的灰度值,I(i,j)表示原始圖像的灰度值,量化誤差e(i,j)通過誤差擴散核函數(shù)h(m,n)擴散到鄰近像素。最常用的Floyd-Steinberg 抖動函數(shù)的誤差擴散核為
式中:?均表示當前正在處理的像素,X表示已經(jīng)處理過的像素。
遺傳算法[16]是一種智能進化算法,發(fā)展至今已經(jīng)十分成熟,最先由Holland J H 觀察生物遺傳進化的自然現(xiàn)象提出,采用隨機搜索機制,能實現(xiàn)群體尋優(yōu),全域搜索能力較強,在路徑規(guī)劃、電路設計等諸多領域都有廣泛的應用。其核心思想是在自然進化過程中,將父本更優(yōu)良的基因遺傳給下一代,始終把優(yōu)良基因遺傳下去,伴隨著交叉和變異等隨機概率,最終進化出擁有最優(yōu)良基因的子代。
在應用遺傳算法尋找最優(yōu)時,通過選擇、交叉、變異等操作進行進化,用適應度來評判每一代進化是否為更優(yōu),最終收斂于最優(yōu)。遺傳算法最常用的編碼方式是二進制編碼方法,因此,本文中的遺傳算法采用二進制編碼方式,與二進制蟻群算法結(jié)合也更容易。
受到蟻群覓食過程中尋找最短路徑的理論啟發(fā),Dorigo 等[17]首先提出蟻群算法,具體來說,在同樣的時間內(nèi),螞蟻按照信息素的大小來選擇一條路徑,越短的路徑上留下的信息素越多,選擇這條路徑的螞蟻也會越多,信息素也將快速增加,選擇這條路徑的概率就會變大,是一種正反饋機制。這種算法局部搜索能力強大,所有可供選擇的路徑構成了解空間,最后信息素最多的這條路徑就是最優(yōu)解。
信息素隨著時間不斷消逝,信息素的消逝快慢取決于殘留因子ρ[18-19]。ρ較大時,信息素的積累速度會加快,在正反饋的作用下,收斂速度也會加快。相反,ρ較小時,信息素的積累速度變慢,正反饋作用也會降低,搜索速度也會變慢,但是尋優(yōu)能力會相應提升。因此殘留因子ρ直接影響著收斂速度和尋優(yōu)能力。
為了解決離散空間問題,發(fā)展出了二進制蟻群算法[20-21]。二進制蟻群算法也遵循信息素正反饋這個關鍵機制,依據(jù)信息素大小來選擇前進方向,只是用二進制的字符串表示單個螞蟻在某個節(jié)點(i,j)對下一個節(jié)點的選擇狀態(tài),選擇對象僅為0 和1,二進制蟻群算法中個體的行進機制如圖1。
圖1 二進制蟻群算法的路徑選擇Fig.1 Path selection of binary ant colony algorithm
信息素決定著螞蟻下一條路徑的移動方向,因此如何選擇下一條路徑取決于移動概率Pij,二進制蟻群算法根據(jù)狀態(tài)選擇對象對基本蟻群算法的轉(zhuǎn)移概率公式調(diào)整為
式中:Pij(0)和Pij(1)是在節(jié)點(i,j)上選擇路徑0 或1的轉(zhuǎn)移概率,τij(0)和τij(1)是在節(jié)點(i,j)上路徑0 或1殘留的信息素,ηij(0)和ηij(1)是節(jié)點(i,j)上選擇路徑0或1 的可見度,α是信息啟發(fā)因子,β是期望啟發(fā)因子。
為了提高收斂效率,嚴格遵循正反饋機制,完成一次路徑的搜索,就要對信息素進行一次更新,信息素更新公式為
式中:Δτ=1/fbest,fbest是一次迭代后的最優(yōu)解。
二值離焦技術的目的是優(yōu)化離焦二值條紋的正弦性,盡可能減小與理想正弦條紋之間的灰度值誤差[21]。優(yōu)化過程用數(shù)學語言表述為
式中:|| ?|| 是Frobenius 范數(shù),E(x,y)表示像素灰度值誤差,I(x,y)表示理想正弦圖像,f(x,y)表示待優(yōu)化的二值圖像,G(x,y)表示高斯濾波內(nèi)核,?表示卷積操作。
理想的正弦條紋圖案具有對稱性和周期性,因此,待優(yōu)化的二值圖像也應該具有相同的對稱性和周期性,利用周期性和對稱性,選取尺寸更小的二值塊進行優(yōu)化,最后拼成最優(yōu)或近似最優(yōu)二值圖像。
遺傳算法具有較強的隨機搜索功能,能實現(xiàn)全域搜索,但是種群較多時搜索效率較慢。二進制蟻群算法運行效率高,局部搜索能力強,但是容易過早收斂。為了提高搜索精度和速度,本文提出一種將遺傳算法和二進制蟻群算法結(jié)合的改進二進制蟻群算法,并對狀態(tài)選擇、能見度及信息素更新做了改進。
基本二進制蟻群算法在狀態(tài)選擇時,只能看到下一個隨機節(jié)點,總體目標方向不明確。本文改進狀態(tài)選擇機制,個體螞蟻在狀態(tài)選擇過程中,能看到所有未走過的節(jié)點,根據(jù)比較目標函數(shù)的大小明確下一個節(jié)點,根據(jù)轉(zhuǎn)移概率公式確定去往這個節(jié)點的各種路徑狀態(tài)。最終所有的狀態(tài)構成解空間,目標函數(shù)值最小的狀態(tài)集合為最優(yōu)路徑。
對二進制蟻群算法這種啟發(fā)式算法來說,起始點出發(fā)后的能見度影響著整個路徑的尋優(yōu)過程,較優(yōu)的能見度能極大地提高算法找到最優(yōu)解的性能。本方法利用遺傳算法為二進制蟻群算法提供初始能見度,具體方法是比較遺傳算法得到的狀態(tài)集合中0 和1 的比例,比例越高能見度越高,比例越低能見度越低。
為了避免二進制蟻群算法中信息素正反饋導致的過早收斂問題,本方法在一次迭代完成后對全部路徑上的信息素進行一次隨機概率的更新,即:
式中:δ(t+1)=δ(t)+ε,ε為小于0.1 的隨機數(shù)。
本文的優(yōu)化框架流程如圖2 所示。其主要步驟可以描述為:
圖2 本文方法的流程圖Fig.2 Flowchart of the propose method
1)初始化設置:確定算法參數(shù)。
2)確定個體維度:選取Sx×Sy的一維數(shù)組作為種群的大小,Sx是條紋周期的一半,即Sx=T/2,Sy=1。
3)適應度評估:確定種群規(guī)模為60,用方程(11)進行個體適應度評估。
4)遺傳算法較優(yōu)解:運行遺傳算法操作,進化出較優(yōu)個體。
5)能見度:根據(jù)遺傳算法較優(yōu)解中不同狀態(tài)的比例得到初始能見度,并生成初始蟻群。
6)二進制蟻群較優(yōu)解:通過運行算法得到本次尋優(yōu)過程的最優(yōu)解。
7)比較:比較二進制蟻群算法和遺傳算法得到的較優(yōu)解,誰更優(yōu)輸出誰的結(jié)果。
8)信息素更新:用本次尋優(yōu)過程的最優(yōu)解更新所有路徑上的信息素。
9)判斷終止:終止條件為最優(yōu)值改變不超過1×10-6或迭代次數(shù)超過3000 次,如果不滿足跳轉(zhuǎn)到步驟3)。
10)維度約束:Sy=Sy+1,Sy≤ 15,轉(zhuǎn)到步驟2)。
11)完整圖像:根據(jù)對稱性和周期性,拼出完整二值條紋。
為了佐證本文所提方法,選定條紋周期T=15,20,…,115,120 來進行仿真實驗。用模板大小為G(G=6×14),標準差為ε(ε=G/3)的高斯濾波器來表示投影儀的不同離焦程度,選定模板大小G=6×6,10×10,14×14 的高斯濾波器效果分別對應投影儀輕度離焦、中度離焦、重度離焦的效果。利用三步相移法來計算相位值,仿真設計選取800×600 分辨率大小的圖案。
圖3 為Floyd-Steinberg 誤差擴散抖動算法和本文方法生成的二值圖案。條紋周期選擇15,高斯濾波器模板大小選擇6×6。其中圖3(a)是Floyd-Steinberg 誤差擴散抖動方法產(chǎn)生的二值圖案,圖3(b)是經(jīng)過6×6 模板大小的高斯濾波器濾波后的條紋圖案,圖3(c)是本文方法生成的二值圖案,圖3(d)是經(jīng)過6×6 模板大小的高斯濾波器濾波后的條紋圖案。對比看出,F(xiàn)loyd-Steinberg 誤差擴散抖動算法生成的二值圖案不對稱性比較明顯,對條紋濾波后質(zhì)量影響較大,降低后期實驗測量精度;本文所提方法生成的二值圖案分布整齊,對稱性強,如圖3(c)中紅色方框標出位置所示,濾波后的條紋質(zhì)量較高,隨著離焦程度的增加,濾波后的條紋圖將更加貼近標準正弦條紋圖案,說明本文方法有更顯著的改進效果。
圖3 兩種方法生成的二值圖案及高斯濾波后的圖案Fig.3 Binary patterns generated by two methods and patterns after Gaussian filtering
以標準正弦為對比,對Floyd-Steinberg 誤差擴散抖動算法和本文方法進行誤差分析如圖4。圖中顯示條紋周期為15 時,F(xiàn)loyd-Steinberg 誤差擴散抖動算法和本文方法在輕度離焦情況下與標準正弦條紋的強度誤差和相位均方根誤差比較的截面圖,截取范圍選取兩個周期大小。從截面圖對比可以看出,在輕度離焦情況下,F(xiàn)loyd-Steinberg 誤差擴散抖動算法生成的二值條紋強度誤差和相位均方根誤差都比本文方法生成的二值條紋更大,說明本文方法產(chǎn)生的二值條紋更接近正弦條紋。
圖4 兩種方法的對比。(a)強度誤差;(b)相位均方根誤差Fig.4 Comparison of the Floyd-Steinberg dithering method and the proposed method.(a)The intensity difference ;(b)The phase RMS error
圖5 為Floyd-Steinberg 誤差擴散抖動算法和本文方法在不同條紋周期,不同高斯濾波器模板大小情況下與標準正弦條紋對比后的相位均方根誤差和灰度值誤差。圖中圖5(a)、圖5(b)選用模板大小為6×6,圖5(c)、圖5(d)選用模板大小為10×10,圖5(e)、圖5(f)選用模板大小為14×14。圖5(a)、圖5(c)、圖5(e)對比表明,在不同離焦程度下,隨著條紋周期增加,兩種方法的相位均方根誤差逐漸減小,本文方法的相位均方根誤差小于Floyd-Steinberg 誤差擴散抖動方法,本文方法具有更好的正弦相似性,在周期較短時效果更加明顯;圖5(b)表示輕度離焦情況下兩種方法的灰度誤差,F(xiàn)loyd-Steinberg 抖動方法具有最大的誤差(約等于4),本文方法誤差明顯較小。圖5(b)、圖5(d)、圖5(f)表明,隨著離焦程度增加,兩種方法的測量誤差保持了同樣的減小趨勢,但本文方法的誤差始終遠遠小于Floyd-Steinberg 誤差擴散抖動方法。綜上仿真結(jié)果表明,本方法在不同周期、不同離焦量下都具有極大的優(yōu)勢。
圖5 不同條紋周期和不同大小高斯濾波時,兩種方法的相位誤差和強度誤差。(a)輕度離焦時的相位均方根誤差;(b)輕度離焦時的灰度值誤差;(c)中度離焦時的相位均方根誤差;(d)中度離焦時的灰度值誤差;(e)重度離焦時的相位均方根誤差;(f)重度離焦時的灰度值誤差Fig.5 The intensity difference and phase RMS error of the two methods between different fringe periods and different sizes of Gaussian filtering.(a)Phase RMS error for mildly defocused;(b)Intensity error for mildly defocused;(c)Phase RMS error for moderately defocused;(d)Intensity error for moderately defocused;(e)Phase RMS error for severely defocused;(f)Intensity error for severely defocused
三維測量系統(tǒng)中的投影儀選用型號為 Esonic HD-720P 的高清投影儀,分辨率為1280×720,投影距離為0.35 m~0.55 m,投影儀與相機中心點的距離約為相機選用大恒MER-130-30UM 工業(yè)相機,內(nèi)置Sony CCD 傳感器芯片,搭載Computer M0814-MP2 型號鏡頭(鏡頭焦距8 mm,分辨率為1280×1024),投影儀光軸與相機光軸之間的角度約為θ=10°,結(jié)構如圖6。
圖6 結(jié)構圖Fig.6 Structure diagram
分別利用Floyd-Steinberg 誤差擴散抖動方法和本文方法對標準白板進行測量,以標準正弦16 步相移法獲得的相位作為真值相位。投影儀的離焦程度是連續(xù)變化的,通過手動方式進行調(diào)節(jié)。輕度離焦、中度離焦、重度離焦時的白板實驗近似對應于6×6,10×10,14×14 模板大小高斯濾波效果的仿真實驗,圖7 為兩種方法在不同離焦程度下的相位均方根誤差對比。
圖7 不同離焦程度下,兩種方法的測量結(jié)果。(a) 輕度離焦時的相位均方根誤差對比;(b) 中度離焦時的相位均方根誤差對比;(c) 重度離焦時的相位均方根誤差對比Fig.7 Experimental results of comparing the two methods under amounts of defocusing.(a) Mildly defocused;(b) Moderately defocused;(c) Severely defocused
測量結(jié)果表明,在一定離焦范圍內(nèi),離焦程度增加,兩種方法的相位均方根誤差在一定程度上呈下降趨勢,說明投影儀的高頻信號在一定程度上受到離焦狀態(tài)的抑制。而且,在不同離焦情況下,本文所提方法的改善效果明顯優(yōu)于Floyd-Steinberg 誤差擴散抖動算法,尤其在條紋周期較短時,效果更加明顯,證明本文方法在不同離焦程度時都能實現(xiàn)較好的測量,與仿真結(jié)果吻合。
本文選取了一個三位特征明顯的石膏模型來驗證。實驗中選擇條紋周期為15,同樣用標準正弦16步相移法獲得的相位作為真值相位。兩種方法變形條紋圖案如圖8(a)、圖8(b)所示。
圖8 兩種方法的變形條紋圖案。(a)Floyd-Steinberg 誤差擴散方法產(chǎn)生的變形條紋圖案;(b)本文方法產(chǎn)生的變形條紋圖案Fig.8 The deformed stripe patterns of two methods.(a)The Floyd-Steinberg error-diffusion method;(b)The proposed method
圖9 表示兩種方法三維測量結(jié)果。其中圖9(a)~9(c)為度離焦、中度離焦、重度離焦情況下的三維測量圖,圖9(d)~9(f)為本文方法在輕度離焦、中度離焦、重度離焦時的三維測量圖。表1 是投影儀在不同離焦程度下兩種方法的相位均方根誤差值。分析可知:在輕度離焦時,兩種方法的重建圖都含有噪聲,如圖9(a)、9(d)所示;對比圖9(a)~9(c)和圖9(d)~9(f)可知:隨著離焦程度的加重,相位均方根誤差呈下降趨勢,模型重建結(jié)果表面逐漸光滑,三維特征也逐漸明顯,但基于Floyd-Steinberg 誤差擴散抖動方法的改善程度相對較小,本文所提方法的改善效果相對明顯。驗證了本文方法在不同離焦程度下均可以有效改善Floyd-Steinberg 誤差擴散抖動方法,對不同程度的離焦程度具有魯棒性,能實現(xiàn)更高質(zhì)量的三維測量,符合仿真結(jié)果。
表1 兩種方法在不同離焦程度下的相位均方根誤差Table 1 The phase RMS errors of two methods with different amounts of defocusing
圖9 兩種方法在輕度、中度、重度離焦情況下的重建圖。(a)~(c)Floyd-Steinberg 誤差擴散抖動算法;(d)~(f)本文方法Fig.9 Reconstruction of the two methods in mildly,moderate,and severe defocus conditions.(a)~(c)The Floyd-Steinberg error-diffusion method;(d)~(f)The proposed method
本文提出一種基于改進二進制蟻群算法的方案,通過對相位信息的優(yōu)化,有效改善傳統(tǒng)Floyd-Steinberg誤差擴散抖動算法的三維測量精度。把優(yōu)化后的二值塊拼接成完整圖案的操作,加速了優(yōu)化過程。仿真和實驗證明本方法能有效提高三維測量精度,對不同投影儀離焦程度都具有魯棒性。