シーン認識サーバを作ってみた

以前から趣味で作ってた画像認識サーバが一応動くようになったので紹介したいと思います。
http://www2268u.sakura.ne.jp/uploader/upload.php 引っ越しました。
http://www6255uf.sakura.ne.jp/sun397/upload.php

(※アップロードされた画像はその場で破棄しています。)

概要

  • 前回のエントリで紹介したSUN397シーン画像データセットで学習した認識システムが動いています。ベンチマークでの認識率は37.8%で、現在の先端研究とほぼ同等の精度です。
  • 風景画像とか、室内画像のシーンをある程度認識できます。データセットの画像は主に海外の人が撮った写真なので、欧米の風景写真の方が認識できる確率が高いようです。
  • さくらのVPSで、一番安いもの(VPS512)を使ってます。非力です。アクセスが殺到したら多分やばいです(笑)

自分が旅行に行ったときの写真を適当に入れてみました。上から順番に、上位5つのクラスを表示しています。ここでのscoreはクラスとの近さを示すので、値が小さいほどそれっぽいということです。

手法

昔大学で開発した手法を焼きなおしたものを使っています。局所特徴記述子はRGB-SURFとself similarityを使っていますが、BoVW表現は用いていません。

  • Hideki Nakayama, Tatsuya Harada, Yasuo Kuniyoshi, Dense Sampling Low-Level Statistics of Local Features, ACM International Conference on Image and Video Retrieval (CIVR 2009).
  • Hideki Nakayama, Tatsuya Harada, Yasuo Kuniyoshi, Global Gaussian Approach for Scene Categorization using Information Geometry, IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2010).

元々これは、有名な高次局所自己相関特徴(HLAC)の枠組みを任意の局所特徴記述子で利用したものなのですが、実は最近ブレイクしつつあるFisher vectorと密接な関係があります。というか数学的にはまんまFisher vectorです*1。すなわち、ガウシアンが一つのみの場合のFisher vectorと解釈することができます。ただ、本家Fisher vectorでは分散行列の非対角要素のパラメータを省略しているのに対し、こちらでは密に全てとっている点が異なります。これは異なるエッジの相関の強さを表す情報なので、直感的にも重要なのではないかと思うわけです。

となると気になってくるのは、GMMで分散のパラメータも密にとったらどうだろうということですが、それに近いものはもうあったりします。これはFisher vectorというよりはVLADの考え方が出発点ですが、結局のところ似たような話な気がしています。

David Picard and Philippe-Henri Gosselin, IMPROVING IMAGE SIMILARITY WITH VECTORS OF LOCALLY AGGREGATED TENSORS, ICIP'11

*1:恥ずかしながら、この研究やってた当事はFisher vectorを知らなかったのですが、後でその存在を知ってがっかりしたのを覚えています。