trafficcamnet-on-tao-toolkit は、NVIDIA TAO TOOLKIT を用いて TrafficCamNet の AIモデル最適化を行うマイクロサービスです。
- NVIDIA
- TAO TOOLKIT
- TrafficCamNet
- Docker
- TensorRT Runtime
TrafficCamNet は、画像内の車、人、道路標識、および二輪車を検出し、カテゴリラベルを返すAIモデルです。
TrafficCamNet は、特徴抽出にResNet18を使用しており、混雑した場所でも正確に物体検出を行うことができます。
TrafficCamNet のAIモデルをデバイスに最適化するため、ResNet18 における TrafficCamNet の .etlt ファイルを engine file に変換します。
現時点におけるNVIDIAの仕様では、GPUのアーキテクチャごとに engine file の生成が必要です。
つまり、あるサーバで生成した engine file を別のサーバーにそのまま適用することはできません。
本レポジトリに格納された trafficcamnet.engine は、実際に生成される engine file の参考例です。
engine fileへの変換は、Makefile に記載された以下のコマンドにより実行できます。
tao-convert:
docker exec -it trafficcamnet-tao-toolkit tao-converter -k tlt_encode -d 3,544,960 -e /app/src/trafficcamnet.engine /app/src/resnet18_trafficcamnet_pruned.etlt
本マイクロサービスで最適化された TrafficCamNet の AIモデルを Deep Stream 上で動作させる手順は、trafficcamnet-on-deepstreamを参照してください。
engineファイルである peoplenet.engine は、trafficcamnet-on-deepstreamと共通のファイルであり、本レポジトリで作成した engineファイルを、当該リポジトリで使用しています。
本レポジトリでは、ニューラルネットワークのモデルにおいて、エッジコンピューティング環境での演算スループット効率を高めるため、FP16(半精度浮動小数点)を使用しています。
浮動小数点値の変更は、Makefileの以下の部分を変更し、engineファイルを生成してください。
tao-convert:
docker exec -it trafficcamnet-tao-toolkit tao-converter -k tlt_encode -t fp16 -d 3,544,960 -e /app/src/trafficcamnet.engine /app/src/resnet18_trafficcamnet_pruned.etlt