華東理工大學 李承澤 毛丹程 葉秉華 謝思遠
在相機標定中,人物目標定位是相當重要的應用領域。人物識別的準確性與快速性決定了系統的可靠性。本實驗使用單目相機,基于MATLAB軟件對所拍攝的照片進行標定,并獲得鏡頭參數。進而配合Yolo v3圖像識別技術,對圖片中的人物進行識別而后獲取相應的目標定位。實驗結果表明,本實驗設計能取得良好的人物目標識別并定位的結果。
三維世界的物體標定在當今的生活中起到的作用越來越明顯,在實際運用中,精準快速地識別一片區域內的人數,統計瞬時人流作為參考數據,也可以協助分散大量人流,避免人員的大量聚集帶來的危險。監控設備也可以通過該技術來自動提示敏感區域的人員出入信息,保護用戶自身的利益安全。精確,快速的識別與定位是人們所一直追求的,而基于不同算法的標定,三維識別本領各有千秋。本實驗使用單目相機來獲得三維世界目標,以MATLAB及Yolo v3作為工具。在三維物體轉換為二維圖像時,相機自身引起的相機畸變會引來圖像失真,影響識別精確度。本實驗使用MATLAB的相機標定功能技術成熟,其采用的張正友方法精度高,公式理論成熟,且通過MATLAB操作便捷。而在圖像識別技術上,通過Yolo v3識別物體輪廓,找到二維圖像中的物體坐標,最后使用張正友方法的反向思維,實現物體的三維定位。使用工具便捷,步驟簡潔,趣味性強,適合相機標定初學者。
該方法是張正友教授于1998年提出的單平面棋盤格的相機標定方法。傳統的標定方法雖然標定精度較高,可用于任意的攝像機模型,但是標定的過程復雜,需要高精度的已知結構信息。張正友方法是介于傳統標定方法與自標定方法之間的一種簡易標定方法,該方法根據位于同一平面上的特征點可以建立起關于相機內部參數的兩個方程這一特點,提出了通過不同位置和方向的幾個平面來求解相機的內參矩陣,然后再計算相機的外參矩陣。這種標定方法不需要昂貴的標定材料,只需要一張打印出來的棋盤格,因此成本較為低廉,同時也具備良好的魯棒性,是一種靈活而又簡便的相機標定方法。
相機標定主要用于進行像素坐標到三維世界坐標的轉換。在本次實驗中,主要通過兩個步驟進行,第一步,是像素坐標到標定板坐標的轉換,第二步,是標定板坐標到世界坐標的轉換。
其轉換公式如下:
Step1:像素坐標轉換為標定板坐標

關于扭轉因子的求解:
在像素坐標到世界坐標的過程中根據公式(1),并且在獲得了圖片中相關已知的點坐標之后可以求得。
Step2:將求得的標定板坐標轉換為未知的世界坐標


圖1 標定板圖片


本小節主要對相機標定的過程進行詳細介紹,主要包括相機標定所需的準備工作以及相關參數的計算,如相機內參、外參,以及通過yolov3進行人像識別進而獲取其坐標的過程。
對實驗所用到的攝像機進行標定,則首先需要求解該攝像機的內參,此過程中,本文基于matlab自帶工具欄中的“camera calibrator”平臺對所拍得的一系列標定板照片進行標定。
所用到的標定板圖片如圖1所示,本文用A3尺寸的紙張打印,得到格子邊長為5.88cm的標定板。而后將紙張平放在桌面,使用實驗所用攝像機對標定板從多個角度進行拍照,將所得的20張相片導入到上述應用軟件中,點擊“calibrate”按鈕后進行相機標定,在運行后可以初步得到角點識別后的結果,如圖2所示。其中對所有圖片的識別都存在一個統一的識別起點,即坐標原點(Checkerboard Origin),因為實驗中所用到的張氏標定法默認標定板在三維坐標中,因此只需要識別X和Y軸兩個坐標方向,在成功識別角點之后,即可進行后續的計算。

圖2 角點識別結果
攝像機標定后得到的內參如下所示:

接下來是對所需目標定位的照片進行外參的計算,外參的計算仍然是基于上述matlab平臺進行。
目標定位首先需要進行目標識別,此過程是應用python+yolov3實現的對圖片中的人物進行識別,其識別后的結果如圖3(a)所示,根據人物外邊框底邊的兩個點可以得到目標人物在圖片中的像素坐標為(1320,3046)。識別后輸出的像素坐標信息會在后續的目標定位中使用。在此圖片中人為確定了世界坐標系原點(如圖3(b)中藍色點所示,水平方向為x軸,豎直方向為y軸),以便于后續對坐標的計算。

圖3 人物識別及目標定位結果
在經過與內參計算相同的步驟之后可以得到旋轉矩陣及平移向量,如表1所示。

表1 相機外參
至此,目標定位所需測量的參數均已獲取,在后續將根據以上參數以及第二小節中的公式應用matlab進行相關計算。
將上一小節計算后得到像素坐標參數帶入到公式(1)、(2)中,計算后得到相應的世界坐標結果,其示意圖如圖3(b)所示,藍色點為定義的世界坐標系原點,紅色點為識別后的定位結果。為了檢測目標定位的準確性,本文后續在圖2中取了幾個不同的像素點進行檢驗,其定位結果以及定位誤差如表2所示。其中定位誤差為圖像中檢測點的實際三維坐標到定位坐標的歐氏距離(cm)。

表2 目標定位結果及誤差分析
本章節主要通過yolov3對圖片中的人物進行識別并且獲得其坐標,結合相機標定的原理進行目標定位。此種標定方法可以實現初步的目標定位,但是通過比對標定坐標的結果與已知坐標可知,標定的結果存在一定誤差,根據實驗過程分析誤差產生的原因:(1)在求解內參的過程中照片數量較少,可能在運算過程中存在一定誤差。(2)人物識別存在一定誤差,通過圖2可以看到,人物識別的邊框其實并不是嚴格與人物外邊緣相切,所以在獲取像素坐標時可能存在十幾像素的誤差,從而對后續計算產生影響。(3)因為在應用參數計算的過程中,存在有效數字的取舍,所以可能導致所取的計算參數與實際參數存在一定出入,導致誤差出現。
但是分析計算結果與實際世界坐標的歐氏距離得出結論,可以在一定誤差范圍內,對圖片中的目標人物進行三維定位。
后續的改進意見:
(1)可以采用精度更高、尺寸更大的標定板來使內外參等計算所需的參數更加接近真實值。
(2)對目標識別程序進行改進,使其可以輸出更加精確的人物像素坐標。
(3)在試驗場地增設坐標尺,從而減少因世界坐標系的測量誤差對實驗結果造成的影響。