HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2021/02/06

【2021年】NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも爆速なな trt_poseを動かす方法 【2021年】NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも爆速なな trt_poseを動かす方法

(trt_poseは爆速な姿勢推定を Jetsonで動かす!!! OpenPoseよりも爆速!!!)

Tags: [Raspberry Pi], [電子工作], [ディープラーニング]




● NVIDIA Jetson Xavier NX、NVIDIA Jetson Nanoの違い、性能比較

Xavier NXNano
性能比6~30倍1
AI性能比21 TOPs472 GFLOPs
メモリ8GB4GB
M.2 SSD対応非対応
電源付属別売り
ファン内蔵別売り
SDカード別売り別売り
ケース別売り別売り
消費電力10W / 15W5W / 10W
 ※ 廉価版として Jetson Nanoの 2GB版が有りますが、メモリが足りなくて不幸なので買っちゃ駄目!


NVIDIA Jetson Xavier NX Developer Kit 開発キット クラウドネイティブ AIコンピュータ ディープラーニング
ASIN: B088TTD1QT

※ 低価格のハイエンドモデル

NVIDIA Jetson Nano Development Kit B01 開発キット AI コンピュータ 人工知能 エッジコンピューティング
ASIN: B085NQTKS9

※ 入門用の低価格 4GB版

GeeekPi Jetson Nanoケース(Jetson Nano B01およびA02バージョンをサポート)NVIDIA Jetson Nano開発者キットに適したファン付きJetson NanoケースSmall AI Powerful Computer
ASIN: B085PZ4F3X

SanDisk ( サンディスク ) 128GB microSD Extreme PRO microSDXC A2 SDSQXCY-128G-GN6MA [ 海外パッケージ品 ]
ASIN: B07G3H5RBT

※ 高速、大容量 SDカード


2020/06/27
【2020年】Jetson Xavier NX 開発者キットが安かったので衝動買いした件、標準販売価格5万円が4万4千円!
【2020年】Jetson Xavier NX 開発者キットが安かったので衝動買いした件、標準販売価格5万円が4万4千円!

  【ザビエル元年】Jetson Xavier NX 開発者キットを最安値で購入で、しかも国内在庫で注文から翌日で到着、ザビエル開封レビュー

2019/03/20
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM

  Jetson Nanoで TensorFlow PyTorch Caffe/Caffe2 Keras MXNet等を GPUパワーで超高速で動かす!

● Jetson Nano、Jetson Xavier NXの便利スクリプト

2020/07/03
【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト
【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト

  Jetsonの面倒な初期設定やミドルウェアのインストールを bashスクリプトの実行だけで簡単にできます


● NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも爆速なな trt_poseを動かす方法

 trt_poseは爆速な姿勢推定を Jetsonで動かす!!! OpenPoseよりも爆速!!!

trt_pose

# ====
# Step 1 - Install Dependencies
# Install PyTorch and Torchvision. To do this on NVIDIA Jetson, we recommend following this guide

# ====
# 1-1
# Pytorch v1.7.0 / torchvision v0.8.1 / Python 3.6
cd
bash ./Jetson_Convenience_Script/PyTorch/inst_PyTorch_v1_7_Python3.sh


# ====
# 1-2
# Install torch2trt
cd
mkdir trt_pose

cd
cd trt_pose
git clone https://github.com/NVIDIA-AI-IOT/torch2trt --depth 1
cd torch2trt
sudo python3 setup.py install --plugins


# ====
# 1-3
# Install other miscellaneous packages
#     from setuptools import setup, find_packages, Extension
#     RuntimeError: Python version >= 3.7 required.
#     BUILDING MATPLOTLIB
#       matplotlib: yes [3.3.4]
#           python: yes [3.6.9 (default, Oct  8 2020, 12:12:24)  [GCC 8.4.0]]
# numpy 1.20.0 Released: Jan 31, 2021, Requires: Python >=3.7
# numpy 1.19.5 Released: Jan  6, 2021, Requires: Python >=3.6
# sudo pip3 install numpy==1.19.5
# sudo pip3 install numpy==1.16.4

sudo pip3 install tqdm cython pycocotools
sudo apt-get install -y python3-matplotlib
cd ..


# Traceback (most recent call last):
#   File "live_demo.py", line 148, in <module>
#     from jetcam.usb_camera import USBCamera
# ModuleNotFoundError: No module named 'jetcam'
# https://github.com/NVIDIA-AI-IOT/jetcam
cd
cd trt_pose
git clone https://github.com/NVIDIA-AI-IOT/jetcam --depth 1
cd jetcam
sudo python3 setup.py install
cd ..
# sudo reboot
# gst-launch-1.0 nvarguscamerasrc ! nvoverlaysink


