勉強したことのメモ

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のHTTPリクエストライブラリ「Requests for PHP」の利用方法

PHPで外部のAPI等にリクエストする際に可能であればfile_get_cont ...

PHPで簡単にカレンダーを生成できるライブラリ「PHP Calendar」の利用方法

PHPでカレンダーを描写したいということがたまにある。今までバニラPHPで書いて ...

FLASHから受信した画像をPHPで保存し、サムネイルも作る

■参考サイト ・FLASH http://www.ilovex.co.jp/bl ...

PHPでCSVを簡単に取り扱える「LeagueCSV(thephpleague / csv)」の利用方法

PHPでCSVファイルの書き込みや読み込みを行う際、バニラPHPで対応していたが ...

phpQueryを利用したjQueryライクなスクレイピング方法

phpQueryというライブラリを使用することでjQueryのセレクタ指定のよう ...