作者:俏巴
概述
之前阿里雲人臉識別只提供人臉檢測,人臉屬性及人臉對比三個API接口,關於這方面的介紹及使用細節,可以參考阿里雲人臉識別使用流程簡介,之前使用的服務地址為:dtplus-cn-shanghai.data.aliyuncs.com。目前新版本加入了1:N人臉查找的功能,新版本還處於公測階段,服務地址:face.cn-shanghai.aliyuncs.com。下面主要介紹如何使用新版本的地址調用之前的三個API的功能。
使用流程
1、服務開通及1:N人臉識別使用
阿里雲人臉識別 1:N 使用簡明示例
2、接口調用Code示例
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
public class CommomDemo {
<span class="hljs-comment">//DefaultProfile.getProfile的參數分別是地域,access_key_id, access_key_secret</span>
public <span class="hljs-keyword">static</span> DefaultProfile profile = DefaultProfile.getProfile(<span class="hljs-string">"cn-shanghai"</span>, <span class="hljs-string">"********"</span>, <span class="hljs-string">"********"</span>);
public <span class="hljs-keyword">static</span> DefaultAcsClient client = <span class="hljs-keyword">new</span> DefaultAcsClient(profile);
public <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> main(<span class="hljs-built_in">String</span>[] args) {
<span class="hljs-built_in">String</span> imageUrl_1 = <span class="hljs-string">"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1559655604341&di=3d6995f6dee1c4795d1827e754a00452&imgtype=0&src=http%3A%2F%2Fimg0.ph.126.net%2F90u9atgu46nnziAm1NMAGw%3D%3D%2F6631853916514183512.jpg"</span>;
<span class="hljs-built_in">String</span> imageUrl_2 = <span class="hljs-string">"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1559655604338&di=ee3d8fb39f6e14a21852a4ac3f2c5a14&imgtype=0&src=http%3A%2F%2Fc4.haibao.cn%2Fimg%2F600_0_100_0%2F1473652712.0005%2F87c7805c10e60e9a6db94f86d6014de8.jpg"</span>;
<span class="hljs-comment">// 人臉檢測定位</span>
DetectFace(imageUrl_1);
<span class="hljs-comment">// 人臉屬性識別</span>
GetFaceAttribute(imageUrl_1);
<span class="hljs-comment">// 人臉對比</span>
VerifyFace(imageUrl_1,imageUrl_2);
}
<span class="hljs-comment">/**
* DetectFace API 人臉檢測定位
*
* @param imageUrl 檢測人臉圖片的URL
*/</span>
public <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> DetectFace(<span class="hljs-built_in">String</span> imageUrl) {
CommonRequest request = <span class="hljs-keyword">new</span> CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain(<span class="hljs-string">"face.cn-shanghai.aliyuncs.com"</span>);
request.setVersion(<span class="hljs-string">"2018-12-03"</span>);
request.setAction(<span class="hljs-string">"DetectFace"</span>);
request.putBodyParameter(<span class="hljs-string">"ImageUrl"</span>, imageUrl);
// request.putBodyParameter("Content", "/9j/4AAQSkZJRgABA..."); //檢測圖片的內容,Base64編碼
CommonResponse response = <span class="hljs-literal">null</span>;
<span class="hljs-keyword">try</span> {
response = client.getCommonResponse(request);
} <span class="hljs-keyword">catch</span> (ClientException e) {
e.printStackTrace();
}
System.out.println(response.getData());
}
<span class="hljs-comment">/**
* GetFaceAttribute API 人臉屬性識別
*
* @param imageUrl 檢測人臉圖片的URL
*/</span>
public <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> GetFaceAttribute(<span class="hljs-built_in">String</span> imageUrl) {
CommonRequest request = <span class="hljs-keyword">new</span> CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain(<span class="hljs-string">"face.cn-shanghai.aliyuncs.com"</span>);
request.setVersion(<span class="hljs-string">"2018-12-03"</span>);
request.setAction(<span class="hljs-string">"GetFaceAttribute"</span>);
request.putBodyParameter(<span class="hljs-string">"ImageUrl"</span>, imageUrl);
// request.putBodyParameter("Content", "/9j/4AAQSkZJRgABA..."); //檢測圖片的內容,Base64編碼
CommonResponse response = <span class="hljs-literal">null</span>;
<span class="hljs-keyword">try</span> {
response = client.getCommonResponse(request);
} <span class="hljs-keyword">catch</span> (ClientException e) {
e.printStackTrace();
}
System.out.println(response.getData());
}
<span class="hljs-comment">/**
* VerifyFace API 人臉比對
*
* @param imageUrl_1 對比人臉圖片1
* @param imageUrl_2 對比人臉圖片2
*/</span>
public <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> VerifyFace(<span class="hljs-built_in">String</span> imageUrl_1, <span class="hljs-built_in">String</span> imageUrl_2) {
CommonRequest request = <span class="hljs-keyword">new</span> CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain(<span class="hljs-string">"face.cn-shanghai.aliyuncs.com"</span>);
request.setVersion(<span class="hljs-string">"2018-12-03"</span>);
request.setAction(<span class="hljs-string">"VerifyFace"</span>);
request.putBodyParameter(<span class="hljs-string">"ImageUrl1"</span>, imageUrl_1);
request.putBodyParameter(<span class="hljs-string">"ImageUrl2"</span>, imageUrl_2);
// request.putBodyParameter("Content", "/9j/4AAQSkZJRgABA..."); //檢測圖片的內容,Base64編碼
CommonResponse response = <span class="hljs-literal">null</span>;
<span class="hljs-keyword">try</span> {
response = client.getCommonResponse(request);
} <span class="hljs-keyword">catch</span> (ClientException e) {
e.printStackTrace();
}
System.out.println(response.getData());
}
}
3、測試結果
{"Data":{"rectA":[679,539,1172,1664],"thresholds":[61.0,69.0,75.0],"rectB":[208,103,152,218],"request_id":"","errno":0,"confidence":70.725196838378906},"RequestId":"64320CB0-325A-4BDA-A127-EC3E686DE6F6","Success":true}