2397295_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2397295_ja-JP

2397295_ja-JP

Facemesh Landmarkモデルptq変換におけるパフォーマンス低下

このリポジトリでは、ptq後にNXPがリリースしたGoogleのFaceMeshモデルを使っていました:
nxp-demo-experience-demos-list/downloads.json at lf-6.12.3_1.0.0 ·NXP-IMX-support/NXP-demo-experienc...
しかしこのモデルは、468のランドマークポイントを持つGoogleの旧FaceMeshモデルに基づいています。

次に、Googleの新しいFaceMeshモデルに移行したいと考えています。これには478のランドマークポイントがあります。これをiMX 95 FRDMボードのNPU上で実行したいと考えています。そこで、これを量子化したかったのです。NXPのeIQ-neutron-sdk-linux-3.1.3を使っていますこのモデルを量子化するために。

この量子化の後、モデルのパフォーマンスは著しく劣化し、実際に使うにはほとんど使えない状態です。

当初はMIN-MAXオプションを使用して量子化していました。そのモデルは使い物にならなかった。次に、パーセンタイルオプションを使用してみたところ、パーセンタイルを95に設定した方がパフォーマンスが向上することがわかりました(これは回帰モデルの出力でしたが)。
しかし、それでも十分な性能は得られていません

1) NXPが古いFaceMesh(468)モデルのptqファイルを作成した際、どのオプションを使っていましたか?MIN-MAX?それともパーセンタイル?

2) 量子化後にパフォーマンスが著しく低下した場合、他に確認すべき事項はありますか?

3) CelebAデータセットでプロファイリングを行い、スクリプトのserialize_image.pyをモデルオプションで使いました。メディアパイプ全体を実行してキャリブレーションデータセットを作成するか、シリアル化スクリプトで変更すべきか

オプション提供

serialize_image.py:
-i //218 x 178 前面向けRGB画像
-<パス/トゥ/calib_bins>
-Fビン
-T float32
-0to1
-256、256
-NHWCレイアウト
-コRGB

TFLITE-Profiler:
--input
--データセット
--出力

TFLITE-クオンタイザ:
--input
--プロファイル
--quantize-inputs=false
--quantize-outputs=false
--量子化-キャリブレーション-方法= //最小最大値またはパーセンタイル

Re: Performance degradation in Facemesh Landmark model ptq conversion

こんにちは@dhilshad
NXPサポートにご連絡いただきありがとうございます!

1) 残念ながら、現時点ではその情報は入手できません。

2) この挙動は想定内です。クオンタイズは展開プロセスの一部に過ぎません。組み込みハードウェア上でモデルを変換・最適化するには、グラフ最適化、演算子マッピング、ハードウェア固有の変換、ランタイム検証など、いくつかの追加ステップが必要です。その結果、モデルがすでに量子化されていても、モデルの挙動や性能は異なることがあります。

新しいデザインや評価には、eIQ Oliveの使用をおすすめします。NXP i.MX プラットフォームでのモデル最適化と展開のためのよりモダンなフレームワークを提供するからです。ワークフローの更新と、現在の機械学習展開シナリオへのサポート強化が含まれています。

詳細については、以下のチュートリアルおよびドキュメントをご参照ください。

https://eiq.nxp.com/learning-hub/tools/olive/index.html

これらのリソースは、i.MX デバイスに機械学習モデルを導入するための推奨ワークフローやベストプラクティスをカバーしています。

よろしくお願いします、
チャビラ

Re: Performance degradation in Facemesh Landmark model ptq conversion

こんにちは、 @Chavira さん。返信ありがとうございます。そして、ドキュメントを指摘しています

ここで念のために言うと、主な関心はモデルの正確さです。FaceMeshモデルの場合、出力するランドマークポイントはアプリケーションに対して十分に正確でないことがわかります。先ほど申し上げたように、95パーセンタイルをカットオフ値として設定する方が、MIN MAXよりもわずかに良い結果が得られることが分かりました。しかし、それでもNXPのptqモデル(FaceMesh 468)で見られる精度には及びません。

もう一つ気づいた点があります。
1) 代表的なデータセットとして、本番環境から8つのサンプルだけを用意して試してみました。これは結果をわずかに改善させた。次に、同じ環境から250枚の画像を追加し、プロファイリングと量子化を行った。しかし、これによって精度が低下した。
なぜこのような行動が起こるのか、何か心当たりはありますか?

2) また、NXPはすでにGoogleの新しいFaceMeshモデル(478ランドマーク搭載)をPTQに変換していますか?

Tags (1)
No ratings
Version history
Last update:
3 weeks ago
Updated by: