PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法
PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためライブラリ等で対応したかった。調べたところ「image-comparator」ライブラリで実装できた。以下に利用方法をメモ。
image-comparator
GitHub
https://github.com/sapientpro/image-comparator
要件
- PHP8.1以上
- PHP-GDが必要
インストール
サーバにSSH接続し以下コマンドでインストールする。
composer require sapientpro/image-comparator
ソースコード
<?php require 'vendor/autoload.php'; use SapientPro\ImageComparator\ImageComparator; $imageComparator = new ImageComparator(); $image_1 = './img/001.jpg'; $image_2 = './img/002.jpg'; $similarity = $imageComparator->compare($image_1, $image_2); //類似度が算出される
サンプル
https://taitan916.info/sample/image-comparator/
同じ画像は当然類似度100になったんだけど、それ以降は何とも言えないところ。
所感
サンプルページは結果をキャッシュして使っているためすぐにページが表示されるが、キャッシュしていない場合処理時間がかかった。また、サーバに負荷もかかってそう。
そのため類似画像検索みたいなシステムを作ろうとすると結構なサーバスペックが必要かもしれない。そういったシステムの場合画像をハッシュ化してMySQLに保存し、類似画像検索するような形がいいかも。
関連記事
-
PHPでファイル書き込み時に「failed to open stream: HTTP~~」エラー
PHPでファイルを書き込む際に「failed to open stream: H ...
-
PHP Qr Codeライブラリを使用してQRコードを生成する方法
PHPでQRコードを生成したい。大分前にGoogle Chart APIを用いて ...
-
PHP Simple HTML DOM Parserを使用したスクレイピング方法
PHPでスクレイピングする際、preg_match_all等を用いて必要なデータ ...
-
PHPでエラーメッセージを見やすくするwhoopsの利用方法
PHPのエラーメッセージが見づらい。これはこういうもの、と諦めていたがCodei ...
-
PHPでランダムなカラーコードを生成する「RandomColor.php」ライブラリの利用方法
PHPでランダムなカラーコードを生成したい。自作するとなると「0~9」「a~f」 ...