全部產品
Search
文件中心

AI Guardrails:自訂人臉檢索

更新時間:Dec 30, 2025

本文介紹了如何使用PHP SDK自訂人臉檢索介面,對指定的人臉圖片進行自訂人臉檢索。

功能描述

自訂人臉檢索根據您輸入的待識別人臉圖片(face),在指定人臉庫(group)中尋找並返回最相似的Top 5個體(person),返回的Top 5個體按照相似性從大到小排序。

檢索人臉時,必須指定要檢索的分組資訊(最多指定一個分組)。關於參數的詳細說明,請參見自訂人臉檢索API文檔

您需要使用Alibaba Content Security Service的API接入地址,調用本SDK介面。關於API接入地址的資訊,請參見接入地址(Endpoint)

說明
  • 本 SDK 僅支援傳入圖片 URL,不支援本地檔案或位元據。

  • 支援的 URL 類型:公網 HTTP/HTTPS,長度不超過 2048 個字元。

前提條件

已安裝PHP依賴。關於安裝PHP依賴的具體操作,請參見安裝PHP依賴

說明

請一定按照安裝PHP依賴頁面中的版本安裝,否則會導致調用失敗。

提交人臉圖片檢索任務

<?php

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Green\Green;

try {
   /**
     * 注意:此處執行個體化的client儘可能重複使用,提升檢測效能。避免重複建立串連。
     * 常見擷取環境變數方式:
     * 擷取RAM使用者AccessKey ID:getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
     * 擷取RAM使用者AccessKey Secret:getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
     */
    AlibabaCloud::accessKeyClient('建議從環境變數中擷取RAM使用者AccessKey ID', '建議從環境變數中擷取RAM使用者AccessKey Secret')
        ->timeout(10) // 逾時10秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,使用該用戶端且沒有單獨設定的請求都使用此設定。
        ->regionId('cn-shanghai')
        ->asDefaultClient();

    // url:待檢索圖片url,必選;groupId:檢索庫的Id,必選。
    $task1 = array('dataId' => '業務資料ID',
        'url' => '待檢測圖片連結地址',
        'extras' => array('groupId' => '個體組ID')
    );
    // scenes:檢測情境,取值:sface-n,表示自訂人臉檢索。
    $result = Green::v20180509()->imageSyncScan()
        ->timeout(10) // 逾時10秒,request逾時設定,僅對當前請求有效。
        ->connectTimeout(3) // 連線逾時3秒,當單位小於1,則自動轉換為毫秒,request逾時設定,僅對當前請求有效。
        ->body(json_encode(array("tasks" => array($task1),
            "scenes" => array("sface-n"))))
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}