太平洋在線企業(yè)建站系統(tǒng)華聯(lián)股份股票
??ViewFaceCore模塊中的FaceQuality支持預(yù)測人臉質(zhì)量,最初以為是預(yù)測人體體重,實際測試過程中才發(fā)現(xiàn)是評估人臉圖片質(zhì)量,主要調(diào)用Detect函數(shù)執(zhí)行圖片質(zhì)量檢測操作,其函數(shù)原型如下所示:
//// 摘要:// 人臉質(zhì)量評估//// 參數(shù):// image:// 人臉圖像信息//// info:// 面部信息// 通過 FaceDetector(FaceImage) 獲取//// points:// info 對應(yīng)的關(guān)鍵點坐標(biāo)// 通過 FaceMark(FaceImage, FaceInfo) 獲取//// type:// 質(zhì)量評估類型public QualityResult Detect<T>(T image, FaceInfo info, FaceMarkPoint[] points, QualityType type)// 質(zhì)量評估結(jié)果public class QualityResult : IFormattable{//// 摘要:// 質(zhì)量評估等級public QualityLevel Level { get; set; }//// 摘要:// 質(zhì)量評估分?jǐn)?shù)// 越大越好,沒有范圍限制public float Score { get; set; }//// 摘要:// 返回可視化字符串public override string ToString()}// 摘要:// 質(zhì)量評估類型[Description("質(zhì)量評估類型")]public enum QualityType{//// 摘要:// 亮度評估// 亮度評估就是評估人臉區(qū)域內(nèi)的亮度值是否均勻正常,存在部分或全部的過亮和過暗都會是評價為LOW。[Description("亮度評估")]Brightness,//// 摘要:// 清晰度評估// 清晰度這里是傳統(tǒng)方式通過二次模糊后圖像信息損失程度統(tǒng)計的清晰度。[Description("清晰度評估")]Clarity,//// 摘要:// 完整度評估// 完整度評估是樸素的判斷人臉是否因為未完全進入攝像頭而造成的不完整的情況。該方法不適用于判斷遮擋造成的不完整。[Description("完整度評估")]Integrity,//// 摘要:// 姿態(tài)評估// 此姿態(tài)評估器是傳統(tǒng)方式,通過人臉5點坐標(biāo)值來判斷姿態(tài)是否為正面。[Description("姿態(tài)評估")]Pose,//// 摘要:// 姿態(tài)評估(深度)// 此姿態(tài)評估器是深度學(xué)習(xí)方式,通過回歸人頭部在yaw、pitch、roll三個方向的偏轉(zhuǎn)角度來評估人臉是否是正面。// 需要模型 pose_estimation.csta[Description("姿態(tài)評估(深度)")]PoseEx,//// 摘要:// 分辨率評估// 判斷人臉部分的分辨率。[Description("分辨率評估")]Resolution,//// 摘要:// 清晰度評估(深度)// 需要模型 quality_lbn.csta// 需要模型 face_landmarker_pts68.csta[Description("清晰度評估(深度)")]ClarityEx,//// 摘要:// 遮擋評估// 需要模型 face_landmarker_mask_pts5.csta[Description("遮擋評估")]Structure}
??調(diào)用FaceQuality進行人臉質(zhì)量檢測主要包括以下步驟:
??1)調(diào)用faceDetector類獲取圖片的人臉信息;
??2)調(diào)用FaceLandmarker類獲取人臉關(guān)鍵點信息;
??3)調(diào)用FaceQuality類的Detect函數(shù),根據(jù)人臉信息、人臉關(guān)鍵位置信息、質(zhì)量評估類型等返回人臉質(zhì)量評估結(jié)果。
??根據(jù)上述步驟編寫了FaceQuality類的測試程序(本文中的所有測試用圖均來自百度圖片),測試效果截圖如下所示:
??ViewFaceCore模塊中的EyeStateDetector支持檢測人臉中眼睛的開閉狀態(tài),主要調(diào)用Detect函數(shù)執(zhí)行眼睛狀態(tài)檢測操作,其函數(shù)原型如下所示:
// 摘要:// 眼睛狀態(tài)檢測。// 眼睛的左右是相對圖片內(nèi)容而言的左右。// 需要模型 eye_state.csta//// 參數(shù):// image:// 人臉圖像信息//// points:// 關(guān)鍵點坐標(biāo)// 通過 FaceMark(FaceImage, FaceInfo) 獲取public EyeStateResult Detect<T>(T image, FaceMarkPoint[] points)//// 摘要:// 眼睛狀態(tài)結(jié)果public class EyeStateResult : IFormattable{//// 摘要:// 左眼狀態(tài)public EyeState LeftEyeState { get; set; }//// 摘要:// 右眼狀態(tài)public EyeState RightEyeState { get; set; }//// 摘要:// 返回可視化字符串public override string ToString(){return ToString(null, null);}}//// 摘要:// 眼睛狀態(tài)[Description("眼睛狀態(tài)")]public enum EyeState{//// 摘要:// 眼睛閉合[Description("閉眼")]Close,//// 摘要:// 眼睛張開[Description("睜眼")]Open,//// 摘要:// 不是眼睛區(qū)域[Description("不是眼睛區(qū)域")]Random,//// 摘要:// 狀態(tài)無法判斷[Description("無法判斷")]Unknown}
??調(diào)用EyeStateDetector進行眼睛狀態(tài)檢測主要包括以下步驟:
??1)調(diào)用faceDetector類獲取圖片的人臉信息;
??2)調(diào)用FaceLandmarker類獲取人臉關(guān)鍵點信息;
??3)調(diào)用EyeStateDetector類的Detect函數(shù)獲取指定人臉的左右眼睛的開閉狀態(tài)。
??根據(jù)上述步驟編寫了EyeStateDetector類的測試程序,測試效果截圖如下所示(人臉越清晰,檢測效果越準(zhǔn)確)。
參考文獻:
[1]https://github.com/ViewFaceCore/ViewFaceCore