最終的なゴール
最近の車に付いている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との連携でワンパンしました.
▼やってみました.
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がサーバーになります.
▼やってみました.
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
▼やってみました.