# ====
# Check OpenCV GStreamer
python3 -c "import cv2; print(cv2.getBuildInformation())"
python3 -c "import cv2; print(cv2.getBuildInformation())" | grep -E "OpenCV|ver |Version|GStreamer"
# General configuration for OpenCV 4.1.1
# Version control:               4.1.1-2-gd5a58aa75
# GStreamer:                   YES (1.14.5)


# [ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (1757) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error.
# [ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (886) open OpenCV | GStreamer warning: unable to start pipeline
# [ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
# Traceback (most recent call last):
#   File "/usr/local/lib/python3.6/dist-packages/jetcam-0.0.0-py3.6.egg/jetcam/usb_camera.py", line 24, in __init__
# RuntimeError: Could not read image from camera.
# During handling of the above exception, another exception occurred:
#
# Traceback (most recent call last):
#   File "live_demo.py", line 152, in <module>
#     camera = USBCamera(width=WIDTH, height=HEIGHT, capture_fps=30)
#   File "/usr/local/lib/python3.6/dist-packages/jetcam-0.0.0-py3.6.egg/jetcam/usb_camera.py", line 28, in __init__
# RuntimeError: Could not initialize camera.  Please see error trace.

# reamer.cpp (1757) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error.
sudo apt-get install -y v4l-utils


# ====
# Check Camera
ls -l  /dev/video*
v4l2-ctl --list-devices
v4l2-ctl --list-formats-ext -d /dev/video0
# CSI Camera Raspberry Pi Camera Module V2
# vi-output, imx219 10-0010 (platform:15c10000.vi:2):
#         /dev/video0
# Pixel Format: 'RG10'
#  Name        : 10-bit Bayer RGRG/GBGB

# USB Camera Logicool HD Webcam C270
# UVC Camera (046d:0825) (usb-3610000.xhci-2.4):
#         /dev/video1
# Pixel Format: 'YUYV'
#  Name        : YUYV 4:2:2
# Pixel Format: 'MJPG' (compressed)
#  Name        : Motion-JPEG

# Reboot
# sudo reboot


# ====
# Step 2 - Install trt_pose
cd
cd trt_pose
git clone https://github.com/NVIDIA-AI-IOT/trt_pose --depth 1
cd trt_pose
sudo python3 setup.py install

# ModuleNotFoundError: No module named 'tqdm'
sudo pip3 install tqdm
# Successfully installed tqdm-4.58.0

# ModuleNotFoundError: No module named 'pycocotools'
sudo pip3 install pycocotools
# Successfully installed pycocotools-2.0.2


# ====
# Step 3 - Run the example notebook
ls -l tasks/human_pose


# ====
# Model
# resnet18_baseline_att_224x224_A
# https://drive.google.com/open?id=1XYDdCUdiF2xxx4rznmLb62SdOUZuoNbd
FILE_ID=1XYDdCUdiF2xxx4rznmLb62SdOUZuoNbd
FILE_NAME=resnet18_baseline_att_224x224_A_epoch_249.pth
wget "https://drive.google.com/uc?export=download&id=${FILE_ID}" -O ${FILE_NAME}
mv ${FILE_NAME} ./tasks/human_pose/

# densenet121_baseline_att_256x256_B
# https://drive.google.com/open?id=13FkJkx7evQ1WwP54UmdiDXWyFMY1OxDU
FILE_ID=13FkJkx7evQ1WwP54UmdiDXWyFMY1OxDU
FILE_NAME=densenet121_baseline_att_256x256_B_epoch_160.pth
wget "https://drive.google.com/uc?export=download&id=${FILE_ID}" -O ${FILE_NAME}
mv ${FILE_NAME} ./tasks/human_pose/

# Download from Google Drive
# curl -sc /tmp/cookie "https://drive.google.com/uc?export=download&id=${FILE_ID}"
# CODE="$(awk '/_warning_/ {print $NF}' /tmp/cookie)"
# curl -Lb /tmp/cookie "https://drive.google.com/uc?export=download&confirm=${CODE}&id=${FILE_ID}" -o ${FILE_NAME}


# ====
# Jupyter Notebook
# https://jupyter.org/
sudo apt-get install -y libbz2-dev libsqlite3-dev libffi-dev


# ====
# notebook 6.2.0 Released: Jan 14, 2021
# https://pypi.org/project/notebook/
# Jupyter Notebook
sudo -H pip3 install notebook


# ====
# JupyterLab
# sudo -H pip3 install jupyterlab
# jupyter-lab


