Jetson Nano × MIPI CSI-2&FPD-Link IIIカメラ
はじめに:
TIS社が提供するMIPI CSI-2&FPD-Link IIIカメラ NVIDIA Jetson開発キットは画像処理やAI処理の用途でご利用いただけます。こちらのデバイスは開発者が画像処理アプリケーションすぐに作業開始できるように開発工数を削減するように設計されています。MIPI CSI-2&FPD-Link IIIカメラNVIDIA Jetson開発キットの導入手順について説明します。
対象ハードウェア |
NVIDIA Jetson nano, Jetson Xavier NX |
対象デバイス |
MIPI CSI-2&FPD-Link IIIカメラ |
OS環境 |
OpenEmbeddedシステム(Jupyterlab)
SDカード内の初期イメージはOpenEmbeddedシステム(Jupyterlab)となっておりますが、JetPack4.4.0、JetPack4.4.1、JetPack4.5にも対応しております。セットアップ方法については下記【JetPack編 導入】の項目を参照してください。
|
NVIDIA Jetson Nano用のイメージングソース開発キットには、次のものが含まれています。
- 1.カメラモジュール
- 2.三脚アダプタ
- 3.三脚
- 4.フレットケーブル (Jetson Nano開発ボードに接続された状態で納品されます)
- 5.Jetson Nano 開発ボード(Micro-SDカード(32GB)付き OpenEmbeddedシステムが内蔵されています)
- 6.JetsonNano用のMIPI-FPD-Link IIIデシリアライザ
- 7.ヒートシンク
- 8.FAKRAケーブル※
※FAKRAコネクタは繰り返し取り外しするようには設計されていないので何度も抜き差しを行わないでください。
上図の通り組み立て、Jetson Nano 開発ボードにキーボード、マウス、コンピューターディスプレイを接続します(HDMIまたはDisplayPort経由)。電源を最後に接続すると、NVIDIA JetsonNanoの電源が自動的にオンになります。SDカードにはすでにフラッシュしたOpenEmbeddedシステムイメージJupyterlab(JupyterLabは、ProjectJupyter用の次世代のWebベースのユーザーインターフェイス)がインストールされています。詳細は口述に記載しています。
JetsonNanoの本体に取り付けられている下図のデシリアライザはMIPI(CSI-2)信号からの映像をFPD-Link III規格で送信されるLVDS信号に変換し送信するユニットです。
- 1.Transmission Errors LED Lamp
デバイスが認識されていないとLEDが赤に常灯します。
この場合、FPD-Link IIIカメラが正しく接続されていない、あるいはドライバが正しくインストールされていない可能性がありますので、再度カメラの接続を確認の上、ドライバの再インストールしてください。
- 2.FPD Link ready LED Lamp
FPD-Link IIIカメラが認識されているとOS起動後にLEDが緑に常灯します。
- 3.ジャンパーピン
ジャンパーピンはJetson本体のJ41から電源供給するために取り付けられていますので取り外して使用しないください。
OpenEmbeddedシステムイメージには対話型開発環境(IDE)としてJupyterLabがインストールされています。JupyterLabは、より柔軟で強力な開発環境を提供するために Jupyter Notebook の主要コンポーネント (ノートブック、ターミナル、テキスト エディター、ファイル ブラウザー、ipywidgets など) をベースに構築されています。
JupyterLab の詳細は、下記のURLをご参照ください。
https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html
※注意点
OpenEmbeddedシステムイメージではDebian系のディストリビューション(DebianやUbuntu)のパッケージ管理システムであるAPT(Advanced Package Tool)ライブラリを利用してパッケージを操作・管理するコマンド(apt-get等)は使用することができません。OpenEmbeddedシステムを利用しない方はJetPack導入手順をご確認ください。
下記の通り設定画面からキーボードレイアウトを日本語対応する。
デスクトップにあるsetting managerで下記のメニューを開きHardware欄のkeyboard をクリックする。
Keyboardの設定画面内のLayoutタブを選択し、モデル、レイアウトを設定します。
Keyboard model: Dell USB Multimedia
Keyboard Layout Japanese (kana 86)
The Imaging Source MIPI Developer Kit Image Configurationにてユーザーセットアップします。
デスクトップにある下記のWelcomeをクリックしてブラウザを開く。
下記のページのFirst time setupをクリックする。
下記の3つの項目(パスワード、タイムゾーン、Image Sensor Configuration)を手順に沿って設定してください。
デスクトップにあるExampleフォルダにシェルスクリプトがありますので、各シェルスクリプトをダブルクリックすることで接続しているFPD-Link IIIカメラの動作の確認を行うことができます。
ターミナルを開き、手順2でダウンロードしたdebファイルパッケージのパスに移動し、下記のコマンドを入力しドライバをインストールします。
sudo apt install ./theimagingsource-drivers_VERSION.deb
インストール中に、下記のようなセットアップに一致するセンサー構成を選択するように求められますので該当するdtbファイルを選択してください。
※上記の構成を削除しない限り、他のMIPI / CSI-2カメラを使用することはできませんのでご注意ください。
ほかのMIPI / CSI-2カメラを使用する場合には「NONE」を選択してください
変更を有効にするには、システムを再起動してください。
システムが再起動された後、JetsonNano用のMIPI-FPD-Link IIIデシリアライザのFPD Link ready LED Lampが緑色に常灯します。次のコマンドでカメラからのライブ画像を表示することができます。また、dev/video0 にマウントされますので、各種 Linux アプリケーション上で映像の確認をすることができます。
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! nvoverlaysink
※再起動後にdev/video0 にマウントされていない場合、手順3のドライバが正しく設定されていない場合があります。
下記のコマンドでドライバを再インストールしてください。
sudo dpkg-reconfigure theimagingsource-drivers
Jetson Nanoでは、モジュールを使用するためにはGStreamerを使用する必要があります。下記のようにカメラのプロパティ設定はGStreamerのパイプライン上で設定する必要があります。
import cv2
GST_STR = 'nvarguscamerasrc \
! video/x-raw(memory:NVMM), width=1920, height=1080, format=(string)NV12, framerate=(fraction)30/1 \
! nvvidconv ! video/x-raw, width=(int)1920, height=(int)1080, format=(string)BGRx \
! videoconvert \
! appsink'
WINDOW_NAME = 'Camera Test'
def main():
cap = cv2.VideoCapture(GST_STR, cv2.CAP_GSTREAMER)
while True:
ret, img = cap.read()
if ret != True:
break
cv2.imshow(WINDOW_NAME, img)
key = cv2.waitKey(10)
if key == 27: # ESC
break
if __name__ == "__main__":
main()