列志生 韓美茵 潘家輝
(華南師范大學軟件學院 南海 528225)
目前,三維重建系統(tǒng)主要分為以下兩類[1]:一類是利用精密的硬件設(shè)備,如激光掃描儀、結(jié)構(gòu)光、深度掃描儀等,直接測量出物體表面點的三維坐標。這類系統(tǒng)對硬件設(shè)備要求較高,通常難以實現(xiàn)技術(shù)的普遍化,也就難以應(yīng)用于廣大的衣物服飾公司。另一類三維重建系統(tǒng)是通過攝像機成像模型,從二維圖像中計算出物體的三維結(jié)構(gòu)。這類系統(tǒng)雖然成本較低,但是重建結(jié)果容易受到其他因素的影響,例如照片的背景、照片成像平面有所偏差等。針對第二類系統(tǒng)存在的缺陷,本研究主要面向于三維重建過程中的預處理模塊,在預處理模塊中盡量減少上述影響因素對后期三維重建操作帶來的影響。三維重建預處理是進行物體的三維重建前的重要操作,對最終的三維重建效果起著關(guān)鍵性作用。
目前,國外的三維系統(tǒng)研究技術(shù)較為成熟,其中的兩種成熟系統(tǒng)如下:法國的Total Calib系統(tǒng),需要半手工地完成圖像的匹配,攝像機定標以及三維重建,以獲得較好的重建結(jié)果[2]。比利時的物體三維表面自動生成系統(tǒng),要求用戶利用手提攝像機圍繞要重建的物體拍攝一系列的圖像,通過對圖像對應(yīng)點的密集匹配,即可自動地實現(xiàn)攝像機的自定標和分層重建[3]。
國內(nèi)的三維重建技術(shù)的研究雖然還沒有達到成熟的系統(tǒng)階段,但是也取得了較好的成績:中國科學院雷成等人成功完成了對CVSuite軟件的研究,利用三張不同角度的照片即可完成三維模型的重新構(gòu)造[4]。東南大學管葉鵬等人利用雙目視覺的原理研究立體匹配的方法并取得成效[5]。
目前,很多的三維重建研究都從高端儀器采集轉(zhuǎn)為低端設(shè)備采集,如華中科技大學熊章完成了對單目相機拍攝的序列圖像三維重建的研究[6],中國民航大學曾昭鵬等人研究了對智能手機成像的三維重建[7]。對低端設(shè)備拍攝的照片來說,對圖像的處理效果要求很高。而目前對三維重建預處理模塊的研究還很少,因此,本文旨在探索三維重建預處理的新方式。
三維重建預處理的對象一般是一組具有序列性的圖像,通過數(shù)字圖像處理的相關(guān)方法,使圖像中的目標更加清晰以及統(tǒng)一,方便后續(xù)三維重建的操作。三維重建預處理操作有三個目的,一個是利用幾何圖形變換方法使得鏡頭的成像平面處于同一平面;第二個目的是進行色差增強,防止序列圖像太暗或者太亮;第三個目的是進行圖像的邊緣提取,使得圖像的目標和背景分離。因此,本文對圖像進行邊緣提取前需要先進行立體校正和色差增強的操作,在初始提取邊緣后還需要進一步優(yōu)化圖像邊緣,減少背景雜點影響。
為了降低三維重建后期的計算量,照相機的鏡頭成像的平面應(yīng)該要處于同一個平面當中。但是,僅僅依靠嚴格的擺放鏡頭來控制成像效果顯然是不可能的,也會加重使用者的負擔,使得三維重建技術(shù)無法得到普遍應(yīng)用。
立體校正把實際上不在同一平面的兩幅圖像校正成處于同一平面的兩幅圖像。在序列圖像中對每幅圖像作立體校正的操作,從而達到以上目的,方便后續(xù)三維重建流程的搜索操作。
在進行立體校正前,我們需要對相機進行標定操作,獲得畸變參數(shù)k1,k2,k3,p1,p2,對序列圖像分別利用以下幾何變換公式可以得到立體校正后的序列圖像[8]。
設(shè)x,y分別為校正后圖像中像素點的坐標點(x,y),r2=x2+y2,立體校正公式可以表示為
在序列圖像中,分別使用上述公式調(diào)整,得到新的序列圖像,即為處于同一水平面上的序列圖像。
色差增強是為了防止圖像過暗或者過亮導致邊緣識別效率過低。色差增強主要使用直方圖均衡化的方法實現(xiàn),又稱為直方圖平坦化[9]。
直方圖均衡化是對原始圖像的像素灰度作某種映射變換,使變換后的圖像灰度概率密度呈均勻分布,也就是把隨機分布的圖像直方圖修改成均勻分布的直方圖,增加了圖像灰度的動態(tài)范圍,一定程度上增強了圖像的色差。
邊緣提取是三維重建預處理的最終目標,正確識別圖像目標的邊緣,能夠很好地分離目標和背景。在進行邊緣提取前,需要對序列圖像的每一幅圖像進行相關(guān)操作,突出目標對象的邊緣。
2.3.1 對比度調(diào)整
為了增強圖像目標和背景的差異性,需要對序列圖像進行對比度調(diào)整,突出圖像目標的邊緣。本實驗使用的是傳統(tǒng)的對比度調(diào)整算法。
設(shè)i,j分別為圖像的像素點位置(i,j),α為增益參數(shù)控制圖像的對比度,β為偏置參數(shù)控制圖像的亮度。圖像對比度調(diào)整公式可以寫為
其中,g表示調(diào)整后的圖像像素點,f表示源圖像的圖像像素點。
2.3.2 提取對象邊緣[10]
三維重建預處理模塊的主要功能就是提取圖像中目標的邊緣像素。目前較為流行的幾種邊緣提取算子有三種,Canny算子、Laplacian算子和So?bel算子[11~12]。
Sobel算子為梯度算子,計算方法比較簡單,適用于識別圖像的大致邊緣。相比于其他的算子來說,Sobel算子對邊緣的識別效果或許不是最佳的,但是其運算速度以及對簡單圖像的邊緣識別效果是顯著的,因此本次實驗主要采取的是Sobel算子進行邊緣提取。
對于三維重建過程來說,在預處理階段需要識別的只有一個目標對象,對于細小的邊緣部分不需要識別。本實驗將采用計算方法比較簡單的Sobel算子,配合Scharr濾波器實現(xiàn)序列圖像的大致邊緣提?。?3]。
Sobel算子的表達式為
其中Dx和Dy分別表示水平和垂直方向的算子,他們分別為
由上述公式對序列圖像進行處理,可以得到一個新的序列二值圖像。
2.3.3 邊緣輪廓優(yōu)化
上述操作可以得到一個獲得圖像目標大致邊緣的二值圖像,優(yōu)化邊緣輪廓就是要把該二值圖像的背景消除,去除相關(guān)雜點,獲得較好的目標邊緣。
邊緣輪廓優(yōu)化主要對象是背景中的疑似邊緣的少數(shù)點集合,所以主要操作包括圖像的開運算以及連通域去除雜點操作。
圖像的開運算是指對圖像進行腐蝕再膨脹的操作,用于消除圖像中細小的對象物[14]。
連通域去除雜點操作主要是通過對二值圖像的每個像素點進行連通域判斷,對于同一連通域中像素點總數(shù)很少的,則可認為這些點是背景雜點,直接剔除[15]。
實驗主要利用OpenCV和C++語言實現(xiàn)圖像的相關(guān)操作,實驗設(shè)備為Intel(R)Core?i7-6500U 2.50GHz中央處理器,使用的操作系統(tǒng)為Win?dows10教育版64位操作系統(tǒng),開發(fā)環(huán)境為Micro?soft Visual Studio 2017,其中OpenCV版本為3.4.2,實驗通過處理流程前后的結(jié)果對比來驗證預處理操作的正確性。
本實驗主要分為20組,每組10張衣物圖像,以此作為原始序列圖像(如圖1所示),對于每一組衣物圖像來說,根據(jù)該相機的畸變矩陣:[0.0715,0.0112,0.0046,-0.0004,-0.3261],代入式(1)(2)(3)(4)中可以得到立體校正之后的新的序列圖像,其中一張圖像的效果如圖2右圖,對校正后的圖像進行直方圖均衡化,再利用式(5)代入α=0.5,β=25計算每一個像素點的變化,形成圖像之一如圖3右圖,此時利用sobel算子對得到的圖像進行邊緣提取,然后利用該二值圖像進行三次開運算來過濾部分小雜點,再使用連通域的方法對圖像進行標簽化操作,去掉像素點個數(shù)小于最大連通域像素點個數(shù)1%的連通域像素點,此時得到的區(qū)域即為目標對象的邊緣,即最終輸出圖像,其中一副圖像的效果如圖6。
圖1 實驗使用的衣服序列圖像示例
圖2 圖像的校正結(jié)果對比
圖3 色差增強前后對比
圖4 初次邊緣提取圖像
圖5 開操作后的圖像
圖6 最終圖像
圖7 實驗使用的衣服序列圖像處理結(jié)果示例
1)圖2為序列圖像中一張圖像的立體校正結(jié)果。其中,對立體校正來說,對比處理前后的兩張圖片可以看出,圖像的處理效果不太明顯。立體校正主要是為了減小由于相機滑動不平穩(wěn)而導致的誤差,由于目前手機相機像素較高,防抖動效果較好,所以畸變程度不高,該誤差不易被觀察。
2)圖3的兩幅圖像是對序列圖像之一進行色差增強前后的衣物圖像。在對序列圖像進行色差增強操作的過程中可以發(fā)現(xiàn),處理后的圖像亮度比處理前的圖像亮度大,目標與背景的差異性也有所增強。
3)圖4是使用sobel算子進行邊緣提取的圖像效果之一。從提取結(jié)果中可以看出,sobel算子對簡單圖像的提取效果較好,衣物邊緣成功提取出來,但是圖像依然存在部分背景雜點,由此可見,僅使用sobel算子進行邊緣提取未能達到預期效果,對如圖4左下角的較大面積的雜點無法去除。
4)圖5是對邊緣提取后的圖像進行開運算操作的結(jié)果之一,圖像與圖4對應(yīng)。其中對比可以看出,開運算的結(jié)果使目標邊緣更加突出,但是相對的對背景雜點的邊緣也較為突出。開運算主要處理了一些較小的雜點,對面積較大的雜點無法去除。
5)圖6是對圖5進行連通域去除雜點的結(jié)果,與圖4、圖5對應(yīng)。進行比較之后發(fā)現(xiàn),該處理結(jié)果較為理想,對目標外的背景雜點基本去除。
6)圖7為進行預處理操作得到的新的二值圖像序列,對應(yīng)圖1中的照片。實驗所用圖像大小為589*800像素,其中一組實驗中,處理10張圖像共用時64.417s,平均每張圖像用時只有6.44s,圖像處理效果較好。
通過流程前后處理結(jié)果的對比,該處理流程對輸入的三維重建序列圖像來說,能夠較好地去除背景雜點,具有較好的處理效果。
通過對衣物圖像三維重建預處理流程的研究,對比每個階段的結(jié)果可以發(fā)現(xiàn),經(jīng)過多步的背景提取和優(yōu)化,目前對背景雜點有較好的消除效果,最后得到的結(jié)果圖像基本不存在背景雜點,比較適合作為三維重建操作的輸入圖像。在實驗過程中,對于背景復雜的輸入圖像來說,要完全消除背景影響的難度較大,由于識別目標邊緣過程中,可能會認為部分背景也屬于目標之一而不被消除,所以本實驗使用的圖像主要是面向于沒有大型物體作為背景的圖像。接下來的研究工作要解決背景有疑似目標物體的情況,在不損耗目標邊緣像素點的基礎(chǔ)上,提取對應(yīng)目標邊緣。實現(xiàn)對低配設(shè)備拍攝的照片進行三維重建,能更好地應(yīng)用于各個領(lǐng)域,能推動部分行業(yè)的快速發(fā)展。在此方面的研究,具有一定的研究價值。