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に保存し、類似画像検索するような形がいいかも。
関連記事
-
MySQLとPHPの「image-comparator」ライブラリを使用して類似画像検索を実装する方法
先日PHPで画像を比較して類似度を算出する「image-comparator」ラ ...
-
PHPでファイル書き込み時に「failed to open stream: HTTP~~」エラー
PHPでファイルを書き込む際に「failed to open stream: H ...
-
jQuery.uploadでリアルタイムプレビュー
やりたい事は、 ・<input type="file">で画像を選択 ...
-
PHPで画像を上下反転させ保存する
やりたかった事は、下記の通り。 ・既にフォルダに保存されている画像を上下反転させ ...
-
smart_resize_imageで縦横の比率関係なく、固定リサイズ
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...