1
1
{
2
2
"title" : " 3D Pose Estimation with ml5.js" ,
3
- "description" : " In this video, I substitute the MoveNet model with the BlazePose model, showing how to track #D body keypoints and visualize 'skeleton' connections using recorded video ." ,
4
- "videoId" : " " ,
5
- "nebulaSlug" : " " ,
6
- "date" : " 2024-12-1 " ,
3
+ "description" : " Building on BodyPose in ml5.js, this video explores the 3D capabilities of the BlazePose model, visualizing poses in a 3D space using WEBGL in p5.js ." ,
4
+ "videoId" : " IF414I26_K8 " ,
5
+ "nebulaSlug" : " codingtrain-3d-pose-estimation-with-ml5js " ,
6
+ "date" : " 2024-12-01 " ,
7
7
"languages" : [" ml5.js" , " JavaScript" ],
8
8
"topics" : [" machine learning (ML)" , " webcam" , " pose detection" , " ml5.js" , " MoveNet" , " BlazePose" ],
9
9
"canContribute" : true ,
10
10
"timestamps" : [
11
11
{ "time" : " 0:00" , "title" : " Introduction" },
12
- { "time" : " 2:00" , "title" : " Change to the BlazePose model" },
13
- { "time" : " 2:37" , "title" : " x, y, z values are real world measurements " },
14
- { "time" : " 4:30" , "title" : " Replace live camera feed with recorded video" },
15
- { "time" : " 5:49" , "title" : " Render using p5 WEBGL renderer " },
16
- { "time" : " 7:48" , "title" : " Use scale() to expand range of x, y, z values" },
17
- { "time" : " 9:00" , "title" : " Add floor " },
18
- { "time" : " 9:58" , "title" : " Rotate scene" },
19
- { "time" : " 11:24" , "title" : " Use orbitControl() to rotate scene " },
20
- { "time" : " 12:22" , "title" : " Translate to point " },
21
- { "time" : " 13:42" , "title" : " Outro " }
12
+ { "time" : " 2:00" , "title" : " Incorporating BlazePose model" },
13
+ { "time" : " 2:37" , "title" : " What are the xyz values? " },
14
+ { "time" : " 4:30" , "title" : " Replace live camera with recorded video. " },
15
+ { "time" : " 5:49" , "title" : " Render with p5.js WEBGL" },
16
+ { "time" : " 7:48" , "title" : " Use scale() to expand range of xyz values" },
17
+ { "time" : " 9:00" , "title" : " Creating 3D scene " },
18
+ { "time" : " 9:58" , "title" : " Rotating scene. " },
19
+ { "time" : " 11:24" , "title" : " Using orbitControl()" },
20
+ { "time" : " 12:22" , "title" : " Using 3D shapes " },
21
+ { "time" : " 13:42" , "title" : " Goodbye! " }
22
22
],
23
23
"codeExamples" : [
24
+ {
25
+ "title" : " BlazePose 3D" ,
26
+ "description" : " Sketch demonstrating use of BlazePose model with 3D keypoints." ,
27
+ "image" : " blazepose.png" ,
28
+ "urls" : { "p5" : " https://editor.p5js.org/codingtrain/sketches/ftALPDieT" }
29
+ },
24
30
{
25
31
"title" : " BlazePose Lerp" ,
26
- "description" : " Sketch demonstrating use of BlazePose model with lerp smoothing ." ,
27
- "image" : " image.jpg " ,
32
+ "description" : " Sketch demonstrating linear interpolation of 3D keypoints ." ,
33
+ "image" : " blazepose_lerp.png " ,
28
34
"urls" : { "p5" : " https://editor.p5js.org/codingtrain/sketches/JMhDRpcxi_" }
29
35
}
30
36
],
34
40
"links" : [
35
41
{
36
42
"icon" : " π»" ,
37
- "title" : " ml5.js" ,
38
- "url" : " https://ml5js.org/" ,
39
- "description" : " ml5 page with documentation and supporting material."
43
+ "title" : " ml5.js: BodyPose" ,
44
+ "url" : " https://docs.ml5js.org/#/reference/bodypose" ,
45
+ "description" : " ml5.js documentation on BodyPose models."
46
+ },
47
+ {
48
+ "icon" : " π" ,
49
+ "title" : " On-device, Real-time Body Pose Tracking with MediaPipe BlazePose" ,
50
+ "url" : " https://research.google/blog/on-device-real-time-body-pose-tracking-with-mediapipe-blazepose/" ,
51
+ "description" : " Google Research blog post on the BlazePose model."
52
+ },
53
+ {
54
+ "icon" : " π" ,
55
+ "title" : " 3D Pose Detection with MediaPipe BlazePose GHUM and TensorFlow.js" ,
56
+ "url" : " https://blog.tensorflow.org/2021/08/3d-pose-detection-with-mediapipe-blazepose-ghum-tfjs.html" ,
57
+ "description" : " TensorFlow blog post on the BlazePose GHUM model."
40
58
},
41
59
{
42
60
"icon" : " π" ,
43
- "title" : " BlazePose Paper " ,
44
- "url" : " https://arxiv.org/pdf/2006.10204 " ,
45
- "description" : " On-device Real -time Body Pose tracking ."
61
+ "title" : " BlazePose GHUM Holistic: " ,
62
+ "url" : " https://arxiv.org/pdf/2206.11678 " ,
63
+ "description" : " Research paper covering real -time 3D human landmarks and pose estimation ."
46
64
}
47
65
]
48
66
},
49
67
{
50
68
"title" : " Videos" ,
51
69
"links" : [
70
+ {
71
+ "icon" : " π" ,
72
+ "title" : " ml5.js Pose Estimation" ,
73
+ "url" : " /tracks/ml5js-beginners-guide/ml5/7-bodypose/pose-detection" ,
74
+ "description" : " Previous video covering BodyPose in ml5.js focusing on the MoveNet model."
75
+ },
52
76
{
53
77
"icon" : " π" ,
54
78
"title" : " Custom Shapes" ,
55
79
"url" : " /tracks/p5-tips-and-tricks/more-p5/custom-shapes" ,
56
80
"description" : " In this video, I look at how to draw \" custom\" shapes in p5.js, using, `beginShape()`, `endShape()`, `vertex()` and `curveVertex()."
57
81
},
58
- {
59
- "icon" : " π" ,
60
- "title" : " Translate, Rotate, Push/Pop" ,
61
- "url" : " /tracks/transformations-in-p5/transformations/translate-rotate-push-pop" ,
62
- "description" : " In this video I cover the functions translate(), rotate(), push() and pop()."
63
- }
82
+ {
83
+ "icon" : " π" ,
84
+ "title" : " Translate, Rotate, Push/Pop" ,
85
+ "url" : " /tracks/transformations-in-p5/transformations/translate-rotate-push-pop" ,
86
+ "description" : " In this video I cover the functions translate(), rotate(), push() and pop()."
87
+ }
64
88
]
65
89
}
66
90
],
67
91
"credits" : [
68
92
{ "title" : " Editing" , "name" : " Mathieu Blanchette" },
69
93
{ "title" : " Animations" , "name" : " Jason Heglund" }
70
94
]
71
- }
95
+ }
0 commit comments