前のチュートリアル: Clojureを使ったOpenCV開発の紹介
次のチュートリアル: OpenCVを用いたAndroid開発
| |
| 原著者 | Rostislav Vasilikhin |
| 互換性 | OpenCV >= 4.0 |
このガイドは、Android開発の基礎を学び、作業環境を素早くセットアップする手助けをするために作成された。Ubuntu 22.04 および Windows 10 でテストされている。
これらの手順を丁寧に実行した後にエラーが発生した場合は、OpenCV フォーラム から気軽に連絡してほしい。できる限り手助けする。
はじめに
Androidは、Googleが主導するOpen Handset Allianceによって開発された、Linuxベースのオープンソースモバイルオペレーティングシステムである。一般的な詳細については Android公式サイト を参照すること。
Android向けの開発は他のプラットフォーム向けの開発とは大きく異なる。そのため、Androidのプログラミングを始める前に、以下の重要なトピックに精通していることを確認しておくことを推奨する:
- Android OSの主要な開発技術である Java プログラミング言語。また、OracleのJavaドキュメント も役立つだろう。
- Java仮想マシン上でネイティブコードを実行する技術である Java Native Interface (JNI)。また、OracleのJNIドキュメント も役立つだろう。
- Android Activity とそのライフサイクル。これは不可欠なAndroid APIクラスである。
- OpenCVの開発では、Androidカメラ の仕様に関する知識も確実に必要となる。
Android開発のための手動環境セットアップ
このチュートリアルでは、公式のAndroid Studio IDEと、その他の無料で利用できる一連のツールを使用する。
ツールと依存関係の入手
すぐに作業を始められる環境を準備する方法は次のとおりである:
- Download and install Android Studio:
- Ubuntu:
- Android Studioをダウンロードする: https://developer.android.com/studio
- tar.gzアーカイブを展開する
Install-Linux-tar.txt の指示に従う: ターミナルで android-studio/bin フォルダを開き、./studio.sh を実行する
- GUIを通して標準的なインストールを実行する
- 必要に応じて、メニュー Tools -> Create desktop entry をクリックすることで、デスクトップにショートカットを追加して素早くアクセスできるようにできる。このメニューは、いずれかのプロジェクトを作成または開いた後に表示される。
- Windows: 公式サイトからAndroid Studioをダウンロードしてインストーラを実行するだけである。
新しいAndroid SDKとNDKをインストールする:
- Android StudioでSDKマネージャを開く (Customize -> All Settings -> Languages & Frameworks -> Android SDK)
- 「Show Package Details」のチェックボックスを有効にする

- 最新バージョンのSDKとNDKにチェックを入れてOKを押す
- 使用するデバイスが選択したSDKバージョンに対応していることを確認する
- Install all the necessary packages for the build:
sudo apt install git cmake ninja-build openjdk-17-jdk openjdk-17-jre
- 残りの必要なパッケージは依存関係であり、自動的にインストールされるはずである
OpenCVのサンプルを確認する
- Android SDK用のOpenCVを、公式の Githubのリリースページ または SourceForge からダウンロードする。
- OSのツールを使ってzipアーカイブを展開する。
- Android Studioでプロジェクト
<YOUR_OPENCV_BUILD_FOLDER>/OpenCV-android-sdk/samples を開く。
- Connect your device
- デバイス上でデバッグを有効にしておく必要がある。その方法に関する手順はウェブ上で見つけられる
- あるいは、Android Studioに付属する仮想デバイスを使用することもできる

- ドロップダウンメニューからサンプル(例えば
15-puzzle)を選択して実行する。
テストとデバッグのためのデバイスのセットアップ
通常、上記の手順は期待どおりに動作するが、場合によっては追加の操作が必要になることもある。このセクションではいくつかのケースを取り上げる。
Windowsホストコンピュータ
Windows 10以降を使用している場合、電話機を接続してサンプルを実行するために追加の操作は不要である。しかし、それより前のバージョンのWindowsでは、より長い手順が必要となる:
- Androidデバイスで(設定メニューから)USBデバッグを有効にする。
- USBケーブルでAndroidデバイスをPCに接続する。
- スタートメニューに移動し、コンピュータを右クリックする。コンテキストメニューで「管理」を選択する。管理者権限を求められる場合がある。
- 左ペインでデバイスマネージャを選択し、リストの中から不明なデバイスを見つける。一度抜いてから差し直すことで、それが実際に使用している機器としてリストに表示されるかどうかを確認してみるとよい。
- まずは変更を加えずにGoogle USBドライバのインストールを試してみる: 不明なデバイスを右クリックし、Properties(プロパティ)メニュー項目 –> Details(詳細)タブ –> Update Driver(ドライバの更新)ボタンを選択する。
- 「Browse computer for driver software(コンピュータを参照してドライバソフトウェアを検索)」を選択する。
<Android SDK folder>/extras/google/usb_driver/ フォルダへのパスを指定する。
- 検証されていないドライバのインストールを促すプロンプトが表示され、成功の報告が出れば、USBドライバのインストールは完了である。
- そうでない場合(以下に示すような失敗が出た場合)は、次の手順に従う。
- 再び不明なデバイスを右クリックし、Properties –> Details –> Hardware Ids を選択して、
USB\VID_XXXX&PID_XXXX&MI_XX のような行をコピーする。
- 次に、ファイル
<Android SDK folder>/extras/google/usb_driver/android_winusb.inf を開く。ホストシステムのアーキテクチャに応じて、Google.NTx86 または Google.NTamd64 のいずれかのセクションを選択する。
- 既存のものと同様の、使用するデバイス用のレコードが必要であり、それを手動で1つ追加する必要がある。
android_winusb.inf ファイルを保存し、再度USBドライバのインストールを試みる。
- 今度はインストールが正常に進むはずである。
- そして、不明なデバイスがAndroid電話として認識されるようになる。
- デバイスのUSB接続が成功したかどうかは、コンソールで adb devices コマンドを実行して確認できる。
- 次に、Eclipseで Run -> Run/Debug を選択して、通常モードまたはデバッグモードでアプリケーションを実行する。Device Chooser でデバイスを選択できる。
Linuxホストコンピュータ
最新のUbuntuバージョンは接続されたAndroidデバイスとうまく動作するが、古いバージョンでは問題が発生することがある。ただし、そのほとんどは簡単に修正できる。Androidデバイスに関する情報を含む新しい設定ファイル **/etc/udev/rules.d/51-android.rules** を作成する必要がある。Vendor IDはこちらで確認できるほか、lsusb コマンドを実行して接続したAndroidデバイスのVendorIDを表示することもできる。以下はLGデバイス用のそのようなファイルの例である:
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"
その後、adbサーバを再起動し(システムを再起動するとさらによい)、Androidデバイスを接続して adb devices コマンドを実行する。接続されているデバイスの一覧が表示される:
savuor@rostislav-laptop:~/Android/Sdk/platform-tools$ ./adb devices
List of devices attached
R58MB40Q3VP device
savuor@rostislav-laptop:~/Android/Sdk/platform-tools$
Mac OSホストコンピュータ
特別な操作は不要で、デバイスをUSB経由で接続し、adb devices を実行して接続を確認するだけでよい。
次のステップ
OpenCV4Adroid SDKのインスタンスをセットアップして設定し終えたら、自分のアプリケーションでOpenCVを使い始めるとよい。その方法は別のOpenCVによるAndroid開発チュートリアルで学べる。