何浩 黃景維



摘要:在計算機視覺檢測中,廣泛應用張正友標定法進行相機標定。但是至少需要三次或更多次地拍攝標定物,這需要煩瑣的人工操作,難以實現相機標定的自動化。基于張正友標定法,該文提出了一種基于稀疏字典學習的相機標定方法。該文根據張正友相機標定模型,在相機的不同焦距下,離線獲取大量標定圖像,計算出不同焦距下的內參參數,并以此構造稀疏字典。當在線使用該相機的時候,根據一幅圖像和該稀疏字典進行相機標定,可以獲得非常好的內參初始值,再利用極大似然法優化相機參數。通過內參參數對比和重投影法對標定結果進行了評估,實驗結果表明,該方法可以得到有效的相機標定內外參數以及畸變參數,實現單幅圖像的相機標定,可以提高產品視覺檢測的自動化。
關鍵詞:單目相機;相機標定;張正友標定法;稀疏表示;字典學習
中圖分類號:TP391.4 文獻標識碼:A
文章編號:1009-3044(2020)08-0184-04
1 概述
計算機視覺在質量檢測、過程控制、機器人導航等領域有著廣泛的應用[1]。在計算機視覺中,常常需要攝像機拍攝物體的圖像。然而,在實際的成像過程中,由于攝像機鏡頭的光學特性、鏡頭的老化等原因,可能會出現諸如徑向畸變或切向畸變等幾何畸變,從而影響計算機視覺的精度[2]。因此,必須準確校準相機。
為了校準相機,自標定技術[3]通過在靜態場景中移動相機以拍攝足夠的圖像,并且使用圖像信息來評估相機的內部參數。這樣的技術是靈活的,并且經常用于機器人。由于要估計的參數很多,不能保證得到可靠的結果。對于這樣的問題,使用具有已知幾何結構的精密三維標定物,例如具有三個正交平面的三維標定物,可以有效地完成標定。但是,標定物通常非常昂貴。一維標定物[4]通過多次移動獲取多幅圖像,這對于同時標定多個攝像機是非常有效的。但是,精確標定需要多次移動,并不適用于工業場景。使用帶棋盤格的二維平面來實現相機標定[5],即張氏標定法,該方法只需要三幅以上的標定圖像獲得初始值,然后通過優化獲得精確的標定結果。由于它不需要昂貴的標定設備,而且可以很容易地獲得足夠的圖像進行精確標定,因此在攝像機標定和視覺研究中得到了廣泛的應用。然而,要獲得合適的初始值和準確的標定結果,需要三幅甚至更多的圖像,這就意味著需要對工作人員進行更多的繁雜操作,不利于在線標定與自動化。
因此,研究如何通過更少的圖像實現高精度的相機標定是非常必要的。該文提出一種基于稀疏字典學習的相機標定方法,通過離線構造用于數據恢復的完備稀疏字典來稀疏表示相機參數,在在線標定過程中,只需一幅圖像就能準確地恢復標定參數,有利于快速實現攝像機標定,提高計算機視覺檢測的自動化。
2 張氏標定相機模型
理想針孔攝像機模型在計算機視覺中得到了廣泛的應用,理想針孔攝像機的投影模型將世界坐標系轉換為像素坐標系。如圖1所示。
3 稀疏字典構建與學習
根據式(6),b包含相機內參5個變量,根據式(9)方程組求解,在只有1張標定板圖像的時候,無法求解準確的相機內參初值。所以本文將求解相機內參的問題歸結為一個多變量的優化問題,并從多變量優化的角度提出一種基于稀疏字典學習的相機標定方法。通過多組數據樣本訓練,得到一個稀疏字典,使得b能夠在字典上稀疏表示為:
b=Dη(15)
其中,D是稀疏字典,而η是b在D上的投影。那么,式(9)可以表示為:
VDη=0
(16)
因為1張標定圖提供一個單應性矩陣H,H矩陣隱含相機內參信息,而稀疏字典具有隱藏樣本數據特征的特點,因此,本文使用稀疏字典計算式(15),可以利用單幅圖像得到準確的相機內參初值,從而實現單幅圖像的高精密相機標定。
3.1 K-SVD算法訓練稀疏字典
稀疏字典的含義是,尋找一個稀疏系數x,以及字典D,使得Dx盡可能還原原始信號y,且x盡可能稀疏,x就是y的稀疏表示。稀疏字典學習的優勢在于能對樣本數據實現降維表示,隱藏樣本數據最樸質特征,提高計算速度。
稀疏字典學習的實現過程:通過離線采集相機標定圖,通過張氏標定法得到樣本數據Y,Y的每一列表示采集得到的一
對于上式優化問題,常用-_SVD[7]訓練方法進行字典訓練,根據誤差最小原則,使用SVD奇異值分解法對誤差項進行分解,選擇使誤差最小的分解項,利用這個誤差最小的分解項更新字典的原子和對應原子的稀疏編碼,經過不斷迭代,最后可以得到優化的解,以及優化了的稀疏字典。因為目標函數(18)存在兩個未知變量,K-SVD字典學習算法的過程首先是固定字典更新稀疏編碼,然后固定稀疏編碼更新字典,交替迭代更新,從而加快字典學習的目標函數(18)收斂[8]。
3.2 基于稀疏字典的單幅圖像標定
單幅圖像標定計算過程如下:
1)用相機對二維平面標定板進行拍照,根據式(2)計算單應性矩陣H;
2)根據式(18)計算矩陣V;
3)訓練并得到稀疏字D,帶入式(16),求解稀疏編碼η,再根據式(15)可以求得b向量,即可根據式(10)得到相機內參初始值;
4)通過式(11)計算相機外參;
5)初始化畸變系數為0,通過極大似然法對內參、外參和畸變系數進行優化,得出最終結果。
由上述過程可知,使用稀疏字典算法,通過對多組樣本數據進行學習得到的稀疏字典,字典獲得樣本數據重要特征。此外,利用稀疏字典對數據樣本具有降維表示的特點,求出b所隱含的相機內參的稀疏表示,可以實現1張標定圖就能求出準確的相機內參初值,再通過極大似然優化得到完整的相機內外參數和畸變系數。
4 實驗結果
如圖2為樣本測試圖,使用的是邁德威視的MV-GE200GM-T相機。通過Tanimoto[9]系數對張氏標定法計算9張標定圖的相機內參值與稀疏字典學習標定法計算(1張標定圖)的相機內參值的最終優化結果對比,其中,以張氏標定法9張圖的結果為標準如表1一表4。
重投影誤差對比:實驗中使用重投影誤差作為評價指標來對相機標定結果進行評價。重投影誤差公式為:
使用稀疏字典學習標定法進行標定,通過式(19)計算標定結果的重投影誤差;使用張正友標定法9張標定圖像情況下的進行標定,通過式(19)計算標定結果的重投影誤差。兩種標定方法的重投影誤差對比如圖3所示。
5 結論
本文提出了一種基于稀疏字典學習的攝像機標定方法,該方法可以在一幅圖像上估計出合適的成像參數初值,并進一步優化所有標定參數。我們分別計算了標定參數的精度、重投影誤差。通過分別對3幅圖像和9幅圖像的張氏標定法進行比較,得出:(1)僅用一幅具有較大特征點的標定物對攝像機進行標定,標定參數的精度可達99%;(2)計算的重投影誤差在0.5像素的合理范圍內。該方法使得標定操作簡單,達到了滿意的標定精度,進一步提高了機器視覺檢測的自動化程度和檢測效率。
參考文獻:
[1] Semeniuta, Oleksandr. Analysis of Camera Calibration withRespect to Measurement Accuracy[J]. Procedia Cirp, 41:765-770.
[2] Zhang G, He J, Yang X. Calibrating camera radial distortionwith cross-ratio invariability[J]. Optics and Laser Technology,2003, 35(6):457-461.
[3] Faugeras o D, Luong Q T, Maybank S J. Camera Self-Calibra-tion: Theory and Experiments[C]. European Conference onComputer Vision. Springer-Verlag, 1998.
[4] Zhang Z. Camera calibration with one-dimensional objects[J].lEEE Transactions on Pattern Analysis and Machine Intelli-gence, 2004, 26(7):0-899.
[5] Zhang Z. A Flexible New Technique for Camera Calibration[J]. lEEE Transactions on Pattern Analysis and Machine Intel-ligence, 2000, 22(11):1330-1334.
[6] AHARON, M. An algorithm for designing overcomplete dic-tionaries for sparse representation[J]. IEEE Transactions onSignal Processing, 2006, 54.
[7] Li Y, Li F, Bai B. Image fusion via nonlocal sparse K-SVDdictionary learning[J]. Applied Optics, 2016,55(7):1814-1826.
[8] Renjie WU, Kamata S. A Similar K-SVD Optimization Algo-rithm Generalizing the K-Means and the Bayesian tracking[J].Journal of Parasitology, 2013,57(5 7) : 1145-1168.
[9] Cha S., Yoon S. and Tappert C., Enhancing Binary FeatureVector Similarity Measures[R], CSIS Reports, 2005.