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