(前回〜11/07)

超気合を入れた日記を書いたところ投稿寸前でマウスのもどるボタンを押してしまい、消滅したため箇条書きでテキトウに書きます。
前々回でいう6の部分の話。

作戦

  • 先に進むには視点(正面とか、右斜め上とか)の違いに強い髪型類似検索が必要
  • 人が似ていると感じる基準→視点の変更に影響を受けない、画素の並びとしての画像→視点の変更に非常に影響を受ける
  • イラストは意識的に視点が変えられていることが多いので「正面のみ」と言って逃れる事ができないのでやるしかない
  • この条件はImager::AnimeFace(アニメ顔検出器)のときにもあった
  • 一般画像認識でも様々な視点の違う画像も分類できている←教師ありだからできる
  • SimHash(参照 lsh p-stable)

f:id:ultraist:20091108120652j:image

  • 同じ髪型なら視点が異なっても似たHash値かつ髪形が違うと似てないHash値になるような変換を求めたい(存在する全ての髪型において!)
  • 教師データを使ってHashFamilyを学習する
  • いろいろゴネゴネすると3層ニューラルネットワークでクラス分類を学習すると副産物としてできていることになる(特に中間層にノイズを加えて確定的な値をとるようにした場合)

f:id:ultraist:20091108121826j:image

  • SimHash関係ない(変換方法が同じだと言いたかった)

実装

  • 髪型の教師データの作るのは面倒なので同じキャラクタの髪型は同じという観点でキャラクタの教師データ(100人分,学習100枚x左右反転,テスト20枚)を使う
  • キャラクタ認識を行う多層パーセプトロンを学習
  • 学習した多層パーセプトロンから特徴空間の変換関数だけを切り出す
  • 切り出した特徴空間の変換関数で検索対象の画像特徴ベクトル(bag of visual-wordsによる)を変換し、変換後の特徴ベクトルで類似検索を行う

結果

http://www.udp.jp/g/Ap.png
http://www.udp.jp/g/1lC.png
http://www.udp.jp/g/1jG.png
http://www.udp.jp/g/1X0.png
http://www.udp.jp/g/PE.png

感想

まだまだだけど、前のバージョン(pLSI)よりはいい気がするので、とりあえずはこの方向で進めようと思う。
やるこことしては

  • 教師データを増やす

くらい。

あと

本題とは関係ないけど、色情報なしで100キャラx20枚の認識率が37%だった。
色を使うともっと上がるはずなので、これはこれでなにかできるかも。