勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

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

  関連記事

PHPでダミー画像(プレースホルダー画像)を表示する「PHP-Dummy-Image-Generator」の利用方法

先日JavaScriptでダミー画像(プレースホルダー画像)を表示する「Hold ...

PHPで画像を分割し並べ替えて出力したものをJavaScriptで復元する方法

ある電子書籍サイトをブラウザの開発者ツールで見てみたところ、PHPでページ画像を ...

PHPのバリエーションライブラリ「Valitron」の導入及び利用方法

フォーム等の入力内容チェックをPHP側で行う際、現状は素のPHPで書いているけど ...

PHPで画像を上下反転させ保存する

やりたかった事は、下記の通り。 ・既にフォルダに保存されている画像を上下反転させ ...

PHPで「php-qrcode-detector-decoder」ライブラリを使用してQRコードをデコードする方法

PHPでQRコードの画像をデコードし、値を変数等に格納したい。何とかならないか調 ...