李杰,王婷,邢笑笑
(商洛學院,陜西商洛 726000)
人體的幾何特征是判斷和識別任務信息的一項重要參數,在很多領域都有所應用[1]。例如:在刑事偵查方面,利用拍攝到的嫌疑犯的背影圖像來確定目標任務的身高信息,可以縮小搜查范圍以提升破案效率;在智能交通領域里,利用圖像測量技術可以快速地檢測出身高條件符合優惠政策的小孩,提高乘車效率,減少乘車擁堵現象的發生;在智慧醫療領域,利用圖像檢測技術快速檢測出人們的身高,大大提高了體檢效率。由于人們對工作效率的需求,使得基于圖像的身高測量算法有了重要的研究意義和應用前景。
近年來,由于數字圖像處理技術的廣泛應用,基于圖像的身高測量算法的研究引起了研究人員極大的興趣。
在有關圖像測量的基礎方面,19 世紀70 年代初期人們采用圖像相機標定[2]的研究方法,在圖像物體測量的多個角度研究圖像和實際環境中物體的相互對應關系,并初步建立起了基于相機校準的線性變換模型,該線性模型的參數可以通過求解線性方程組來得到。
董秋雷等[3]提出了在高度校準應用場景中實時測量人體高度的算法。甘志杰等[4]提出了利用大津自適應閾值分割的算法和高速連接區域標記的算法,通過事先獲取的人體位置坐標初步測量身高信息,然后根據相機上的成像模型對測量結果進行修正,獲得了相對準確的身高信息。張燁等[5]提出一種單目視頻未標定狀態下的人體運動測量系統設計方案,該方案采用極大似然估計算法求解場景中的消失點和消失線,根據射影變換的交比不變量確定人體實時身高。方強[6]將Grabcut圖像分割算法運用到嬰兒的身高測量中,取得了較好的測量效果。本文將單視幾何的測量算法應用到身高測量中,這種身高測量算法與傳統的身高測量方法相比不需要其他復雜的儀器,僅用一張圖片即可完成對身高的測量,節省了測量成本,并能在一定程度上降低測量誤差。
平面場景的相機標定是基于單視幾何圖像測量的關鍵技術,其目的在于尋找單視世界空間坐標系和單視像素坐標系之間的映射關系,稱之為投影矩陣。如果求出了單視幾何中世界空間坐標系和像素坐標系之間的映射關系,就可以根據圖像的像素坐標推導出映射點的世界坐標。相機標定一般利用直接線性變換法[7]來確定映射關系的參數,根據相機周邊圖像與相機物體的運動關系,確定基于相機周邊圖像的立體幾何直接線性變換模型,并通過直接求解線性方程組來準確估計線性變換模型的具體參數。
利用直接線性變換對相機進行標定時是將像點和物點的成像幾何關系在齊次坐標系下寫成透視投影矩陣的形式如公式(1)所示:

公式(1)中(u,v,1)圖像坐標系下點的齊次坐標,(Xw,Yw,Zw)為世界坐標系下空間點的歐式坐標,P為3*4的透視投影矩陣[8],S為未知尺度因子。由于物點在測量平面內,故可讓世界坐標系下Zw=0,消去S并將公式(1)展開可得到公式(2):

令:

可用矩陣將公式(2)表示為公式(3)所示:

由公式(3)可知,只要求出m就可以求出相機的內外部參數,從而知道圖像坐標系與世界坐標系之間的轉換關系。
最小二乘法[9]也簡稱最小平均式方法,是一種數學優化技術,它通過數學方法計算最小化誤差的平方和尋找函數的最佳函數匹配,可以求得未知的數據,使得求得的已知數據和實際數據之間誤差的平方和達到最小。
以孤石B為研究對象對其進行力學分析,孤石受到重力G作用,支持力N及其他外部作用力F1、F2等。假定孤石B在下部支撐孤石A接觸面的傾角為θ,βi為外部作用力與水平方向夾角,孤石傾倒時繞支點O進行,O點到重力作用線的距離為x,di為O點到F作用力的力臂。本文分析中皆以接觸面方向為X軸,接觸面法線方向為Y軸,則孤石B的力學平衡方程為:
兩個變量(x,y)之間的關系通??梢缘玫綆讓祿?x1,y1)、(x2,y2)……(xm,ym),其中m為樣本容量,即實驗次數,xi,yi分別表示任意一組實驗x和y的數值。將這些數據繪制在X-Y直角坐標系中,如果這些點靠近直線,則選擇用直線表示,如公式(4)所示:

