魏秋月,董環宇,湯少杰,2,馮寧宇
(1.西安郵電大學 自動化學院,陜西 西安 710121;2.西安郵電大學 西安市先進控制與智能處理重點實驗室,陜西 西安 710121;3.寧夏醫科大學總醫院,寧夏 銀川 750004)
點云配準技術[1]在三維模型重建中有著獨特而關鍵的作用,隨著許多高精度傳感器的產生,點云已成為表示三維空間模型的主要數據格式。使用點云配準[2]進行模型匹配時由于配準對象的多變性,配準過程需要考慮的信息會不同,針對不同的配準目標應用不同的配準算法,能得到更好的結果。
迭代最近點(Iterative Closest Point,ICP)算法[3]是目前應用最為廣泛的一種算法,由Besl等在1992年提出。該算法是利用最近點搜索法解決基于自由形態曲面的一種配準算法。根據一定的約束條件,找到原始點云與目標點云的對應關系,并計算出旋轉矩陣與平移矩陣,然后將目標點云與計算得到的旋轉矩陣與平移矩陣進行計算得到新的目標點云。該算法對于初始點的選取非常苛刻,并且會產生一些錯誤點。Du等[4-5]提出的尺度迭代最近點(Scale Iterative Closest Point,SICP)算法是在ICP算法的基礎上加入了變尺度系數,通過原始點云與目標點云間的最小距離計算旋轉矩陣、平移矩陣與尺度系數,但是魯棒性較低,無法避免陷入局部最優。以上配準算法為目前應用比較廣泛的方法,但是這些算法只能應用于點云全局配準,并不適用點云的局部配準,若存在大量缺失點的情況,便不能有一個穩定良好的結果。
相干點漂移(Coherent Point Drift,CPD)算法[6]由Myronenko等在2010年提出。相比之前兩種算法,該算法是將兩個點云配準問題看作是概率密度估計問題,通過建立高斯混合模型[7](Gaussian Mixture Model,GMM)創建似然函數并用EM (Expectation-Maximization)算法[8]進行求解。與之前的ICP、SICP相比,CPD算法既可以進行局部配準也可以進行全局配準,在進行點云模型配準時,可改善缺失點的情況。 但是原始CPD算法在進行人體面部點云配準時,由于發型不同導致配準時距離標準差較大,運算時間較長。為了解決此問題,擬提出一種基于雙側濾波的改進CPD算法。通過提取彩色三維模型的空間位置信息與顏色信息,將顏色信息轉化為亮度信息,仿照雙側濾波算法計算對應的亮度信息權值系數,與原始CPD配準算法中距離權值系數相融合,得到更為有效的加權系數用于面部點云模型配準,從而縮短配準時間提高配準精度。
點云配準就是在兩個點集中找到相互對應的點。原始CPD算法將這種對應看作概率問題[9],使用概率值描述這種對應關系,概率值越大,對應關系的確定性也就越大,理想情況下正確對應點概率為1,錯誤對應點概率為0。這種對應關系通過計算兩個點集中對應點之間的距離獲得,主要運算還是使用點云空間坐標信息計算與給定點距離最近的對應點。
其中,

雙側濾波[10-12](Bilateral Filter,BF)算法首先設定含噪聲圖像y,從含噪聲圖像中還原出原始圖像,然后使用加權平均對圖像x進行估計。在特定鄰域內進行歸一化加權平均,確定鄰域中心像素,由像素的權值系數與距離的權值系數相乘得到加權系數。雙側濾波有非迭代性與局部性的特點,以中心像素附屬鄰域像素空間位置差異設計加權,結合像素值差異設計加權并且雙側濾波采用局部加權平均,其加權系數由像素空間距離決定的距離權值系數和由像素間差值決定的像素值權值系數相乘得到。
假定在理想圖像x中加入一定方差的高斯噪聲n,得到含噪聲圖像
電子白板帶有可以標記功能的專用筆。教師可以用它來圈圈畫畫,給學生強調,突出重點。要知道,我們語文課堂的知識要點很多,而且很零碎,所以要學生牢牢記住,未免有點強人所難。我們就可以運用這個標記功能,勾畫出重點,讓學生把該記的記牢固了就可以,其他知識就看作課外拓展,了解就可以了。
y=x+n
在一個特定鄰域以像素p為中心,r為半徑的正方體中,對不同位置的含噪聲圖像yi和yj進行歸一化加權平均[13],加權系數以該鄰域內圖像內容為基礎進行構造。
最后,將二者歸一化加權平均,即雙側濾波的加權系數為
改進CPD算法是在原始CPD算法只計算點云的距離信息基礎上添加了點云的亮度信息。然后將距離與亮度信息相結合,構造雙側加權,有效降低面部點云配準時頭發區域對配準效果的干擾,降低距離標準差,減少配準的運算數據,縮短運算時間,提高CPD算法用于人體面部配準的性能。

