現在の位置: ホーム> 最新記事一覧> PHPとOpenCVを組み合わせた効率的なフェイスフィーチャポイント検出に関するチュートリアル

PHPとOpenCVを組み合わせた効率的なフェイスフィーチャポイント検出に関するチュートリアル

M66 2025-08-02

フェイシャルフィーチャポイント検出とは何ですか?

フェイスフィーチャポイント検出は、コンピュータービジョンの重要なテクノロジーであり、顔認識、表現分析、アイデンティティ検証、その他の分野で広く使用されています。目、鼻、口、その他の位置など、顔のキーポイントを特定することにより、より正確な顔の情報処理を実現できます。

準備と環境の構築

PHPを使用してフェイスフィーチャポイント検出を実現するには、まずPHP開発環境を構成し、OPENCVライブラリをインストールする必要があります。 PHP 7以降を使用することをお勧めします。 OPENCVライブラリは公式チャンネルからダウンロードし、ドキュメントに従ってコンパイルおよびインストールして、ライブラリファイルとヘッダーファイルパスが正しいことを確認できます。

フェイス検出サンプルコードのPHPはOpenCVを呼び出します

<?php
// 負荷OpenCVライブラリパス
$opencvPath = '/path/to/opencv/library';
$opencvLibPath = $opencvPath . '/lib';
$opencvIncludePath = $opencvPath . '/include';

// 環境変数を設定します
$pathEnv = getenv('PATH');
putenv('PATH=' . $opencvLibPath . ':' . $pathEnv);
putenv('LD_LIBRARY_PATH=' . $opencvLibPath);

// 負荷人脸检测模型
$faceCascadePath = '/path/to/haarcascade_frontalface_alt.xml';
$faceCascade = new CvHaarClassifierCascade(cvLoad($faceCascadePath));

// フェイス検出器を初期化します
$faceDetector = new CvHaarDetector($faceCascade);

// 画像ファイルを読む
$imagePath = '/path/to/image.jpg';
$image = new CvImage($imagePath, CV_LOAD_IMAGE_COLOR);

// グレースケールに変換します
$grayImage = $image-> ConvertColor(CV_BGR2GRAY);

//フェイス検出を実行$ faces = $ facedetector-> detect($ grayimage);

//検出された顔のトラバーサルforeach($ faces as $ face){
    //フェイスエリアを得る$ rect = $ face-> getRect();

    //画像の優れたに顔の矩形のフレームをスキャンく(赤)
    $ image-> rectangle($ rect、new cvscalar(255、0、0));

    //フェイスフィーチャポイント検出器をロードする$ landmarkdetectorpath = &#39;/path/to/shape_predictor_68_face_landmarks.dat&#39;;
    $ landmarkdetector = new dliblandmarkdetector($ landmarkdetectorpath);

    //フェイスフィーチャポイントを検出する$ landmarks = $ landmarkdetector-> detect($ grayimage、$ face);

    //機能ポイント(緑のドット)をスキャン画する
    foreach($ landarks as $ point){
        $ image-> circle($ point、2、new cvscalar(0、255、0));
    }
}

//処理された画像を急行$ image-> show();
?>

PHP拡張インストールと構成

上記のコードを実行する前に、関連するPHP拡張子をインストールする必要があります。 DLIBおよびOPENCV拡張機能は、次のコマンドからインストールできます。

 $ peclインストールdlib
$ peclインストールopencv

インストールが完了したら、php.iniファイルに次の構成を追加します。

 extension = dlib.so
extension = opencv.so

構成を保存し、PHPサーバーを再起動して、拡張機能が正しくロードされていることを確認します。

要約します

この記事では、PHPとOpenCVを使用して、環境の準備からコード実装、拡張インストールと構成まで、フェイスフィーチャポイント検出を実現するための完全なプロセスを紹介し、開発者が迅速にフェイス検出機能を構築できるようにします。このようにして、強力な顔認識機能をPHPプロジェクトに統合して、よりインテリジェントなアプリケーションシナリオを拡大できます。

モデルファイルと画像パスが正しいことを確認するために、実際の環境に従ってコード内のパスを交換してください。