作者:學習中的苦與樂
連結:http://www.cnblogs.com/xiongze520/p/10387355.html
今天我們來盤一盤人臉註冊、人臉識別等相關操作,這是一個簡單入門教程。
完成人臉識別所需的步驟:
1、註冊百度賬號api,建立自己的應用;
2、建立vs控制檯應用程式,引入動態連結庫;
3、編寫程式碼除錯,效果圖檢視。
4、總結。
一、註冊百度賬號api,建立自己的應用
註冊地址: https://login.bce.baidu.com/
註冊登入之後,在“產品服務” 選單下找到人臉識別 ,如下圖:
點選去建立自己的應用名稱,其實最主要的就是 API_key 和 Secret_key
有了這些就可以進一步去看 百度提供的SDK 檔案了。
這是百度的SDK地址:http://ai.baidu.com/sdk
選擇自己喜歡的開發語言進行研究, 裡面檔案很詳細, 下載中有Demo
本人採用的是C# 進行研究。
參考地址:http://ai.baidu.com/docs#/Face-Csharp-SDK/top
二、建立vs控制檯應用程式,引入動態連結庫
建立控制檯應用程式,命名為FaceRecognition,
然後取用動態連結庫(安裝人臉SDK),我用的是vs2017,使用的是方法一。
方法一:使用Nuget管理依賴 (推薦)
在NuGet中搜索 Baidu.AI,安裝最新版即可。
packet地址 https://www.nuget.org/packages/Baidu.AI/
方法二:下載安裝
人臉 C# SDK目錄結構
如果需要在 Unity 平臺使用,可取用工程原始碼自行編譯。
安裝
1、在官方網站(http://ai.baidu.com/sdk)下載C# SDK壓縮工具包。
2、解壓後,將 AipSdk.dll 和 Newtonsoft.Json.dll 中新增為取用。
三、編寫程式碼除錯,效果圖檢視
-
註冊人臉
-
識別人臉
首先我們準備一張能夠識別人臉的圖片,放到公共平臺,如果百度雲盤,然後分享出去,複製圖片地址。
註冊人臉
在Program.cs裡面編寫程式碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaceRecognition
{
class Program
{
static void Main(string[] args)
{
// 設定APPID/AK/SK
var API_KEY = "XFPA49myCG7S37XP1DxjLbXF"; //你的 Api Key
var SECRET_KEY = "ZvZKigrixMLXNZOLmkrG6iDx9QprlGuT"; //你的 Secret Key
var client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY);
client.Timeout = 60000; // 修改超時時間
//取決於image_type引數,傳入BASE64字串或URL字串或FACE_TOKEN字串
//你共享的圖片路徑(點選路徑可直接檢視圖片)
var image = "https://thumbnail0.baidupcs.com/thumbnail/32f3cc8f022839a4dbf6b9f9cca76ce8?fid=3145591938-250528-218900036170682&time;=1550282400&rt;=sh&sign;=FDTAER-DCb740ccc5511e5e8fedcff06b081203-sTBqvQbbBy3n5SDQfbtjNwjlSHg%3D&expires;=8h&chkv;=0&chkbd;=0&chkpc;=&dp-logid;=1077356968076791248&dp-callid;=0&size;=c710_u400&quality;=100&vuk;=-&ft;=video";
var imageType = "URL";
//註冊人臉
var groupId = "group1";
var userId = "user1";
// 呼叫人臉註冊,可能會丟擲網路等異常,請使用try/catch捕獲
var result = client.UserAdd(image, imageType, groupId, userId);
Console.WriteLine(result);
// 如果有可選引數
var options = new Dictionary<string, object>{
{"user_info", "user's info"},
{"quality_control", "NORMAL"},
{"liveness_control", "LOW"}
};
// 帶引數呼叫人臉註冊
result = client.UserAdd(image, imageType, groupId, userId, options);
Console.WriteLine(result);
}
}
}
執行後,控制檯列印成功與否,百度api控制檯檢視是否註冊成功。
控制檯效果圖:
百度api控制檯檢視效果:
很顯然,我們註冊人臉成功,接下來我們進行人臉識別,我們使用註冊過的圖片和未註冊過的圖片進行驗證。
識別人臉
同樣在Program.cs裡面編寫程式碼,我們把之前的程式碼註釋掉就行,如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaceRecognition
{
class Program
{
static void Main(string[] args)
{
// 設定APPID/AK/SK
var API_KEY = "XFPA49myCG7S37XP1DxjLbXF"; //你的 Api Key
var SECRET_KEY = "ZvZKigrixMLXNZOLmkrG6iDx9QprlGuT"; //你的 Secret Key
var client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY);
client.Timeout = 60000; // 修改超時時間
//取決於image_type引數,傳入BASE64字串或URL字串或FACE_TOKEN字串
//你共享的圖片路徑(點選路徑可直接檢視圖片)
var image = "https://thumbnail0.baidupcs.com/thumbnail/32f3cc8f022839a4dbf6b9f9cca76ce8?fid=3145591938-250528-218900036170682&time;=1550282400&rt;=sh&sign;=FDTAER-DCb740ccc5511e5e8fedcff06b081203-sTBqvQbbBy3n5SDQfbtjNwjlSHg%3D&expires;=8h&chkv;=0&chkbd;=0&chkpc;=&dp-logid;=1077356968076791248&dp-callid;=0&size;=c710_u400&quality;=100&vuk;=-&ft;=video";
var imageType = "URL";
////註冊人臉
//var groupId = "group1";
//var userId = "user1";
//// 呼叫人臉註冊,可能會丟擲網路等異常,請使用try/catch捕獲
//var result = client.UserAdd(image, imageType, groupId, userId);
//Console.WriteLine(result);
//// 如果有可選引數
//var options = new Dictionary{
// {"user_info", "user's info"},
// {"quality_control", "NORMAL"},
// {"liveness_control", "LOW"}
// };
//// 帶引數呼叫人臉註冊
//result = client.UserAdd(image, imageType, groupId, userId, options);
//Console.WriteLine(result);
//人臉識別(在註冊的人臉庫裡面進行識別)
//呼叫人臉檢測,可能會丟擲網路等異常,請使用try / catch捕獲
var result = client.Detect(image, imageType);
Console.WriteLine(result);
// 如果有可選引數
var options = new Dictionary<string, object>{
{"face_field", "age"},
{"max_face_num", 2},
{"face_type", "LIVE"}
};
// 帶引數呼叫人臉檢測
result = client.Detect(image, imageType, options);
Console.WriteLine(result);
}
}
}
控制檯效果圖:
很顯然我們也人臉識別成功了。
四、總結
我們只是使用控制檯做了一個簡單的註冊和識別,刪除和更新也是一樣的,可以直接去官網複製即可
路徑為:http://ai.baidu.com/docs#/Face-Csharp-SDK/3b8dc2e8
有了這個簡單的demo後,我們可以結合攝像頭進行註冊、識別、更新等操作。
關註小編不迷路,下一次我們講呼叫攝像頭完成註冊、識別、更新、刪除等操作。