# jupyter --version
# jupyter core     : 4.7.1
# jupyter-notebook : 6.2.0
# qtconsole        : not installed
# ipython          : 7.16.1
# ipykernel        : 5.4.3
# jupyter client   : 6.1.11
# jjupyter lab      : not installed
# nbconvert        : 6.0.7
# ipywidgets       : 7.6.3
# nbformat         : 5.1.2
# traitlets        : 4.3.3


# ====
# sudo apt remove --purge nodejs npm
# curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
# sudo apt-get update && sudo apt-get install -y yarn
# sudo apt-get install -y nodejs
# node -v
# v12.20.1
# npm -v
# 6.14.10


# ====
# Enable Jupyter Widgets UI Library ipywidgets
# ipywidgets: Interactive HTML Widgets
# https://github.com/jupyter-widgets/ipywidgets
# ImportError: IProgress not found. Please update jupyter and ipywidgets.
#  See https://ipywidgets.readthedocs.io/en/stable/user_install.html
sudo pip3 install ipywidgets
# Successfully installed ipywidgets-7.6.3 jupyterlab-widgets-1.0.0 widgetsnbextension-3.5.1


# can be skipped for notebook version 5.3 and above
# sudo jupyter nbextension enable --py --sys-prefix widgetsnbextension
# jupyter nbextension enable --py widgetsnbextension
jupyter nbextension enable --py widgetsnbextension
# Enabling notebook extension jupyter-js-widgets/extension... - Validating: OK


# Install the front-end extension to JupyterLab
# ValueError: Please install Node.js and npm before continuing installation.
#  You may be able to install Node.js from your package manager, from conda,
#   or directly from the Node.js website (https://nodejs.org).
# sudo jupyter labextension install @jupyter-widgets/jupyterlab-manager


# ====
# cd ./tasks/human_pose
# jupyter nbconvert --to python live_demo.ipynb
# cd ../..

cd
cd trt_pose/trt_pose/
cd ./tasks/human_pose

# trust script
# live_demo.ipynb
# ipython trust live_demo.ipynb
# Subcommand `ipython trust` is deprecated
jupyter trust live_demo.ipynb


# ====
# USB Camera Logicool HD Webcam C270
# camera = USBCamera(width=WIDTH, height=HEIGHT, capture_fps=30)
# from jetcam.usb_camera import USBCamera

# ====
# CSI Camera Raspberry Pi Camera Module V2
# from jetcam.csi_camera import CSICamera
# camera = CSICamera(width=WIDTH, height=HEIGHT, capture_fps=30)
# NameError: name 'CSICamera' is not defined

# ====
# CSI Camera Raspberry Pi Camera Module V2
#     "from jetcam.usb_camera import USBCamera\n",
#     "# from jetcam.csi_camera import CSICamera\n",
#     "from jetcam.utils import bgr8_to_jpeg\n",
#     "\n",
#     "camera = USBCamera(width=WIDTH, height=HEIGHT, capture_fps=30)\n",
#     "# camera = CSICamera(width=WIDTH, height=HEIGHT, capture_fps=30)\n",
sed -i 's/from jetcam.usb_camera/# from jetcam.usb_camera/' live_demo.ipynb
sed -i 's/camera = USBCamera/# camera = USBCamera/' live_demo.ipynb
sed -i 's/# from jetcam.csi_camera/from jetcam.csi_camera/' live_demo.ipynb
sed -i 's/# camera = CSICamera/camera = CSICamera/' live_demo.ipynb


# ====
jupyter notebook --ip=* --no-browser



● Jupyter Notebookを使わないで trt_poseを動かせるデモ

MACNICA-CLAVIS-NV / trt_pose_demo
 trt_pose_demo
 A Demo Application for NVIDIA TensorRT Pose Estimation

trt_pose_demo Jetson Xavier A Demo Application for NVIDIA TensorRT Pose Estimation




Tags: [Raspberry Pi], [電子工作], [ディープラーニング]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト
【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト

  Jetsonの面倒な初期設定やミドルウェアのインストールを bashスクリプトの実行だけで簡単にできます

【2021年】NVIDIA Jetsonに OpenPifPafで人体骨格検出を動かす!
【2021年】NVIDIA Jetsonに OpenPifPafで人体骨格検出を動かす!

  Jetsonで PyTorch + OpenPifPafで人体骨格検出を行なう!

【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で PyTorch 1.7.1をビルドする方法
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で PyTorch 1.7.1をビルドする方法

  OpenPifPafは PyTorch 1.7.1以上が必要なので PyTorch 1.7.1をビルドしてインストールします

