LoginSignup
14
20

More than 3 years have passed since last update.

jetson nano+yolo v5で自作AI運転支援システム構築

Last updated at Posted at 2021-04-06

最終的なゴール

最近の車に付いているAIを使った運転支援システム(レーンキープアシストとか,歩行者検知とか...)を見て「これいいな~~」と思いませんか?
そこで,「ないなら作ればいい!!!」と思い至りjetson nanoで運転支援システムを作成していきます.

更新情報

2021.04.07 初版投稿
2021.04.11 GPU版と開発環境周りを投稿
2021.04.18 「LANからWifiにする」までを更新しました.

概要

作り方動画の備忘録代わりにアップします.
参考サイトまとめ.

yolo v5 (cpu)動作確認

このサイト神です.動作確認は基本的にこのサイトを軸にやってます.
JetsonNano でYOLO v5
https://wooolwoool.hatenablog.com/entry/2021/03/10/235851

▼やってみました.

yolov5 (gpu)動作確認

【Jetson Nano】JetPack のアップデートとDeepStream インストール
https://konchangakita.hatenablog.com/entry/2020/12/04/220000

1.3.2. Upgrade JetPack
https://docs.nvidia.com/jetson/jetpack/install-jetpack/index.html#upgrade-jetpack

To upgrade to a new minor release
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/updating_jetson_and_host.html

結論これだった

sudo vi /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
deb https://repo.download.nvidia.com/jetson/common r32.5 main
deb https://repo.download.nvidia.com/jetson/t210 r32.5 main     
$ sudo apt update
$ sudo apt dist-upgrade

何か聞かれたらYでOK

▼やってみました.

docker 開発環境周りの設定

sshでリモートの接続して,そこからDocker起動してと....面倒くさいので便利なVScodeとの連携でワンパンしました.

▼やってみました.

▼こんな感じの構成になりました.
jetson_vscode_ssh_docker2.png

ssh

ssh接続先のdockerコンテナにVSCodeのRemote Developmentで繋ぐ
https://qiita.com/kanosawa/items/07e26edb19c86091fa48

docker run -d -p 10000:22 image_name

『一般ユーザーでssh接続できるDocker環境』をDockerファイルで作成する
https://qiita.com/nishina555/items/52aef60cfb82fb794b18

RUN useradd -m isucon
RUN echo 'isucon:isucon' | chpasswd

new image create

【Docker】変更を加えたコンテナをイメージとして別名保存する
https://www.mtioutput.com/entry/it/docker-containercommit

▼サンプルファイル

# cat Dockerfile 
FROM ubuntu
RUN touch hogehogee

▼サンプル実行コマンド

# docker build -t ubuntu-hogehoge .
Sending build context to Docker daemon 6.293 MB
Step 1/2 : FROM ubuntu
 ---> d131e0fa2585
Step 2/2 : RUN touch hogehogee
 ---> Running in 60a31707863a
 ---> 48e79c2a6ffc
Removing intermediate container 60a31707863a
Successfully built 48e79c2a6ffc

▼Dockerfileへの追加コード

##################################
# エディタ emacsのインストール
RUN apt-get install -y emacs

##################################
# yolo v5に必要なパッケージ
# ライブラリをインストール
RUN apt update \
    && apt install -y python3-opencv ssh \
    && pip3 install -U pip \
    && pip3 install requests tqdm pyyaml seaborn pycocotools thop

# yolo v5 をgitからクローン
RUN git clone https://github.com/ultralytics/yolov5.git

docker + ssh これは不要でした.....

Docker CE/EEとDocker Composeは無くても動くぽい

Developing inside a Container
https://code.visualstudio.com/docs/remote/containers

System requirements#
Local:

Windows: Docker Desktop 2.0+ on Windows 10 Pro/Enterprise. Windows 10 Home (2004+) requires Docker Desktop 2.3+ and the WSL 2 back-end. (Docker Toolbox is not supported. Windows container images are not supported.)
macOS: Docker Desktop 2.0+.
Linux: Docker CE/EE 18.06+ and Docker Compose 1.21+. (The Ubuntu snap package is not supported.)
Docker CE/EE 18.06+ and Docker Compose
##################################
# ssh係
EXPOSE 22
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd

RUN useradd --create-home --base-dir /home jetson \
    && echo "jetson:jetson" | chpasswd

CMD ["/usr/sbin/sshd", "-D"]

Docker CE/EE

Docker

Jetson Nano に Docker & docker-compose をインストールする方法
https://qiita.com/zono_0/items/20d4d8a22cbbc52f86a5

NVIDIA Jetsonでdocker composeを使う方法
https://qiita.com/ntrlmt/items/c001f0f98da426715cbd

tensorRT(保留)

すごく厄介なので一旦保留

Yolov5 Yolov4 Yolov3 TensorRT Implementation
https://github.com/enazoe/yolo-tensorrt

ultralytics/yolov5
https://hub.docker.com/r/ultralytics/yolov5

yolov5-tensorrt
https://github.com/TrojanXu/yolov5-tensorrt

cmake

CMake on DockerでC++コードを簡単ビルド
https://qiita.com/NA_simple/items/aedaf27f2b8e2ee5187b

Docker Web camera

dockerでウェブカメラの映像を表示する
https://qiita.com/iwankoTG/items/95e3b453faa0c9f7f3e4

▼やってみました.

webカメラの確認

sudo apt install v4l-utils
v4l2-ctl --list-device

UVC Camera :
    /dev/video0
##################################
# webカメラ関係
RUN apt-get update && \
    apt-get install -y python3-tk && \
    pip install --upgrade pip && \
    apt-get install -y libsm6 libxext6 libxrender-dev && \
    # pip install opencv-python && \
    pip install pytest && \
    pip install nose && \
    apt-get install -y v4l-utils

RUN mkdir /share
ENV QT_X11_NO_MITSHM=1

jetson サーバー化

ファイルサーバー化

Ubuntu 20.04 でファイルサーバー(NAS)を作ろう!
https://beightlyouch.com/blog/programming/ubuntu-fileserver-nas/

Ubuntuで簡単ファイルサーバー(NAS)構築
https://www.pc-koubou.jp/magazine/10062

Webサーバー化

FlaskとOpenCVで live streaming
https://qiita.com/Gyutan/items/1f81afacc7cac0b07526

FlaskとOpenCVを使ってWEBカメラで撮影した画像をストリーミングする
https://qiita.com/sti320a/items/3cdafb737d2c16fbaa51

▼Webサーバー化後はこんな感じの構成になりました.
share spaceがサーバーになります.

jetson_vscode_ssh_docker3.png

▼やってみました.

Wifi

ドングルによってドライバが変わるので,取り合えず全てやったところ,
3つ目でヒットしました.

https://kitto-yakudatsu.com/archives/6003
https://shimer-system.com/archives/693
https://github.com/scrivy/rtl8812AU_8821AU_linux
https://qiita.com/_kazuya/items/d53cf3c8ff66eed2715e

▼やってみました.

14
20
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
20