趁晚上的時間向大家分享一波乾貨。
虹軟的人臉識別是應用與離線開發的,因為不需要網路,所以它的識別速度較快。好了,廢話不多說,接下來就開始教大家怎樣使用了。
sourcesets
}
2.接下裡就需要進行開發了。就拿人臉檢測的功能來說吧,首先需要 對引擎初始化,
我們還需要乙個集合,用來存放我們檢測到的人臉,
listresult = new arraylist();//新建afd_fsdkfacejihe,用於存放識別的人臉資訊
接下來我們就可以進行人臉的檢測了,但是對於**的選取和格式是有要求的,所以我們需要對**進行格式處理一下。
bitmap bitmap1 = decodeimage(path1);//path是**的路徑,先選取**,轉化為bitmap
byte data1 = getnv21(bitmap1);//再將bitmap轉化為nv21格式的
下面是工具類decodeimage和getnv21的**:
//getnv21 和 decodeimage 是**格式的轉化工具
public byte getnv21(bitmap mbitmap)
convert.destroy();
return data;
} public static bitmap decodeimage(string path) else if (orientation == exifinte***ce.orientation_rotate_180) else if (orientation == exifinte***ce.orientation_rotate_270)
bitmap temp = bitmap.createbitmap(res, 0, 0, res.getwidth(), res.getheight(), matrix, true);
log.d("com.arcsoft", "check target image:" + temp.getwidth() + "x" + temp.getheight());
if (!temp.equals(res))
return temp;
} catch (exception e)
return null;
}
對格式進行轉化完成後,就開始進行人臉的檢測了。
err = engine1.afd_fsdk_stillimagefacedetection(data1, bitmap1.getwidth(), bitmap1.getheight(), afd_fsdkengine.cp_paf_nv21, result); log.e("tag", "getbit: " + result.size());
我們可以檢視集合result的size,來確定是否檢測到人臉。
在**的最後,一定要對初始化的引擎進行銷毀處理。不然程式會因為記憶體問題而崩潰。
engine1.afd_fsdk_uninitialfaceengine();
人臉對比是在人臉檢測的基礎上進行的,在一張**上先檢測到人臉的資訊,然後再將人臉的資訊進行比對。
list result = new arraylist();
上面已經介紹了,檢測到的人臉資訊都是存放在result的集合中的,
然後是建立兩個存放人臉點位資訊的類
afr_fsdkface face1 = new afr_fsdkface();
afr_fsdkface face2 = new afr_fsdkface(); 將檢測到的人臉資訊的點位資訊存放到 face類中
//新建兩個afr_fsdkface類,儲存人臉特徵資訊
afr_fsdkface face1 = new afr_fsdkface();
afr_fsdkface face2 = new afr_fsdkface(); //對人臉特徵資訊的檢測
er = engine_camera.afr_fsdk_extractfrfeature(data_image,
bitmap_idcard.getwidth(),
bitmap_idcard.getheight(),
afr_fsdkengine.cp_paf_nv21,
new rect(result_image.get(0).getrect()),
result_image.get(0).getdegree(),
face1);
er = engine_camera.afr_fsdk_extractfrfeature(data,
wid,
hei,
afr_fsdkengine.cp_paf_nv21,
new rect(result_fd.get(0).getrect()),
result_fd.get(0).getdegree(),
face2);
最後的比對的相似度資訊存放在score中, float score_face = score.getscore();
我們可以通過這種方式得到 我們想要的相似度資訊,最後得到的資料是float型別的。
*注意!
在使用**的時候,解析度大小最好是偶數的,不然會發生未知的錯誤。
在進行人臉資訊提取的時候,會耗時,耗時的時長,是根據裝置的cpu處理能力來說的。
分享 虹軟人臉識別應用開發過程
趁晚上的時間向大家分享一波乾貨。虹軟的人臉識別是應用與離線開發的,因為不需要網路,所以它的識別速度較快。好了,廢話不多說,接下來就開始教大家怎樣使用了。sourcesets 2.接下裡就需要進行開發了。就拿人臉檢測的功能來說吧,首先需要 對引擎初始化,我們還需要乙個集合,用來存放我們檢測到的人臉,l...
虹軟人臉識別Android Sample Code
afr fsdkinte ce engine new afr fsdkengine 用來存放提取到的人臉資訊,face 1 是註冊的人臉,face 2 是要識別的人臉 afr fsdkface face1 new afr fsdkface afr fsdkface face2 new afr fsd...
虹軟人臉識別C demo
同理新增附加庫目錄,如下圖所示 附加依賴項 將兩個dll複製到程式執行的目錄裡面 按照上面的步驟配置完環境後,接下來進行測試 的讀取要用到opencv,我就假設大家opencv配置均不存在問題 下面的 為我參考的官方給的一些資料,但是我用的opencv是3.4的,因此程式有些小小的改動,具體可參考如...