11{
22 "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 " ,
77 "languages" : [" ml5.js" , " JavaScript" ],
88 "topics" : [" machine learning (ML)" , " webcam" , " pose detection" , " ml5.js" , " MoveNet" , " BlazePose" ],
99 "canContribute" : true ,
1010 "timestamps" : [
1111 { "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! " }
2222 ],
2323 "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+ },
2430 {
2531 "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 " ,
2834 "urls" : { "p5" : " https://editor.p5js.org/codingtrain/sketches/JMhDRpcxi_" }
2935 }
3036 ],
3440 "links" : [
3541 {
3642 "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."
4058 },
4159 {
4260 "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 ."
4664 }
4765 ]
4866 },
4967 {
5068 "title" : " Videos" ,
5169 "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+ },
5276 {
5377 "icon" : " π" ,
5478 "title" : " Custom Shapes" ,
5579 "url" : " /tracks/p5-tips-and-tricks/more-p5/custom-shapes" ,
5680 "description" : " In this video, I look at how to draw \" custom\" shapes in p5.js, using, `beginShape()`, `endShape()`, `vertex()` and `curveVertex()."
5781 },
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+ }
6488 ]
6589 }
6690 ],
6791 "credits" : [
6892 { "title" : " Editing" , "name" : " Mathieu Blanchette" },
6993 { "title" : " Animations" , "name" : " Jason Heglund" }
7094 ]
71- }
95+ }
0 commit comments