取其最大值,記為Cmax=max(R′,G′,B′),即亮度值V=Cmax。

(1)
式中,l為冪次。亮度相乘與冪運算可增加對最終權值的影響度。
將得到的亮度權值系數與原始CPD算法中計算距離權重的方法相結合,得到改進CPD加權系數為
三維點云模型數據以多邊形文件格式(Polygon File Format,PLY)存儲,既包含點云的空間坐標信息,也包含點云顏色信息。模型頭發區域顏色較深,面部區域顏色較淺,如圖1所示。

圖1 PLY格式三維點云模型
考慮到頭發區域點云在空間中位置的不確定性(比如發型不同)對配準結果造成干擾,根據頭發區域與面部區域顏色差異,先將采集的人體面部模型數據進行降采樣,然后在改進CPD算法中將模型的顏色信息提取出來,將其轉化為亮度值V并計算亮度權值系數,與距離權值系數融合后得到新的加權系數,從而降低頭發區域在配準過程中的權重,加快配準速率,提高準確性。
實驗在Matlab R2018a,英特爾處理器Intel(R) Core(TM) i5-7200U CPU環境下運行,使用XYZprinting2.0手持式全彩3D掃描儀掃描獲得三維點云數據,其支持Win 10系統,i5四代以上處理器。為了驗證改進CPD算法的精確性和有效性,在收集的60組數據中隨機選取8組彩色三維人體面部模型,通過降采樣[16]使每組模型的待配準點數約為11 000個。通過計算最小誤差值或迭代的次數是否達到設定的閾值判斷配準是否完成。在分析配準效果的優劣時,需要考慮:1)兩個點云間的最小誤差值;2)配準完成后兩個點云間的距離標準差;3)配準時算法的收斂速度。
8組數據分別使用原始CPD算法、雙側CPD算法和改進CPD算法進行配準,兩個點云間的距離標準差[6]和運算時間如表1所示。

表1 3種算法點云配準參數對比
由表1可見,使用改進CPD算法進行配準時,數據4的距離標準差為2.050 mm,相比原始CPD算法減小了88%,在8組數據中減少最多,配準速度有明顯加快。數據2的運算時間為4′49″40,相比原始CPD算法提高了46.9%,在8組數據中運算速度最快,距離標準差有明顯減小。8組數據點云的距離標準差平均降低了66.01%,運算時間平均縮短18.57%,改進CPD算法相比原始CPD算法和雙側CPD算法在配準精度與效率方面均有顯著提高。
以數據2為例,原始CPD算法、雙側CPD算法以及改進CPD算法的收斂速度對比曲線如圖2所示。

圖2 3種算法收斂速度曲線
從圖2可以看出,原始CPD算法在迭代64次后收斂,雙側CPD算法在迭代76次后收斂,改進CPD算法在迭代27次后收斂。由此表明,改進CPD算法的迭代次數最少,收斂速度最快。另外7組數據也有類似結果。
以數據2為例,當l取不同值時,改進CPD算法的收斂情況如圖3所示。

圖3 不同l值時改進CPD算法的收斂曲線
由圖3可知,當0≤l<1時,改進CPD算法需要迭代64次,當1 以數據4為例,給RGB值加不同強度高斯噪聲后,改進CPD算法的穩定性箱線圖如圖4所示。 圖4 改進CPD算法穩定性箱線圖 由圖4可以看出,噪聲方差從1到32每次以二倍增長。箱子的高度表示數據的波動,隨著高斯噪聲的方差值σ越大點云標準差也穩定增大,并無異常波動,算法整體抗干擾能力較強,穩定性較好。其他7組數據也有類似結果。 使用原始CPD算法、雙側CPD算法以及改進CPD算法對圖1進行面部點云配準,效果如圖5所示。藍色模型為目標點云,綠色模型為待配準點云。由圖5可以看出,原始CPD算法的點云模型配準效果尚可,原因為該方法沒有充分利用彩色三維模型的所有信息,只是采用了模型的空間坐標信息。相比于原始CPD算法,雙側CPD算法的兩點云融合更為緊密。相比于前兩種算法,改進CPD算法模型的匹配度更高。 圖5 3種算法的配準結果 對于面部點云配準提出了一種基于雙側濾波的改進CPD算法。根據面部三維模型不同區域的不同亮度分布,計算點云模型不同區域所對應的權值,降低面部模型頭發區域在配準中的權重,改善了原始CPD算法在進行人體面部點云配準時距離標準差較大、運算時間較長的情況,優化了配準效果。實驗結果表明,改進CPD算法點云的距離標準差平均降低66.01%,運算時間平均縮短18.57%,配準效果與效率明顯提高。
3.3 面部點云配準效果與分析

4 結語