RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

fireflyFace-RK3399人臉識(shí)別SDK介紹

firefly ? 來源:firefly ? 作者:firefly ? 2019-12-04 09:19 ? 次閱讀
人臉識(shí)別SDK

本SDK開發(fā)指南指導(dǎo)您如何安裝和配置開發(fā)環(huán)境,如何通過調(diào)用 SDK 提供的接口函數(shù)(API)進(jìn)行二次開發(fā)與系統(tǒng)集成。 用戶按照要求調(diào)用SDK提供的API即可實(shí)現(xiàn)使用 人臉檢測(cè)/跟蹤、活體識(shí)別、人臉識(shí)別等服務(wù)的目的。

1. 主要返回參數(shù)

public static final int SUCCESS = 0; //執(zhí)行接口返回成功

public static final int ERROR_INVALID_PARAM = -1; //非法參數(shù)

public static final int ERROR_TOO_MANY_REQUESTS = -2; //太多請(qǐng)求

public static final int ERROR_NOT_EXIST = -3; //不存在

public static final int ERROR_FAILURE = -4; // 執(zhí)行接口返回失敗

2. FaceInfo 人臉信息

public class FaceInfo { public Rect mRect;//人臉方框 public FaceAttribute mAttr;//人臉屬性 public FaceQuality mQuality;//人臉質(zhì)量 public Landmark mLandmark;//用于存儲(chǔ)5個(gè)關(guān)鍵點(diǎn)坐標(biāo)值,依次是左眼、右眼、鼻子、左側(cè)嘴唇、右側(cè)嘴唇。 }

3. FaceAttribute 人臉屬性

public class FaceAttribute { public int mGender;//性別 0:男性;1:女性 public int mEmotion;//表情 0:平靜;1:高興 public int mAge;//年齡 }

4. FaceQuality 人臉質(zhì)量

public class FaceQuality { public float mScore;//人臉質(zhì)量的置信度 public float mLeftRight;//左右角度 public float mUpDown;//上下角度 public float mHorizontal;//水平角度 public float mClarity;//圖片清晰度 public float mBright;//亮度 }

5. 構(gòu)造函數(shù)

static FaceAPP GetInstance()

功能???獲取單例的對(duì)象,人臉識(shí)別類采用單例模式,一個(gè)類Class只有一個(gè)實(shí)例存在

參數(shù)???無

返回值??FaceAPP類型的對(duì)象

實(shí)例代碼 :

private FaceAPP face = FaceAPP.GetInstance();

6. 識(shí)別人臉特征

int Recognize( Image image, float featureArray [][512], int size, List faceinfos, int[] res )

功能???識(shí)別提交的Image中的人臉特征,然后和featureArray里這些特征數(shù)組進(jìn)行比較,找出其中相似度

???????最高的返回特征數(shù)組的二維數(shù)組的索引

參數(shù)???image : 人臉圖片

??????featureArray : 特征數(shù)組的二維數(shù)組,特征值數(shù)組是存儲(chǔ)人臉特征信息的數(shù)組,由512個(gè)float組成。

??????size : 特征數(shù)組的二維數(shù)組大小

??????faceinfos : FaceInfo 清單?!队糜诒4娣祷厝四樤趫D片中的信息》

??????res: 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM,

????????image中人臉不在feature數(shù)組中返回 ERROR_NOT_EXIST, 》=0特征數(shù)組的索引

返回值??執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

float[][] featurelist = new float[][]; //存儲(chǔ)特征值的數(shù)組 int size = featurelist.lenth; int[] ret = new int[1]; byte[] tmpPos = new byte[1024]; FaceAPP.Image image = FaceAPP.GetInstance().new Image(); image.matAddrframe = mRgbaFrame.getNativeObjAddr(); face.Recognize( image, featurelist, size, tmpPos, res );

7. 識(shí)別人臉特征(根據(jù)特征值)

int Recognize( float[] feature, float featureArray [][512], int size, float[] high, int[] res )

功能???根據(jù)已經(jīng)存在的人臉特征,然后和featureArray里這些特征數(shù)組進(jìn)行比較,找出其中相似度

??????最高的返回特征數(shù)組的二維數(shù)組的索引值,返回相似度得分值。

參數(shù)???feature : 特征數(shù)組

??????featureArray : 特征數(shù)組的二維數(shù)組,特征值數(shù)組是存儲(chǔ)人臉特征信息的數(shù)組,

????????由512個(gè)float組成。

??????size : 特征數(shù)組的二維數(shù)組大小

??????high : float[]型,返回最大得分值

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM,

???????image中人臉不在feature數(shù)組中返回 ERROR_NOT_EXIST,

???????》=0特征數(shù)組的索引號(hào)

返回值

??????執(zhí)行成功 SUCCESS ??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

float[][] featurelist = new float[][]; //存儲(chǔ)特征值的數(shù)組 int size = featurelist.lenth; int[] ret = new int[1]; byte[] tmpPos = new byte[1024]; float[] feature; float[] high = float[1]; FaceAPP.Image image = FaceAPP.GetInstance().new Image(); image.matAddrframe = mRgbaFrame.getNativeObjAddr(); face.Recognize( feature, featurelist, size, high, tmpPos, res );

8. 檢測(cè)人臉

int Detect( Image image, List faceinfos, int[] res )

功能???檢測(cè)提交的圖片中的是否有人臉

參數(shù)???image : 人臉圖片,用于檢測(cè)的圖片

??????faceinfos : FaceInfo 清單?!队糜诒4娣祷厝四樤趫D片中的信息》

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

int[] ret = new int[1]; byte[] tmpPos = new byte[1024];//byte數(shù)組用于存位置信息 FaceAPP.Image image = FaceAPP.GetInstance().new Image(); //初始化 image.matAddrframe = mRgbaFrame.getNativeObjAddr(); //image賦值 if( success = face.Detect( image, tmpPos, res ) ){ //to do };

9. 比較特征數(shù)據(jù)

int Compare( float[] origin, float[] chose, float score )

功能???用于比較兩個(gè)feature值相似度

參數(shù)???origin : 待比較feature數(shù)組

??????chose : 用于比較的feature數(shù)組

??????score : origin和chose比較的相似度

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

float score; float[] origin = new float[512]; Float[] chose = new float[512]; face.Compare( origin, chose, score );

10. 雙目帶有活體的提取人臉特征

int GetFeature( Image image, Image grayImage, float[] feature, List faceinfos, int[] res )

功能???獲取image中的人臉特征值數(shù)組,特征值數(shù)組是存儲(chǔ)人臉特征信息的數(shù)組,

??????由512個(gè)float型數(shù)字組成,只獲取圖片中一個(gè)人的特征,多于一人會(huì)返回錯(cuò)誤信息。

參數(shù)???image : 人臉圖片,用于檢測(cè)的圖片

??????grayImage : 紅外攝像頭獲取的圖片

??????feature : 存儲(chǔ)image中檢測(cè)到的人臉特征信息,無人臉返回空數(shù)組

??????faceinfos : FaceInfo 清單?!队糜诒4娣祷厝四樤趫D片中的信息》

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????SUCCESS : 正確獲取人臉信息

??????ERROR_FAILURE : 未獲取到人臉信息

實(shí)例代碼 :

float[] feature = new float[512]; int[] ret = new int[1]; byte[] tmpPos = new byte[1024]; //byte數(shù)組用于存位置信息 ret = face.GetFeature( image, grayImage, feature, tmpPos, res); if( ret == SUCCESS ){ //to do 成功獲取到活體人臉特征值 }

11. 活體檢測(cè)

int DetectLiveness(Image image, List faceinfos, int[] res)

功能???檢測(cè)識(shí)別活體和非活體。

參數(shù)???image : 彩色人臉圖片,用于檢測(cè)和識(shí)別的圖片。

??????faceinfos : FaceInfo 清單?!队糜诒4娣祷厝四樤趫D片中的信息》

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????SUCCESS : 是活體

??????ERROR_FAILURE : 非活體

實(shí)例代碼 :

int[] ret=new int[1]; ret= face.DetectLiveness(image,grayImage ,tmpPos,res); if(ret== SUCCESS){ //to do 活體檢測(cè)成功 }

12. 雙目活體檢測(cè)

int GetDetectLiveness(Image image, Image grayImage, List faceinfos, int[] res)

功能???檢測(cè)識(shí)別活體和非活體。

參數(shù)???image : 彩色人臉圖片,用于檢測(cè)和識(shí)別的圖片。

??????grayImage :紅外攝像頭獲取的圖片。

??????faceinfos : FaceInfo 清單?!队糜诒4娣祷厝四樤趫D片中的信息》

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????SUCCESS : 是活體

??????ERROR_FAILURE : 非活體

實(shí)例代碼 :

int[] ret=new int[1]; ret= face.GetDetectLiveness(image,grayImage ,tmpPos,res); if(ret== SUCCESS){ //to do 活體檢測(cè)成功 }

13. 雙目校準(zhǔn)

int Calibration( Image image, Image grayImage, float[] scale, int[] Rect, int[] res );

功能???對(duì)紅外和普通光組成的雙攝像頭識(shí)別進(jìn)行校準(zhǔn),要求1個(gè)人在最佳位置(0.8-1米)站定,

??????大約需要校驗(yàn)20次,得到人臉框修正參數(shù)用于人臉畫框,

??????返回紅外攝像頭相對(duì)普通光的顯示區(qū)域坐標(biāo),該區(qū)域是有效識(shí)別和活體檢測(cè)區(qū)域

參數(shù)???image : 輸入紅外圖像

??????grayImage : 輸入彩色圖像

??????scale : 輸出 人臉框修正參數(shù)

??????rect : 輸出紅外圖像與彩色圖像重疊區(qū)域(紅外圖像在彩色圖像的對(duì)應(yīng)區(qū)域/推薦的檢測(cè)區(qū)域)

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????SUCCESS : 正確校準(zhǔn)

??????ERROR_FAILURE : 校準(zhǔn)失敗

實(shí)例代碼 :

int[] ret = new int[1]; float[] scale = new float[1]; int[] rect = new int[4]; ret = face.Calibration( image, grayimage, scale, rect, res ); if( ret == SUCCESS ){ //to do 校準(zhǔn)成功 }

14. 設(shè)備激活一

int AuthorizedDevice( String uidStr, String password, Context activity )

功能???設(shè)備激活

參數(shù)???uidStr : OEMID號(hào)+合同號(hào)

??????password : 用戶密碼

返回值

??????0 : 鑒權(quán)成功

實(shí)例代碼 :

String oem_id = “1000000000000001”;//OEMID String contract_id = “0001”;//合同號(hào) String password = “0123456789abcdef0123456789abcdef”; //初始授權(quán)密碼 String uidStr = oem_id + contract_id; int res = face.AuthorizedDevice( uidStr, password, LoginActivity.this );

15. 設(shè)備激活二

int fireflyInit(Context context, String uidStr, String password)

功能???設(shè)備激活,這個(gè)接口是firefly一個(gè)臨時(shí)接口,可以永久激活設(shè)備,該接口到后面可能會(huì)被移除,

??????如果后續(xù)開發(fā)文檔中沒有該接口說明,則已被移除。開發(fā)文檔以開源Demo中的文檔為準(zhǔn)。

參數(shù)???uidStr : OEMID號(hào)+合同號(hào)

??????password : 用戶密碼

返回值

??????0 : 鑒權(quán)成功

實(shí)例代碼 :

String oem_id = “1000000000000001”;//OEMID String contract_id = “0001”;//合同號(hào) String password = “0123456789abcdef0123456789abcdef”; //初始授權(quán)密碼 String uidStr = oem_id + contract_id; int res =face.fireflyInit(LoginActivity.this, uidStr, password);

16. 設(shè)備激活三

int AuthorizedDeviceUserPassword(String uidStr, String password, Context context, String userPassword)

功能???設(shè)備激活,這個(gè)接口主要用于帶有用戶密碼的激活方式。

參數(shù)???uidStr : OEMID號(hào)+合同號(hào)

??????password : 授權(quán)密碼

??????userPassword:用戶密碼

返回值

??????0 : 鑒權(quán)成功

實(shí)例代碼 :

String oem_id =“1000000000000001”;//OEMID String contract_id =“0001”;//合同號(hào) String password = “0123456789abcdef0123456789abcdef”;//初始授權(quán)密碼 String userPassword =“012345678912”;//授權(quán)密碼; String uidStr = oem_id+contract_id; int res =face. AuthorizedDeviceUserPassword(uidStr,password, LoginActivity.this,userPassword);

17. 獲取鑒權(quán)激活狀態(tài)值

int getAuthStatus()

功能???獲取鑒權(quán)激活狀態(tài)值

參數(shù)???無

返回值

??????0 : 鑒權(quán)成功

實(shí)例代碼 :

int res = face.getAuthStatus();

18. 提取人臉特征

int GetFeature( Image image, float[] feature, List faceinfos, int[] res )

功能???獲取image中的人臉特征值數(shù)組,特征值數(shù)組是存儲(chǔ)人臉特征信息的數(shù)組,

??????由512個(gè)float型數(shù)字組成,只獲取圖片中一個(gè)人的特征。

參數(shù)???image : 人臉圖片,用于檢測(cè)的圖片

??????feature : 存儲(chǔ)image中檢測(cè)到的人臉特征信息,無人臉返回空數(shù)組

??????faceinfos : FaceInfo 清單?!队糜诒4娣祷厝四樤趫D片中的信息》

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????SUCCESS : 正確獲取人臉信息

??????ERROR_FAILURE : 未獲取到人臉信息

實(shí)例代碼 :

float[] feature = new float[512]; int[] ret = new int[1]; byte[] tmpPos = new byte[1024]; //byte數(shù)組用于存位置信息 ret = face.GetFeature( image, feature, tmpPos, res ); if( ret == SUCCESS ){ //to do 成功獲取到人臉特征值 }

19. 提取人臉特征(根據(jù)人臉坐標(biāo)信息)

int GetFeature( Image image, FaceInfo detectInfo, float[] feature, int[] res )

功能???根據(jù)傳入的人臉和關(guān)鍵點(diǎn)坐標(biāo)信息,獲取image中的人臉特征值數(shù)組,

??????特征值數(shù)組是存儲(chǔ)人臉特征信息的數(shù)組,由512個(gè)float型數(shù)字組成,

??????只獲取圖片中一個(gè)人的特征。

參數(shù)???image : 人臉圖片,用于檢測(cè)的圖片

??????detectInfo : 檢測(cè)到的人臉信息,用于人臉特征提取

??????feature : 存儲(chǔ)image中檢測(cè)到的人臉特征信息,無人臉返回空數(shù)組

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????SUCCESS : 正確獲取人臉信息

??????ERROR_FAILURE : 未獲取到人臉信息

實(shí)例代碼 :

float[] feature = new float[512]; int[] ret = new int[1]; float[] detectinfo = new float[]{ x0, y0, x1, y1, landmarkx0, landmarky0, landmarkx1, landmarky1, landmarkx2, landmarky2, landmarkx3, landmarky3, landmarkx4, landmarky4 } byte[] tmpPos = new byte[1024]; //byte數(shù)組用于存位置信息 ret = face.GetFeature( image, detectinfo, feature, res ); if( ret == SUCCESS ){ //to do 成功獲取到人臉特征值 }

20. 提取人臉特征(根據(jù)圖片文件)

float[] GetFeature(String path, List faceinfos)

功能???根據(jù)傳入的圖片文件路徑,獲取image中的人臉特征值數(shù)據(jù)。

參數(shù)???path :人臉圖片文件的絕對(duì)路徑

??????faceinfos : FaceInfo 清單?!队糜诒4娣祷厝四樤趫D片中的信息》

返回值

??????Float[] : 人臉特征值數(shù)組

實(shí)例代碼 :

int ret = this.FaceGetFeatureFromAddr(addr, feature, mFaceInfos, policy); if (ret == -1) { return null; } else { faceInfos.addAll(Arrays.asList(this.mFaceInfos).subList(0,ret)); return this.feature; }

21. 提取人臉關(guān)鍵點(diǎn)

int GetLandmark ( Image image, float[] landmark, int[] res )

功能???獲取人臉關(guān)鍵點(diǎn)坐標(biāo)信息

參數(shù)???Image : 人臉圖片,用于提取人臉關(guān)鍵點(diǎn)信息的圖片,只提取一個(gè)人的關(guān)鍵點(diǎn)信息

??????Landmark : 用于存儲(chǔ)5個(gè)關(guān)鍵點(diǎn)坐標(biāo)值,依次是左眼,右眼,鼻子,左側(cè)嘴唇,右側(cè)嘴唇

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????SUCCESS : 正確獲取人臉關(guān)鍵點(diǎn)坐標(biāo)信息

??????ERROR_FAILURE : 未獲取到人臉關(guān)鍵點(diǎn)信息

實(shí)例代碼 :

float[] landmark = new float[10]; int[] ret = new int[1]; ret = face.GetLandmark( image, landmark, res); if( ret == SUCCESS ){ }

22. 人臉質(zhì)量提取

FaceInfo getQuality(long matAddrframe)

功能???傳入圖像,返回圖像中人臉位置和最大一張人臉的質(zhì)量信息。

參數(shù)???matAddrframe : 保存在Mat中圖像地址

返回值

??????FaceInfo : 用于保存返回人臉在圖片中的信息

實(shí)例代碼 :

Faceinfo faceinfo=new Faceinfo(); faceinfo=face.getQuality(matAddrframe); if(faceinfo!=null){ }

23. 參數(shù)設(shè)置

bool SetParameter( const String[] name, float value[] )

功能???設(shè)置輸入的參數(shù)名和對(duì)應(yīng)數(shù)值

參數(shù)???char[] name : 參數(shù)的名字

??????a : a參數(shù)值 內(nèi)部參數(shù),按示例設(shè)置,請(qǐng)不要隨意修改

??????b : b參數(shù)值 內(nèi)部參數(shù),按示例設(shè)置,請(qǐng)不要隨意修改

??????c : c參數(shù)值 內(nèi)部參數(shù),按示例設(shè)置,請(qǐng)不要隨意修改

??????d : d參數(shù)值 內(nèi)部參數(shù),按示例設(shè)置,請(qǐng)不要隨意修改

??????factor : 檢測(cè)人臉放大比例 內(nèi)部參數(shù),按示例設(shè)置,請(qǐng)不要隨意修改

??????min_size : 最小人臉框大小 范圍 32-80

??????faceclarity : 照片清晰度閾值 范圍 建議200-400

??????perfoptimize : 是否優(yōu)化效果 范圍 0或1

??????livenessdetect : 是否活體檢測(cè) 范圍0-1

??????gray2colorscale : 雙目活體檢測(cè)比值 范圍 0.1-0.5

??????frame_num : 優(yōu)化的幀數(shù),范圍20-40

??????quality_thresh : 圖片質(zhì)量閥值,建議范圍0.7-0.8

??????mode : 工作模式 0 閘機(jī) 1 門禁

??????facenum : 檢測(cè)最大人臉數(shù),最多支持檢測(cè)3張人臉識(shí)別1張臉,范圍1-3

??????value[] : 參數(shù)的數(shù)值(可能多個(gè))

返回值??參數(shù)設(shè)置是否成功

實(shí)例代碼 :

String[] name = { “a”, “b”,“c”, “d”, “factor”, “min_size”, “clarity”, “perfoptimize”, “l(fā)ivenessdetect”, “gray2colorscale”, “frame_num”, “qualit_thresh”, “mode”, “facenum” }; double[] value = {0.9, 0.9, 0.9, 0.715, 0.6, 64, 400, 1, 0, 0.5, 20, 0.8, 1, 1 }; face.SetParameter( name, value );

24. 參數(shù)設(shè)置(參數(shù)可變長(zhǎng)度)

bool SetParameters( String[] name, float value[] )

功能???可變長(zhǎng)度的設(shè)置輸入的參數(shù)名和對(duì)應(yīng)數(shù)值

參數(shù)???char[] name : 參數(shù)的名字(》=1),詳情見14,

??????value[] : 參數(shù)的數(shù)值(》=1個(gè))

返回值??參數(shù)設(shè)置是否成功

實(shí)例代碼 :

String[] name = { “perfoptimize”, “l(fā)ivenessdetect”, “frame_num”, “quality_thresh”, “mode”, “facenum” }; double[] value = { 1, 0, 20, 0.8, 1, 1 }; face.SetParameter( name, value );

25. 獲取版本信息

public String GetVersion()

功能???獲取當(dāng)前SDK版本的信息

參數(shù)???無

返回值??返回當(dāng)前版本信息的字符串

實(shí)例代碼 :

Face.GetVersion();

26. 獲取底層庫信息

public String GetFacelibVersion()

功能???獲取當(dāng)前SDK底層庫的信息

參數(shù)???無

返回值??返回當(dāng)前版本底層庫的字符串

實(shí)例代碼 :

Face.GetFacelibVersion();

27. 打開人臉數(shù)據(jù)庫

int OpenDB()

功能???使用人臉數(shù)據(jù)庫,內(nèi)部人臉數(shù)據(jù)庫可實(shí)現(xiàn)1:N高效快速查詢

參數(shù)???無

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

if(face.OpenDB() == SUCCESS){ // TODO }

28. 注冊(cè)人臉

int AddDB( float[] feature, string name )

功能???注冊(cè)人臉

參數(shù)???feature : 人臉特征

??????name : 登記名字

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

String name= “test”; int[] res=new int[]; if( Face.GetFeature( image, feature, tmpPos, res ) == SUCCESS ){ Face.AddDB ( feature, name ); }

29. 保存人臉

int SaveDB()

功能???將AddDB()寫入的數(shù)據(jù)保存到文件;如果在reboot或者斷電重啟設(shè)備之前,沒有調(diào)用SaveDB(),

??????則AddDB()添加的人臉將丟失。

參數(shù)???無

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

Face.AddDB(feature,name); 。.. //在添加人臉之后,要確保重啟設(shè)備之前執(zhí)行Face.SaveDB(); Face.SaveDB();

30. 刪除人臉

int DelDB(string name)

功能???刪除人臉

參數(shù)???name : 要?jiǎng)h除的名字

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

String name= “test”; Face.DelDB (name);

31. 刪除所有已注冊(cè)人臉

int DelAllDB()

功能???刪除所有已注冊(cè)人臉

參數(shù)???無

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

Face.DelAllDB ();

32. 查詢?nèi)四樚卣鲗?duì)應(yīng)名字

String QueryDB( float[] feature, float [] score )

功能???給定人臉特征最接近的數(shù)據(jù)庫所登記的人臉,并給出相似度

參數(shù)???feature : 人臉特征

??????score : 相似度分值

返回值

??????執(zhí)行成功 返回登記名字

??????執(zhí)行失敗 返回為unknown

實(shí)例代碼 :

float[] score = new float[1]; String name = Face.QueryDB( feature, score ); if( score 》 thresh_hold ){ // TODO }

33. 關(guān)閉人臉數(shù)據(jù)庫

int CloseDB()

功能???關(guān)閉人臉數(shù)據(jù)庫

參數(shù)???無

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

if( Face.CloseDB() == SUCCESS ){ // TODO }

34. 加載快速比對(duì)功能

int FastQueryInit()

功能???加載快速比對(duì)功能

參數(shù)???無

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

if(Face.FastQueryInit () == SUCCESS){ // TODO }

35. 刷新快速比對(duì)緩存區(qū)

int FastQueryFlush(float [] data, int num)

功能???刷新快速比對(duì)緩存區(qū)

參數(shù)???Data : 外部特征緩存區(qū)

??????Num : 特征數(shù)量

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

if(Face.FastQueryFlush(data,num) == SUCCESS){ // TODO }

36. 快速查詢

int FastQuery(float[] data, float[] feature, float[] scores, int num)

功能???快速查詢

參數(shù)???Data : 外部特征緩存區(qū)

??????Feature : 要查詢的特征

??????Scores:獲得的相似度

??????Num : 特征數(shù)量

返回值

??????執(zhí)行成功 SUCCESS

??????執(zhí)行失敗 ERROR_FAILURE

實(shí)例代碼 :

if(Face.FastQuery(data,feature,num) == SUCCESS){ // TODO }

37. 獲取人臉屬性

int GetFaceAttr( Image image, FaceInfo data, FaceAttribute face_attr, int *res )

功能???Detect后執(zhí)行,通過檢測(cè)獲取的人臉位置和關(guān)鍵點(diǎn)信息,獲取人臉屬性包括年齡、性別和表情 。

參數(shù)???image : 人臉圖片,用于檢測(cè)的圖片

??????data : 檢測(cè)得到的人臉位置和人臉關(guān)鍵點(diǎn)信息

??????face_attr : 存儲(chǔ)計(jì)算得到的人臉屬性

??????res : 執(zhí)行結(jié)果,未發(fā)現(xiàn)人臉返回 ERROR_INVALID_PARAM

返回值

??????SUCCESS : 正確獲取人臉屬性

??????ERROR_FAILURE : 未獲取到人臉屬性

實(shí)例代碼 :

if( face.GetFaceAttr( Image, data, attr, res ) == SUCCESS ){ // TODO }

38. 釋放人臉識(shí)別資源

public void Destroy()

功能???釋放初始化和設(shè)置參數(shù)時(shí)分配的資源

參數(shù)???無

返回值??無

實(shí)例代碼 :

Face.Destroy();

39. 示例代碼

初始化雙目攝像頭人臉識(shí)別Demo。

public class MainActivity extends Activity implements CvCameraViewListener2 { private FaceAPP face= FaceAPP.GetInstance(); //face 作為成員變量 。..。..。.. @Override protected void onCreate(Bundle savedInstanceState) { 。..。..。.. String[] name={“a”,“b”,“c”,“d”,“factor”,“min_size”,“clarity”,“perf-optimize”,“l(fā)iveness-detect”,“gray2color-scale”}; double[] value={0.9,0.9,0.9,0.715,0.6,64,400,1,0,0.5}; face.SetParameter(name,value); mainLoop = new Thread() { //人臉檢測(cè)不要放在 Android 主線程 public void run() { 。..。..。.. float[] feature=new float[512]; byte[] tmpPos = new byte[1024];// byte 數(shù)組用于存位置信息 switch (mixController.curState){ 。..。.. case mixController. STATE_IDLE : FaceAPP.Image image= FaceAPP. GetInstance ().new Image(); image.matAddrframe=mRgbaFrame.getNativeObjAddr(); int[] res=new int[1]; int ret; ret= face.GetFeature(image,feature,tmpPos,res); if(ret== SUCCESS){ //to do 成功獲取到人臉特征值 } } } } }

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35295
  • 安卓
    +關(guān)注

    關(guān)注

    5

    文章

    2126

    瀏覽量

    57144
  • Firefly
    +關(guān)注

    關(guān)注

    2

    文章

    538

    瀏覽量

    7027
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Firefly-RK3399 人臉識(shí)別 SDK 發(fā)布

    ` 本帖最后由 Developer_x 于 2017-6-19 11:14 編輯 利用Firefly-RK3399核心板與底板的組合,搭配上Firefly人臉識(shí)別SDK,我們可以實(shí)
    發(fā)表于 06-13 14:20

    Face-RK3399人臉識(shí)別主板怎么樣?

    Face-RK3399人臉識(shí)別主板怎么樣?
    發(fā)表于 03-07 06:01

    如何對(duì)RK3399的HDMI進(jìn)行人臉識(shí)別

    如何對(duì)RK3399的HDMI進(jìn)行人臉識(shí)別呢?如何對(duì)識(shí)別結(jié)果進(jìn)行模糊化處理呢?
    發(fā)表于 03-07 12:48

    求一種在Firefly RK3399平臺(tái)上搭建人臉識(shí)別SDK開發(fā)環(huán)境的方案

    1、如何在Firefly RK3399平臺(tái)利用人臉識(shí)別SDK搭建實(shí)時(shí)人臉比對(duì)DEMO按要求搭建人臉
    發(fā)表于 06-01 16:13

    RK3399人臉識(shí)別API接口 V1.0設(shè)計(jì)(下)

    1、RK3399人臉識(shí)別API V1.0設(shè)計(jì)int Calibration( Image image, Image grayImage, float[] scale, int[] Rect, int
    發(fā)表于 07-29 17:40

    RK3399人臉識(shí)別API接口V2.0設(shè)計(jì)相關(guān)資料分享

    1、RK3399人臉識(shí)別API接口 V2.0硬件接口APIICCard/身份證/連接設(shè)備啟動(dòng)監(jiān)聽服務(wù),監(jiān)聽刷卡操作,建議在onResume()方法中執(zhí)行;檢查功能支持由于監(jiān)聽服務(wù)為異步啟動(dòng),所以在
    發(fā)表于 08-01 17:21

    fireflyFace-RK3399主板UART串口簡(jiǎn)介

    Face-RK3399 外置3個(gè)增強(qiáng)功能串口(UART)的功能,分別為UART1,UART2,RS485。
    的頭像 發(fā)表于 12-04 09:04 ?8676次閱讀

    fireflyFace-RK3399主板RTC介紹

    Face-RK3399開發(fā)板上有 一個(gè)集成于RK808上的RTC(Real Time Clock),主要功能有時(shí)鐘,日歷,鬧鐘,周期性中斷,雙通道32KHz時(shí)鐘輸出。
    的頭像 發(fā)表于 12-04 09:11 ?5585次閱讀

    fireflyFace-RK3399主板LED燈介紹

    Face-RK3399 開發(fā)板上有 2 個(gè) LED 燈Bule(GPIO2_D3)和Yellow(GPIO2_D2)。
    的頭像 發(fā)表于 12-04 09:14 ?3914次閱讀

    fireflyFace-RK3399主板PWM輸出介紹

    Face-RK3399開發(fā)板上引出有 2 路 PWM 輸出,
    的頭像 發(fā)表于 12-04 09:35 ?4359次閱讀

    fireflyFace-RK3399主板LCD 使用

    Face-RK3399開發(fā)板支持MIPI屏幕
    的頭像 發(fā)表于 12-04 10:05 ?3446次閱讀

    fireflyFace-RK3399主板ADC介紹

    Face-RK3399 開發(fā)板上的 AD 接口有兩種,分別為:溫度傳感器 (Temperature Sensor)、逐次逼近ADC (Successive Approximation Register)。
    的頭像 發(fā)表于 12-04 09:20 ?3715次閱讀

    fireflyFace-RK3399主板啟動(dòng)模式說明

    Face-RK3399 有靈活的啟動(dòng)方式。
    的頭像 發(fā)表于 12-04 10:16 ?7320次閱讀

    ROC RK3399 PC Pro源代碼Linux SDK(僅支持RK3399

    電子發(fā)燒友網(wǎng)站提供《ROC RK3399 PC Pro源代碼Linux SDK(僅支持RK3399).txt》資料免費(fèi)下載
    發(fā)表于 09-20 16:03 ?25次下載
    ROC <b class='flag-5'>RK3399</b> PC Pro源代碼Linux <b class='flag-5'>SDK</b>(僅支持<b class='flag-5'>RK3399</b>)

    瑞迅科技RK3399 3D人臉識(shí)別系統(tǒng)應(yīng)用

    瑞迅科技RK3399 3D人臉識(shí)別系統(tǒng)應(yīng)用 目前基于RK3399的三維人臉識(shí)別產(chǎn)品具有高
    的頭像 發(fā)表于 01-12 16:49 ?895次閱讀
    瑞迅科技<b class='flag-5'>RK3399</b> 3D<b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b>系統(tǒng)應(yīng)用
    RM新时代网站-首页