ホームページ  >  記事  >  バックエンド開発  >  PHP での顔認識の初心者ガイド

PHP での顔認識の初心者ガイド

王林
王林オリジナル
2023-06-11 09:16:391595ブラウズ

技術の継続的な発展により、顔認識技術はますます広く使用されるようになりました。 Web開発の分野ではPHPが広く採用されており、PHPにおける顔認識技術も注目を集めています。この記事では、初心者がこの分野をすぐにマスターできるように、PHP での顔認識の入門ガイドを紹介します。

1. 顔認識技術とは

顔認識技術は、コンピュータビジョン技術をベースにした生体認証技術であり、主な応用分野にはセキュリティ、金融、電子商取引などが含まれます。顔認識技術の中核は、顔を認識し、顔画像とアイデンティティ情報を照合することです。

2. PHP の顔認識テクノロジー

PHP の顔認識テクノロジーは、主にサードパーティ API を呼び出すことによって実装されます。 PHP では、これらの API を呼び出すには、HTTP プロトコルとの通信が必要です。

1. API の呼び出し

PHP を使用して顔認識を行う場合、顔の検出と認識のためにサードパーティ API を呼び出す必要があります。一般的に使用される API には、Face、Baidu AI 顔認識などが含まれます。ここでは顔を例として取り上げます。

Face の API を呼び出すには、まずアカウントを登録し、アプリケーションを作成して、API キーとシークレットを取得する必要があります。 PHP では、API は、curl 関数を通じて呼び出されます。

サンプル コード:

$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;

上記のコードでは、curl ライブラリを使用して Face の顔検出 API を呼び出し、画像をアップロードし、性別と年齢として返される属性を指定します。

2. API によって返された結果を解析する

API を呼び出した後、API によって返された結果を解析する必要があります。 Face では、返される結果は JSON 形式です。 API ドキュメントで指定された形式に従って解析する必要があります。

サンプル コード:

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

上記のコードでは、json_decode 関数を使用して、API から返された JSON 文字列を配列に変換します。次に、配列内の面を走査して、面の属性情報を取得します。

3. PHP での顔認識アプリケーション

PHP では、顔認識テクノロジーを顔ログイン、顔支払い、顔チェックインなどの多くのシナリオに適用できます。ここでは顔ログインを例に挙げます。

1. 顔認証

顔ログインプロセス中に、顔認証機能を実装する必要があります。顔認証を実現するには、特徴量の比較と顔画像の比較の2つの方法があります。

特徴量の比較とは、顔画像を対応する特徴量に変換し、特徴量を比較することで検証することです。一般的に使用される顔特徴量の表現方法には、PCA、LBP などがあります。顔画像の比較とは、顔画像を直接比較することであり、2つの画像の類似性が一定の閾値に達した場合に検証に合格したとみなされる。

2. 顔入力

顔ログインプロセス中に、顔入力機能も実装する必要があります。顔入力の方法は、ユーザーがアップロードした顔画像を処理し、対応する特徴量を抽出してデータベースに保存します。

サンプルコード:

//提取人脸特征值
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);
}

上記のコードでは、Face の API を使用して顔の特徴値を抽出し、特徴値をデータベースに保存します。保存プロセス中に、PDO データベース ライブラリを使用してデータベースにアクセスしました。

概要

この記事の導入部を通じて、PHP の顔認識テクノロジを習得するのは難しくないことがわかります。サードパーティ API を呼び出し、API を解析して結果を返すことで、顔認識アプリケーションを実装できます。もちろん、Face 以外にも使用できる顔認識 API は多数あります。したがって、PHP で顔認識テクノロジーを詳しく調べたい場合は、実際のシナリオでより適切に適用できるようにさまざまな API を試してみる必要があります。

以上がPHP での顔認識の初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。