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