Heim  >  Artikel  >  Backend-Entwicklung  >  Ein Anfängerleitfaden zur Gesichtserkennung in PHP

Ein Anfängerleitfaden zur Gesichtserkennung in PHP

王林
王林Original
2023-06-11 09:16:391598Durchsuche

Mit der kontinuierlichen Weiterentwicklung der Technologie wird die Gesichtserkennungstechnologie immer häufiger eingesetzt. Im Bereich der Webentwicklung ist PHP eine weit verbreitete Technologie, daher hat auch die Gesichtserkennungstechnologie in PHP große Aufmerksamkeit erregt. In diesem Artikel wird eine Einführung in die Gesichtserkennung in PHP vorgestellt, um Anfängern dabei zu helfen, dieses Gebiet schnell zu beherrschen.

1. Was ist Gesichtserkennungstechnologie? Die Gesichtserkennungstechnologie ist eine biometrische Identifikationstechnologie, die auf Computer-Vision-Technologie basiert. Zu ihren Hauptanwendungsbereichen gehören Sicherheit, Finanzen, E-Commerce usw. Der Kern der Gesichtserkennungstechnologie besteht darin, Gesichter zu erkennen und Gesichtsbilder mit Identitätsinformationen abzugleichen.

2. Gesichtserkennungstechnologie in PHP

Gesichtserkennungstechnologie in PHP wird hauptsächlich durch den Aufruf von APIs von Drittanbietern implementiert. In PHP erfordert der Aufruf dieser APIs die Kommunikation mit dem HTTP-Protokoll.

1. API aufrufen

Wenn wir PHP zur Gesichtserkennung verwenden, müssen wir eine Drittanbieter-API zur Gesichtserkennung und -erkennung aufrufen. Zu den häufig verwendeten APIs gehören Face++, Baidu AI-Gesichtserkennung usw. Hier nehmen wir Face++ als Beispiel.

Um die API von Face++ aufzurufen, müssen Sie zunächst ein Konto registrieren, eine Anwendung erstellen und dann den API-Schlüssel und das API-Geheimnis erhalten. In PHP wird die API über die Curl-Funktion aufgerufen.

Beispielcode:

$api_key = "your api_key";
$api_secret = "your api_secret";
$image_file = "test.jpg";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api-cn.faceplusplus.com/facepp/v3/detect");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
    "api_key" => $api_key,
    "api_secret" => $api_secret,
    "image_file" => new CURLFile($image_file),
    "return_attributes" => "gender,age"
]);
$result = curl_exec($ch);
curl_close($ch);

echo $result;

Im obigen Code verwenden wir die Curl-Bibliothek, um die Gesichtserkennungs-API von Face++ aufzurufen, das Bild hochzuladen und die zurückzugebenden Attribute wie Geschlecht und Alter anzugeben.

2. Analysieren Sie die von der API zurückgegebenen Ergebnisse

Nach dem Aufruf der API müssen wir die von der API zurückgegebenen Ergebnisse analysieren. In Face++ liegen die zurückgegebenen Ergebnisse im JSON-Format vor. Wir müssen gemäß dem im API-Dokument angegebenen Format analysieren.

Beispielcode:

$result = json_decode($result, true);
if($result && isset($result["faces"])) {
    foreach($result["faces"] as $face) {
        print_r($face["attributes"]);
    }
}

Im obigen Code verwenden wir die Funktion json_decode, um den von der API zurückgegebenen JSON-String in ein Array zu konvertieren. Dann durchlaufen wir die Gesichter im Array und erhalten die Attributinformationen des Gesichts.

3. Gesichtserkennungsanwendung in PHP

In PHP kann die Gesichtserkennungstechnologie auf viele Szenarien angewendet werden, z. B. Gesichtsanmeldung, Gesichtszahlung, Gesichtsanmeldung usw. Hier nehmen wir als Beispiel die Gesichtsanmeldung.

1. Gesichtsverifizierung

Während des Gesichts-Anmeldevorgangs müssen wir die Gesichtsverifizierungsfunktion implementieren. Es gibt zwei Methoden zur Gesichtsüberprüfung: Vergleichen von Merkmalswerten und Vergleichen von Gesichtsbildern.

Der Vergleich von Merkmalswerten bedeutet, Gesichtsbilder in entsprechende Merkmalswerte umzuwandeln und diese dann durch Vergleich der Merkmalswerte zu überprüfen. Zu den häufig verwendeten Methoden zur Darstellung von Gesichtsmerkmalswerten gehören PCA, LBP usw. Der Vergleich von Gesichtsbildern bezieht sich auf den direkten Vergleich von Gesichtsbildern. Wenn die Ähnlichkeit zwischen den beiden Bildern einen bestimmten Schwellenwert erreicht, gilt die Überprüfung als bestanden.

2. Gesichtseingabe

Während des Gesichtsanmeldungsprozesses müssen wir auch die Gesichtseingabefunktion implementieren. Die Gesichtseingabemethode besteht darin, das vom Benutzer hochgeladene Gesichtsbild zu verarbeiten, die entsprechenden Merkmalswerte zu extrahieren und in der Datenbank zu speichern.

Beispielcode:

//提取人脸特征值
function extract_feature($image_file) {
    $api_key = "your api_key";
    $api_secret = "your api_secret";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://api-cn.faceplusplus.com/facepp/v3/face/analyze");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, [
        "api_key" => $api_key,
        "api_secret" => $api_secret,
        "image_file" => new CURLFile($image_file),
        "return_landmark" => 1,
        "return_attributes" => "gender,age,smiling,headpose,eyestatus,ethnicity,beauty"
    ]);
    $result = curl_exec($ch);
    curl_close($ch);

    $result = json_decode($result, true);
    if($result && isset($result["faces"])) {
        foreach($result["faces"] as $face) {
            return $face["face_token"];
        }
    }
    return null;
}

//保存人脸特征值到数据库中
function save_feature($feature, $user_id) {
    $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "123456");
    $stmt = $pdo->prepare("INSERT INTO face_feature(user_id, feature) VALUES(?, ?)");
    $stmt->bindValue(1, $user_id);
    $stmt->bindValue(2, $feature);
    $stmt->execute();
}

$image_file = "test.jpg";
$user_id = 1;

$feature = extract_feature($image_file);
if($feature) {
    save_feature($feature, $user_id);
}

Im obigen Code verwenden wir die API von Face++, um Gesichtsmerkmalswerte zu extrahieren und die Merkmalswerte in der Datenbank zu speichern. Während des Speichervorgangs haben wir die PDO-Datenbankbibliothek verwendet, um auf die Datenbank zuzugreifen.

Zusammenfassung

Durch die Einleitung dieses Artikels können wir sehen, dass die Gesichtserkennungstechnologie in PHP nicht schwer zu beherrschen ist. Indem wir APIs von Drittanbietern aufrufen und APIs analysieren, um Ergebnisse zurückzugeben, können wir Gesichtserkennungsanwendungen implementieren. Natürlich gibt es neben Face++ noch viele weitere Gesichtserkennungs-APIs, die genutzt werden können. Wenn Sie sich daher eingehend mit der Gesichtserkennungstechnologie in PHP befassen möchten, müssen Sie verschiedene APIs ausprobieren, um sie besser in tatsächlichen Szenarien anwenden zu können.

Das obige ist der detaillierte Inhalt vonEin Anfängerleitfaden zur Gesichtserkennung 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