xxxxxxxxxx
139
let video;
let poseNet;
let noseX = 0;
let noseY = 0;
let eyelX = 0;
let eyelY = 0;
let eyerX = 0;
let eyerY = 0;
let earlX = 0;
let earlY = 0;
let earrX = 0;
let earrY = 0;
let shoulderlX = 0;
let shoulderlY = 0;
let shoulderrX = 0;
let shoulderrY = 0;
let elbowlX = 0;
let elbowlY = 0;
let elbowrX = 0;
let elbowrY = 0;
let wristlX = 0;
let wristlY = 0;
let wristrX = 0;
let wristrY = 0;
let hiplX = 0;
let hiplY = 0;
let hiprX = 0;
let hiprY = 0;
function setup() {
createCanvas(640, 480);
video = createCapture(VIDEO);
video.hide();
poseNet = ml5.poseNet(video, modelLoaded);
poseNet.on('pose', gotPoses);
}
function gotPoses(poses){
//console.log(poses);
let i = 0.5;
if (poses.length > 0) {
let noseNewX = poses[0].pose.keypoints[0].position.x;
let noseNewY = poses[0].pose.keypoints[0].position.y;
noseX = lerp(noseX, noseNewX, i);
noseY = lerp(noseY, noseNewY, i);
let eyelNewX = poses[0].pose.keypoints[1].position.x;
let eyelNewY = poses[0].pose.keypoints[1].position.y;
eyelX = lerp(eyelX, eyelNewX, i);
eyelY = lerp(eyelY, eyelNewY, i);
let eyerNewX = poses[0].pose.keypoints[2].position.x;
let eyerNewY = poses[0].pose.keypoints[2].position.y;
eyerX = lerp(eyerX, eyerNewX, i);
eyerY = lerp(eyerY, eyerNewY, i);
let earlNewX = poses[0].pose.keypoints[3].position.x;
let earlNewY = poses[0].pose.keypoints[3].position.y;
earlX = lerp(earlX, earlNewX, i);
earlY = lerp(earlY, earlNewY, i);
let earrNewX = poses[0].pose.keypoints[4].position.x;
let earrNewY = poses[0].pose.keypoints[4].position.y;
earrX = lerp(earrX, earrNewX, i);
earrY = lerp(earrY, earrNewY, i);
let shoulderlNewX = poses[0].pose.keypoints[5].position.x;
let shoulderlNewY = poses[0].pose.keypoints[5].position.y;
shoulderlX = lerp(shoulderlX, shoulderlNewX, i);
shoulderlY = lerp(shoulderlY, shoulderlNewY, i);
let shoulderrNewX = poses[0].pose.keypoints[6].position.x;
let shoulderrNewY = poses[0].pose.keypoints[6].position.y;
shoulderrX = lerp(shoulderrX, shoulderrNewX, i);
shoulderrY = lerp(shoulderrY, shoulderrNewY, i);
let elbowlNewX = poses[0].pose.keypoints[7].position.x;
let elbowlNewY = poses[0].pose.keypoints[7].position.y;
elbowlX = lerp(elbowlX, elbowlNewX, i);
elbowlY = lerp(elbowlY, elbowlNewY, i);
let elbowrNewX = poses[0].pose.keypoints[8].position.x;
let elbowrNewY = poses[0].pose.keypoints[8].position.y;
elbowrX = lerp(elbowrX, elbowrNewX, i);
elbowrY = lerp(elbowrY, elbowrNewY, i);
let wristlNewX = poses[0].pose.keypoints[9].position.x;
let wristlNewY = poses[0].pose.keypoints[9].position.y;
wristlX = lerp(wristlX, wristlNewX, i);
wristlY = lerp(wristlY, wrsitlNewY, i);
let wristrNewX = poses[0].pose.keypoints[10].position.x;
let wristrNewY = poses[0].pose.keypoints[10].position.y;
wristrX = lerp(wristrX, wristrNewX, i);
wristrY = lerp(wristrY, wrsitrNewY, i);
}
}
function modelLoaded(){
console.log('model ready');
}
function draw() {
image(video,0,0);
//background(0);
let d = dist(noseX, noseY, eyelX, eyelY);
let s = d/2
colorMode(HSB);
noStroke();
fill(344, 60, 100);
ellipse(noseX, noseY, s);
fill(31, 60, 100);
ellipse(eyelX, eyelY, s);
fill(57, 60, 100);
ellipse(eyerX, eyerY, s);
fill(31, 40, 100);
ellipse(earlX, earlY, s);
fill(57, 40, 100);
ellipse(earrX, earrY, s);
fill(288, 80, 100);
ellipse(shoulderlX, shoulderlY, s);
fill(177, 80, 100);
ellipse(shoulderrX, shoulderrY, s);
fill(288, 60, 100);
ellipse(elbowlX, elbowlY, s);
fill(177, 60, 100);
ellipse(elbowrX, elbowrY, s);
fill(177, 40, 100);
ellipse(wristlX, wristlY, s);
fill(288, 40, 100);
ellipse(wristrX, wristrY, s);
}