其中:a0、a1是任意實數。
令:

將公式(4)代入公式(5)中可得:

當 ∑(Yi-Yj)平方最小時,可用函數φ對a0、a1求偏導數,令這兩個偏導數等于零,可得到兩個關于a0、a1為未知數的兩個方程組,將求解出來的a0和a1帶到公式(4)中,此時的Yj=a0+a1X就是回歸求得的一元線性方程,即數學模型。
在回歸過程中,對于所有回歸集合包括任何數據點(x1,y1)、(x2,y2)……(xm,ym)不可能在回歸的方程中。為了評估相關性,可以使用相關系數R、統計系數F、殘差標準偏差S 來判斷。R 越接近1,其相關性就越高,|R| 越大越好,S 越接近0越好。

通過計算可得到最小二乘法的解為:

求出m的值后就可將物點的像素坐標帶入到公式(3)中從而求得像素點對應的世界坐標,求得平面內兩個點的長度,其長度公式為:

在同一圖像平面內,知道四個點的像素坐標和對應的世界坐標便可求得m,利用圖像上人物最高點、最低點的像素坐標和公式(3)就可以求出人物最高點和最低點的像素坐標對應的世界坐標,進而達到測量人體身高的目的。本文設計的身高測量算法有以下步驟:
(1)圖像灰度化處理。首先對帶測量的人物圖片進行灰度化處理,相對于彩色圖像而言,將圖像轉化為灰度圖像的意義主要有兩個,一是相比彩色圖像,灰度圖像所占的內存更小,運算速度更快;二是轉化為灰度圖像后可以在視覺上增加對比,突出人體的目標區域。
(2)進行相機標定。獲取目標圖像中任意四個點的像素坐標,在現實世界中進行測量計算四個點對應的世界坐標,利用公式(8)求出m的值,知道圖像中像素坐標系和世界坐標系之間的映射關系。
(3)計算人體的身高。在求得m的值后,獲取目標圖像中人物最高點和最低點的像素坐標,并將其帶入公式(3)中求得人物最高點和最低點對應的世界坐標,利用公式(9)求出計算出人體的身高,達到測量目的。
本文運用單視幾何算法在Matlab 平臺上編寫程序實現對人體身高的測量,在5幅圖像上進行測試,圖像編號為圖a到圖e。在圖像進行測試時,首先要選取每幅圖像上四個點的世界坐標,在選取世界坐標后,通過鼠標選取世界坐標在圖像中對應的像素坐標,計算出m的值,然后通過鼠標獲取目標圖像中人物最高點和最低點的像素坐標并求出對應的世界坐標,利用公式(9)計算出人體的身高。
為了更好地驗證測量算法的有效性,對五幅圖像中的每幅圖像進行了三次測試,取測量的平均值與真實身高來計算相對誤差,測試結果如表1所示。

表1 測試結果及相對誤差
由表1 可以看出,測量的相對誤差在0.231%以內,測量效果較好,能夠滿足測量要求。但測量結果與真實值之間還是存在誤差,分析其產生的原因主要有:(1)圖像中四個頂點的世界坐標為手動測量,存在一定誤差,圖像中四個頂點的像素坐標和人身體最高、最低點的像素坐標也是手動獲取,存在一定誤差;(2)拍攝圖片的角度和目標人物身體的站姿也會導致誤差的產生。因此,產生誤差的原因有多個方面,以后的工作主要致力于對該算法測量的準確度進行深入的研究。
本文主要是以單視幾何為基礎設計身高測量的算法,整個身高測量算法的實現在以Matlab 中完成。該算法的設計思路就是建立圖像坐標系和世界坐標系,根據單視幾何方法求得圖像坐標系和世界坐標系之間的映射關系,并根據這種映射關系,在圖像上取目標人物最低點與最高點的像素坐標并將其轉換成世界坐標,利用兩點間距離公式即可測得圖像上人體的身高信息。與傳統身高測量方法相比,該算法具有成本低、測量速度快、準確度高等特點。對于其他的測量領域來說,該方法具有一定的借鑒意義。