コンテンツへスキップ

Python で libdarknet.so を用いた Darknet で YOLO v3 の画像検出

YOLO v3, YOLO v3 tinyなどの動作環境

OpenCVのdnnモジュールやTensorFlow-Kerasを用いた方法などで、YOLO v3やTiny YOLO v3を動作させていました。

NVIDIA Jetson Nanoでは、NVIDIAのGPUエンジンが使えるということもあり、AlexeyAB / darknetをインストールが可能です。
(Raspberry Piにおいては、NCS2を導入し、OpenVINOで動作可能なフレームワークでYOLOを動作させる環境がおすすめです。 Movidius Neural Compute Stick 2、OpenVINO™ toolkit for Raspbian OS導入

Jetson Nanoへ libdarknet.so 導入

以前に紹介した、NVIDIA Jetson Nanoへの AlexeyAB / darknet / YOLO3 インストール(Nvidia Jetson Nano)と同様の方法でAlexeyAB Darknetの導入を行います。

手順の異なりは、Makefileの内容となり、「LIBSO」のフラグを1に設定します。「LIBSO=1」

ライブラリーアップデート

  1. apt update
  2. apt upgrade -y

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

  1. export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
  2. export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

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

  1. git clone https://github.com/AlexeyAB/darknet
  2. cd darknet
  3. wget https://pjreddie.com/media/files/yolov3.weights
  4. wget https://pjreddie.com/media/files/yolov3-tiny.weights

MakeFileを変更しGPU、OPENCV対応へ

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

  1. sudo vi Makefile

MakeFile変更内容
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
AVX=0
OPENMP=0
LIBSO=1
ZED_CAMERA=0

Darknetをコンパイル

  1. make

Pythonからlibdarknet.so利用方法

「darknet」インストールフォルダーの直下にある、「darknet.py」がサンプルスクリプトとなります。Python3にも完全に対応されているので、そのまま利用可能です。

サンプルスクリプト内で、「from ctypes import *」「lib = CDLL("darknet/libdarknet.so", RTLD_GLOBAL)」で、libdarknet.soをロードし、利用可能となります。
画像検出結果を画像表示する部分で、「
from skimage import io, draw」を利用する部分があり、動作確認を行うJetsonには未導入でしたので、別途導入を行いました。

Installing collected packages: networkx, imageio, PyWavelets, scikit-image
Successfully installed PyWavelets-1.0.3 imageio-2.6.1 networkx-2.3 scikit-image-0.15.0

import darknet.pyとサンプルファイルをそのままロードしてしまい、
darknet.performDetect(imagePath=, thresh= , configPath = , weightPath = , metaPath= , showImage= , makeImageOnly = , initOnly= ):
で画像検出を実施すれば良いと思います。
OpenCVを利用する際の
BGRとRGB画像形式の利用方法もdarknet.pyのサンプルファイル内に記載されております。

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

コメントを残す

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

CAPTCHA