OpenCV 2.4.9 for Javaをやりました。

昨日は、まる1日
http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html
公式のOpenCV 2.4.9 with Javaで遊んでいました。

事前の予想では、C言語コンパイルとか面倒なこと発生しそうな気がしました。
しかし、.dllファイルをEclipseのProjectに放り込むだけで、簡単にサンプルが動きました。

正確には、リソース取得のコードに難ありで、ファイルを読み込む方式に変更しましたが
getClass().getResource("/lbpcascade_frontalface.xml").getPath()

ただ、実際に動かす所で苦労しました。
データーを、cifar-10 というデーターセットから流用したのですが(これExtractするコード書くのに多少時間かかった。)
http://www.cs.toronto.edu/~kriz/cifar.html

学習データーのサイズと、検証データーのサイズが同じだと、うまく認識させれませんでした。
detectMultiScaleの所で調整が必要な気がしましたが、内部はさっぱりわかりませんでした。

あと学習データーが500ぐらいだと、ステージ10ぐらいしか進みませんでした。
次は、自分でデーターを5000件ぐらい集めて、再度検証したいです。

ただ、今後はJavaScriptのみで動くのに挑戦したいです。
ConvNetJS が物凄く面白そうです。(画像処理の所、自分で作りこむ必要ありますが)

JavaScritp以外にも、コンパイル環境作らないといけないので、大変そうなのですが
気力があれば、以下も検証したい。

CCV.js
http://liuliu.me/ccv/js/nss/
ただOpenCVでいうcascade.xmlはCで書かれたExeで行う。openCVの物を変換はできない?

OpenCV for Chrome
http://opencv.org/opencv-ported-to-google-chrome-nacl-and-pnacl.html
自分でNativeClient化が大変そう