ホームページ >バックエンド開発 >PHPチュートリアル >PHP でインテリジェントな画像処理と顔検出を実行するにはどうすればよいですか?

PHP でインテリジェントな画像処理と顔検出を実行するにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-05-21 10:52:401647ブラウズ

人工知能技術の継続的な発展に伴い、画像処理と顔検出はますます広く使用されるようになりました。 PHP はサーバー側言語として、これらのアプリケーションもサポートできます。この記事では、PHP を使用してインテリジェントな画像処理と顔検出を実装する方法を紹介します。

1. インテリジェントな画像処理

  1. 画像圧縮

高解像度の画像はより優れた視覚体験を提供しますが、サイズが大きくなる原因にもなります。非常に大きいため、ページの読み込み速度が遅くなります。 PHP には、画像サイズを圧縮して読み込み時間を短縮できるいくつかの画像処理関数が用意されています。

たとえば、ImageJPEG() 関数は、画像を jpeg 形式で出力し、出力画像の圧縮率を制御できます。

$source_image = imagecreatefromjpeg("test.jpg");
$destination_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($destination_image, $source_image, 0, 0, 0, 0, $new_width, $new_height, $original_width, $original_height);
imagejpeg($destination_image, null, $quality);
  1. 画像の回転、トリミング、透かし

PHP は、回転、トリミング、透かしの追加などの一連の画像処理機能も提供します。これらの機能は、Web デザインにおいてより実用的です。

たとえば、ImageRotate() 関数は画像を特定の角度に回転できます。

$source_image = imagecreatefromjpeg("test.jpg");
$destination_image = imagerotate($source_image, $angle, 0);
imagejpeg($destination_image, null, $quality);
  1. 画像認識

画像認識テクノロジにより、コンピュータは画像を自動的に回転する 各画像の主な内容を分析し、分類して識別します。 PHP では、Google Cloud Vision API などのサードパーティ API を使用して画像認識を実現でき、画像内のコンテンツに基づいて自動的に分類、マーク付け、説明、テキストの検出などを行うことができます。

たとえば、次のコードは Google Cloud Vision API を呼び出して画像認識を完了できます:

$client = new Google_Client();
$client->setApplicationName("AI Demo");
$client->setDeveloperKey("YOUR_DEVELOPER_KEY");
$service = new Google_Service_Vision($client);
$image = file_get_contents('test.jpg', true);
$request = new Google_Service_Vision_Image();
$request->setContent($image);
$results = $service->images->annotate(
    $service->images->annotate(new Google_Service_Vision_AnnotateImageRequest(
        new Google_Service_Vision_Image(array('content' => base64_encode($image))),
        array('TEXT_DETECTION')
    ))->getResponses()[0]
);

2. 顔検出

スマートフォンやカメラの普及により、顔検出技術も徐々に普及してきました。一部のサードパーティのライブラリまたは API を使用して、PHP で顔検出を実装することもできます。

  1. OpenCV

OpenCV は、クロスプラットフォームのオープンソース コンピューター ビジョン ライブラリです。画像やビデオなどのマルチメディア形式だけでなく、顔検出、物体認識、画像追跡などの一般的なコンピュータ ビジョンの問題も処理できます。 PHPでは、OpenCV APIを呼び出すことで顔検出などの機能を実装できます。

たとえば、次のコードは OpenCV を呼び出して顔検出を実装できます:

$face_cascade = new CascadeClassifier();
$face_cascade->load('haarcascade_frontalface_default.xml');
$src = imread('test.jpg');
$gray = cvtColor($src, COLOR_BGR2GRAY);
$faces = new RectVector();
$face_cascade->detectMultiScale($gray, $faces);

foreach ($faces as $face) {
    rectangle($src, $face->x, $face->y, $face->x + $face->width, $face->y + $face->height, Scalar::all(255));
}

imwrite('result.jpg', $src);
  1. Face API

Face は顔の認識、分析、および顔の検出です。感情分析APIサービス。これは、開発者が顔検出、目、口、鼻、顔の特徴点などの機能を迅速に実装するのに役立ちます。

たとえば、次のコードは Face API を呼び出して顔検出を実装できます。

$client = new GuzzleHttpClient();
$response = $client->request('POST', 'https://api-cn.faceplusplus.com/facepp/v3/detect', [
    'multipart' => [
        [
            'name' => 'api_key',
            'contents' => 'YOUR_API_KEY',
        ],
        [
            'name' => 'api_secret',
            'contents' => 'YOUR_API_SECRET',
        ],
        [
            'name' => 'image_file',
            'contents' => fopen('test.jpg', 'r'),
            'filename' => 'test.jpg',
        ],
        [
            'name' => 'return_attributes',
            'contents' => 'gender,age,smiling,emotion',
        ],
    ],
]);
$json = json_decode($response->getBody(), true);

結論

この記事では、PHP でのインテリジェントな画像処理および顔検出アプリケーションを紹介します。これらの機能は、PHP、サードパーティ API、またはオープンソース ライブラリによって提供される機能を使用して簡単に実装できます。もちろん、これらのアプリケーションにはまだ改善の余地が多く、より価値のあるアプリケーション シナリオを発見するために新しいテクノロジを試し続けることができます。

以上がPHP でインテリジェントな画像処理と顔検出を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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