libpuzzleを使ってみる

これまたやってみたかったので。

環境

インストール

GD2が必要みたいなので。

$ yum install gd gd-devel

Libpuzzleインストール。

$ wget http://download.pureftpd.org/pub/pure-ftpd/misc/libpuzzle/releases/libpuzzle-0.11.tar.bz2
$ tar -jxvf libpuzzle-0.11.tar.bz2
$ cd libpuzzle-0.11
$ ./configure --with-libpuzzle
$ make clean
$ make
$ make install
$ cd php/libpuzzle
$ phpize
$ ./configure --with-libpuzzle
$ make
$ make install

php.iniに以下を記述。

extension=libpuzzle.so

README-PHPを見て、最初php/libpuzleでmakeをしていて、errorでるなぁできないなぁと思っていたのですが、libpuzzle-0.11でやるんですね。

実験1

画像

ストリートビューの3つの画像の類似度を見てみる。
上から順に新宿、渋谷、下北沢。
ぱっと見、新宿と渋谷の画像が似ていると思うのですが、果たしてどうなるでしょう。
f:id:mfham:20130908163946p:plain
f:id:mfham:20130908163959p:plain
f:id:mfham:20130908164010p:plain

実行
<?php

$shinjuku = puzzle_fill_cvec_from_file('shinjuku.PNG');
$shibuya = puzzle_fill_cvec_from_file('shibuya.PNG');
$shimokita = puzzle_fill_cvec_from_file('shimokita.PNG');
$diff1 = puzzle_vector_normalized_distance($shinjuku, $shibuya);
$diff2 = puzzle_vector_normalized_distance($shinjuku, $shimokita);
$diff3 = puzzle_vector_normalized_distance($shibuya, $shimokita);
echo '新宿-渋谷:', $diff1, "\n";
echo '新宿-下北沢:', $diff2, "\n";
echo '渋谷-下北沢:', $diff3, "\n";
結果
新宿-渋谷:0.66320209402564
新宿-下北沢:0.63079667009246
渋谷-下北沢:0.66480290558729

新宿と下北沢が似ているのか・・・
この数値ですが、README-PHPにこのように書いてあります。
0に近いほど似ているそうですね。distanceだからそうなるか。

The result is between 0.0 and 1.0, with 0.6 being a good threshold to detect
visually similar pictures.

実験2

画像

ストリートビューの画像1つと、その画像をズームしたものを比較してみる。
ぱっと見、似ているかといわれたら似ていないと答えそう。
ただズームしただけなので少しは似ていると判定してくれたらなーと期待してみる。
f:id:mfham:20130908165334p:plain
f:id:mfham:20130908165342p:plain

実行
<?php

$pic = puzzle_fill_cvec_from_file('picture.PNG');
$zoompic = puzzle_fill_cvec_from_file('zoompicture.PNG');
$diff = puzzle_vector_normalized_distance($pic, $zoompic);
echo '引き-寄り:', $diff, "\n";
結果
引き-寄り:0.76019173674939

はい、似てませんよね。

実験3

1. 同じ画像で比較する
2. 同じ画像を使用するが、片方の画像サイズを若干小さくし(ふちを少し切り取る)比較する
とどうなるかもやってみました。
結果は、こうなりました
1. 0
2. 0.52746590074428

感想

今回使用した画像の場合、写っている車の数なども影響しているんですかね。
あっ・・・ここまで書いて気づいたことが・・・
新宿の画像に '都道4号線' の文字が・・・あぁぁぁ
っていうか実験2の画像も・・・
ということで、実験1だけ新宿が像を下記画像に差し替えて再び比較してみました。
f:id:mfham:20130908171828p:plain
結果は

新宿-渋谷:0.69488653454707
新宿-下北沢:0.66255408980795
渋谷-下北沢:0.66480290558729

うーん・・・

その他

昨日ちょこっと語った映画「リメンバー・ミー」ですが、DVDが10月に発売予定みたいですね!
予約しました。
英語字幕があるとよかったなぁ。

リメンバー・ミー [DVD]

リメンバー・ミー [DVD]