Heim  >  Artikel  >  Backend-Entwicklung  >  So erreichen Sie einen Gesichtsvergleich in PHP

So erreichen Sie einen Gesichtsvergleich in PHP

藏色散人
藏色散人Original
2022-10-18 16:05:292125Durchsuche

So implementieren Sie den Gesichtsvergleich in PHP: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Fragen Sie die Adresse der Gesichtsvergleichsschnittstelle ab. 4. Analysieren Sie die Daten und übergeben Sie „function base64EncodeImage()“. Mit den Methoden „. .}“ und „function request(){...}“ können Netzwerkanfragen und Bildvergleiche durchgeführt werden.

So erreichen Sie einen Gesichtsvergleich in PHP

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, DELL G3-Computer

Wie erreicht man einen Gesichtsvergleich in PHP?

Gesichtsvergleich-PHP-Version

Abfrageadresse der Gesichtsvergleichsschnittstelle: https://www.juhe.cn/docs/api/id/264?s=cpphpcn

Wird zum Vergleichen der hochgeladenen Bilder mit den tatsächlichen Ausweisfotos in der Bibliothek verwendet.

PHP-Code lautet wie folgt:

<?php

$url = "http://apis.juhe.cn/verifyface/verify";//接口地址
$key = "******************";//密钥
$idcard = "******************";//身份证
$realname = "***";//姓名
$image_path = "E:/ocr/cc.jpg";//图片地址
$image = base64EncodeImage($image_path);//图片转base64
$params = compact([&#39;key&#39;, &#39;idcard&#39;, &#39;realname&#39;, &#39;image&#39;]);//组合参数
$result = request($url, $params, &#39;post&#39;);//请求
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)) == &#39;https://&#39;) {
        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(
        &#39;httpCode&#39; => $httpCode, // http状态码
        &#39;content&#39; => $httpContent, // 网络返回内容
    );
}

Anmerkungen zur Schnittstelle: Senden Sie 1 Gesichtsbild entsprechend dem Format und vergleichen Sie es mit dem Bild in der ID-Kartenbibliothek, geben Sie den Ähnlichkeitswert zurück, das Gesichtsbild liegt innerhalb von 100 KB, JPEG Format, Pixel auf der längsten Seite. Am besten für 800pi.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo erreichen Sie einen Gesichtsvergleich in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn