專利名稱:一種基于結構光的三維測量系統中利用gpu并行計算的方法
技術領域:
本發明涉及光學三維測量領域,特別是一種基于結構光的三維測量系統中利用 GPU并行計算的方法。
背景技術:
三維測量技術是記錄物體形貌的基礎工具,在工業制造、科學研究、生物醫學、文物數字化等多個領域具有重要價值。基于相移法的結構光的三維測量技術因為其結構簡單、非接觸、高精度等優點,被廣泛應用于實際測量中。大數據量的密集計算一直是制約結構光三維測量效率的瓶頸。由于多頻相移光柵三維測量算法固有的復雜性,在不犧牲算法精度與穩定性的前提下,其時間復雜程度難以大幅度降低。目前百萬級像素攝像機已經極為普遍,5百萬、8百萬甚至千萬級像素攝像機已經進入測量領域,但都面臨著計算速度慢、導致測量效率不高的問題。以匹配為例,左攝像機獲得的惟一特征需要在右攝像機惟一特征中找到匹配點,依據極線約束,要遍歷右攝像機的一條極線上的特征,既需要1百萬乘以極線長度,以百萬像素攝像機為例,即要搜索的長度為1千像素,所做的計算約為10億量級,這還不包括找對應點的插值計算等;盡管目前CPU核心數量增加,但其指令系統更傾向于處理任務,所帶來的計算性能提升并不明顯。 而GPU則主要用于圖形、圖像處理計算,并且GPU擁有數十倍于CPU的浮點運算能力,根據這一特點,將之優化利用可以大幅度提高三維測量的速度。本專利申請人于2006年7月四日申請并獲專利權,名稱為“投射多頻光柵的物體表面三維輪廓的視覺測量方法”,專利號為2006 1 001(^84. 8發明專利中,公開了利用光柵的頻率合成的相位展開完成采集圖像中像素點的三維坐標計算,最終完成對物體的三維測量,本發明根據上述專利公開的方法其技術內容,在三維測量系統中的計算機的GPU中的優化實現。
發明內容
本發明提供了一種基于結構光的三維測量系統中利用GPU并行計算的方法,能夠有效地利用圖像處理單元的并行計算能力,加快了光學測量的測量速度。首先向物體表面投射三個(或多個)頻率的光柵,由安裝在光柵投射設備兩側的攝像機拍攝物體表面調制的光柵條紋,將所獲得的圖像保存至計算機內存;通過攝像機標定獲得攝像機標定參數;將內存中的圖像數據與標定參數一次性傳遞到GPU設備存儲區。首先根據攝像機內參對傳遞過來的圖像進行校正,校正過程中采用紋理存儲,有效地避免了公共存儲區的數據再次讀取,并且線性插值計算不占用可編程單元;對校正后的圖像進行相位計算及相位展開,最終獲得左右攝像機各自的獨立相位;根據標定參數中的基礎矩陣參數,依據極線約束進行匹配;由匹配的對應點對計算三維點。將最終結果回傳內存儲區。根據GPU自身特點,采用一種全局、全幅面、位置記錄數據的GPU設備端數據結構組織方式,有效解決了 GPU設備端數據使用、存儲問題。以記錄匹配點坐標為例,因為要記錄左、右攝像機對應點,以圖像寬、高位置表示左攝像機的位置點,右攝像機對應點水平坐標存儲于圖像大小的X坐標存儲區對應位置、豎直坐標存儲Y坐標存儲區對應位置;如X坐標存儲區[100]位置存儲的為匹配點X坐標,Y坐標存儲區[100]位置存儲的為匹配點Y坐標,既(100,100)與(X[100],Y[100])為匹配點對。這種方式省去了記錄左匹配位置,將左匹配位置隱含在右匹配位置的存儲區序號中。應用程序由兩部分組成一部分運行于CPU 上,稱為主機(Host)端;另一部分運行于GPU上,稱為設備(Device)端。本發明實現發明目的采用的技術方案是
一種基于結構光的三維測量系統中利用GPU并行計算的方法,該方法借助于三維測量系統中的光柵投射設備向被測物投射條紋,三維測量系統中的攝像機采集經光柵投射的被測物圖像,并保存在三維測量系統中的計算機內存中,并獲取攝像機的攝像機內參數 4攝像機外參r和r、攝像機鏡頭畸變參數#和F,三維測量系統中計算機的GPU實現被測物體的三維點的并行計算,該GPU并行計算方法的步驟是
⑴、將所獲得的所有圖像按序存于計算機的內存中,將獲取的攝像機的全部參數,以數組的形式存在三維測量系統中的計算機內存中;
(2)、在計算機GPU的設備端,計算需要使用的存儲空間,并開辟該存儲空間,將計算機的內存中的步驟⑴保存的圖像和攝像機的參數數據一次性拷貝到計算機GPU設備端的公共存儲器中;
⑶、根據待處理數據規模劃分線程塊(block)大小,選擇將線程塊(block)設計為二維;一般,可采用如下方法計算某個維度上的block數量X方向上的block數量=(數據在χ方向上的尺寸+每個block在χ方向上的尺寸-1)/每個block在χ方向上的尺寸;y 方向同理。⑷、在計算機GPU的設備端,完成圖像校正,圖像校正步驟如下
a、將要校正的數據與紋理綁定,使用紋理存儲器的歸一化坐標;
b、使用紋理存儲器所提供的線性插值來獲取非整數位置的特征值;
c、設(U)是理想的成像面坐標(單位mm),(tf)是畸變的坐標,則
權利要求
1. 一種基于結構光的三維測量系統中利用GPU并行計算的方法,該方法借助于三維測量系統中的光柵投射設備向被測物投射條紋,三維測量系統中的攝像機采集經光柵投射的被測物圖像,并保存在三維測量系統中的計算機內存中,并獲取攝像機的攝像機內參數 .4、攝像機外參Ri和r、攝像機鏡頭畸變參數r和Pi,三維測量系統中計算機的GPU實現被測物體的三維點的并行計算,其特征在于該GPU并行計算方法的步驟是⑴、將所獲得的所有圖像按序存于計算機的內存中,將獲取的攝像機的全部參數,以數組的形式存在三維測量系統中的計算機內存中;(2)、在計算機GPU設備端,計算需要使用的存儲空間,并開辟該存儲空間,將計算機的內存中的步驟⑴保存的圖像和攝像機的參數數據一次性拷貝到計算機GPU設備端的公共存儲器中;⑶、根據待處理數據規模劃分線程塊(block)大小,選擇將線程塊(block)設計為二維;⑷、在計算機GPU設備端,完成圖像校正,圖像校正步驟如下a、將要校正的數據與紋理綁定,使用紋理存儲器的歸一化坐標;b、使用紋理存儲器所提供的線性插值來獲取非整數位置的特征值;c、設江力是理想的成像面坐標(單位mm),(£,i0是畸變的坐標,則
全文摘要
本發明公開了一種基于結構光的三維測量系統中利用GPU并行計算的方法,將從攝像機采集的變形條紋圖像和雙目立體視覺標定獲得的攝像機參數一次性傳輸到GPU設備,在GPU設備上實現圖像校正、相位計算、相位展開、立體匹配和三維點坐標的計算,最后將計算結果一次性從GPU設備傳輸到計算機內存。本發明提出一種大規模、細粒度快速并行計算方法,該方法有效利用了CPU與GPU數據傳輸帶寬,減少了多次數據往復傳輸時間的損耗,充分利用了GPU多處理器的優點,提高了整體的計算速度。
文檔編號G01B11/25GK102538709SQ201210003539
公開日2012年7月4日 申請日期2012年1月9日 優先權日2012年1月9日
發明者付茂栗, 何萬濤, 周波, 孟祥林, 程俊廷, 趙燦, 趙福軍, 車向前, 霍濱焱 申請人:黑龍江科技學院