【Jetson nano】ラジコン自動運転開発日記(9)~Jupyter notebookリアルタイム表示~

ラジコン自動運転

はじめに

ラジコンにjetson nanoを搭載することで簡易的な自動運転車両*1(Jetracer)を作ることができます.

市販のJetracer*2は高額のため,安く車体が大きいものを活用して作成していきます.

前回まではjetsonをSSD起動にし*310倍近くアクセス速度を向上させました*4
さらに,SSH環境*5と共有フォルダ環境*6を構築し,リモートで開発できるようにしました.
また,Deep learningのDocker環境を構築*7しJupyter notebookからWebカメラにアクセスをしてみました*8

そこで今回はJupyter notebook上でWebカメラから取得した映像をリアルタイム表示してみました.

使用する機材

  • jetson nano
  • ssd 起動
  • web camera

リアルタイム表示プログラム

こちらのサイト*3を参考に作成していきます.

from io import BytesIO
import os

import IPython
from PIL import Image
import cv2

# 画像をjpegバイナリに変換してIpythonで表示する
def show(a, fmt='jpeg'):
    f = BytesIO()
    Image.fromarray(a).save(f, fmt) # (3)
    IPython.display.display(IPython.display.Image(data=f.getvalue())) # (4)

cap = cv2.VideoCapture(0)
assert cap.isOpened(), 'Could not open video device'

try:
    while(True):
        ret, frame = cap.read() # (1)

        if ret:
            frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # (2)
            show(frame) # (3-4)
            IPython.display.clear_output(wait=True)

except KeyboardInterrupt:
    cap.release()
    print('Stream stopped')

実行すると普通に表示されました.

おわりに

今回はJupyter notebook上でWebカメラから取得した映像をリアルタイム表示してみました.

参考サイト

1 :Jetson最新情報やTPUとの比較
2 :JetRacer AI Kit
3 :【Jetson nano】ラジコン自動運転開発日記(2)~SSDブートへ変更~
4 :【Jetson nano】ラジコン自動運転開発日記(3)~SDカードとSSDの速度比較~
5 :【Jetson nano】ラジコン自動運転開発日記(5)~sshの導入~
6 :【Jetson nano】ラジコン自動運転開発日記(6)~共有フォルダsmb環境の構築~
7 :【Jetson nano】ラジコン自動運転開発日記(7)~Docker環境の構築~
8 :【Jetson nano】ラジコン自動運転開発日記(8)~USBカメラの接続~
*9 :Jupyter notebook上でWebカメラから取得した映像をリアルタイム表示する (Python3)

コメント

タイトルとURLをコピーしました