OpenCV AI KIT (以下OAK)を、Ubuntuから操作するためのインストール方法を紹介いたします。
作業を行った環境
- Ubuntu 16.04 LTS
- Python 3.6.12
- pip 20.3.3
事前準備
最初に、UbuntuからUSBデバイスであるOAKが使えるように、事前にudevルールを追加しておきます。Terminalに次の2行を入力し、[Enter]キーを押します。
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="03e7", MODE="0666"' | sudo tee /etc/udev/rules.d/80-movidius.rules
sudo udevadm control --reload-rules && sudo udevadm trigger
次に、pipのバージョンを確認しておきます。次のコマンドで現在のpipのバージョンが確認できます。
pip3 -V
【手順2】でpipのバージョン20.3.3以降を使用するため、本来であれば古いpipのバージョン下で【手順1】を実行すると、自動でアップデートが実行されます。ですが、UbuntuやPythonのバージョンが古いと自動アップデートで失敗するようです。 もし、pipのバージョンが古いまま【手順1】の自動アップデートが失敗した時は、先に20.3.3以降のpipを手動インストールしてから【手順1】を実行するようにしてください。
①Python実行環境の構築
DepthAI APIのpython用モジュール(Python API)を利用するため、最初にPython環境を構築していきます。以下の手順で必要なパッケージをインストールしてください。
手順1:必要なパッケージをインストール
まず、DepthAIライブラリの実行に必要なシステム依存関係を調べ、不足しているパッケージをインストールします。次のコマンドをTerminalに入力し、[Enter]キーを押します。
sudo wget -qO- http://docs.luxonis.com/_static/install_dependencies.sh | bash
コマンドが完了するまで、しばらくそのまま待機します。コマンドプロンプトが表示されたら完了です。
手順2:DepthAI APIのインストール
次にDepthAI APIのpython用モジュールをインストールします。Terminalに次のコマンドを入力し、[Enter]キーを押します。
python3 -m pip install depthai
以上で、Python環境の構築が終了しました。あとはDepthAI APIを利用するためのプログラムを用意するだけとなりました。
②DepthAI APIを利用する
DepthAI APIを利用するためのPython版デモ用プログラムが、開発元のLuxonis社から公開されていますので、今回はそれをダウンローして使用します。
手順3:デモ用プログラムをダウンロードする
まず、Terminalで今回の作業を行うための適当な作業ディレクトリを用意し、移動しておきます。Terminalに次のコマンドを入力し、[Enter]キーを押します。
git clone https://github.com/luxonis/depthai.git
これで現在のディレクトリ直下に「depthai」フォルダが作成され、そこにリポジトリのクローンがダウンロードされました。さらに、次のコマンドでリポジトリのあるディレクトリに移動しておきます。
cd depthai
- 以降の作業を実施すると、既存のPython環境に変更が加えられる可能性があります。システム上の他のPythonツールや環境に影響が生じないようにするためには、仮想環境で実行する必要があります。特に運用中の環境もなく、手っ取り早く作業を行いたい場合は、仮想環境を作成せずに【手順5】に進んでください。
- 仮想環境を利用しない場合は、引き続き、現在のTerminalで作業を行います。
手順4:PyCharmで仮想環境を作成する
それでは、PyCharmを使ってPythonの仮想環境を作成する方法を紹介いたします。まず、PyCharmがインストールされていない場合は、ランチャーの「Ubuntuソフトウェア」から「pycharm」を検索するなどし、PyCharm CE(Communication Edition)をインストールしてください。
インストールが終わったら、PyCharmを起動します。
初めてPyCharmを起動した場合はWelcome画面が表示されますので、メニューにある「New Project」を選択します。すでに使用したことがある場合はWelcome画面が表示されないので、起動後の「File」メニューから「New Project」を選択してください。
「New Project」ダイアログで、以下のように設定します。
- Locationに直接入力するか、①のフォルダアイコンをクリックして、「リポジトリを保存したフォルダーのPath」を設定する。
- ②の「New environment using」の選択が「Virtualenv」になっているか確認する。
- ③の「Create a main.py welcome script」のチェックを外す。
- ④の「Create」ボタンを押す。
Project画面が開き「DepthAI Demo Program」と書かれたREADME.mdが表示されていたらOKです。次に画面下にある「Terminal」の文字をクリックし、ターミナルウィンドウを開きます。
PyCharmでの以降の操作は、このターミナルウィンドウにコマンドして実行していきます。
手順5:ライブラリーの依存関係をチェックする
デモ用プログラムの実行に必要なライブラリーをチェックするため、PyCharmのターミナルウィンドウ(仮想環境を利用しない場合はUbuntuのTerminal)に次のコマンドを入力し、[Enter]キーを押します。
python3 install_requirements.py
必要なパッケージを確認し、不足している場合はダウンロードしながらインストールが行われます。少々時間がかかりますのでしばらく待機します。再びコマンドプロンプトが表示されたら完了です。
これで、ようやくDepthAI APIを利用するためのプログラムの準備も整いました。
③OAKとPCを接続する
OAK-1
手始めに、OAK-1の接続を行ってみたいと思います。OAK-1はUSBコネクターがある方が上になります。付属のUSBケーブルのタイプC(形が小さい方)のコネクタをデバイスに差し込み、反対側のタイプAをWindowsパソコンのUSBコネクタに差し込みます。
接続が完了したらプログラムを実行させるため、PyCharmのターミナルウィンドウ(仮想環境を利用しない場合はUbuntuのTerminal)に次のコマンドを入力し、[Enter]キーを押します。
python3 depthai_demo.py
コマンドが実行されてからしばらくすると、画面に「previewout-rgb」という名前の小さなウインドウが表示されました。(あらかじめ学習済みの)オブジェクトが認識されると、境界ボックスで結果を表示することができるAPIが呼び出されたようです。試しにGoogleの画像検索で「車」を検索し、一覧表示させた画面を撮影してみました。
実行中のプログラムを終了するには、「previewout-rgb」ウィンドウをアクティブにした状態でキーボードの「q」キーを押します。
OAK-D
同様にOAK-Dでも試してみました。デモ用プログラムが終了したことを確認後、OAK-1に刺さったUSBケーブルを抜き、そのままOAK-Dに差し込んでみました。本体内部の赤いLEDらしきものが点灯したため、試しに電源アダプターを接続しないで使ってみたところ問題なく動作するようです。電源アダプターはUSBからの電力供給が足りない場合に使用すればよいのかもしれません。詳しい検証は後ほど行うことにいたします。
OAK-1と同様OAK-Dも簡単に動作確認がとれました。
今回使用したデモ用プログラムのより詳しい使い方については、別の記事で紹介していますので参考にしてください。