程 鹍,何毅斌,董浩明,張 璇
(武漢工程大學(xué) 機電工程學(xué)院,湖北 武漢 430205)
近年來,工業(yè)自動化水平得到不斷提高,物體的三維信息測量變得越來越重要。三維重建作為獲取客觀世界信息的重要方式,現(xiàn)如今已被廣泛應(yīng)用于生產(chǎn)生活的各個領(lǐng)域[1]。
盡管三維重建技術(shù)已取得了不錯的研究成果,但對于透明目標[2],例如流動的氣體、透明液體和眾多玻璃制品的三維重建仍然是一個急需解決的難題。本文通過對雙目立體視覺技術(shù)中應(yīng)用的算法原理進行分析,研究基于雙目視覺的玻璃瓶的三維重建算法。
攝像機標定有DLT線性變換法、Tsai[3]的兩步標定法、張正友平面標定法[4]等。實驗中為了滿足三維重建要求的精度,在張正友平面標定法的基礎(chǔ)上提出了一種改進的立體標定算法。本研究首先利用張正友平面標定法實現(xiàn)一次常規(guī)的攝像機立體標定,然后在棋盤格圖像上進行重投影,根據(jù)重投影誤差刪除不符合的圖像,進行二次標定。雙目相機進行標定時,根據(jù)重投影誤差的計算方法判斷3次重投影的誤差是否小于0.11,大于0.11說明標定誤差偏大則需要重新標定,再利用立體校正算法對立體標定得到的內(nèi)外參數(shù)進行優(yōu)化。
2臺攝像機的極線在相機平行放置時理論上是為水平線,但是實際上由于相機是非線性成像模型。相機的極線不可能存在完全平行對準的情況,所以需要消除畸變使兩幅圖像對齊,如圖1所示。
圖1 相機校正原理
本實驗采用Bouguet[5]校正算法,根據(jù)左右圖像的重投影次數(shù)和投影畸變失真來最小化計算各個參數(shù),把原始位上的左右相機照片旋轉(zhuǎn)一半至平行,左右映射到無窮遠處。相機拍攝的照片存在畸變,經(jīng)過校正后,消除畸變使兩幅圖像對齊,從而可以為后面的立體匹配能更精準、誤差更小提供保證。
立體匹配的目的是為左圖中的每一個像素點在右圖中找到其對應(yīng)點[6],這樣就可以計算出視差。大部分立體匹配算法的計算過程可以分成以下幾個階段:匹配代價計算、代價聚合、視差優(yōu)化、視差細化。SGM算法采用單像素互信息作為匹配代價,沿著多個方向進行一維能量最小化來近似替代二維全局能量最小化,因此被稱為半全局算法。SGM的運算速度遠遠快于大多數(shù)全局算法,同時精度也比較高,但是對于圖像噪聲、光照不均、大面積無紋理等各種情況依然不能很好地處理,為此在SGM算法的基礎(chǔ)上對其進行改進,即將每一個代價值進行成塊計算后,用于對SGM算法進行視差優(yōu)化,使得匹配更簡便。深度信息中存在許多的空洞,為了填充這些缺失的空洞值,在SGM算法中還加入了多種后處理。
在實際環(huán)境中,由于噪聲、光照、遮擋、弱紋理區(qū)域等因素的影響,導(dǎo)致立體匹配得到的視差圖上會存在一些異常點[7]。視差圖后處理就是修復(fù)這些異常點的重要步驟,算法好壞將直接影響后續(xù)三維重建的效果和精度。異常點的種類有很多,比如孔洞、高亮斑點等,針對不同類型的異常點,需要使用不同的方法。因此,立體匹配生成視差圖后,需要對視差圖進行濾波后處理。本文實驗采用的是WLS快速濾波后處理方法,主要是運用WLS快速濾波將稀疏視差轉(zhuǎn)變?yōu)槌砻芤暡?并在一定程度上降低視差圖噪聲,使用濾波后視差圖變得更平滑,并且消除了沒有深度的空洞區(qū)域,改善了視差圖的視覺效果。
基于雙目相機實現(xiàn)三維重建是利用雙目相機采集到2幅或多幅圖像信息來恢復(fù)場景或物體目標點的三維幾何形狀方法,在獲取的視差圖上選取一系列點將其轉(zhuǎn)換成世界坐標,重建出物體的三維模型。三維重建的過程中獲取空間坐標,就可以恢復(fù)出三維場景信息,有了視差圖、深度值和坐標,可以實現(xiàn)對玻璃瓶的三維重建。實驗將三維坐標點存放到點云文件中,使用PCL庫來讀取三維重建后的玻璃瓶。
本實驗配置的軟硬件環(huán)境如表 1 所示。
表1 實驗環(huán)境配置
本文實驗分別以3個玻璃瓶為研究對象,采用張正友改進的立體標定算法,選擇6×9格,邊長為27 mm的標定板,依次對左右相機進行標定和校正。立體匹配采用的是SGM和改進的SGM算法進行對比研究,在改進的SGM上使用WLS 濾波,利用三角形公式,計算得到視差圖中各像素點的三維空間坐標和深度值。三維重建中使用點云文件存儲該三維坐標和相應(yīng)的基準像素顏色值,利用PCL 庫來讀取點云文件。實驗得到的視差圖、深度圖以及三維重建圖像如圖2所示。
圖2 三維重建實驗對比
SGM立體匹配算法獲取的視差圖很稀疏且模糊,需要對此進行改進,將每一個代價值進行成塊計算后用于算法進行視差優(yōu)化。實驗表明改進的SGM立體匹配算法不僅運行時間短,而且視差圖很清晰。然而,視差圖還存在空洞,為了填充這些缺失的空洞值,在改進的SGM算法中又加入了濾波后處理。實驗中使用快速WLS濾波方法,將視差圖中的稀疏視差轉(zhuǎn)變?yōu)槌砻芤暡?并在一定程度上降低視差圖噪聲,改善視差圖的視覺效果。
實驗單獨對3個玻璃瓶進行三維重建,可以很清晰地看到重建后的玻璃瓶圖像,為了檢測多個玻璃瓶是否可以重建以及在不同區(qū)域重建的效果如何,在此之上,在對2個玻璃瓶進行三維重建如圖3所示。
圖3 兩個玻璃瓶三維重建
由圖3可以看出,使用SGM算法對兩個玻璃瓶進行三維重建得到的圖像效果不好,獲取的視差圖十分稀疏且空洞太多。改進的SGM算法獲取的視差圖相對于原算法稠密得多,得到的深度圖也更平滑,原方法三維重建還有一些投影部分,使用改進的SGM方法獲取的三維重建消除了投影,邊緣輪廓更加清晰,在整個相機的視野中都可以重建出來。
本文主要研究基于雙目相機的玻璃瓶的三維重建,實現(xiàn)了從玻璃瓶的二維圖像、視差圖、深度圖到三維重建圖像的過程。實驗表明,本文采用改進的SGM算法與原算法相比,玻璃瓶邊緣輪廓更加清晰,對透明物體的三維重建具有一定的參考價值。