コンテンツへスキップ

Nvidia Jetson Nano B01 に AlexeyAB / darknet / YOLO3 インストール

AlexeyAB/DarknetをNvidia Jetson Nanoにインストール

前回のNvidia Jetson Nano A02に導入した際と同様の手順となります。
参考記事:AlexeyAB / darknet / YOLO3 インストール(Nvidia Jetson Nano)

導入されているCudaのバージョンが変わっており、利用するパスが異なるなど、細かな違いが生じております。(今回は、Jetpack4.3を利用)
簡単にDarknetのコンパイルが実現できるのは、NVIDIA Cudaを搭載したシングルコンピューターの最大の恩恵だと思います。

パッケージを最新の状態にアップデート

$ sudo apt update
$ sudo apt upgrade -y

Cuda関係のパスを環境変数に登録

Cudaka関連のパスは、バージョンにより異なります。
/usr/local/cuda-<version>/ となります。

$ export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

DarknetのダウンロードとYoloモデルのダウンロード

$ git clone https://github.com/AlexeyAB/darknet
$ cd darknet
$ wget https://pjreddie.com/media/files/yolov3.weights
$ wget https://pjreddie.com/media/files/yolov3-tiny.weights

MakeFileを変更しGPU、OPENCV対応へ

Makefileを変更し、GPU、CudaとOpencv対応となるようにコンパイルオプションを変更します。

$ sudo vi Makefile

変更前のMakeFile変更内容

GPU=0
CUDNN=0
CUDNN_HALF=0
OPENCV=0
AVX=0
OPENMP=0
LIBSO=0

通常は、以下の3つを「0」から「1」へ変更し、Cuda GPUありのDarknetがコンパイルできます。

GPU=1
CUDNN=1
OPENCV=1

今回は、Pythonからlibdarknet.soを利用する予定なので、LIBSOも「0」から「1」へ変更します。

GPU=1
CUDNN=1
CUDNN_HALF=0
OPENCV=1
AVX=0
OPENMP=0
LIBSO=1
$ make

以上でDarknetが利用可能となります。

Jetson Nano A02でコンパイル時も、Make時のエラーを対処する必要がありました。ページ下部に、実施した修正内容を記載しておきます。

darknetフォルダで、以下サンプルコマンドを実行し、動作を確認してください。

$ cd darknet

$ ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -ext_output dog.jpg

Make時エラーへの対処

nvcc -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] -Iinclude/ -I3rdparty/stb/include -DOPENCV `pkg-config --cflags opencv4 2> /dev/null || pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ -DCUDNN --compiler-options "-Wall -Wfatal-errors -Wno-unused-result -Wno-unknown-pragmas -fPIC -Ofast -DOPENCV -DGPU -DCUDNN -I/usr/local/cudnn/include -fPIC" -c ./src/convolutional_kernels.cu -o obj/convolutional_kernels.o
/bin/sh: 1: nvcc: not found
Makefile:168: recipe for target 'obj/convolutional_kernels.o' failed
make: *** [obj/convolutional_kernels.o] Error 127

NVCC=nvcc 部分を
NVCC=/usr/local/cuda/bin/nvcc
に変更

参考にさせて頂いたサイト

created by Rinker
NVIDIA
¥19,000 (2021/08/19 16:46:56時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA