axinc-ai / ailia-models-unity

Unity version of ailia models repository
42 stars 2 forks source link

BlazeFaceのサンプルで非正方形に対応、Atan2計算でアスペクト比を考慮 #128

Closed kyakuno closed 1 month ago

kyakuno commented 1 month ago

BlazeFaceのサンプルで非正方形画像の入力に対応しました。 インスペクタでis_squareをfalseにすると、非正方形のカメラに対して処理可能です。

BlazeFaceとFaceMeshはアスペクトレシオ1:1の画像に対して処理します。 下記のAiliaBlazeface.csでは、入力画像の水平解像度を128pxに揃え、高さ方向にパディングします。 https://github.com/axinc-ai/ailia-csharp/blob/main/ailia-csharp/ailia-csharp/facemesh/AiliaBlazeface.cs

出力のFaceInfoは、パディング前の空間で0-1の値に正規化した座標系を扱います。 パディング分を削除するため、AI出力の値に、aspectを乗算しています。

この値の空間は、ピクセル空間ではないため、そのままatan2を計算すると、誤差が生じます。 そのため、tex_widthとtex_heightを乗算した上で、thetaを計算した方が、正確な値となります。