1. 程式人生 > >百度人臉識別AI實踐.doc

百度人臉識別AI實踐.doc

compare 技術 開發 描述 ear 註冊 aid con square

0, 前言

百度開放了很多AI能力,其中人臉識別就是其中之一。

本文對百度人臉識別AI進行實踐檢驗,看看其使用效果如何。

鑒於是最為基礎的實踐,基本都是在其接口範例代碼修改而來。

百度人臉識別AI網站:

https://console.bce.baidu.com/ai/#/ai/face/overview/index
http://ai.baidu.com/docs#/FACE-API/6f44de4a

首先要進行開發者認證,然後建立APP,再申請API Key 和 Secret Key,再獲取access_token。

這些步驟在此略過。

1,人臉檢測調用

代碼:face_detect.py

運行結果:

b‘{"result_num":1,"result":[{"location":{"left":313,"top":109,"width":95,"height":92},"face_probability":0.96016013622284,"rotation_angle":31,"yaw":-12.178998947144,"pitch":6.8234496116638,"roll":30.81263923645,"landmark":[{"x":336,"y":144},{"x":370,"y":165},{"x":346,"y":184},{"x":331,"y":196}],"landmark72":[{"x":305,"y":122},{"x":298,"y":137},{"x":293,"y":153},{"x":290,"y":171},{"x":295,"y":191},{"x":304,"y":209},{"x":318,"y":219},{"x":334,"y":218},{"x":349,"y":210},{"x":362,"y":202},{"x":372,"y":193},{"x":380,"y":182},{"x":387,"y":170},{"x":327,"y":140},{"x":334,"y":140},{"x":339,"y":142},{"x":343,"y":146},{"x":344,"y":153},{"x":339,"y":151},{"x":334,"y":149},{"x":330,"y":144},{"x":336,"y":144},{"x":325,"y":125},{"x":336,"y":124},{"x":344,"y":127},{"x":351,"y":133},{"x":355,"y":141},{"x":348,"y":137},{"x":341,"y":132},{"x":334,"y":127},{"x":363,"y":165},{"x":369,"y":162},{"x":374,"y":163},{"x":378,"y":167},{"x":379,"y":172},{"x":375,"y":172},{"x":371,"y":171},{"x":367,"y":168},{"x":370,"y":165},{"x":372,"y":153},{"x":379,"y":152},{"x":385,"y":154},{"x":390,"y":157},{"x":390,"y":164},{"x":387,"y":160},{"x":383,"y":158},{"x":377,"y":155},{"x":350,"y":157},{"x":344,"y":165},{"x":338,"y":173},{"x":330,"y":178},{"x":336,"y":183},{"x":346,"y":189},{"x":350,"y":190},{"x":353,"y":181},{"x":356,"y":172},{"x":359,"y":163},{"x":346,"y":184},{"x":315,"y":184},{"x":326,"y":190},{"x":334,"y":195},{"x":340,"y":198},{"x":345,"y":201},{"x":337,"y":203},{"x":329,"y":202},{"x":321,"y":195},{"x":324,"y":192},{"x":332,"y":197},{"x":339,"y":200},{"x":338,"y":200},{"x":331,"y":198},{"x":324,"y":192}],"age":24.123235702515,"beauty":69.033996582031,"expression":1,"expression_probablity":0.9958593249321,"faceshape":[{"type":"square","probability":0.0057251220569015},{"type":"triangle","probability":0.0012500827433541},{"type":"oval","probability":0.21884967386723},{"type":"heart","probability":0.62574058771133},{"type":"round","probability":0.14843453466892}],"gender":"female","gender_probability":0.99999916553497,"glasses":0,"glasses_probability":0.99999940395355,"race":"yellow","race_probability":1,"qualities":{"occlusion":{"left_eye":0,"right_eye":0,"nose":0,"mouth":0,"left_cheek":0,"right_cheek":0,"chin":0},"blur":0,"illumination":0,"completeness":0,"type":{"human":0.99739569425583,"cartoon":0.0026042922399938}}}],"log_id":3917056385}‘

能夠返回完整的輪廓描述信息。

2,人臉比對

運行代碼:face_compare.py

技術分享圖片

b‘{"result":[{"index_i":"0","index_j":"1","score":79.925468444824}],"result_num":1,"log_id":4196468489123021}‘

文檔說明score字段為比對得分,推薦80作為閾值,80分以上可以判斷為同一人,此分值對應萬分之一誤識率。結果不夠理想。

換成馬雲後,辨識度很高:

技術分享圖片

b‘{"result":[{"index_i":"0","index_j":"1","score":91.242309570312}],"result_num":1,"log_id":4218484369123021}‘

換成馬雲和美女,完全不相似了,呵呵。

b‘{"result":[{"index_i":"0","index_j":"1","score":5.0950660705566}],"result_num":1,"log_id":4230167824123021}‘

3, 人臉註冊

代碼:face_add.py

將jackma.jpg和jackma2.jpg兩張圖片註冊在id為jackma下。

將timg.jpg和timg1.jpg兩張圖片註冊在id為beauty1下。

4,人臉識別

代碼:face_identify.py

將下面2張圖片,傳入比對。

技術分享圖片

結果如下:

b‘{"result":[{"uid":"jackma","scores":[94.850677490234],"group_id":"test_group_2","user_info":"\\u9a6c\\u4e91"},{"uid":"jackma","scores":[92.1611328125],"group_id":"test_group_2","user_info":"\\u9a6c\\u4e91"}],"result_num":2,"log_id":2863131081123023}‘

可見識別效果相當好!

傳入此美女的2張新的圖片,也是識別不錯。

技術分享圖片

b‘{"result":[{"uid":"beauty1","scores":[93.205795288086],"group_id":"test_group_2","user_info":"\\u7f8e\\u59731"},{"uid":"beauty1","scores":[91.085876464844],"group_id":"test_group_2","user_info":"\\u7f8e\\u59731"}],"result_num":2,"log_id":2922953983123023}‘

傳入未註冊過的2張圖片試試,

技術分享圖片

b‘{"result":[{"uid":"beauty1","scores":[41.366012573242],"group_id":"test_group_2","user_info":"\\u7f8e\\u59731"},{"uid":"beauty1","scores":[30.834575653076],"group_id":"test_group_2","user_info":"\\u7f8e\\u59731"}],"result_num":2,"log_id":2954086825123100}‘

雖然歸類為美女1,但置信度已大為降低,遠低於80。因此可以認為匹配失敗。這個識別結果是OK的。

百度人臉識別AI實踐.doc