From 3548b6c0a8d6add814dd57ee34fc32c746752e82 Mon Sep 17 00:00:00 2001 From: Ganesh Saraswat Date: Mon, 2 Oct 2023 08:08:17 -0600 Subject: [PATCH] Fixed bug Technically since we flipped using cv2.flip, we need to re flip in unity (otherwise get incorrect results if query landmarks in unity). LEGACY BEHAVIOR: comment #define FLIP CORRECT BEHAVIOR: leave everything as is NO FLIP: comment cv2.flip() in python, comment FLIP here. --- UnityMediaPipeBody/Assets/Landmark.cs | 78 ++++++++++++++++++++++ UnityMediaPipeBody/Assets/Landmark.cs.meta | 11 +++ UnityMediaPipeBody/Assets/PipeServer.cs | 35 ---------- 3 files changed, 89 insertions(+), 35 deletions(-) create mode 100644 UnityMediaPipeBody/Assets/Landmark.cs create mode 100644 UnityMediaPipeBody/Assets/Landmark.cs.meta diff --git a/UnityMediaPipeBody/Assets/Landmark.cs b/UnityMediaPipeBody/Assets/Landmark.cs new file mode 100644 index 0000000..0159808 --- /dev/null +++ b/UnityMediaPipeBody/Assets/Landmark.cs @@ -0,0 +1,78 @@ +#define FLIP // Comment out this line to flip the landmarks (internally) [technically need to flip here, but kept like this for backward compatibility]. +// NOTE: image = cv2.flip(image, 1) in the Python side may also be of interest to you as well. + +#if FLIP +public enum Landmark +{ + NOSE = 0, + LEFT_EYE_INNER = 4, + LEFT_EYE = 5, + LEFT_EYE_OUTER = 6, + RIGHT_EYE_INNER = 1, + RIGHT_EYE = 2, + RIGHT_EYE_OUTER = 3, + LEFT_EAR = 8, + RIGHT_EAR = 7, + MOUTH_LEFT = 10, + MOUTH_RIGHT = 9, + LEFT_SHOULDER = 12, + RIGHT_SHOULDER = 11, + LEFT_ELBOW = 14, + RIGHT_ELBOW = 13, + LEFT_WRIST = 16, + RIGHT_WRIST = 15, + LEFT_PINKY = 18, + RIGHT_PINKY = 17, + LEFT_INDEX = 20, + RIGHT_INDEX = 19, + LEFT_THUMB = 22, + RIGHT_THUMB = 21, + LEFT_HIP = 24, + RIGHT_HIP = 23, + LEFT_KNEE = 26, + RIGHT_KNEE = 25, + LEFT_ANKLE = 28, + RIGHT_ANKLE = 27, + LEFT_HEEL = 30, + RIGHT_HEEL = 29, + LEFT_FOOT_INDEX = 32, + RIGHT_FOOT_INDEX = 31, +} +#else +public enum Landmark +{ + NOSE = 0, + LEFT_EYE_INNER = 1, + LEFT_EYE = 2, + LEFT_EYE_OUTER = 3, + RIGHT_EYE_INNER = 4, + RIGHT_EYE = 5, + RIGHT_EYE_OUTER = 6, + LEFT_EAR = 7, + RIGHT_EAR = 8, + MOUTH_LEFT = 9, + MOUTH_RIGHT = 10, + LEFT_SHOULDER = 11, + RIGHT_SHOULDER = 12, + LEFT_ELBOW = 13, + RIGHT_ELBOW = 14, + LEFT_WRIST = 15, + RIGHT_WRIST = 16, + LEFT_PINKY = 17, + RIGHT_PINKY = 18, + LEFT_INDEX = 19, + RIGHT_INDEX = 20, + LEFT_THUMB = 21, + RIGHT_THUMB = 22, + LEFT_HIP = 23, + RIGHT_HIP = 24, + LEFT_KNEE = 25, + RIGHT_KNEE = 26, + LEFT_ANKLE = 27, + RIGHT_ANKLE = 28, + LEFT_HEEL = 29, + RIGHT_HEEL = 30, + LEFT_FOOT_INDEX = 31, + RIGHT_FOOT_INDEX = 32, +} +#endif \ No newline at end of file diff --git a/UnityMediaPipeBody/Assets/Landmark.cs.meta b/UnityMediaPipeBody/Assets/Landmark.cs.meta new file mode 100644 index 0000000..6777bde --- /dev/null +++ b/UnityMediaPipeBody/Assets/Landmark.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cd9282717b4dffc40958bc70fc844654 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityMediaPipeBody/Assets/PipeServer.cs b/UnityMediaPipeBody/Assets/PipeServer.cs index 4c9ab56..5392ee9 100644 --- a/UnityMediaPipeBody/Assets/PipeServer.cs +++ b/UnityMediaPipeBody/Assets/PipeServer.cs @@ -27,41 +27,6 @@ public class PipeServer : MonoBehaviour NamedPipeServerStream server; const int LANDMARK_COUNT = 33; - public enum Landmark { - NOSE = 0, - LEFT_EYE_INNER = 1, - LEFT_EYE = 2, - LEFT_EYE_OUTER = 3, - RIGHT_EYE_INNER = 4, - RIGHT_EYE = 5, - RIGHT_EYE_OUTER = 6, - LEFT_EAR = 7, - RIGHT_EAR = 8, - MOUTH_LEFT = 9, - MOUTH_RIGHT = 10, - LEFT_SHOULDER = 11, - RIGHT_SHOULDER = 12, - LEFT_ELBOW = 13, - RIGHT_ELBOW = 14, - LEFT_WRIST = 15, - RIGHT_WRIST = 16, - LEFT_PINKY = 17, - RIGHT_PINKY = 18, - LEFT_INDEX = 19, - RIGHT_INDEX = 20, - LEFT_THUMB = 21, - RIGHT_THUMB = 22, - LEFT_HIP = 23, - RIGHT_HIP = 24, - LEFT_KNEE = 25, - RIGHT_KNEE = 26, - LEFT_ANKLE = 27, - RIGHT_ANKLE = 28, - LEFT_HEEL = 29, - RIGHT_HEEL = 30, - LEFT_FOOT_INDEX = 31, - RIGHT_FOOT_INDEX = 32 - } const int LINES_COUNT = 11; public struct AccumulatedBuffer