2020年12月14日 星期一

2020年5月23日 星期六

Jest Xavier NX 簡易安裝跑起YOLOV4





1. 先安裝Nvidia 提供的NX image.

https://developer.nvidia.com/embedded/learn/get-started-jetson-xavier-nx-devkit#write

2.安裝Jtop 可檢視CPU ,GPU ,Memory,溫度...等等 使用狀況


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-pip python3-dev build-essential
sudo -H pip3 install jetson-stats
sudo jtop



3.直接下載Darknet 編譯及安裝


git clone https://github.com/AlexeyAB/darknet.git

cd darknet
sudo gedit Makefile

修改Makefile內容:
##--------------------------------------------------------
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
AVX=0
OPENMP=0
LIBSO=1
ZED_CAMERA=0 # ZED SDK 3.0 and above
ZED_CAMERA_v2_8=0 # ZED SDK 2.X
##---------------------------------------------------------

sudo gedit ~/.bashrc
增加以下內容到 .bashrc 最後:
##--------------------------------------------------------
export DARKNET_HOME=/home/_name_/darknet/
export CUDA_HOME=/usr/local/
export PATH=${DARKNET_HOME}:${CUDA_HOME}bin:${PATH}
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
##--------------------------------------------------------

Note:_name_ 要改成你的系統名子
然後使其生效:

source ~/.bashrc

然後編譯:
make

編譯成功後 ,使用./darknet 測試,應出現如下結果





下載yolov4.weight 以及任一個測試video檔如 tested50.mp4(請自己準備或從youtube下載)
yolov4.weight下載聯結:
https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights

接著執行以下指令及可以跑起Yolov4 ,FPS 約4~4.5

./darknet detector demo ./cfg/coco.data ./cfg/yolov4.cfg ./yolov4.weights test50.mp4 -i 0 -thresh 0.25

如果要跑Yolov3的話改成以下指令:

./darknet detector demo ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights test50.mp4 -i 0 -thresh 0.25
需要有相對應的weight 檔






如果要開啟USB camera  將darknet_video.py 82,83列改成以下,即可跑起USB camera
執行
python3 darknet_video.py

cap = cv2.VideoCapture(0)
#cap = cv2.VideoCapture("test.mp4")







另外這裡有一個我已經編譯好的簡易版vscode 可以從這裡下載:
https://drive.google.com/file/d/1GH9bC3uLwJwZTbOloYafpZU7O5CtGend/view?usp=sharing

然後安裝:
sudo dpkg -i code-oss_1.35.0-1558361432_arm64.deb
使用 code-oss
可以使用在Jetson Nano or NX 都可以

以上就是快速簡易的安裝讓YoloV4 或Yolov3 跑起來,之後如果要安裝tensorflow 或是pytorch
等等框架可以直接參考以下聯結Jeston Zoo:

https://elinux.org/Jetson_Zoo

適用於各Jetson 系列

另外在本文的設定裡,並沒有安裝使用python 虛擬環境,原因是個人覺得其實不需要
其實裝的東西沒那麼複雜,再來則是省去了需要做link的動作,例如如果做了python 虛擬環境
則需要將opencv tensorrt 這些module link到你的虛擬環境裡。所以,尤其對初學者而言其實不去做python 虛擬環境會比較方便。如果真的想做,之後再做其實也可以。


最後來個 Yolov4 辨識ok手勢的Demo  on Jestson Xavier NX
416x416  FPS: 7~8

https://youtu.be/LQ0niAgDdis