|
webcam beelden classificeren met MobileNet. terug naar de inleiding
Nu worden aan het model Mobilenet ,ipv afbeeldingen, video beelden van de webcam aangeboden.
In regel 11 wordt het model geladen en krijgt de videobeelden, gecreeerde in regel 8 ,aangeboden.
Het model kan 1000 objecten classificeren die voor de webcamera worden getoond.
In modelGeladen (regel 22) wordt het eerste videobeeld geclassificeerd en wordt toonResult (regel 27) aangeroepen.
toonResult werkt hier als een lus omdat de functie in regel 33 telkens wordt aangeroepen.
De draw lus toont ,60 keer per seconde, de video beelden (regel 15) met de label tekst (regel 19).
Een draw lus is geen echte lus want na iedere cyclus luistert de draw lus naar de omgeving en zal 60 keer per seconde de waarde van labels (regels 19 en 32) tonen.
let mobilenet;
let video;
let labels = '';
function setup() {
createCanvas(540, 380);
video = createCapture(VIDEO);
video.hide();
background(0);
mobilenet = ml5.imageClassifier('MobileNet',video,modelGeladen);
}
function draw(){
image(video,0,0);
fill(0);
textSize(20);
text("dit is een",10, height/15);
text(labels,100, height/15);
}
function modelGeladen(){
console.log('het model is geladen');
mobilenet.predict(toonResult);
}
// in deze functie eerst het "error" en daarna het callback "results" argument
function toonResult(error, results) {
if (error){
console.error(error);
} else {
// console.log(results);
labels = results[0].label;
mobilenet.predict(toonResult);
}
}