php如何實現人臉對比

2022-10-18 18:01:47

php實現人臉對比的方法:1、建立一個PHP範例檔案;2、查詢人臉對比介面地址;3、請求人臉對比介面資料;4、解析資料並通過「function base64EncodeImage(){...}」和「function request(){...}」方法進行網路請求及圖片對比即可。

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境:Windows7系統、PHP8.1版、DELL G3電腦

php如何實現人臉對比?

人臉比對-PHP版本

人臉對比介面查詢地址: https://www.juhe.cn/docs/api/id/264?s=cpphpcn

用於對上傳的圖片與庫中的實際身份證照片進行比對。

PHP程式碼如下:

<?php

$url = "http://apis.juhe.cn/verifyface/verify";//介面地址
$key = "******************";//金鑰
$idcard = "******************";//身份證
$realname = "***";//姓名
$image_path = "E:/ocr/cc.jpg";//圖片地址
$image = base64EncodeImage($image_path);//圖片轉base64
$params = compact(['key', 'idcard', 'realname', 'image']);//組合引數
$result = request($url, $params, 'post');//請求
var_dump($result);//結果

//圖片base64
function base64EncodeImage($img_file)
{
    $app_img_file = $img_file; // 圖片路徑
    $fp = fopen($app_img_file, "r"); // 圖片是否可讀許可權
    $image_data = fread($fp, filesize($app_img_file));
    $base64_image = base64_encode($image_data);
    fclose($fp);
    return $base64_image;
}

/**網路請求
 * @param string $url 地址
 * @param array $params 引數
 * @param string $method 請求方法
 * @param array $headers 請求頭
 * @return array
 */
function request($url, $params = array(), $method = "get", $headers = array())
{
    if (strtolower($method) != "post") {
        $method = "get";
    }
    if ($params) {
        if (is_array($params)) {
            $paramsString = http_build_query($params);
        } else {
            $paramsString = $params;
        }
    } else {
        $paramsString = "";
    }
    if ($method == "get" && !empty($paramsString)) {
        $url = $url . "?" . $paramsString;
    }
    // 初始化
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    if (strtolower(substr($url, 0, 8)) == 'https://') {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 從證書中檢查SSL加密演演算法是否存在
    }

    // 請求頭
    if (!empty($headers)) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }

    // 指定post方式
    if ($method == "post") {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $paramsString);
    }
    curl_setopt($ch, CURLOPT_URL, $url);

    // 請求網路
    $httpContent = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    // 關閉
    curl_close($ch);

    return array(
        'httpCode' => $httpCode, // http狀態碼
        'content' => $httpContent, // 網路返回內容
    );
}
登入後複製

介面備註:按格式提交1張人臉圖片與身份證庫中圖片進行對比,返回相似度評分,人臉影象100K以內,jpeg格式,最長邊畫素為800pi最佳。

推薦學習:《》

以上就是php如何實現人臉對比的詳細內容,更多請關注TW511.COM其它相關文章!