劉 婧
(山西旅游職業(yè)學(xué)院 電教中心,山西 太原 030036)
現(xiàn)階段,通常將圖像作為載體進(jìn)行處理和分析[1-2]。除了傳統(tǒng)的工業(yè)以及科研領(lǐng)域外,傳統(tǒng)的膠片相機(jī)已經(jīng)被數(shù)碼相機(jī)所取代,同時具有攝像功能的電子設(shè)備越來越多,圖像處理技術(shù)被廣泛應(yīng)用于各個領(lǐng)域中?,F(xiàn)階段,圖像處理方法針對正常圖像的處理效果較好,但是由于畸變圖像往往存在一定的幾何誤差,影響圖像處理效果,因此,對數(shù)字圖像幾何畸變進(jìn)行矯正成為當(dāng)前研究的熱點(diǎn)話題。
陳文藝[3]等人提出一種基于深度學(xué)習(xí)的單張圖像畸變校正方法,該方法首先構(gòu)建圖像序列,并對相機(jī)參數(shù)進(jìn)行估計(jì),然后對圖像徑向畸變參數(shù)之間的函數(shù)關(guān)系進(jìn)行分析,最后采用深度學(xué)習(xí)方法實(shí)現(xiàn)圖像畸變校正。廖書紅[4]等人主要對數(shù)字圖像進(jìn)行交叉以及存儲等操作,同時結(jié)合DDR3優(yōu)化存儲方案進(jìn)行畸變圖像校正。以上兩種方法雖然取得了較為顯著的研究成果,但是由于未能對數(shù)字圖像進(jìn)行去噪處理,導(dǎo)致校正誤差、復(fù)雜度和時間增加。為此,提出基于FPGA的數(shù)字圖像幾何畸變矯正方法,該方法的矯正誤差較低、矯正時間較短,且降低了圖像處理的復(fù)雜度。
為了獲取更加理想的矯正效果,需要優(yōu)先對數(shù)字圖像進(jìn)行降噪處理。如果利用降級過程可以將其從原始的“真”信號轉(zhuǎn)換為原始信號X,從而獲取觀測信號I,其表達(dá)式為:
進(jìn)行濾波的主要目的是在觀測信號中有效恢復(fù)原始信號X。在雙邊濾波中主要包含特定形式的局部濾波,也就是將其轉(zhuǎn)換為最小化問題[5-6],具體的表達(dá)式如下:
上式中,p和q代表像素;sp代表像素p的鄰域;Xp代表需要求解像素p的灰度值;代表p和q兩點(diǎn)之間的歐幾里得距離。
對公式(2)進(jìn)行求導(dǎo),即:
設(shè)定δ(x) =ψ(x) /x,將其代入公式(3)中,則能夠獲取如下的計(jì)算式:
將公式(4)進(jìn)行化簡,則能夠獲取以下的形式:
公式(5)代表局部濾波模式進(jìn)行濾波的濾波式。假設(shè)h(x)和δ(x)代表高斯函數(shù),則公式(5)能夠通過以下的形式表示:
上式中,sσ代表標(biāo)準(zhǔn)方差;rσ代表標(biāo)準(zhǔn)偏差。通過sσ和rσ能夠分別決定空間核函數(shù)的值域以及函數(shù)的展開程度[7]。為了有效求解公式(6),需要將公式(6)進(jìn)行重寫,具體的計(jì)算式為:
經(jīng)過多次驗(yàn)證發(fā)現(xiàn),當(dāng)高斯濾波器σs=1時,且雙邊濾波器滿足以下約束條件時,能夠獲取較高的峰值信噪比,實(shí)現(xiàn)數(shù)據(jù)圖像去噪:
上式中,nσ代表高斯濾波函數(shù)。
對圖像進(jìn)一步進(jìn)行自動閾值分割處理,通過分割得到二值圖像,其中二值圖像是由背景和明顯區(qū)域兩個部分組成;當(dāng)數(shù)字圖像經(jīng)過分割后,采用形態(tài)邊界檢測方法對數(shù)字圖像的邊界部分進(jìn)行存儲和記錄,并且利用Radon變換對數(shù)字圖像中較為明顯的輪廓進(jìn)行提?。贿M(jìn)而計(jì)算數(shù)字圖像各個頂點(diǎn)位置的坐標(biāo)以及橫縱比,同時判定圖像是否需要進(jìn)行旋轉(zhuǎn),最終實(shí)現(xiàn)矯正。圖1為具體的操作流程。
圖1 基于FPGA的數(shù)字圖像幾何畸變矯正流程
圖像處理過程中十分關(guān)鍵的步驟就是圖像分割,它是一種基礎(chǔ)的計(jì)算機(jī)視覺技術(shù),本文采用Otsu算法對數(shù)字圖像進(jìn)行分割操作[8-9]。
設(shè)定L表示初始灰度圖像的灰度級,則數(shù)字圖像內(nèi)的全部像素可以表示為:
歸一化直方圖,則能夠獲取以下的計(jì)算式:
上式中,pi代表期望圖像像素點(diǎn)。
通過閾值t劃分灰度值,則通過公式(11)表示C1和C2類出現(xiàn)的概率和均值:
將C1和C2兩個類獲取最佳分離的閾值t設(shè)定為最佳閾值,具體的表達(dá)形式如下:
上式中,η(t)代表圖像二值化閾值。
通過形態(tài)學(xué)的填充區(qū)域算法對經(jīng)過閾值分割后的圖像進(jìn)行區(qū)域填充,即:
上式中,Xk代表填充結(jié)果;Ac代表待填充區(qū)域集合。
在獲取的二值圖像中,背景上面還存在白色的毛刺,毛刺的存在會影響最終的數(shù)字圖像幾何校正結(jié)果[10]。為此,需要及時清理毛刺。使用形態(tài)學(xué)開操作對毛刺進(jìn)行清除,同時還需要進(jìn)行邊界檢測,設(shè)定集合A的邊界為β(A),其能夠利用B對A進(jìn)行腐蝕操作,然后通過A減去腐蝕獲取毛刺清理結(jié)果,具體的計(jì)算式為:
其中,通過Radon變換提取邊界的具體操作流程如下所示:
(1)對全部的邊界圖像進(jìn)行Radon變換;
(2)在Radon變換圖像上獲取一個亮點(diǎn)極值坐標(biāo),設(shè)定各個亮點(diǎn)的取值為0;
(3)重復(fù)步驟(2)的操作,直至獲取4個亮點(diǎn)的極值坐標(biāo);
(4)分別計(jì)算出四條不同邊界的直線坐標(biāo)。
橫縱比主要是指矩形的寬度和長度之比,在數(shù)字圖像中,圖像的橫縱比發(fā)生變化,圖像即會發(fā)生變形,同時圖像上的符號也開始失真。
數(shù)字圖像的畸變校正過程需要輸入的點(diǎn)十分容易選擇,即數(shù)字圖像的四個頂點(diǎn)。對應(yīng)輸出點(diǎn)的坐標(biāo)就是通過輸入點(diǎn)坐標(biāo)以及相對的幾何關(guān)系進(jìn)行縱橫比計(jì)算[11],以下給出具體的操作步驟:
(1)將數(shù)字圖像的左下角設(shè)定為第一輸入點(diǎn),同時確保其他輸入點(diǎn)坐標(biāo)保持不變,具體的表達(dá)式為:
上式中,(x01,y01)代表第一輸入點(diǎn)坐標(biāo)。
(2)將數(shù)字圖像右下角的輸入點(diǎn)作為第二輸入點(diǎn),則對應(yīng)輸出點(diǎn)行坐標(biāo)和第一輸出點(diǎn)的行坐標(biāo)相同:
上式中,d代表輸入點(diǎn)之間的距離。
(3)將左上角的輸入點(diǎn)作為第三輸入點(diǎn),設(shè)定λ代表縱橫比,具體的計(jì)算式為:
(4)右上角的輸入點(diǎn)設(shè)定為第四輸入點(diǎn),對應(yīng)輸出點(diǎn)的坐標(biāo)能夠表示為:
分析坐標(biāo)轉(zhuǎn)換公式,能夠獲取旋轉(zhuǎn)后數(shù)字圖像的四個頂點(diǎn)坐標(biāo),如下所示:
上式中,R代表旋轉(zhuǎn)中心點(diǎn);?1代表坐標(biāo)點(diǎn)平移;?2代表坐標(biāo)點(diǎn)旋轉(zhuǎn)。
在上述分析的基礎(chǔ)上,通過輸入點(diǎn)和對應(yīng)輸出點(diǎn)的坐標(biāo)對數(shù)字圖像進(jìn)行幾何畸變初步矯正,但是為了獲取更加清晰的圖像,還需要對數(shù)字圖像進(jìn)行歸一化操作以及旋轉(zhuǎn)判斷[12],具體的操作流程如下:
(1)優(yōu)先采用Ostu對數(shù)字圖像進(jìn)行自動閾值分割,同時將數(shù)字圖像進(jìn)行字符分割。
(2)采用形態(tài)學(xué)切割數(shù)字圖像中需要識別的文字,在二值數(shù)字圖像中檢測獲取第一個黑色像素點(diǎn),如果它是連通區(qū)域內(nèi)的一個黑色像素點(diǎn),則將其設(shè)定為遞歸的開始,接著進(jìn)行連續(xù)膨脹,直至獲取連通區(qū)域內(nèi)全部的像素點(diǎn)。
(3)針對全部數(shù)字圖像的分割結(jié)果進(jìn)行歸一化操作。
(4)通過數(shù)字特征對圖像中的數(shù)字進(jìn)行識別,判斷數(shù)字圖像是否需要進(jìn)行旋轉(zhuǎn),最終實(shí)現(xiàn)數(shù)字圖像幾何畸變矯正。
為了驗(yàn)證所提基于FPGA的數(shù)字圖像幾何畸變矯正方法的綜合有效性,在Windows10系統(tǒng),Intel Corei7-9700處理器,4GB內(nèi)存的硬件環(huán)境下進(jìn)行實(shí)驗(yàn)分析。將圖像矯正復(fù)雜度和矯正時間等指標(biāo)作為實(shí)驗(yàn)指標(biāo),對比文獻(xiàn)[3]方法、文獻(xiàn)[4]方法和所提方法的圖像處理效果。分別選取100幅數(shù)字圖像作為測試對象,其中,包含風(fēng)景、人物、建筑等多種類型,為了保證實(shí)驗(yàn)結(jié)果的一致性,實(shí)驗(yàn)中所產(chǎn)生的數(shù)據(jù)均由Matlab軟件進(jìn)行處理。
對比三種不同方法的數(shù)字圖像幾何畸變矯正誤差,具體的實(shí)驗(yàn)對比結(jié)果如圖2所示。
圖2 數(shù)字圖像幾何畸變矯正誤差對比結(jié)果
分析圖2中的實(shí)驗(yàn)數(shù)據(jù)可知,所提方法的矯正誤差始終低于1.5%,而文獻(xiàn)[4]方法的矯正誤差最大值接近3.0%,說明所提方法經(jīng)過去噪后,獲取的圖像更加適合信息讀取,同時校正結(jié)果也十分令人滿意。但是由于另外兩種方法在實(shí)際操作的過程中,并沒有對數(shù)字圖像進(jìn)行去噪操作,致使整個方法的數(shù)字圖像幾何畸變矯正誤差較大,數(shù)字圖像幾何畸變矯正誤差明顯高于所提方法。
由于各個方法的操作流程存在十分明顯的差異,致使整個方法的校正復(fù)雜度也存在十分明顯的差異,通過數(shù)值對復(fù)雜度進(jìn)行表示,數(shù)值越小,復(fù)雜度越低,利用表1給出詳細(xì)的實(shí)驗(yàn)對比結(jié)果:
表1 數(shù)字圖像幾何畸變矯正復(fù)雜度對比結(jié)果
分析表1中的實(shí)驗(yàn)數(shù)據(jù)可知,由于所提方法簡化了圖像矯正流程,有效降低了數(shù)字圖像幾何畸變矯正復(fù)雜度。因此,在三種方法中,所提方法的數(shù)字圖像幾何畸變矯正復(fù)雜度明顯更低。
利用圖3給出不同方法的數(shù)字圖像幾何畸變矯正時間對比結(jié)果
根據(jù)圖3可知,所提方法的數(shù)字圖像幾何畸變矯正時間最短;文獻(xiàn)[3]方法和文獻(xiàn)[4]方法在圖像數(shù)量低于90幅時,矯正時間差距不明顯,但是之后文獻(xiàn)[3]方法的矯正時間增長明顯。通過對比證明,對數(shù)字圖像進(jìn)行去噪具有一定的可行性,有效降低了圖像矯正時間。
針對傳統(tǒng)圖像幾何畸變矯正方法存在的矯正效果不佳的問題,研究基于FPGA的數(shù)字圖像幾何畸變矯正方法。通過實(shí)驗(yàn)結(jié)果可知,所提方法能夠有效降低數(shù)字圖像幾何畸變矯正誤差和復(fù)雜度,同時還能夠較少矯正時間。但是由于受到環(huán)境以及人為等多方面因素的限制,致使所提方法仍然存在一定的不足,需要加強(qiáng)完善。