XavierにYolo V3をインストールしたときのメモ。Xavierは16bit浮動小数点が使え数倍高速になるので、それに対応したTensorコアを使うdarknetをインストールする。以下のウェブサイトを参考にしました。
1. Tensorコア対応Darknetのインストール
- この指示にしたがいDarknetをインストールする
- cd ~/src
- git clone https://github.com/AlexeyAB/darknet.git
- mv darknet darknet_tensor
- cd ~/src/darknet_tensor
- Makefileの該当行を以下に変更
- GPU=1
- CUDNN=1
- CUDNN_HALF=1
- OPENCV=1
- LIBSO=1
- DEBUGの下のARCHの前に#をつけてコメントアウトして、#Jetson XAVIERの下の#ARCH の#を外し有効化する。
- ARCH= -gencode arch=compute_72,code=[sm_72,compute_72]
- make -j 8
- Yoloのウェイトのダウンロードと実行
- cd ~/src/darknet_tensor
- 学習済みのウェイト(パラメータ)ファイルをダウンロード
- wget http://pjreddie.com/media/files/yolov3.weights
- サンプルの実行
- ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
- 実行方法
- ノートPC内蔵カメラ
- ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
- 動画ファイル
- Webm形式の動画ファイルは問題なく動作する。
- ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file>
- ノートPC内蔵カメラ
2. Darknet(Tensorコア非対応)のインストール
- この指示にしたがいDarknetをインストールする
- cd ~/src
- git clone https://github.com/pjreddie/darknet.git
- cd ~/src/darknet
- Makefileの該当行を以下に変更
- GPU=1
- CUDNN=1
- OPENCV=1
- ARCH= -gencode arch=compute_72,code=[sm_72,compute_72]
- make -j 8
- Yoloのウェイトのダウンロードと実行
- cd ~/src/darknet
- 学習済みのウェイト(パラメータ)ファイルをダウンロード
- サンプルの実行
- ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
- 実行方法(Tensorコア対応版と同じ)
- ノートPC内蔵カメラ
- ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
- 動画ファイル
- Webm形式の動画ファイルは問題なく動作する。
- ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file>
- ノートPC内蔵カメラ
3. Tensorコア非対応版及びTX2との比較
- Jetson TX2と比較するために以下のサイトで紹介しているYouTubeビデオを~/src/darknetにダウンロードする。ファイル名をtraffic.mp4とする。
- 実行方法
- Jetsonの高速化
- $ sudo nvpmodel -m 0
- $ sudo ~/jetson_clocks.sh
- Tensorコア対応版の実行
- $ cd ~/src/darknet_tensor
- ウェイトのダウンロード
- $ wget https://pjreddie.com/media/files/yolov3.weigths
- $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights traffic.mp4
- Tensorコア比対応版の実行
- $ cd ~/src/darknet
- ウェイトのダウンロード
- $ wget https://pjreddie.com/media/files/yolov3.weigths
- $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights traffic.mp4
- Jetsonの高速化
- 推論結果
- JK Jung’s blogではTX2を使い3.0~3.3 fpsぐらいの処理速度ということですが、私が所有しているTX2では0.8~1.0 fps程度しか出ません。なお、SDカードからブートしています。yolob3.cfgのパラメータはTest時のデフォルト値で以下のように設定しています。その他は変更していません。
- batch=1
- subdivisions=1
- JK Jung’s blogではTX2を使い3.0~3.3 fpsぐらいの処理速度ということですが、私が所有しているTX2では0.8~1.0 fps程度しか出ません。なお、SDカードからブートしています。yolob3.cfgのパラメータはTest時のデフォルト値で以下のように設定しています。その他は変更していません。
Yolo V3 on Jetson | 速度 [fps] |
TX2 | 0.8~1.0 (3.0 ~ 3.3) |
Xavier | 4.6 ~ 4.8 |
Xavier Tensorコア対応 | 16.2~16.5 |
終わり
コメント