【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で Python 3.7.10をビルドする方法
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で Python 3.7.10をビルドする方法

  2021年 JetPack 4.5.1は いまだに Python 3.6.9なので Python 3.7.10をビルドしてインストールします

【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で gcc 8.4をインストールする方法
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境で gcc 8.4をインストールする方法

  2021年 JetPack 4.5.1は いまだに gcc 7.5.0なので gcc 8.4.0をインストールします

【2021年】NVIDIA Jetsonに DeepStream Human Pose Estimationで人体骨格検出を動かす!
【2021年】NVIDIA Jetsonに DeepStream Human Pose Estimationで人体骨格検出を動かす!

  Jetsonで DeepStream Human Pose Estimationでリアルタイムに人体骨格検出を行なう!

【2021年】NVIDIA Jetsonの JetPack 4.5.1環境に DeepStream SDKをインストールする方法
【2021年】NVIDIA Jetsonの JetPack 4.5.1環境に DeepStream SDKをインストールする方法

  2021年 JetPack 4.5.1に DeepStream SDKをインストールして DeepStreamのサンプルを動かして機械学習を遊ぶ

【2021年】NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも軽量で爆速な trt_pose_handを動かす方法
【2021年】NVIDIA Jetsonで JetPack 4.5環境で OpenPoseよりも軽量で爆速な trt_pose_handを動かす方法

  trt_pose_handは爆速な Hand Pose Estimation And Classification!!!

【2021年】NVIDIA Jetsonの Ubuntsuデスクトップのスクリーンセーバーを無効にする方法
【2021年】NVIDIA Jetsonの Ubuntsuデスクトップのスクリーンセーバーを無効にする方法

  Jetsonの Ubuntsu GONOME Desktopの Screen Saverを無効にする方法

NVIDIA Jetsonで JetPack 4.5 cuDNN 8.0環境で OpenPose 1.7.0をビルドする方法
NVIDIA Jetsonで JetPack 4.5 cuDNN 8.0環境で OpenPose 1.7.0をビルドする方法

  OpenPose 1.7.0で cuDNN 8.0に正式に対応しました! JetPack 4.5で OpenPoseをビルドする

【2020年】Jetson Xavier NX 開発者キットが安かったので衝動買いした件、標準販売価格5万円が4万4千円!
【2020年】Jetson Xavier NX 開発者キットが安かったので衝動買いした件、標準販売価格5万円が4万4千円!

  【ザビエル元年】Jetson Xavier NX 開発者キットを最安値で購入で、しかも国内在庫で注文から翌日で到着、ザビエル開封レビュー

NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM

  Jetson Nanoで TensorFlow PyTorch Caffe/Caffe2 Keras MXNet等を GPUパワーで超高速で動かす!

【2021年】NVIDIA Jetsonで NumPyモジュールのバグで苦戦!
【2021年】NVIDIA Jetsonで NumPyモジュールのバグで苦戦!

  NumPyモジュールの最近の一部のバージョンには相性問題(不具合?)で地雷バージョンが有ります

【メモリ8GB】Raspberry Pi 4 Model B 8GBを KSYで最安値で購入。ベンチマークレビュー
【メモリ8GB】Raspberry Pi 4 Model B 8GBを KSYで最安値で購入。ベンチマークレビュー

  【技適取得】ラズパイ4B 8GBモデルを入手。従来の Pi3、Pi3B+と速度比較

【Vulkan】Raspberry Pi 4 Model Bで Vulkanドライバをビルドして 3Dグラフィックのデモを動かす
【Vulkan】Raspberry Pi 4 Model Bで Vulkanドライバをビルドして 3Dグラフィックのデモを動かす

  【v3dv】ラズパイ4Bで Vulkan APIを動かす、VK_ICD_FILENAMES broadcom_icd.armv7l.json

PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利
PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利

  ピクチャ イン ピクチャ機能付き 4K入力対応の 4入力 1出力 HDMI切り換え機 HDSFX0401P

EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強
EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強

  TESmart HMA0402A30 マトリックス切り替えで液晶画面 2台に接続できて更に EDID保持の便利機能付き HDMI切り換え機

機械学習用に画像検索の結果一覧のサムネイル画像を JavaScriptで全自動で一括で取得する方法
機械学習用に画像検索の結果一覧のサムネイル画像を JavaScriptで全自動で一括で取得する方法

  画像検索結果一括ダウンローダ、JavaScript言語を使って、ブラウザの開発者モードのコンソールで動かします、ググれ勝つ




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2021 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/nvidia_jetson_build_trt_pose/