魏茂,劉涌,王修竹
(1.中共綿陽市委黨校,綿陽 621000;2.西南科技大學計算機科學與技術學院,綿陽 621010)
結構光投影3D形貌測量技術具有高速度、高精度、獲取的點云密集等特點,得到了市場的廣泛認可,廣泛應用于精細化測量領域。如今市面上結構光3D掃描儀由于采用了專用光電組件,因此售價昂貴。對于大多數研究者和應用開發者而言,希望能夠利用通用的光電組件搭建一個具體實用的實驗平臺。盡管近年來該方面的理論研究論文大量涌現,但在具體應用設計方面可供參考的資料卻非常稀少。因此,基于多年的研發經驗,本文詳細分析并設計了一個利用通用光電組件進行結構光投影3D形貌測量的實驗系統,并針對其中的光柵圖像投影與采集控制過程進行了較為詳細的介紹,希望能為該方向的研究者和應用開發者提供一些有益的參考。
光柵投影形貌測量通常包括光柵編碼技術、相位展開算法、立體匹配算法以及深度計算算法等[1]。通過投射并同步采集一個光柵圖像序列,按照確定的相位展開算法進行運算,最終按照測量機構的位置參數來計算物體的三維點云。因而從系統結構上講,通常需要光柵投影設備和光柵采集設備,包括數字投影機和數字相機。
本測量系統擬采用正弦灰度光柵,利用四步相移法[2]計算包裹相位,采用岳慧敏[3]時間相位展開算法計算展開相位,其時間序列為t=1,8,64,按照LIU算法[4]進行雙像相位特征匹配。根據Sony VSP-EL7投影機的特點,需要制作的光柵圖片應為分辨率1024×768的8位灰度圖像,即黑白圖像,并按照橫向和縱向兩個方向排列正弦光柵。因此,需要制作橫/縱兩個方向的兩套光柵條紋圖像,每套圖像包含t=1,8,64三種頻率的光柵,且每種頻率光柵均包含 0°、90°、180°、270°四種相移光柵,共計需要N=2×3×4=24幅結構光柵條紋圖像,構成投影光柵圖像序列Ii(i=1,2,…,24)。
測量系統體系結構通常是按照測量覆蓋范圍和測量精度進行規劃的,在不考慮測量精度的情況下,也可以根據實際測量物體的大小進行動態調整。本系統設計了如圖1所示的系統結構。其中,投影機采用一臺HITACHI CP-HX4050投影儀(見圖2,最大圖像分辨率1024×768),用于投影光柵條紋圖像序列;雙目相機采用網上購買的兩個TT CAM微型攝像頭(見圖3,圖像分辨率1920×1080),用支架固定在一起,形成雙目視覺系統,兩個攝像頭之間的水平距離設置為大約10CM,用于采集投影機投影到被測物體表面后形成的圖像序列。設定測量覆蓋范圍為30CM×25CM,因此需要分別調整光柵投影機和雙目相機與被測物體距離,以及投影機與雙目相機之間的距離,使得投影機的投影圖像和相機鏡頭的可視區域均能夠覆蓋設定的同一區域。

圖1 測量系統體系結構

圖2 HITACHI CP-HX4050投影儀

圖3 TT CAM攝像頭
在確定了測量系統結構的前提下,需要考慮如何將各個光電部件與計算機接口相互連接,并通過計算機進行集中統一的控制。根據光柵投影3D掃描技術原理,需要計算機控制投影儀投射光柵圖像,且相機同步采集調制后的條紋圖像。結合計算機、投影儀和攝像頭所提供的接口類型,設計了如圖4所示的控制系統結構。
其中,兩路攝像頭均以RJ-45數據信號為輸出接口,因此需要在計算機上增加一塊多通道圖像采集卡(本文采用Intel Gigabit ET Quad Port Server Adapter作為圖像采集卡,采用16X AGP接口與主機相連),用于控制攝像頭采集并獲取采集到的光柵圖片。投影儀以VGA接口作為輸入,因此需要在計算機上增加一塊能夠輸出VGA信號的顯卡(本文采用Radeon R5 230顯卡,采用16X AGP接口與主機相連,如圖5所示),用于輸出光柵圖片信號。由于常用的臺式計算機(本設計采用聯想啟天M690E)主板僅有一個16X AGP插槽,因而本系統將該16X AGP插槽分配給圖像采集卡使用,而將VGA顯卡通過16X AGP接口到1X AGP接口轉換線連接到計算機系統主板的1X AGP接口(見圖 5)。

圖4 控制系統結構示意圖

圖5 圖像采集卡與轉換線
在以上系統結構基礎上,考慮到PC需要運行控制程序(控制窗體,用于設置相機參數和實時顯示兩臺相機采集的幀圖像),而投影儀需要投射光柵圖像。因此,設計了兩個窗體(控制窗體和投影窗體)分別完成以上任務,且兩個窗體分別在個監視器(主監視器和擴展監視器)上顯示。本設計將控制程序的控制窗口(同時具有設置相機參數和顯示兩臺相機采集幀圖像的相關界面)放在主顯示器上顯示,而將光柵圖像放在由一個控制程序產生的對話窗體中,通過擴展顯示器進行條紋序列的投影。同時,為實現兩臺相機采集時間基本同步,需要設置兩個線程,將相機1和相機2采集圖像的過程分別放入這兩個線程中去獨立完成。

圖6 控制線程工作流程圖
基于以上思路,主窗體開始測量事件作為控制線程,控制流程設計如圖6所示。相機1和相機2作為兩個獨立的線程,由控制線程啟動,并通過采集幀控制信號實現同步,啟動相機進行幀采集。其工作流程如圖7所示。

圖7 相機線程工作流程圖
本文為結構光柵投影3D形貌測量技術提供了一套相對較為完整的實驗平臺設計思路。在實際應用中,采集到的圖像序列還有需要結合時間相位展開算法、匹配搜索算法、立體相機標定算法、像點立體矯正算法、深度計算算法等,才能真正完成3D立體掃描的任務,而這些內容超出了本文的目標。為方便研究者理解本文的設計思路,相關參考文獻已經在相應部分給出,一些具體的算法還可以直接調用OpenCV[5]開發工具包予以實現,在此不再贅述。