Closed kyakuno closed 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を計算した方が、正確な値となります。
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を計算した方が、正確な値となります。