Java と Huawei Cloud の顔比較インターフェイスの呼び出しロジックとコード例の詳細な説明
人工知能技術の急速な発展に伴い、顔認識は現代社会で広く使用される技術手段になりました。 Huawei Cloudは、顔画像を比較して認識できる顔比較インターフェースを提供します。この記事では、Java プログラミング言語を使用して Huawei Cloud の顔比較インターフェイスの呼び出しロジックを呼び出す方法を詳しく紹介し、対応するコード例を添付します。
まず、Huawei Cloud 上に顔比較サービス インスタンスを作成し、認証権限に対応する API キーと秘密キーを取得する必要があります。
次に、Java プログラミング言語を使用して、顔比較インターフェイスの呼び出しロジックを実装する必要があります。まず、Apache HttpClient や Fastjson などの対応する依存ライブラリを導入する必要があります。
import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import com.alibaba.fastjson.JSONObject;
次に、顔比較のためのインターフェイス呼び出しを行い、比較する 2 人の人物を渡すメソッドを定義する必要があります。パラメータとしての顔画像の Base64 エンコード文字列:
public static double compare(String image1, String image2) { double similarity = 0.0; try { // 根据实际的服务部署地区选择对应的API地址 String apiUrl = "https://face.cn-north-1.myhuaweicloud.com/v2/compare-face"; // 创建HttpPost对象,并设置请求的URL HttpPost httpPost = new HttpPost(apiUrl); // 设置请求的头部信息 httpPost.setHeader("Content-Type", "application/json;charset=UTF-8"); httpPost.setHeader("X-Auth-Token", getAuthToken()); // 设置请求的内容参数 JSONObject requestObj = new JSONObject(); requestObj.put("image1", image1); requestObj.put("image2", image2); StringEntity requestEntity = new StringEntity(requestObj.toJSONString(), ContentType.APPLICATION_JSON); httpPost.setEntity(requestEntity); // 创建HttpClient对象,并发送HttpPost请求 HttpClient httpClient = HttpClientBuilder.create().build(); HttpResponse response = httpClient.execute(httpPost); // 获取接口返回的结果 HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity, "UTF-8"); // 解析接口返回的结果 JSONObject responseObj = JSONObject.parseObject(result); similarity = responseObj.getDouble("similarity"); } catch (Exception e) { e.printStackTrace(); } return similarity; }
上記のコードでは、まず顔比較インターフェースの API アドレス、リクエストヘッダ情報、リクエストパラメータ情報を設定します。次に、HttpClient を使用して HttpPost リクエストを送信し、インターフェイスから返される結果を取得します。
最後に、認証トークンを取得するメソッドも定義する必要があります。これは、インターフェイスが呼び出される前にトークンを取得するために使用されます。
public static String getAuthToken() { String authToken = ""; try { // 根据实际的服务部署地区选择对应的API地址 String apiUrl = "https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens"; // 创建HttpPost对象,并设置请求的URL HttpPost httpPost = new HttpPost(apiUrl); // 设置请求的头部信息 httpPost.setHeader("Content-Type", "application/json;charset=UTF-8"); // 设置请求的内容参数 String requestBody = "{"auth":{"identity":{"methods":["password"],"password":{"user":{"name":"<your_account_name>","password":"<your_password>","domain":{"name":"<your_domain_name>"}}}},"scope":{"project":{"name":"<your_project_name>"}}}}"; StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); httpPost.setEntity(requestEntity); // 创建HttpClient对象,并发送HttpPost请求 HttpClient httpClient = HttpClientBuilder.create().build(); HttpResponse response = httpClient.execute(httpPost); // 获取接口返回的结果 Header[] headers = response.getHeaders("X-Subject-Token"); if (headers.length > 0) { authToken = headers[0].getValue(); } } catch (Exception e) { e.printStackTrace(); } return authToken; }
上記のコードでは、最初に認証インターフェースのAPI アドレス、リクエストヘッダ情報、リクエストパラメータ情報。次に、HttpClient を使用して HttpPost リクエストを送信し、インターフェイスから返された結果で認証トークンを取得します。
最後に、main 関数で Compare メソッドを呼び出して、顔比較操作を実行し、結果を出力します。
public static void main(String[] args) { String image1 = "<your_face_image1_base64_string>"; String image2 = "<your_face_image2_base64_string>"; double similarity = compare(image1, image2); System.out.println("相似度:" + similarity); }
上記のコード例では、
要約すると、この記事では、Java と Huawei Cloud のフェイス比較インターフェイスの呼び出しロジックを詳細に分析し、対応するコード例を提供します。読者の顔比較の実践に役立つことを願っています。
以上がJavaとHuawei Cloudのフェイス比較インターフェースの呼び出しロジックを詳細に分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。