Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OpenCV4Androidで画像処理アプリのススメ

7,803 views

Published on

  • Be the first to comment

OpenCV4Androidで画像処理アプリのススメ

  1. 1. OpenCV4Androidで画像処理アプリのススメ2013/01/26 1
  2. 2. 自己紹介• 名前:大槻 正樹• TwitterID:@nekomeshi312 こんなアイコンです→• 仕事:某メーカ所属 ・・・仕事はAndroidとは特に関係のないSunday Programmerです。 ・・・こんなアプリ作ってます2013/01/26 2
  3. 3. OpenCVって?2013/01/26 3
  4. 4. OpenCVって?• OpenCV ・・・ Open Source Computer Visionの略 画像認識に関する500以上の画像処理のライブラリ• Linux、Windows、Android、iOS等をサポート• 元はC言語 ・・今ではC++, Java, Pythonなどもサポート• BSDライセンス• 2013/1/26 現在のバージョン – 2.4.3 企業や大学での研究でも広く使われている 画像処理ライブラリ 今でも新しく開発された画像処理アルゴリズム が頻繁に追加&VerUpされている。2013/01/26 4
  5. 5. どんなことができる? 特徴点検出 領域分割 3次元計測 画像変換 機械学習 / 画像認識 トラッキング などなど・・・・2013/01/26 5
  6. 6. とりあえずやってみた2013/01/26 6
  7. 7. カメラ入力の色変換• 行数にしてたった13行 カメラのキャプチャごとに 呼ばれるコールバック RGBをHSVに変換 色相を回す HSVをRGBに戻す2013/01/26 7
  8. 8. オブジェクト認識• 約100行 けど大事な点は以下の三箇所のみ 局所特徴量計算 特徴点マッチング 不適切なマッチング のふるい落とし2013/01/26 8
  9. 9. OpenCVの歴史• 1999:プロジェクト開始• 2000/6:α版公開• 2006/10:Ver1.0公開• 2009/9:Ver2.0公開 ・・・C++対応• 2010/4:Ver2.1公開• 2010/12:Ver2.2公開 ・・・Android向けにbuildできる(NDKのみ)• 2011/7:Ver2.3公開• 2011/8:Ver2.3.1公開 ・・・Android Java APIに対応, Prebuildパッケージでの配布開始• 2012/5:Ver2.4公開• 2012/6:Ver2.4.1公開• 2012/7:Ver2.4.2公開 ・・・OpenCV Managerでのライブラリ配布開始• 2012/11:Ver2.4.3公開 ←イマココOpenCVのChangeLogはここを参照 これについては後でhttp://code.opencv.org/projects/opencv/wiki/ChangeLog#243OpenCV4Androidについてはここを参照http://code.opencv.org/projects/opencv/wiki/Android_Release_Notes#24322013/01/26 9
  10. 10. OpenCV4Androidのダウンロード&インストール このサイトが良くまとまっている http://p.tl/ffGtNDKのインストールが必要。2013/1/19現在Android NDK r8d をサポート2013/01/26 10
  11. 11. OpenCV4Androidを使うには ライブラリを使うには二通りの方法 非推奨1)ライブラリをアプリのAPKに含める2)OpenCVManagerを使う・・アプリ実行時にインストールされていなければ GooglePlayに飛んでダウンロードする2013/01/26 11
  12. 12. 必要なコードはこれだけ OpenCVロード ロードに成功/失敗した時に 呼ばれるコールバックの指定 エラー時の処理 成功時の処理 GooglePlayからOpenCVManagerのインス トールが成功した時もこっち2013/01/26 12
  13. 13. OpenCV4Androidの良い点/悪い点C++でもJavaでも書ける• Java – 良い点 Nativeのラッパなので、頻繁に呼ぶ • デバッグが楽 とJNIのオーバヘッドが効いてくる – 悪い点 • 遅い • 世の中にあるドキュメントがほとんどC++向け。結構書き方が違う • サポートされていないAPIがちょこちょこある• C++ – 良い点 • 速い • PC環境向けのソースコードが結構そのまま動く – 悪い点 • デバッグがめんどくさい2013/01/26 13
  14. 14. おすすめの作り方C++苦手な人向け:とにかくJavaで書く。 – しばらく書いていると、C++とJavaの書き方の違いに慣れてくる – ひと通りJavaで書いて、高速化の必要なところだけNDKで書き直すC++得意な人向け:一旦PC環境でC++で動くソースを作る。 – 画像処理の途中経過をたくさんウィンドウを並べて確認できるのでデ バッグが楽 – GUI周り以外の画像処理ルーチンは、NDKで結構そのまま動く 100%Java 一部NDK 100%Java2013/01/26 14
  15. 15. 資料などAndroid/Java向けのOpenCVの資料などは、ちょっとわかりません。●Webサイト http://opencv.jp/ OpenCVのDL/更新情報はここから http://opencv.jp/opencv-2svn/cpp/ リファレンス http://opencv.jp/cookbook/ 逆引きリファレンス http://imagingsolution.net/programming/opencv/ 画像処理一般●書籍 OpenCV 2 プログラミングブック http://amzn.to/SOm4ME インストールから実践まで おすすめ 詳解 OpenCV http://amzn.to/SOmeDR 詳しいがちょっと古い他にもいろいろあります。2013/01/26 15
  16. 16. じつは・・・今回のLTよりもっと良い紹介資料があります。 何のために今回LTしたのやらwwwhttp://www.slideshare.net/ToruUenoyama/opencvandroid2013/01/26 16
  17. 17. 今日のソース• GitHubで公開しています よろしければ見てみてください。 http://p.tl/2GRP http://p.tl/zpOM http://p.tl/V-nI2013/01/26 17
  18. 18. FIN2013/01/26 18

×