高泠溦 李志揚 鄧?yán)? 楊澤信 鄒穎



摘要:人臉朝向是判斷學(xué)生是否認真聽課的重要線索,而其中所涉及的物體姿態(tài)檢測技術(shù)一般需要6軸傳感器、KINECT等專業(yè)設(shè)備。本文提出了一種采用單攝像頭的便捷人臉朝向檢測算法,該算法在基準(zhǔn)照片和轉(zhuǎn)動后的照片中找出人臉的5對匹配特征點,然后根據(jù)光學(xué)成像原理,通過粒子群算法找出這些匹配特征點所對應(yīng)的旋轉(zhuǎn)矩陣,從而求出旋轉(zhuǎn)角度。實驗表明,對剛性物體該算法的測量精度可以達到2度左右。該方法可以廣泛用于人臉朝向檢測,或其他物體的姿態(tài)檢測。
關(guān)鍵詞:人臉檢測;人臉朝向;特征點;姿態(tài)估計;粒子群算法
中圖分類號:TP391? 文獻標(biāo)識碼:A
文章編號:1009-3044(2021)29-0105-03
Fast Face Orientation Detection Method Based on Feature Points
GAO Ling-wei, LI Zhi-yang, DENG Lei, YANG Ze-xin, ZOU Ying
(College of Physical Science and Technology, Central China Normal University, Wuhan 430079, China)
Abstract: Face orientation is an important clue to see whether a student is listening carefully, in which the ect posture detection usually requires professional equipment such as 6-axis sensor and KINECT. The paper proposed a convenient face orientation detection method using only a single camera. It first finds 5 pairs of matched face feature points from the reference photo and the rotated photo. Then it calculates by means of the particle swarm algorithm the rotation matrix and next the rotation angle of these pairs of feature points from the equations set up following geometrical optics. As the experiments show, a measurement accuracy of about 2 degrees can be reached for rigid ects. Therefor it can be widely used for face orientation detection and posture detection of other ects.
Key words:face detection; face orientation; feature point detection; attitude estimation;particle swarm algorithm
1引言
在全面防控疫情的背景下,各級各類學(xué)校積極開展線上教學(xué)[1]。網(wǎng)絡(luò)教學(xué)具有很多優(yōu)勢,例如,資源共享以及學(xué)習(xí)形式趨向自由化。但是網(wǎng)絡(luò)教學(xué)也帶來一些不便,例如難以實時監(jiān)測和把控學(xué)生的學(xué)習(xí)狀態(tài)。通過人體姿態(tài),特別是人臉朝向,可以判斷學(xué)生是否認真聽課。而對人臉或其他物體的姿態(tài)檢測一般需要專業(yè)硬件設(shè)備或輔助裝置,例如6 軸傳感器[2]、KI? NECT[3]、雙目攝像頭[4]以及輔助棋盤格[5]等。人體姿態(tài)估計也一直是計算機視覺中一個備受關(guān)注的研究熱點[6]。傳統(tǒng)的姿態(tài)估計算法基于結(jié)構(gòu)模型,往往應(yīng)用在二維圖場景中,受制于幾何模糊性,其精度一般較低;隨著深度學(xué)習(xí)的流行,近年來提出大量基于深度學(xué)習(xí)的檢測算法,例如R-CNN[7]、SSD[8]等,估算精度得到大幅提升。但深度學(xué)習(xí)需要準(zhǔn)備大量的訓(xùn)練數(shù)據(jù),尤其是基于視頻的機器學(xué)習(xí),在實時監(jiān)測方面更是經(jīng)常遭受硬件資源和網(wǎng)絡(luò)帶寬帶來的限制。
本文提出了一種采用單攝像頭的便捷人臉朝向檢測方法,該方法在基準(zhǔn)照片和轉(zhuǎn)動后的照片中找出人臉的5對匹配特征點,然后求出這些匹配特征點所對應(yīng)的旋轉(zhuǎn)矩陣,從而確定人臉朝向。該方法硬件設(shè)備簡單,不需要機器學(xué)習(xí)的前期訓(xùn)練,可以廣泛用于學(xué)生的學(xué)習(xí)狀態(tài)或其他物體的在線姿態(tài)檢測。
2基于匹配特征點的人臉朝向檢測算法
本文首先從監(jiān)測視頻中選擇兩幅不同時刻的人臉圖像A 和B,其中A為基準(zhǔn)。然后分別提取A和B 圖像的特征點,進一步對兩者的特征點進行匹配,選出其中5對匹配度較好的特征點。下面推導(dǎo)如何從這5對匹配特征點確定人臉在B時刻相對于A時刻的旋轉(zhuǎn)。
根據(jù)小孔成像原理,第i個特征點在 A 時刻的圖像坐標(biāo)(xiA,yiA)和其對應(yīng)的相機坐標(biāo)(XiA,YiA,ZiA)滿足如下方程:
方程(1)和(2)中,xc和yc為相機中心的圖像坐標(biāo),f為相機以單個像素寬度度量的焦距大小。同理可列出第i個特征點在 B 時刻的圖像坐標(biāo)(xiB,yiB)和其對應(yīng)的相機坐標(biāo)(XiB,YiB,ZiB)所滿足的方程,i=1,2,3,4,5。這樣總共可以列出10×2=20個方程,其中包含10×3=30個未知的相機坐標(biāo)。
進一步采用剛體近似,假設(shè)從A 時刻到B 時刻,5個特征點所對應(yīng)的相機坐標(biāo)的變化可以用同樣的旋轉(zhuǎn)矩陣R 和平移矢量[tx,ty,tz]描述,即:
其中i=1,2,3,4,5,這樣矩陣方程組(3)新增了5×3=15個方程,但是這15個方程新引入了3個未知的旋轉(zhuǎn)矩陣參數(shù)和3個平移矢量參數(shù)。這意味著方程組(1)-(3)共包含35個方程,36個未知數(shù),仍然無法求解。值得注意的是本文只關(guān)心與人臉朝向?qū)?yīng)的旋轉(zhuǎn)矩陣R,對相機坐標(biāo)的絕對值大小并不關(guān)心。實際上,方程組(1)-(3)是關(guān)于圖像坐標(biāo)和其對應(yīng)的相機坐標(biāo)的線性方程,將其比例縮放后旋轉(zhuǎn)矩陣R不變。因此我們可以通過歸一化處理來減少未知數(shù)數(shù)目。
在方程組(3)中分別令i=1和2,并將所得方程組相減可得,
進一步將方程組(5)兩邊分別除以Z1B 和Z1A,整理可得,
通過類似處理可知,方程組(7)中i=2可以分別用i=3,4,5代替,總共包含4×3=12個方程。每個方程右邊具有相同的矩陣系數(shù)Z1A1BR,而Z1A1BR本身包含1+3=4個未知數(shù)。除了矩陣系數(shù) Z1A1BR外,上述12個方程組還包含Z2B1B,Z2A1A,Z3B1B,Z3A1A,Z4B1B, Z4A1A,Z5B1B,和Z5A1A 8個未知參數(shù)。這樣12個方程共包含12個未知參數(shù),具有唯一解。從所求得旋轉(zhuǎn)矩陣R 即可知道人臉朝向。
3基于粒子群算法的方程求解原理
方程組(7)雖然具有唯一解,但它是一個高階方程,無法求出解析解。為此本文采用粒子群算法進行數(shù)值搜索求解?;驹砗筒襟E如下。
在采用粒子群算法求方程組(7)時,我們假設(shè)每個粒子的位置由Z1A1B、α、θ和 β預(yù)先確定,其中人臉先繞Z軸旋轉(zhuǎn)動α 角度,再繞X軸旋轉(zhuǎn)θ 角度,最后繞Y軸旋轉(zhuǎn)β 角度,這樣旋轉(zhuǎn)矩陣R可以寫為,
進一步記Z1A1BR為,
令i=2,將(9)代入(7),整理后有:
方程組(10)包含3 個方程數(shù),卻僅有2 個未知數(shù) Z2B1B 和 Z2A1A 。我們先根據(jù)方程組(10)的前兩個方程進行求解,整理后可得,
如果并將方程組(11)所求得的 Z2B1B 和 Z2A1A 代入方程組(10)第3個方程,并記方程左右兩邊的差值為,
一般情況下,d21不為零。只有當(dāng)Z1A1BR正確時,d21才為零。類似地分別令i=3,4,5,可得到d31,d41和d51。最后定義總誤差:
顯然,當(dāng)且僅當(dāng)總誤差d=0時,Z1A1BR才是正確解。因此總誤差d可以作為衡量Z1A1BR 的依據(jù)。
根據(jù)粒子群算法原理,首先在適當(dāng)范圍內(nèi)賦予每個粒子一個隨機初始位置(Z1A1B,α,θ,β)和隨機初始速度,并計算對應(yīng)的初始總誤差d。然后讓每個粒子不停地隨機移動搜索,在每個粒子每走一小步后計算并記錄每個粒子以及整個粒子群所找到的最小總誤差d。在每步移動過程中,所有粒子總是向其自身歷史誤差最小和整個粒子群誤差最小的位置隨機移動。這樣經(jīng)過多步搜索后,可以使總誤差d收斂到零。由于大量粒子在整個范圍內(nèi)隨機搜索,總有一個粒子恰好鄰近總誤差全局最小位置,因此粒子群算法不僅搜索效率高,速度快,而且不會陷入局部最小位置導(dǎo)致收斂失敗或精度降低。
4實驗結(jié)果
首先本文在不同距離和角度拍攝了多幅棋盤格照片,通過Matlab的相機標(biāo)定工具箱對相機進行了標(biāo)定,確定了相機的焦距f和圖像中心坐標(biāo)(xc,yc)。然后在固定距離,讓棋盤格分別繞Z軸、X軸和Y軸旋轉(zhuǎn)預(yù)定角度,拍攝棋盤格轉(zhuǎn)動前后的照片,并采用前面所討論的方法計算棋盤格的旋轉(zhuǎn)角度。圖1(a)和(b)分別為棋盤格繞Y軸轉(zhuǎn)動前后的實驗照片,計算結(jié)果為(Z1A1B,α,θ,β)=(1.6725 , 0.1895, 47.6255 , 0.9002)。而用量角器測量的棋盤格繞Y軸轉(zhuǎn)動約為45度,計算結(jié)果與實測結(jié)果誤差在2度左右。
經(jīng)過上述標(biāo)定后,本文將上述方法用于人臉轉(zhuǎn)動監(jiān)測。圖2(a)和(b)分別為人臉轉(zhuǎn)動前后的示例實驗照片,其對應(yīng)的計算結(jié)果為(Z1A1B,α,θ,β)=(0.9941 , -30.3891 , 7.3351 , 1.7673),與實際觀察結(jié)果基本吻合。
圖2人臉轉(zhuǎn)動前后對比圖示例
5結(jié)論
本文提出了一種基于特征點的快速人臉朝向檢測方法,該方法采用單攝像頭,只需在轉(zhuǎn)動前后拍攝的兩幅照片中找出5 對匹配特征點就可以計算人臉或其他物體的相對旋轉(zhuǎn)角度。實驗表明,對剛性物體該算法的測量精度可以達到2度左右。可以廣泛用于人臉朝向檢測,以便統(tǒng)計判斷學(xué)生的學(xué)習(xí)狀態(tài),或用于其他物體的在線姿態(tài)檢測,以便進行定位或安全報警等。
參考文獻:
[1]李旭光,李忠毅.疫情下高職學(xué)生線上學(xué)習(xí)現(xiàn)狀的個案研究[J].品位經(jīng)典,2021(1):163-165.
[2]曾億山,劉睿.基于六軸傳感器的無線動作識別系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2018,37(10):98-101.
[3] Ashwini K,AmuthaR.Compressive sensing based recognition of human upper limb motions with kinect skeletal data[J].Mul?timedia Tools and Applications,2021,80(7):10839-10857.
[4]錢林杰.基于FPGA雙目攝像頭采集的實時立體成像研究與實現(xiàn)[D].南京:南京大學(xué),2018.
[5]熊云龍.基于六輪小車的虛擬智能管家系統(tǒng)及相關(guān)SLAM技術(shù)研究[D].武漢:華中師范大學(xué),2020.
[6]李崤河,劉進鋒.二維人體姿態(tài)估計研究綜述[J].現(xiàn)代計算機, 2019(22):33-37.
[7] RussakovskyO,DengJ,SuH,etal.ImageNet large scale visual recognition challenge[J].International Journal of Computer Vi? sion,2015,115(3):211-252.
[8] Li Q T,Chen Z C,ZhangB,etal.Detection of tailings dams us?ing high-resolution satellite imagery and a single shot multi? box detector in the jing –Jin –ji region,China[J].Remote Sens? ing,2020,12(16):2626.
【通聯(lián)編輯:唐一東】