Jetson NanoにDarknetをインストールする方法
教授によれば,JetsonNanoでDarknetを動かすと15FPSは確実に出るらしい.
what’s darknet?
Darknetとは物体認識系ディープラーニングモデルの一つYoloのC言語実装のこと.
ここで,簡単に経緯を話すと,現在,私はロボカッププロジェクトに入っており,そこのロボットの目となる画像認識部門に従事している.
画像内の物体を認識し,座標を出すというプログラムを作らなければならない.
すでにそうしたアルゴリズムはいくつかあるのだが,速度(FPS),精度を計測し,最適なものを選択しなければならない.そこでDarknetを試すこととなったのだが…
苦悩のDarknet.
前提の情報として,教授によれば,**JetsonNanoだったら,Darknetは15FPSは出るよ.**と聞かされていた. しかし,いくら実験してもそんな速度には到底およばず,2FPSが限界だった.これをプロジェクトの定期的なミーティングで話すと,非難の嵐で,調べなおせと言われてしまった.
結論
もともとそんな速度は出ない.つまり,教授側が間違っていたということだった. 15FPSが出たのはOpenPoseのPoseEstimationだった(画像から骨格を認識,座標を出力する). というわけで結果は20W(MAXNN)モードで(Yolo v3)2FPSが限界であった.
インストール方法
上を踏まえた上で,あまり期待しないほうが良いが.インストール方法について述べる.
$ git clone https://github.com/AlexeyAB/darknet
$ cd darknet
$ nano Makefile
ここで変更する内容は
GPU=1
,OPENCV=1
,nvcc=/usr/local/nvcc
に変更するだけだ.
これで,CUDAコアを使ったYoloをコンパイルできる.
$ make -j4 ## 4の部分は並列化する数
./darknet
と打って<func>...
が出たら,コンパイルに成功している.
yolov3 tinyならそこそこ実用範囲
遅い遅いと言っているが,yolov3 tinyならそこそこ実用の範囲で動作する.
しかし,精度が足りない.一応,検証はしているので,良かったら,動画の方を見ていただけたらと思う.(もともとyolo v3のモデル構造が遅いのでyolo v2でも試す価値はある,しかし,競合するssdも検証が必要だ.)