Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement mediapipe_pose_world_landmarks #75

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

takky413
Copy link

mediapipe_pose_world_landmarksの追加

}
Debug.Log($"Model loaded {modelName}");

string anchorsJSON = File.ReadAllText($"{jsonPath}/mediapipepose_anchors.json");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Androidの場合、StreamingAssetsPathのファイルを直接読み込むことはできないため、C#の配列としてanchorsを定義していただければと思います。
https://teratail.com/questions/169361
BlazeFaceの実装例です。
https://github.com/axinc-ai/ailia-models-unity/blob/master/Assets/AXIP/AILIA-MODELS/FaceDetection/AiliaBlazefaceAnchors.cs

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BlazeFaceと同様に、新たに作成したAiliaMediapipePoseWorldLandmarks.cs上でC#の配列としてanchorsを再定義し、それをAiliaMediapipePoseWorldLandmarks.csから参照する形式に変更しました。

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pluginsフォルダはコミットに含めないようにしていただければと思います。一度、ローカルファイルシステムからPluginsフォルダを退避(削除)してコミット、Pluginsフォルダをローカルファイルシステムに戻す、という操作で対応可能かと思います。

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pluginsフォルダを除いたものを新たにpushいたしました。

public class ReadImage
{

public static Texture2D PngToTex2D(string path)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ファイルから読むよりも、
 public Texture2D test_image = null;
を定義して、Textureのread/write enable属性を有効化して、Unity Editorから画像を指定する方が素直な実装かと思います。
下記を参照ください。
https://github.com/axinc-ai/ailia-models-unity/blob/master/Assets/AXIP/AILIA-MODELS/FaceIdentification/AiliaFeatureExtractorSample.cs

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Texture Type を DefaultからSprite(2D and UI)に変更し、Textureのread/write enable属性を有効化することで、Unity Editorから画像を指定する方法に変更いたしました。その結果不必要になったReadImage.csは削除しました。

田北陽士 and others added 5 commits December 8, 2023 14:01
# Conflicts:
#	Assets/AXIP/AILIA-MODELS/AudioProcessing.meta
#	Assets/AXIP/AILIA-MODELS/DepthEstimation.meta
#	Assets/AXIP/AILIA-MODELS/Diffusion.meta
#	Assets/AXIP/AILIA-MODELS/Foundation.meta
#	Assets/AXIP/AILIA-MODELS/PoseEstimation/AiliaPoseEstimatorsSample.cs
#	Assets/AXIP/AILIA-MODELS/PoseEstimation/RenderTexture.renderTexture.meta
#	Assets/AXIP/AILIA-MODELS/common/Scripts/AiliaRenderer.cs
#	Assets/AXIP/AILIA/Scripts/Api/AiliaPoseEstimator.cs
#	Assets/Plugins/linux.meta
@kyakuno
Copy link
Contributor

kyakuno commented Jun 10, 2024

AILIAPoseEstimatorObjectPoseを拡張して、local_xとlocal_yが必要なので、新しい構造体を定義する必要がある。

@kyakuno
Copy link
Contributor

kyakuno commented Jun 12, 2024

AILIAPoseEstimatorObjectPoseは互換性の問題があるので、GetResultの引数にworld_cordinateかどうかを与えられるようにして、xとyに書き込むようにしました。

@kyakuno
Copy link
Contributor

kyakuno commented Jun 12, 2024

Pythonの出力

world_landmarks

C#の出力

スクリーンショット 2024-06-12 14 01 41

@kyakuno
Copy link
Contributor

kyakuno commented Jun 12, 2024

2D座標は合っていそうだが、3D座標が怪しい。

@kyakuno
Copy link
Contributor

kyakuno commented Jun 12, 2024

@takky413 下記の画像でテストした場合の3D座標の出力が正しそうか確認いただくことは可能でしょうか?私のmasterのマージの方で失敗した可能性もあるので、 @takky413 さんのローカルブランチでテストしてみていただければと思います。

demo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants