0.5 gekoppeld

model getrained met een ruit, gekoppelde getal = 0.5

 

 

0.98 gekoppeld

 model getrained met een ruit, gekoppelde getal = 0.98

 

 

 

met een balpen gaat het ook

met een balpen gaat het ook, gekoppelde gatal = 0.16

 

 animatie met 3 getrainde regressiemodellen.         terug naar de inleiding

ga voor het trainen van de modellen naar "transfer learing met regressie"

ga voor de code van het poppetje naar  "Poppetje in een functie"

 
let x, y , n;
let featureExtractor;
let predictor;
let video;
let preds = 0;
let model ='er is nog geen model geladen';
 
function setup() {
  createCanvas(1080, 410);
  x = width/2;
  y = height/2;
  n = height/18;
  video = createCapture(VIDEO);
  video.hide();
 featureExtractor = ml5.featureExtractor('MobileNet', modelGeladen);
 predictor = featureExtractor.regression(video, videoReady);
 
 model1Knop = createButton('model 1 laden');
 model1Knop.mousePressed(function() {
 predictor.load('model1/model.json', voorspellen);
 model = 'model 1 is geladen';
 console.log('model 1 is geladen')});
 
 model2Knop = createButton('model 2 laden');
 model2Knop.mousePressed(function() {
 predictor.load('model2/model.json', voorspellen);
 model = 'model 2 is geladen';
 console.log('model 2 is geladen')});
 
 model3Knop = createButton('model 3 laden');
 model3Knop.mousePressed(function() {
 predictor.load('model3/model.json', voorspellen);
 model = 'model 3 is geladen';
 console.log('model 3 is geladen')});
}
 
function modelGeladen(){
  console.log('het MobileNet model is geladen');
}
 
 function voorspellen() {
  predictor.predict(toonResult);
}
 
function videoReady() {
  console.log('De video is klaar');
  console.log('ml5 version:', ml5.version);
}
 
function toonResult(error, result) {
  if (error){
    console.error(error);
  } else {
    predictor.predict(toonResult);
    preds = result.value;
    preds = preds + 1;
  }
}
 
function draw(){
  background('#E6FBFF');
  image(video,0,0,540,340);
  fill(0);
  textSize(20);
  text("gekoppelde getal + 1 = ",10, height-40);
  preds = round(preds, 2);
  text(preds,220, height-40);
  text(model,10, height-15);
  fill(255, 255, 0,100);
  strokeWeight(2);
  ellipse(x*preds,  y-4*n, 2*n, 2*n);   //hoofd
  rect(x*preds-n,   y-3*n, 2*n, 3*n);   //lichaam
  rect(x*preds-2*n, y-3*n, n,   3*n);   //arm li
  rect(x*preds+n,   y-3*n, n,   3*n);   //arm re
  rect(x*preds-n,   y+2*n, n/2, 2*n);   //li been
  rect(x*preds+n/2, y+2*n, n/2, 2*n);   //Re been
  if (preds > 1.5) {fill(255,0,0)}
  quad(x*preds-2*n, y+2*n, x*preds-n, y, x*preds+n, y, x*preds+2*n, y+2*n); //jurk
}