李杰,王婷,邢笑笑
(商洛學(xué)院,陜西商洛 726000)
人體的幾何特征是判斷和識別任務(wù)信息的一項重要參數(shù),在很多領(lǐng)域都有所應(yīng)用[1]。例如:在刑事偵查方面,利用拍攝到的嫌疑犯的背影圖像來確定目標(biāo)任務(wù)的身高信息,可以縮小搜查范圍以提升破案效率;在智能交通領(lǐng)域里,利用圖像測量技術(shù)可以快速地檢測出身高條件符合優(yōu)惠政策的小孩,提高乘車效率,減少乘車擁堵現(xiàn)象的發(fā)生;在智慧醫(yī)療領(lǐng)域,利用圖像檢測技術(shù)快速檢測出人們的身高,大大提高了體檢效率。由于人們對工作效率的需求,使得基于圖像的身高測量算法有了重要的研究意義和應(yīng)用前景。
近年來,由于數(shù)字圖像處理技術(shù)的廣泛應(yīng)用,基于圖像的身高測量算法的研究引起了研究人員極大的興趣。
在有關(guān)圖像測量的基礎(chǔ)方面,19 世紀(jì)70 年代初期人們采用圖像相機(jī)標(biāo)定[2]的研究方法,在圖像物體測量的多個角度研究圖像和實際環(huán)境中物體的相互對應(yīng)關(guān)系,并初步建立起了基于相機(jī)校準(zhǔn)的線性變換模型,該線性模型的參數(shù)可以通過求解線性方程組來得到。
董秋雷等[3]提出了在高度校準(zhǔn)應(yīng)用場景中實時測量人體高度的算法。甘志杰等[4]提出了利用大津自適應(yīng)閾值分割的算法和高速連接區(qū)域標(biāo)記的算法,通過事先獲取的人體位置坐標(biāo)初步測量身高信息,然后根據(jù)相機(jī)上的成像模型對測量結(jié)果進(jìn)行修正,獲得了相對準(zhǔn)確的身高信息。張燁等[5]提出一種單目視頻未標(biāo)定狀態(tài)下的人體運(yùn)動測量系統(tǒng)設(shè)計方案,該方案采用極大似然估計算法求解場景中的消失點(diǎn)和消失線,根據(jù)射影變換的交比不變量確定人體實時身高。方強(qiáng)[6]將Grabcut圖像分割算法運(yùn)用到嬰兒的身高測量中,取得了較好的測量效果。本文將單視幾何的測量算法應(yīng)用到身高測量中,這種身高測量算法與傳統(tǒng)的身高測量方法相比不需要其他復(fù)雜的儀器,僅用一張圖片即可完成對身高的測量,節(jié)省了測量成本,并能在一定程度上降低測量誤差。
平面場景的相機(jī)標(biāo)定是基于單視幾何圖像測量的關(guān)鍵技術(shù),其目的在于尋找單視世界空間坐標(biāo)系和單視像素坐標(biāo)系之間的映射關(guān)系,稱之為投影矩陣。如果求出了單視幾何中世界空間坐標(biāo)系和像素坐標(biāo)系之間的映射關(guān)系,就可以根據(jù)圖像的像素坐標(biāo)推導(dǎo)出映射點(diǎn)的世界坐標(biāo)。相機(jī)標(biāo)定一般利用直接線性變換法[7]來確定映射關(guān)系的參數(shù),根據(jù)相機(jī)周邊圖像與相機(jī)物體的運(yùn)動關(guān)系,確定基于相機(jī)周邊圖像的立體幾何直接線性變換模型,并通過直接求解線性方程組來準(zhǔn)確估計線性變換模型的具體參數(shù)。
利用直接線性變換對相機(jī)進(jìn)行標(biāo)定時是將像點(diǎn)和物點(diǎn)的成像幾何關(guān)系在齊次坐標(biāo)系下寫成透視投影矩陣的形式如公式(1)所示:
公式(1)中(u,v,1)圖像坐標(biāo)系下點(diǎn)的齊次坐標(biāo),(Xw,Yw,Zw)為世界坐標(biāo)系下空間點(diǎn)的歐式坐標(biāo),P為3*4的透視投影矩陣[8],S為未知尺度因子。由于物點(diǎn)在測量平面內(nèi),故可讓世界坐標(biāo)系下Zw=0,消去S并將公式(1)展開可得到公式(2):
令:
可用矩陣將公式(2)表示為公式(3)所示:
由公式(3)可知,只要求出m就可以求出相機(jī)的內(nèi)外部參數(shù),從而知道圖像坐標(biāo)系與世界坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。
最小二乘法[9]也簡稱最小平均式方法,是一種數(shù)學(xué)優(yōu)化技術(shù),它通過數(shù)學(xué)方法計算最小化誤差的平方和尋找函數(shù)的最佳函數(shù)匹配,可以求得未知的數(shù)據(jù),使得求得的已知數(shù)據(jù)和實際數(shù)據(jù)之間誤差的平方和達(dá)到最小。
以孤石B為研究對象對其進(jìn)行力學(xué)分析,孤石受到重力G作用,支持力N及其他外部作用力F1、F2等。假定孤石B在下部支撐孤石A接觸面的傾角為θ,βi為外部作用力與水平方向夾角,孤石傾倒時繞支點(diǎn)O進(jìn)行,O點(diǎn)到重力作用線的距離為x,di為O點(diǎn)到F作用力的力臂。本文分析中皆以接觸面方向為X軸,接觸面法線方向為Y軸,則孤石B的力學(xué)平衡方程為:
兩個變量(x,y)之間的關(guān)系通常可以得到幾對數(shù)據(jù)(x1,y1)、(x2,y2)……(xm,ym),其中m為樣本容量,即實驗次數(shù),xi,yi分別表示任意一組實驗x和y的數(shù)值。將這些數(shù)據(jù)繪制在X-Y直角坐標(biāo)系中,如果這些點(diǎn)靠近直線,則選擇用直線表示,如公式(4)所示:
其中:a0、a1是任意實數(shù)。
令:
將公式(4)代入公式(5)中可得:
當(dāng) ∑(Yi-Yj)平方最小時,可用函數(shù)φ對a0、a1求偏導(dǎo)數(shù),令這兩個偏導(dǎo)數(shù)等于零,可得到兩個關(guān)于a0、a1為未知數(shù)的兩個方程組,將求解出來的a0和a1帶到公式(4)中,此時的Yj=a0+a1X就是回歸求得的一元線性方程,即數(shù)學(xué)模型。
在回歸過程中,對于所有回歸集合包括任何數(shù)據(jù)點(diǎn)(x1,y1)、(x2,y2)……(xm,ym)不可能在回歸的方程中。為了評估相關(guān)性,可以使用相關(guān)系數(shù)R、統(tǒng)計系數(shù)F、殘差標(biāo)準(zhǔn)偏差S 來判斷。R 越接近1,其相關(guān)性就越高,|R| 越大越好,S 越接近0越好。
通過計算可得到最小二乘法的解為:
求出m的值后就可將物點(diǎn)的像素坐標(biāo)帶入到公式(3)中從而求得像素點(diǎn)對應(yīng)的世界坐標(biāo),求得平面內(nèi)兩個點(diǎn)的長度,其長度公式為:
在同一圖像平面內(nèi),知道四個點(diǎn)的像素坐標(biāo)和對應(yīng)的世界坐標(biāo)便可求得m,利用圖像上人物最高點(diǎn)、最低點(diǎn)的像素坐標(biāo)和公式(3)就可以求出人物最高點(diǎn)和最低點(diǎn)的像素坐標(biāo)對應(yīng)的世界坐標(biāo),進(jìn)而達(dá)到測量人體身高的目的。本文設(shè)計的身高測量算法有以下步驟:
(1)圖像灰度化處理。首先對帶測量的人物圖片進(jìn)行灰度化處理,相對于彩色圖像而言,將圖像轉(zhuǎn)化為灰度圖像的意義主要有兩個,一是相比彩色圖像,灰度圖像所占的內(nèi)存更小,運(yùn)算速度更快;二是轉(zhuǎn)化為灰度圖像后可以在視覺上增加對比,突出人體的目標(biāo)區(qū)域。
(2)進(jìn)行相機(jī)標(biāo)定。獲取目標(biāo)圖像中任意四個點(diǎn)的像素坐標(biāo),在現(xiàn)實世界中進(jìn)行測量計算四個點(diǎn)對應(yīng)的世界坐標(biāo),利用公式(8)求出m的值,知道圖像中像素坐標(biāo)系和世界坐標(biāo)系之間的映射關(guān)系。
(3)計算人體的身高。在求得m的值后,獲取目標(biāo)圖像中人物最高點(diǎn)和最低點(diǎn)的像素坐標(biāo),并將其帶入公式(3)中求得人物最高點(diǎn)和最低點(diǎn)對應(yīng)的世界坐標(biāo),利用公式(9)求出計算出人體的身高,達(dá)到測量目的。
本文運(yùn)用單視幾何算法在Matlab 平臺上編寫程序?qū)崿F(xiàn)對人體身高的測量,在5幅圖像上進(jìn)行測試,圖像編號為圖a到圖e。在圖像進(jìn)行測試時,首先要選取每幅圖像上四個點(diǎn)的世界坐標(biāo),在選取世界坐標(biāo)后,通過鼠標(biāo)選取世界坐標(biāo)在圖像中對應(yīng)的像素坐標(biāo),計算出m的值,然后通過鼠標(biāo)獲取目標(biāo)圖像中人物最高點(diǎn)和最低點(diǎn)的像素坐標(biāo)并求出對應(yīng)的世界坐標(biāo),利用公式(9)計算出人體的身高。
為了更好地驗證測量算法的有效性,對五幅圖像中的每幅圖像進(jìn)行了三次測試,取測量的平均值與真實身高來計算相對誤差,測試結(jié)果如表1所示。
表1 測試結(jié)果及相對誤差
由表1 可以看出,測量的相對誤差在0.231%以內(nèi),測量效果較好,能夠滿足測量要求。但測量結(jié)果與真實值之間還是存在誤差,分析其產(chǎn)生的原因主要有:(1)圖像中四個頂點(diǎn)的世界坐標(biāo)為手動測量,存在一定誤差,圖像中四個頂點(diǎn)的像素坐標(biāo)和人身體最高、最低點(diǎn)的像素坐標(biāo)也是手動獲取,存在一定誤差;(2)拍攝圖片的角度和目標(biāo)人物身體的站姿也會導(dǎo)致誤差的產(chǎn)生。因此,產(chǎn)生誤差的原因有多個方面,以后的工作主要致力于對該算法測量的準(zhǔn)確度進(jìn)行深入的研究。
本文主要是以單視幾何為基礎(chǔ)設(shè)計身高測量的算法,整個身高測量算法的實現(xiàn)在以Matlab 中完成。該算法的設(shè)計思路就是建立圖像坐標(biāo)系和世界坐標(biāo)系,根據(jù)單視幾何方法求得圖像坐標(biāo)系和世界坐標(biāo)系之間的映射關(guān)系,并根據(jù)這種映射關(guān)系,在圖像上取目標(biāo)人物最低點(diǎn)與最高點(diǎn)的像素坐標(biāo)并將其轉(zhuǎn)換成世界坐標(biāo),利用兩點(diǎn)間距離公式即可測得圖像上人體的身高信息。與傳統(tǒng)身高測量方法相比,該算法具有成本低、測量速度快、準(zhǔn)確度高等特點(diǎn)。對于其他的測量領(lǐng)域來說,該方法具有一定的借鑒意義。