Recommended
PPTX
PDF
Android/iOS端末におけるエッジ推論のチューニング
PPTX
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
PPTX
PDF
【Unity道場】VectorGraphicsで作る エモい表現
PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
PDF
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
PDF
大容量ファイルもGitで管理。 Git LFSの使い方
PPTX
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
PDF
【CEDEC2013】20対20リアルタイム通信対戦オンラインゲームのサーバ開発&運営技法
PDF
PDF
PDF
PDF
Raspberry Pi + Go で IoT した話
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PDF
PPTX
PDF
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
PDF
PDF
PDF
PDF
はじめてのグラフデータベース 〜 Amazon Neptune と主なユースケース 〜
PDF
PDF
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
PDF
はじめようARCore:自己位置推定・平面検出・FaceTracking
PPTX
PDF
Constexprとtemplateでコンパイル時にfizz buzz
PDF
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
PDF
Pythonによる機械学習入門 ~Deep Learningに挑戦~
More Related Content
PPTX
PDF
Android/iOS端末におけるエッジ推論のチューニング
PPTX
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
PPTX
PDF
【Unity道場】VectorGraphicsで作る エモい表現
PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
PDF
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
PDF
大容量ファイルもGitで管理。 Git LFSの使い方
What's hot
PPTX
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
PDF
【CEDEC2013】20対20リアルタイム通信対戦オンラインゲームのサーバ開発&運営技法
PDF
PDF
PDF
PDF
Raspberry Pi + Go で IoT した話
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PDF
PPTX
PDF
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
PDF
PDF
PDF
PDF
はじめてのグラフデータベース 〜 Amazon Neptune と主なユースケース 〜
PDF
PDF
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
PDF
はじめようARCore:自己位置推定・平面検出・FaceTracking
PPTX
PDF
Constexprとtemplateでコンパイル時にfizz buzz
Viewers also liked
PDF
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
PDF
Pythonによる機械学習入門 ~Deep Learningに挑戦~
PDF
PPTX
PPTX
MS COCO Dataset Introduction
PDF
PDF
PDF
PDF
Golangにおける端末制御 リッチなターミナルUIの実現方法
PDF
PDF
PPTX
Raspberry piと.net coreのstandardな関係
KEY
PDF
PDF
PDF
PDF
PDF
PDF
Compact ordered dict__k_lab_meeting_
Similar to OpenCVをAndroidで動かしてみた
PDF
PDF
PDF
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
PDF
PDF
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
PPTX
PDF
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
PPTX
Andoird版OpenCVのJavaサンプルを動かす
PDF
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
PDF
PDF
PDF
PDF
PDF
ロボット用Open Source Software
PDF
OpenCV4Androidで画像処理アプリのススメ
ODP
ODP
PDF
PDF
openFrameworks Workshop in Kanazawa v001
PDF
TensorFlowで遊びながら学んだ、はじめてのLED点滅
Recently uploaded
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
PDF
PMBOK 7th Edition Project Management Process Scrum
PDF
PMBOK 7th Edition_Project Management Context Diagram
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
PDF
FY2025 IT Strategist Afternoon I Question-1 Balanced Scorecard
PDF
PMBOK 7th Edition_Project Management Process_WF Type Development
OpenCVをAndroidで動かしてみた 1. 日本Androidの会 京都支部
第3回 勉強会
(2011-12-03)
OpenCV を
Android で動かしてみた
Toru UENOYAMA
@ 日本Androidの会 京都支部
2. 自己紹介
名前
上野山 徹 (うえのやま とおる)
Google+ : Toru UENOYAMA
出身
和歌山県
• みかん と 梅干し と
タチウオ と カレー で有名
和歌山県
仕事
京都の電機メーカーで
(組み込み + 画像処理)/2なソフト開発してます
3. 4. OpenCVとは
オープンソースの画像処理ライブラリ
コンピュータビジョンに関する
数多くの機能を提供する
最新研究の画像処理技術やGPGPUにも対応
言語インターフェイス
• 元はC言語向け
• 今では C++, Python, Ruby, Java などなど
対応OS
• Windows, MacOS, Linux, FreeBSD, iOS, Android など
ホビーユースから学術研究用途まで
幅広く使える画像処理ライブラリです!
4
5. OpenCVの機能
各種フィルタなど 幾何表現や
汎用画像処理 画像特徴量
複数カメラで
領域分割・切出し の三次元復元
色変換・形状変換
フィッティング
機械学習,形状
認識,顔検出 移動物体の追跡
http://opencv.willowgarage.com/wiki/
5
6. OpenCV の実用例
DARPA Grand Challenge
制限時間内に車両自律走行で
走破させる競技
多くのチームが
OpenCVを使用
一部の画像処理検査装置
研究機関でのアルゴリズム評価ソフト
http://en.wikipedia.org/wiki/DARPA_Grand_Challenge
http://www.cengen.com/content/darpa-grand-challenge-2004
6
7. OpenCV の 歴史
略歴
1999年 Intelにて開発がスタート
2006年 正式版(1.0)リリース
2008年 WillowGarage(米ベンチャー)が開発を引継ぐ
バージョン
Ver 年月 主な変更内容
1.0 2006年10月 正式リリース
1.1α 2008年10月 バグ修正,機能追加
2.0 2009年9月 C++インターフェイス追加
2.1 2010年4月 機能追加,TBB対応
2.2 2010年12月 ライブラリ構成の見直し(細分化), CUDA対応
2.3 2011年6月 Androidに正式対応,機能追加
2.3.1 2011年7月 Android版のAPI充実
7
8. OpenCVの特徴
実装機能が豊富
画像処理に関することはほぼ網羅されている
• 新機能もどんどん追加されている
豊富すぎて必要な機能を探すのが大変だったり
機能の粒度が小さい
必要な機能だけを組み合わせて使える
• (無駄がない)
ほしい機能を作るためには,関連する関数を
適切に組み合わせないといけない
8
9. OpenCVの特徴
ドキュメントが全体的に不足
リファレンスに行間が多すぎ
リファレンス化されていない関数も多い
• マイナー言語の場合は,C/C++言語向けの内容と
ソースコードを見比べながら試行錯誤…
面倒ごともありますが,ベタな実装と比較すれば
画像処理プログラミングが
かなり楽になります!
9
10. 11. OpenCV for Android
概要
OpenCV 2.2 以前でもAndroidで動作したものの…
これから使うなら 最新版(2.3.1beta2)のPrebuilt
パッケージがおすすめ
動作環境
Android ≧ 2.2 (APIレベル ≧ 8)
※ JavaAPIを用いない場合は Android ≧ 1.5 (APIレベル≧3)
インストール方法
http://bit.ly/nqPTnO を参照してください。
11
12. Android版を使う上でまず考えること
どちらのAPIを使うか
① Java APIを使う
② C++ APIを使う (NDK)
③ ハイブリッド(①+②)
カメラ画像をどのように取得するか
① Android のカメラ機能
② OpenCV のカメラ機能
⇒ それぞれ,以降のページで説明します
12
13. Java API for Android
特徴
Java上で実装・ビルドする。
• NDKは不要
API呼び出し時のオーバーヘッドが大きい
• API内部の処理はNDKでビルド済のため変わらないハズ
デバッグは楽 SurfaceView
PC版とAPI仕様が
異なる 行わせたい画像処理 in Java
オーバーヘッド大
Java API (OpenCV)
OpenCV for Android
Native Library (OpenCV)
13
14. C++ API for Android
特徴
C++によりネイティブコードでOpenCVを呼び出す
Java側(UI側)からの呼び出しは,
JNIラッパーを作成しなければならない
NDKでのビルドが必要
デバッグが面倒 SurfaceView
Java側からの呼び出しを UI側の処理 in Java
減らすことで,オーバー JNIラッパー(自作する)
ヘッドを減らせる
行わせたい画像処理 in C++
PC版と同じAPIを使える
OpenCV for Android Native Library (OpenCV)
14
15. Androidのカメラ機能を使う場合
Android OSのカメラ SurfaceView Activity
機能を用いてyuv形式
で取得したのち, SampleViewBase
OpenCVのMat型に
変換する。 Sample1View Sample1Java
OS標準のAPIを用いる
ため,機種
依存性が小 Mat型変数(mYuv)にカメラ画像のByte配列を格納
少し遅いかも
SurfaceViewに描画するため,
Mat型からBitmapを生成して戻る
15
16. OpenCVのカメラ機能を使う場合
OpenCVのカメラ画像 SurfaceView Activity
取得API(highgui.VideoCaputure)
を用いて画像データを SampleCvViewBase
取得する。
Sample2View Sample2View
機種依存性が高い
VideoCapture.retreive で直接Mat
処理が軽いかも 型変数にカメラ画像を取得。
SurfaceViewに描画するため,
Mat型からBitmapを生成して戻る
16
17. リファレンス情報(1/2)
http://opencv.jp/
日本語のリファレンスが存在する
• REFERENCE MANUAL → C++リファレンス
• COOKBOOK [おすすめ]
少し情報が古い(Ver2.2相当)
Java版が無いので、C++版から読み替えが必要
http://opencv.itseez.com/modules/refman.html
英語だが最新リファレンス(Ver2.3相当)
JavaAPIの記述がないので読み替えが必要
17
18. リファレンス情報(2/2)
Javadoc でソースから生成する
Java API のリファレンスが手に入る
• クラス構造などは参考になる
説明はわかりにくい
• 結局C++リファレンスと
にらめっこになる
Javadocの生成方法
> javadoc –help
> cd <ソース解凍先>¥OpenCV-2.3.1
> javadoc -sourcepath src -d javadoc -subpackages org.opencv
『詳解 OpenCV』(オライリー社)
画像処理アルゴリズムの考え方も含め
丁寧に記述されている
C API (≠C++) のため読み替えがさらに大変
18
19. Androidで実装するときのTIPS
まずはPC版OpenCVでアルゴリズムを検討し、
その後Androidに移植すると良さそう。
OpenCVのライブラリサイズが大きい(5MB強)ため、
デバッグ時の転送&展開に時間がかかる。
JavaAPIの情報が少ないため、想定通りに動かな
い場合の切り分けが難しい。
端末によってカメラの解像度や写りの質・
CPU速度などが異なるため、一様には
動作してくれないことにも注意する。
19
20. 21. 22. 全体処理の流れ
ドロイドくん ギアボックス
②左右モーターの
内蔵カメラ 回転速度と
駆動時間を指令
①OpenCVで
ドロイドくんの
Androidケータイ 位置を検出 Arduino
http://ja.wikipedia.org/wiki/Arduino , http://www.tamiya.com/japan/products/70168double_gearbox/index.htm
23. ①画像処理
緑色の領域を抽出し,サイズが最も大きな
領域をドロイド君人形と認識させる。
カメラ画像を取得 “色”で分離しやすい
指標に変換 (色相)
RGB→HSV変換
(彩度)
色相,彩度,輝度
緑色のピクセルだけ
で制限をかける にマークをつける (輝度)
ノイズ除去
領域に分割
最大の領域を
見つける
モータ制御値を 抽出領域の中心が
生成(&送信) 画面中央に来るように
23
24. 25. 26. ②モーターを動かす
【ハード構成】 【ソフト構成】
画像追跡ソフト
Android端末
OpenCV
Microbridge
通信ソケットのようなものを
USB 張ってくれます
今回は,左右モーターの回転
USBホストシールド
時間と回転速度を指令
(Down方向のみ)
Arduino
(マイコン基板) モーター制御ソフト
回転方向の モータードライバ
選択と, シールド 指令された回転時間・速度に
電力増幅 PWM なるように,PWMを生成
(約500円) PWM
タミヤモーター
26
27. 28. 29. 30. まとめ
和歌山県は
近畿地方です!
30
特別出演:あり太君 http://twitter.com/shokokanko
31. まとめ <Take2>
You + Android = Androidはより優秀なWeb端末
You + Android + OpenCV =
Androidが簡単に画像処理機能を持てる!
You + Android + OpenCV + Micro Processor =
Androidが ”アンドロイド” に進化する!!
OpenCVやマイコンで
一緒に遊びませんか?
→『日本 Android の会 京都支部』
http://groups.google.com/group/android-kyoto
31
32.