(前回〜10/28)

pLSI

PLSIは日曜日に実装して今はそれでいろいろと試してる。試してるといっても実行して数時間放置して終わったら目視でちょっと比較してるだけだけど。速度的には十分出ているけど32bitOSだとメモリ使用量がちょっと厳しい。ただ2048次元(w)x4万件(d)x256クラス(z)程度までならどうにかなってる。データ全部を使う必要もないので、どうにかなるだろ…と。
結果は最初微妙だと思ってたけど、だいぶいい感じに思えてきた。特殊なことをしてよくなった点は、頻度ごとに成分を分けたことで、たとえば頻度が2以上なら-1して頻度が2の成分にも入れるといったことをした。画像の局所特徴点の場合は、頻度の多さは物体の形状にも関係していると前から思っていて、オレオレIDFでもそれを使ってちょっとよくなった気がしていたんだけど、PLSIの場合でも成分を分けたほうがよくなった気がする(目視&俺主観による)。これは一本の長い棒を想像したらよくて、同じvisual-wordの頻度の多さが棒の長さと関係しているので、長さによって違う単語として扱いというか。まともなテストデータで調べたわけではないので、アレです。

コミックスキャン画像の削除

クロールした画像にコミックのスキャン画像が大量に混ざっていて、AnimeFaceは優秀なので線画の顔も検出してくるけど、線画だとSURFの特徴量がカラーイラストと違うことになってうまくいってないし、クラスタリングにも悪影響があると思ったので消すことにした。
で、モノクロ画像を判定するコマンドとそれを使って指定したフォルダのモノクロ画像を移動させるコマンドを作って移動した。
http://gist.github.com/220239:title=
http://gist.github.com/220240:title=
ソースコード。Windowsでしか試していないけど、たぶんOpenCVをインストールしてテキトウにリンクするとLinuxでも動くと思う。
色彩のヒストグラムを作って、画像で使われている色の数で判定しているので、グレースケールでなくても単色印刷っぽい画像は検出できる。ただ、微妙に色が付いてる線画を取りこぼすので、どうにかしようと一瞬考えたけどまあいいかと思った。(ここから精度をあげて誤検出を無くすのは難しそう)
これによって、白い髪のキャラクタも検索できるようになった。(以前は、コミックのスキャンが大量に出てきててダメだった)

(おわり)