PHPこの記事は、ある画像と、それに似た画像を探す方法についてのアイディアをまとめたものです。似た色の画像を探す実例については、こちらの記事をお読みください。類似する画像を探すには、画像を区分けし、各区分ごとに色を比較するのが簡単です。ピクセルの小さなサムネイルにリサイズした場合、比較するべき場所は、9ブロックにわかれることになります。後はそれぞれのピクセルの色を採取し、他の画像の同じブロックにある色と比較します。検索対象のファイルが大量にある場合は、あらかじめデータベースに色情報をインデックスしておき、それと比較すればある程度早く検索できると思います。色を比較すると言っても方法は幾つもあります。値(赤・緑・青の光の割合)を比較する方法です。値が近くても、人間の知覚では余り似ていないように感じられます。よる比較を試みました。度合いで考える方法です。変換は比較的容易にでき、計算速度も高速です。これによって、色の差をより人間の感覚に近い尺度で捉えることが出来るようになります。人間にとっては区別しにくいという点です。人間の感覚ではほとんど同じに見えますが、色相の数値はかなり差が開いてしまうということです。色空間上の座標に置き換える必要があります。計算量は格段に増えますが、色を3次元空間上の点として扱うことが出来れば、2つの点の距離を測ることで色の差を調べることができます。(→Labによる比較)より良い類似画像検索をするのであれば、ユーザーがどのようなキーワードで検索し、どの画像を選択したのかを記録しておくのも良いと思います。この辺りはナイーブベイズ(単純ベイズ分類器)でユーザーの行動を学習させることで実現できると思います。(明度)に着目し、明るい色のグループ、中間のグループ、暗い色のグループに分けておくことで、検索対象を絞り込むのもひとつの手だと思います。前ページへ[PR]AboutPHP初心者が自らのためにまとめた備忘録です。所々おかしな記述があるかと思いますが、その時はよろしくお願いします。断りがない場合PHPのバージョンは5.6以上を想定しています。