face 人臉識別相關技術

2022-06-09 23:12:11 字數 3059 閱讀 5216

face++主頁

首先需要建立faceset,乙個faceset下有多個facetoken,facetoken就是人臉資料

其次,一張每次可以生成多個不同的facetoken,

可以只保留乙個facetoken,然後直接判斷facetoken是否與資料庫的相同,如果執行這一步,可以使用刪除的方法

也可以保留多個facetoken,根據一張獲取多個facetoken然後遍歷與資料庫相同的,確定人物身份

查詢時在faceset裡面查這個所對應的facetoken,如果系統只存了乙個,那就返回這唯一的乙個,如果多個就會返回多個

定義實體類

@data

@allargsconstructor

@noargsconstructor

class

face

@data

@allargsconstructor

@noargsconstructor

class

facebean

@data

@allargsconstructor

@noargsconstructor

class

faceset

public

class

faceutils

/*** 建立人臉並新增至指定的人臉庫

* @param

file 檔案

* @param

faceset 人臉庫

* @return

返回face_token

* @throws

exception 可能丟擲建立人臉異常/繫結人臉異常

*/public string createandbind(multipartfile file, string faceset) throws

exception

/***

* @param

image_base64 檔案base64字串

* @param

faceset 人臉庫

*/private string createface(string image_base64, string faceset) throws

exception

catch

(exception e)

facebean facebean = jsonobject.parseobject(str, facebean.class

);

if(objectutils.isempty(facebean.getfaces()))

string face_token = facebean.getfaces().get(0).getfacetoken();

url = "";

map.clear();

map.put("api_key", api_key);

map.put("api_secret", api_secret);

map.put("faceset_token", faceset);

map.put("face_tokens", face_token);

try }

catch

(exception e)

return

face_token;

}/*** 查詢人臉資訊 傳入 ,從指定人臉庫查詢人臉

* @param

file 檔案

* @param

faceset 人臉庫

*/public string searchface(multipartfile file, string faceset) throws

ioexception

double adouble = facebean.getthresholds().get("1e-3");

logger.warn("對比度 {}",adouble);

//判斷對比閾值

if(facebean.getresults().get(0).getconfidence()return facebean.getresults().get(0).getfacetoken();

} catch

(exception e)

}/*** 刪除指定庫中的指定某張

*/public string removeface(hashmapmap)

catch

(exception e)

return

str;

}private string boundarystring =getboundary();

private

byte post(string url, hashmapmap) throws

exception

obos.writebytes("--" + boundarystring + "--" + "\r\n");

obos.writebytes("\r\n");

obos.flush();

obos.close();

inputstream ins = null

;

int code =conne.getresponsecode();

try

else

} catch

(sslexception e)

bytearrayoutputstream baos = new

bytearrayoutputstream();

byte buff = new

byte[4096];

intlen;

while ((len = ins.read(buff)) != -1)

byte bytes =baos.tobytearray();

ins.close();

return

bytes;

}private

static

string getboundary()

return

sb.tostring();

}}

face 人臉識別

今天搞了很久才看懂face 文件。有過第三方api呼叫的經驗應該不難。最後在比較兩張的相似的時候還是有問題,自己測試了下,呼叫 recognition compare介面,總是返回null,搞了半天沒搞定。最後還是貼上自己寫的 function urlexec url function testfa...

face 實現人臉識別

由於專案是在多年前完成,face 的sdk可能有調整,所以部分功能可能不再適用 2017.3 最近做了乙個使用face 實現人臉識別的功能,當初看著官方文件一點頭緒都沒有,看了好久才弄明白,所以在這裡記錄一下,希望可以幫到需要的人,首先要註冊乙個face 賬號,獲取apikey和apisecret,...

人臉識別和face 人臉分析

參考部落格 專案需求,android客戶端作為airplay接收端,在開啟airplay的時候後台開啟攝像頭,當捕捉到人臉的時候將這一幀影象傳到face 進行人臉分析。airplay接收端可整合xindawn的airplay,github位址 1.後台開啟攝像頭 基本都是將預覽介面的activity...