Jetson TX2にDarknetをインストールしてYOLOv3を試してみた

Jetson TX2に深層学習フレームワークDarknetをインストールして、YOLOv3とTiny YOLOv3を試してみました。

スポンサーリンク

Darknet

Darknetは、TensorFlowやPyTorchと同じく、深層学習のフレームワークです。

今回は、オリジナルのDarknet(https://github.com/pjreddie/darknet)ではなく、こちら(https://github.com/AlexeyAB/darknet)のリポジトリのdarknet_yolo_v3タグをcheckoutして使用します。

予め~/githubディレクトリを作成しておき、以下のコマンドを実行します。

$ cd ~/github
$ git clone https://github.com/AlexeyAB/darknet
$ cd darknet
$ git checkout darknet_yolo_v3

元のMakefileの以下の部分を

GPU=0
CUDNN=0
OPENCV=0
# ARCH= -gencode arch=compute_62,code=[sm_62,compute_62]

次のように変更して保存します。

GPU=1
CUDNN=1
OPENCV=1
ARCH= -gencode arch=compute_62,code=[sm_62,compute_62]

最後にmakeを実行します。

YOLOv3 & Tiny YOLOv3

YOLOv3とTiny YOLOv3は、以下の記事のSSDと同じく、物体検出用のネットワークです。

COCOデータセットで学習したcaffe-ssdモデルで物体検出を試してみた
COCOデータセットで学習したSingle Shot MultiBox Detector(SSD)のCaffe実装「caffe-ssd」モデルで物体検出を試してみました。COCOモデルは、80種類のカテゴリーに対応していることが特徴です。

以下のコマンドを実行して、~/github/darknetディレクトリにYOLOv3とTiny YOLOv3の学習済weightsをダウンロードしておきます。

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

また、ここ(http://cocodataset.org/#explore?id=533917)からダウンロードした画像を~/github/darknet/dataディレクトリにコピーし、533917.jpgにリネームしておきます。

YOLOv3

YOLOv3モデル(具体的には、入力サイズ416×416のYOLOv3-416)で物体検出するために、以下のコマンドを実行します。

$ cd ~/github/darknet
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/533917.jpg

物体検出の結果として、以下の画像が得られました。

yolov3

YOLOv3の物体検出結果

Tiny YOLOv3

Tiny YOLOv3モデルで物体検出するために、以下のコマンドを実行します。

$ cd ~/github/darknet
$ ./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/533917.jpg

物体検出の結果として、以下の画像が得られました。

yolov3-tiny

Tiny YOLOv3の物体検出結果

まとめ

Jetson TX2に深層学習フレームワークDarknetをインストールして、YOLOv3とTiny YOLOv3を試してみました。