foutmelding: kan ml5.min.js.map niet laden
foutmelding verdwenen na toevoegen
van het bestand in de lib map

 

 

 

 

de label en confidence van de kat

Van cel "0" van het array worden
label en confidence
als tekst in het canvas getoond
 

afbeeldingen classificeren.                  terug naar de inleiding

Het MobileNet pretrained model gebruikt om afbeeldingen te classificeren.  zie de beschrijving op de ml5.js site

Het model is getrained met 14.000.000 afbeeldingen van ImageNet.
De afbeeldingen zijn data- of trainingsets van 1000 classes of labels het netwerk heeft dan 1000 outputneuronen
Het netwerk is dus getraind met bijv 14000 pinquins die in allerlij standen en grootte  meerdere malen door het netwerk worden gestuurd.
In de schets wordt in regel 9 het model geladen. In regel 10 wordt de eerste te classificeren afbeelding geladen
waarna de functie classificeer (regel 51) wordt aangeroepen.
Nadat de afbeelding is geclassificeerd wordt de functie toonResult aangeroepen.

classificeer (regel 10), huis (regel 15), pinquin (regel 17) enz en toonResults (regel 54) zijn Callbacks die de functies aanroepen.  

foutmelding
Kan ml5.min.js.map niet laden, dit bestand (9,3 MB ) gedownload van de site humphryscomputing 
en in de lib map geplaats waarna de melding was verdwenen.
Zonder dit map bestand werkt alles normaal. Het map bestand is niet te vinden op het ml5 github kanaal. 

De functie van dit bestand is mij niet bekend.

 

let mobilenet;
let img;
 
  function setup() {
  createCanvas(525, 350);
  background(0);
  //het model en de eerste afbeeling wordt geladen en de classificeer functie wordt uitgevoerd
  mobilenet = ml5.imageClassifier('MobileNet'); //model wordt geladen
  img = createImg('data/huis.jpeg',classificeer);
  img.hide();
  //De knoppen worden aangemaakt. Door op een  knopje te drukken wordt
  //de bijbehorende functie, om de afbeeldingen te laden, uitgevoerd.
  knopHuis = createButton('huis');
  knopHuis.mousePressed(huis);
  knopPinquin = createButton('pinquin');
  knopPinquin.mousePressed(pinquin);
  knopKat = createButton('kat');
  knopKat.mousePressed(kat);
  knopComputer = createButton('computer');
  knopComputer.mousePressed(computer);
  knopPrieeltje = createButton('prieeltje');
  knopPrieeltje.mousePressed(prieeltje);
}
//Nadat een afbeeldingen is geladen wordt de classificeer functie uitgevoerd
function huis() {
  img = createImg('data/huis.jpeg', classificeer);
  img.hide();
}
 
function pinquin() {
  img = createImg('data/pinquin.jpeg', classificeer);
  img.hide();
}
 
function kat() {
  img = createImg('data/kat.jpg', classificeer);
  img.hide();
}
 
function computer() {
  img = createImg('data/computer.jpeg', classificeer);
  img.hide();
}
 
function prieeltje() {
  img = createImg('data/prieeltje.jpg', classificeer);
  img.hide();
}
//nadat mbv de predict methode de afbeelding is geclassificeerd word het resultaat getoond
function classificeer() {
  console.log('de afbeelding is geladen');
  image(img, 0,0, 525, 350);
  mobilenet.predict(img, toonResults);
 
}
function toonResults(error, results) {
  if (error){
    console.error(error);
  } else { //de label en confidence data staan in een array, zie de browser console
    console.log(results);
    let label = results[0].label;
    fill(0);
    textSize(20);
    text("dit is een",10, height/15);
    text(label,100, height/15);
    let conf = results[0].confidence;
    conf = conf*100;        //geeft 2 cijfers voor de komma
    conf = round(conf, 2);  //twee cijfers achter de komma
    text(conf,180, height/8);
    text("betrouwbaarheid = ",10, height/8);
    text("%",230, height/8);
  }
}