From 870084a1a92e66943076ad41a99b74d32c799761 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Fri, 5 Mar 2021 07:39:23 -0500 Subject: [PATCH] added blazepose-upper --- Change-Log.md | 5 +++-- Configuration.md | 13 +++++++------ Models.md | 2 ++ Outputs.md | 5 +++-- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Change-Log.md b/Change-Log.md index 6a5151e..6c61722 100644 --- a/Change-Log.md +++ b/Change-Log.md @@ -1,6 +1,6 @@ # @vladmandic/human -Version: **0.40.0** +Version: **0.40.1** Description: **Human: AI-powered 3D Face Detection, Face Embedding & Recognition, Body Pose Tracking, Hand & Finger Tracking, Iris Analysis, Age & Gender & Emotion Prediction & Gesture Recognition** Author: **Vladimir Mandic ** @@ -9,8 +9,9 @@ Repository: **** ## Changelog -### **HEAD -> main** 2021/03/03 mandic00@live.com +### **HEAD -> main** 2021/03/04 mandic00@live.com +- implement blazepose and update demos - add todo list ### **0.30.6** 2021/03/03 mandic00@live.com diff --git a/Configuration.md b/Configuration.md index 454edb3..22eaea1 100644 --- a/Configuration.md +++ b/Configuration.md @@ -168,18 +168,19 @@ config = { }, }, - posenet: { + body: { enabled: true, - modelPath: '../models/posenet.json', - inputSize: 257, // fixed value + modelPath: '../models/posenet.json', // can be 'posenet', 'blazepose' or 'blazepose-upper' + inputSize: 257, // fixed value, 257 for posenet and 256 for blazepose maxDetections: 10, // maximum number of people detected in the input // should be set to the minimum number for performance + // only valid for posenet as blazepose only detects single pose scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score // in non-maximum suppression + // only valid for posenet as blazepose only detects single pose nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression - outputStride: 16, // size of block in which to run point detection, smaller value means higher resolution - // defined by model itself, can be 8, 16, or 32 - modelType: 'MobileNet', // Human includes MobileNet version, but you can switch to ResNet + // only valid for posenet as blazepose only detects single pose + modelType: 'posenet-mobilenet', // can be 'posenet-mobilenet', 'posenet-resnet', 'blazepose' }, hand: { diff --git a/Models.md b/Models.md index 92e231f..9ea06e8 100644 --- a/Models.md +++ b/Models.md @@ -30,6 +30,8 @@ Additionally, there are two versions of `BlazeFace`: `back` optimized for detect - `BlazePose`: Works with single person in frame and that person should be fully visibile But if conditions are met, it returns far more details (39 vs 17 keypoints) and is far more accurate Furthermore, it returns 3D approximation of each point instead of 2D +- `BlazePose-Upper`: Works with single person in frame and that person should have upper body in frame + Good for use-case such as sitting in front of webcam. It returns 31 keypoints along with 3D approximations
diff --git a/Outputs.md b/Outputs.md index b6685e4..055e3ce 100644 --- a/Outputs.md +++ b/Outputs.md @@ -34,8 +34,9 @@ result = { { score, // , overal detection score, only used for 'posenet', not used for 'blazepose' keypoints, // for 'posenet': 17 annotated landmarks - // for 'blazepose': 39 annotated landmarks - // presence denotes probability value in range 0..1 that the point is located within the frame + // for 'blazepose': + // 39 annotated landmarks for full or 31 annotated landmarks for upper + // presence denotes probability value in range 0..1 that the point is located within the frame } ], hand: //