added blazepose-upper

master
Vladimir Mandic 2021-03-05 07:39:23 -05:00
parent c60f442714
commit 870084a1a9
4 changed files with 15 additions and 10 deletions

@ -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 <mandic00@live.com>**
@ -9,8 +9,9 @@ Repository: **<git+https://github.com/vladmandic/human.git>**
## 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

@ -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: {

@ -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
<br>

@ -34,8 +34,9 @@ result = {
{
score, // <number>, overal detection score, only used for 'posenet', not used for 'blazepose'
keypoints, // for 'posenet': <array of 2D landmarks [ score, landmark, position [x, y] ]> 17 annotated landmarks
// for 'blazepose': <array of 2D landmarks [ score, landmark, position [x, y, z], presence ]> 39 annotated landmarks
// presence denotes probability value in range 0..1 that the point is located within the frame
// for 'blazepose': <array of 2D landmarks [ score, landmark, position [x, y, z], presence ]>
// 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: // <array of detected objects>