(轉(zhuǎn)載請(qǐng)注明出處)
使用SDK: Kinect for Windows SDK v2.0 public preview1408
根據(jù)前一節(jié)的說明,這節(jié)就是關(guān)于面部特征對(duì)齊的。
接口為IFaceAlignment,因?yàn)镾DK還在Beta中,提供官網(wǎng)的連接可能會(huì)失效,所以不提供了。
需要可以到微軟官方查詢。目前,面部特征對(duì)齊主要可以干:
0. 獲取面部外框 ―― 面部幀也能。但是經(jīng)測(cè)試,精度高得多,抖動(dòng)大概在幾像素內(nèi)
1. 獲取頭部旋轉(zhuǎn)中心 ――結(jié)果是一個(gè)相機(jī)空間坐標(biāo),大致位置就是頸部中心
2. 獲取頭部旋轉(zhuǎn)四元數(shù) ―― 面部幀也能。但是這個(gè)精度高,抖動(dòng)小,抖動(dòng)范圍大致在3°以內(nèi)。
3. 獲取動(dòng)畫單元 ―― 目前有高達(dá)17種動(dòng)畫單元(高達(dá):誰叫我....)
等等....
動(dòng)畫聲明如下:
(FACS)AU: Action Unit,動(dòng)作單元 參考前一節(jié)
(FACS)AD: Action Descriptor, 動(dòng)作描述符,和AU差不多。
FaceShapeAnimations_JawOpen:
(微軟目前還沒有進(jìn)行說明)就是將下巴張開,下巴張開不一定是張開嘴巴。
FACS編碼應(yīng)該是指AU26(Jaw Drop)
浮點(diǎn)模擬量范圍 [0, 1], 都快掉下巴了,才到1,個(gè)人建議閾值0.8
FaceShapeAnimations_LipPucker:
撅嘴,FACS編碼: AU18
浮點(diǎn)模擬量范圍 [0, 1], 本人最大值0.8X.......
FaceShapeAnimations_JawSlideRight:
下巴往右滑動(dòng), FACS編碼: R-AD30
浮點(diǎn)模擬量范圍
[-1, 1],
負(fù)數(shù)表示往左(L-AD30),本人最大值0.2X......
FaceShapeAnimations_LipStretcherRight:
嘴角向右拉伸, FACS編碼: R-AU20
浮點(diǎn)模擬量范圍
[0, 1]
FaceShapeAnimations_LipStretcherLeft:
嘴角向左拉伸, FACS編碼: L-AU20
浮點(diǎn)模擬量范圍
[0, 1]
FaceShapeAnimations_LipCornerPullerLeft:
拉動(dòng)嘴角傾斜向左上,
FACS編碼: L-AU12
浮點(diǎn)模擬量范圍 [0, 1]
FaceShapeAnimations_LipCornerPullerRight:
拉動(dòng)嘴角傾斜向右上,
FACS編碼: R-AU12
浮點(diǎn)模擬量范圍 [0, 1]
FaceShapeAnimations_LipCornerDepressorLeft:
拉動(dòng)嘴角向左下傾斜, FACS編碼: L-AU15
浮點(diǎn)模擬量范圍 [0, 1]
FaceShapeAnimations_LipCornerDepressorRight:
拉動(dòng)嘴角向右下傾斜, FACS編碼: R-AU15
浮點(diǎn)模擬量范圍 [0, 1]
FaceShapeAnimations_LeftcheekPuff:
鼓起左臉頰, FACS編碼: L-AD34
浮點(diǎn)模擬量范圍 [0, 1]
FaceShapeAnimations_RightcheekPuff:
鼓起右臉頰, FACS編碼: R-AD34
浮點(diǎn)模擬量范圍 [0, 1]
FaceShapeAnimations_LefteyeClosed:
閉左眼, FACS編碼: L-AU43
浮點(diǎn)模擬量范圍 [0, 1]
FaceShapeAnimations_RighteyeClosed:
閉右眼, FACS編碼: R-AU43
浮點(diǎn)模擬量范圍 [0, 1]
(戴著眼鏡或者眼睛比較小、離得遠(yuǎn)的可能就直接識(shí)別為閉著眼睛了)
FaceShapeAnimations_RighteyebrowLowerer:
右皺眉, FACS編碼: R-AU4
浮點(diǎn)模擬量范圍 [-1, 1], 負(fù)數(shù)表示右眉上挑(R-AU1+2)
FaceShapeAnimations_LefteyebrowLowerer:
左皺眉, FACS編碼: L-AU4
浮點(diǎn)模擬量范圍 [-1, 1], 負(fù)數(shù)表示左眉上挑(L-AU1+2)
FaceShapeAnimations_LowerlipDepressorLeft:
拉動(dòng)下唇向左下, FACS編碼: L-AU16
浮點(diǎn)模擬量范圍 [0, 1]
FaceShapeAnimations_LowerlipDepressorRight:
拉動(dòng)下唇向右下, FACS編碼: R-AU16
浮點(diǎn)模擬量范圍 [0, 1]
共計(jì)17個(gè)單元。使用IFaceAlignment::GetAnimationUnits獲取
大致步驟: (參考面部幀)
不同于面部幀的:
創(chuàng)建高清面部幀源: CreateHighDefinitionFaceFrameSource
創(chuàng)建面部特征對(duì)齊: CreateFaceAlignment
使用高清面部幀源,輪詢還是事件隨意啦,注意跟蹤id丟失或者無效。
獲取到正確的高清面部幀后,使用
IHighDefinitionFaceFrame::GetAndRefreshFaceAlignmentResult
刷新面部特征對(duì)齊對(duì)象,之后就可以獲取前面所說的4個(gè)基本東西了。
這個(gè)東西可能會(huì)消耗比普通面部幀更大的計(jì)算機(jī)資源,所以我們這次就對(duì)一個(gè)人跟蹤即可。
效果如下:
(自然也需要"NuiDatabase"文件夾,但是創(chuàng)建高清面部幀的耗時(shí)遠(yuǎn)遠(yuǎn)小于普通面部幀(感覺不到 vs 5秒鐘))
下載地址: CSDN抽了? 上傳了看不到,可以的話,請(qǐng)到筆者的資源列表里面看看,不行再向筆者索要吧