Jetson TX2 YOLOv3 推論ベンチマーク

Jetson TX2にインストールしたDarknetとtrt-yolo-appを用いて、YOLOv3とTiny YOLOv3の推論ベンチマークを実施してみました。

今回のベンチマークの目的は、YOLOv3のネイティブプラットフォームであるDarknetと、TensorRTを用いたtrt-yolo-appの精度の違い(FP32とFP16)による比較を行うことです。

下の表は、今回のベンチマークの対象を示しています。

YOLOv3 (YOLOv3-416) Tiny YOLOv3 (YOLOv3-tiny)
Darknet (FP32) Darknet (FP32)
trt-yolo-app (FP32) trt-yolo-app (FP32)
trt-yolo-app (FP16) trt-yolo-app (FP16)
スポンサーリンク

YOLOv3 推論ベンチマーク結果

下の図は、YOLOv3とTiny YOLOv3のFPSを示しています。

YOLOv3 Inference Performance on Jetson TX2 - FPS

YOLOv3 Inference Performance on Jetson TX2 – FPS

下の図は、Darknet (FP32)を基準としたtrt-yolo-app (FP32/FP16)の速度向上を示しています。

YOLOv3 Inference Performance on Jetson TX2 - Speedup

YOLOv3 Inference Performance on Jetson TX2 – Speedup

Darknet (FP32)を基準としたtrt-yolo-app (FP32)の速度向上は、およそ1.3倍となるようです。また、Darknet (FP32)を基準としたtrt-yolo-app (FP16)の速度向上は、およそ1.7倍となるようです。

ベンチマーク条件

trt-yolo-appを用いたTiny YOLOv3のベンチマークに関する手順が、Deep Learning Inference Benchmarking Instructions – NVIDIA Developer Forums に含まれており、この手順を参照してベンチマークを実施しています。

具体的には、大きさが異なる5枚の画像をそれぞれ100回(計500回)推論したときの平均推論時間を算出し、FPSに換算しています。

なお、上記の手順に対応したJetson TX2のディープラーニング推論ベンチマークの結果については、以下の記事をご覧ください。

Jetson TX2 ディープラーニング推論ベンチマーク
Jetson Nanoで実施されたディープラーニング推論ベンチマークをJetson TX2で実施してみました。

Jetson TX2の条件

Jetson TX2には、JetPack 4.2(TensorRT 5.0.6)をインストールしています。
また、以下のコマンドで最大電力・最高周波数に設定して、ベンチマークを実施しています。

$ sudo nvpmodel -m 0
$ sudo jetson_clocks

Darknet YOLOv3

Darknet YOLOv3の環境構築については、以下の記事をご覧ください。

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

trt-yolo-app

trt-yolo-appの環境構築については、以下の記事をご覧ください。

Jetson TX2でTensorRTを用いたYOLOv3を試してみた
Jetson TX2にTensorRTを用いたYOLOの推論専用の実装であるtrt-yolo-appをインストールして、YOLOv3とTiny YOLOv3を試してみました。

まとめ

Jetson TX2にインストールしたDarknetとtrt-yolo-appを用いて、YOLOv3とTiny YOLOv3の推論ベンチマークを実施してみました。

今回のベンチマークから、Darknetと同じ精度であるFP32でも、trt-yolo-appにおける速度向上が確認できました。また、trt-yolo-appの精度をFP16に変更することによる速度向上も確認できました。

前回の記事において、Darknetとtrt-yolo-appでは異なる推論結果が得られる場合もあることから、速度以外の性能についても、比較を行うことが望ましいと思います。