DarknetをNVIDIA Jetson Nanoで使ってみる


DarknetをWindowsで使ってみる

DarknetをVirtualBox + ubuntu 16.04 LTSで使ってみる


Darknet のYOLOv3をJetson Nano (Jetpack 4.4、ubuntu 18.04 LTS) で使ってみます。

インストール

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

$cd darknet

$sudo nano Makefile

#GPU Speed up
GPU=1
CUDNN=1

#CPU Speed up
OPENMP=1

#
OPENCV=1

ARCH= -gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=[sm_50,compute_50] \
-gencode arch=compute_52,code=[sm_52,compute_52] \
# -gencode arch=compute_61,code=[sm_61,compute_61] # 修正

コメントアウトを解除
ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]

 

nvcc not found のエラーが出た場合
パスを通す
$export PATH=${PATH}:/usr/local/cuda/bin

$make -j4


weightsファイルをダウンロードしておきます。

YOLOv3 Tiny

YOLOv3 SPP

YOLOv3

静止画像から物体検出してみます。

YOLOv3_Tinyモデルの場合

darknetのディレクトリで

./darknet detector test cfg/coco.data cfg/yolov3-tiny.cfg /<モデルの絶対パス>/yolov3-tiny.weights 

例(ユーザー名がjetsonの場合)

./darknet detector test cfg/coco.data cfg/yolov3-tiny.cfg /home/jetson/darknet/yolov3-tiny.weights 

 

静止画像のパスを聞いてくるので入力

例:相対パスで data/person.jpg

結果

馬を羊だと勘違いしてますね。犬も2匹いると思ってるみたいですし。

YOLOでは、1つの物体が複数のcellから抽出されてしまうことがあるようです。Tinyモデルではnon-maximal suppressionが効いていない?のかな。

YOLOv3モデルの場合

結果

正解です

 


カメラ

USBカメラを接続

電源はDCジャック(4A/20Wモード)を使用

以下のコマンドでMAXモードにセット

$sudo nvpmodel -m 0

$sudo jetson_clocks

YOLOv3_Tinyモデルを使います。

YOLOv3_sppは途中で強制終了され、YOLOv3は途中で内部エラーを起こして落ちました(Xavier NXなら何とか動きます、多少カクつきますが…..)。

カメラを確認

$ls /dev/video*

以下のようになるはず

/dev/video0

実行

$cd darknet

$./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg /<モデルの絶対パス>/yolov3-tiny.weights -c 0

例(ユーザー名がjetsonの場合)

$./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg /home/jetson/darknet/yolov3-tiny.weights -c 0

 

 

cupは認識してますが、マウスは迷ってます(ドーナッツだと思うんだけどマウスかな?)

右上の指だけでpersonだとしてますが、本当かな?

 

 

 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*