From d860f74c1219862fb39ac96ab3e6c85200a8cfde Mon Sep 17 00:00:00 2001 From: IKEP <34697515+creativeIKEP@users.noreply.github.com> Date: Sun, 9 Jan 2022 18:25:55 +0900 Subject: [PATCH 1/4] apply buffer input --- .../PoseDetectionBarracuda/Script/PoseDetecter.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Packages/PoseDetectionBarracuda/Script/PoseDetecter.cs b/Packages/PoseDetectionBarracuda/Script/PoseDetecter.cs index 402d9af..e22639f 100644 --- a/Packages/PoseDetectionBarracuda/Script/PoseDetecter.cs +++ b/Packages/PoseDetectionBarracuda/Script/PoseDetecter.cs @@ -53,17 +53,21 @@ public class PoseDetecter: System.IDisposable } public void ProcessImage(Texture inputTexture, float poseThreshold = 0.75f, float iouThreshold = 0.3f){ - // Reset append type buffer datas of previous frame. - postProcessBuffer.SetCounterValue(0); - outputBuffer.SetCounterValue(0); - // Resize `inputTexture` texture to network model image size. preProcessCS.SetTexture(0, "_inputTexture", inputTexture); preProcessCS.SetBuffer(0, "_output", networkInputBuffer); preProcessCS.Dispatch(0, IMAGE_SIZE / 8, IMAGE_SIZE / 8, 1); + ProcessImage(networkInputBuffer, poseThreshold, iouThreshold); + } + + public void ProcessImage(ComputeBuffer input, float poseThreshold = 0.75f, float iouThreshold = 0.3f){ + // Reset append type buffer datas of previous frame. + postProcessBuffer.SetCounterValue(0); + outputBuffer.SetCounterValue(0); + //Execute neural network model. - var inputTensor = new Tensor(1, IMAGE_SIZE, IMAGE_SIZE, 3, networkInputBuffer); + var inputTensor = new Tensor(1, IMAGE_SIZE, IMAGE_SIZE, 3, input); woker.Execute(inputTensor); inputTensor.Dispose(); From 0af69f0437e42ea385e41a69cc687c8962d4645d Mon Sep 17 00:00:00 2001 From: IKEP <34697515+creativeIKEP@users.noreply.github.com> Date: Sun, 9 Jan 2022 18:28:51 +0900 Subject: [PATCH 2/4] delete old network visualization for UpperBodyOnly --- Assets/Script/PoseVisuallizer.cs | 3 --- Assets/Shader/Visualizer.shader | 5 ++--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Assets/Script/PoseVisuallizer.cs b/Assets/Script/PoseVisuallizer.cs index 7a72397..bbd531c 100644 --- a/Assets/Script/PoseVisuallizer.cs +++ b/Assets/Script/PoseVisuallizer.cs @@ -6,7 +6,6 @@ public class PoseVisuallizer : MonoBehaviour [SerializeField] WebCamInput webCamInput; [SerializeField] Shader shader; [SerializeField] PoseDetectionResource poseDetectionResource; - [SerializeField] bool isUpperBodyOnly; Material material; PoseDetecter detecter; @@ -33,8 +32,6 @@ public class PoseVisuallizer : MonoBehaviour void OnRenderObject(){ // Get predicted pose detection result. material.SetBuffer("_pds", detecter.outputBuffer); - // Select mode, "upper body only" or "full body". - material.SetInt("_upperBodyOnly", (isUpperBodyOnly ? 1 : 0)); // Set pose detection count as vertex shader instance count. ComputeBuffer.CopyCount(detecter.outputBuffer, boxDrawArgs, sizeof(uint)); diff --git a/Assets/Shader/Visualizer.shader b/Assets/Shader/Visualizer.shader index dfe4569..2f4458d 100644 --- a/Assets/Shader/Visualizer.shader +++ b/Assets/Shader/Visualizer.shader @@ -7,7 +7,6 @@ #define PI 3.14159265359 - uint _upperBodyOnly; StructuredBuffer _pds; float2x2 rot2D(float angle) @@ -42,8 +41,8 @@ float2 hip = pd.keyPoints[0]; float2 shoulder = pd.keyPoints[2]; - float2 center = _upperBodyOnly ? shoulder : hip; - float2 roi = _upperBodyOnly ? pd.keyPoints[3] : pd.keyPoints[1]; + float2 center = hip; + float2 roi = pd.keyPoints[1]; float sizeX = abs(roi.x - center.x); float sizeY = abs(roi.y - center.y); From 3a19df76f67f0b3548508d31a0b603f06d13f5f9 Mon Sep 17 00:00:00 2001 From: IKEP <34697515+creativeIKEP@users.noreply.github.com> Date: Sun, 9 Jan 2022 19:36:42 +0900 Subject: [PATCH 3/4] change readme photo to global URL --- Packages/PoseDetectionBarracuda/README.md | 2 +- .../PoseDetectionBarracuda/screenshot.meta | 8 -- .../screenshot/demo.png | 3 - .../screenshot/demo.png.meta | 96 ------------------- README.md | 2 +- screenshot/demo.png | 3 - 6 files changed, 2 insertions(+), 112 deletions(-) delete mode 100644 Packages/PoseDetectionBarracuda/screenshot.meta delete mode 100644 Packages/PoseDetectionBarracuda/screenshot/demo.png delete mode 100644 Packages/PoseDetectionBarracuda/screenshot/demo.png.meta delete mode 100644 screenshot/demo.png diff --git a/Packages/PoseDetectionBarracuda/README.md b/Packages/PoseDetectionBarracuda/README.md index f9b378c..e09b3ec 100644 --- a/Packages/PoseDetectionBarracuda/README.md +++ b/Packages/PoseDetectionBarracuda/README.md @@ -1,5 +1,5 @@ # PoseDetectionBarracuda -![demo](/screenshot/demo.png) +![demo](https://user-images.githubusercontent.com/34697515/148678516-9b608be0-40a0-4c01-98da-c1c22d021cba.png) PoseDetectionBarracuda is a human pose detecter that runs the [Mediapipe Pose](https://google.github.io/mediapipe/solutions/pose) Detection neural network model on the [Unity Barracuda](https://docs.unity3d.com/Packages/com.unity.barracuda@latest). diff --git a/Packages/PoseDetectionBarracuda/screenshot.meta b/Packages/PoseDetectionBarracuda/screenshot.meta deleted file mode 100644 index 3ff3997..0000000 --- a/Packages/PoseDetectionBarracuda/screenshot.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 89b62d7e10840df4399c59fdbcc9234f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Packages/PoseDetectionBarracuda/screenshot/demo.png b/Packages/PoseDetectionBarracuda/screenshot/demo.png deleted file mode 100644 index 17613aa..0000000 --- a/Packages/PoseDetectionBarracuda/screenshot/demo.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a4e21fc2af787f1ab16667d0b3f3b78e3fd7666c2dc939b25cb55ecd007fcf69 -size 2185509 diff --git a/Packages/PoseDetectionBarracuda/screenshot/demo.png.meta b/Packages/PoseDetectionBarracuda/screenshot/demo.png.meta deleted file mode 100644 index 22b98d2..0000000 --- a/Packages/PoseDetectionBarracuda/screenshot/demo.png.meta +++ /dev/null @@ -1,96 +0,0 @@ -fileFormatVersion: 2 -guid: 0f9e46e868fabcf48ba2528761626f96 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: -1 - aniso: -1 - mipBias: -100 - wrapU: -1 - wrapV: -1 - wrapW: -1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/README.md b/README.md index 9d6e135..af107a7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # PoseDetectionBarracuda -![demo](/screenshot/demo.png) +![demo](https://user-images.githubusercontent.com/34697515/148678516-9b608be0-40a0-4c01-98da-c1c22d021cba.png) PoseDetectionBarracuda is a human pose detecter that runs the [Mediapipe Pose](https://google.github.io/mediapipe/solutions/pose) Detection neural network model on the [Unity Barracuda](https://docs.unity3d.com/Packages/com.unity.barracuda@latest). diff --git a/screenshot/demo.png b/screenshot/demo.png deleted file mode 100644 index 17613aa..0000000 --- a/screenshot/demo.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a4e21fc2af787f1ab16667d0b3f3b78e3fd7666c2dc939b25cb55ecd007fcf69 -size 2185509 From 10878bc56306092557e8f75da2f6bf02cf7edc91 Mon Sep 17 00:00:00 2001 From: IKEP <34697515+creativeIKEP@users.noreply.github.com> Date: Sun, 9 Jan 2022 21:07:35 +0900 Subject: [PATCH 4/4] prepare releasing new version --- Packages/PoseDetectionBarracuda/CHANGELOG.md | 5 +++++ Packages/PoseDetectionBarracuda/CHANGELOG.md.meta | 7 +++++++ Packages/PoseDetectionBarracuda/README.md | 7 ++++--- Packages/PoseDetectionBarracuda/package.json | 2 +- README.md | 6 +++--- 5 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 Packages/PoseDetectionBarracuda/CHANGELOG.md create mode 100644 Packages/PoseDetectionBarracuda/CHANGELOG.md.meta diff --git a/Packages/PoseDetectionBarracuda/CHANGELOG.md b/Packages/PoseDetectionBarracuda/CHANGELOG.md new file mode 100644 index 0000000..c497e29 --- /dev/null +++ b/Packages/PoseDetectionBarracuda/CHANGELOG.md @@ -0,0 +1,5 @@ +### [1.0.1] - 2022-01-09 +- Supported ComputeBuffer input. + +### [1.0.0] - 2021-05-17 +This is the first release of `creativeIKEP/PoseDetectionBarracuda`(`jp.ikep.mediapipe.posedetection`). \ No newline at end of file diff --git a/Packages/PoseDetectionBarracuda/CHANGELOG.md.meta b/Packages/PoseDetectionBarracuda/CHANGELOG.md.meta new file mode 100644 index 0000000..5189bcb --- /dev/null +++ b/Packages/PoseDetectionBarracuda/CHANGELOG.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7cb9949c24974df409b8cab1c15cce6e +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PoseDetectionBarracuda/README.md b/Packages/PoseDetectionBarracuda/README.md index e09b3ec..b1a8da8 100644 --- a/Packages/PoseDetectionBarracuda/README.md +++ b/Packages/PoseDetectionBarracuda/README.md @@ -21,7 +21,7 @@ To the `scopedRegistries` section: ``` To the `dependencies` section: ``` -"jp.ikep.mediapipe.posedetection": "1.0.0" +"jp.ikep.mediapipe.posedetection": "1.0.1" ``` Finally, the manifest file looks like below: ``` @@ -34,15 +34,16 @@ Finally, the manifest file looks like below: } ], "dependencies": { - "jp.ikep.mediapipe.posedetection": "1.0.0", + "jp.ikep.mediapipe.posedetection": "1.0.1", ... } } ``` +### Install from GitHub URL PoseDetectionBarracuda can be installed by adding below URL on the Unity Package Manager's window. ``` -https://github.com/creativeIKEP/PoseDetectionBarracuda.git?path=Packages/PoseDetectionBarracuda#v1.0.0 +https://github.com/creativeIKEP/PoseDetectionBarracuda.git?path=Packages/PoseDetectionBarracuda#v1.0.1 ``` ## Demo Image diff --git a/Packages/PoseDetectionBarracuda/package.json b/Packages/PoseDetectionBarracuda/package.json index 6af7f67..3c1a974 100644 --- a/Packages/PoseDetectionBarracuda/package.json +++ b/Packages/PoseDetectionBarracuda/package.json @@ -6,7 +6,7 @@ "name": "jp.ikep.mediapipe.posedetection", "displayName": "PoseDetectionBarracuda", "description": "Mediapipe pose detection for Unity Barracuda", - "version": "1.0.0", + "version": "1.0.1", "unity": "2020.3", "unityRelease": "6f1", "keywords": [ diff --git a/README.md b/README.md index af107a7..27ed0bf 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ To the `scopedRegistries` section: ``` To the `dependencies` section: ``` -"jp.ikep.mediapipe.posedetection": "1.0.0" +"jp.ikep.mediapipe.posedetection": "1.0.1" ``` Finally, the manifest file looks like below: ``` @@ -34,7 +34,7 @@ Finally, the manifest file looks like below: } ], "dependencies": { - "jp.ikep.mediapipe.posedetection": "1.0.0", + "jp.ikep.mediapipe.posedetection": "1.0.1", ... } } @@ -43,7 +43,7 @@ Finally, the manifest file looks like below: ### Install from GitHub URL PoseDetectionBarracuda can be installed by adding below URL on the Unity Package Manager's window. ``` -https://github.com/creativeIKEP/PoseDetectionBarracuda.git?path=Packages/PoseDetectionBarracuda#v1.0.0 +https://github.com/creativeIKEP/PoseDetectionBarracuda.git?path=Packages/PoseDetectionBarracuda#v1.0.1 ``` ## Demo Image