Stworzyłem bardzo prosty skrypt z p5.js i ML5.Js zgodnie z tym Tutorial.

W funkcji SETUP, po kliknięciu przycisku, dodam obrazy do klasyfikatora. Jednak gdy klikam przycisk, otrzymuję błąd pikseli. Tak wygląda mój katalog

enter image description here

let pinkButton
console.log('ml5 version:', ml5.version);

function gotResults(error, results) {
  console.log("ERROR", error);
}

function setup() {
  mobileNet = ml5.featureExtractor('MobileNet')
  classifier = mobileNet.classification()
  pinkButton = createButton('add pink')
  pinkButton.mousePressed(function() {
    classifier.addImage('./images/pink/1.png', 'pink')
    classifier.addImage('./images/pink/2.png', 'pink')
    classifier.addImage('./images/pink/3.png', 'pink')
  })
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/addons/p5.dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/addons/p5.sound.min.js"></script>
<!-- ml5 -->
<script src="https://unpkg.com/ml5@0.4.3/dist/ml5.min.js"></script>
1
Jbd 8 październik 2020, 02:05

1 odpowiedź

Najlepsza odpowiedź

addImage Dodaj obraz HTML, a nie adres URL. Dlatego dodanie obrazu albo obraz jest już ładowany na stronie i może być zapytany lub należy utworzyć nowy obraz.

Opcja 1: obraz już załadowany

image = document.querySelector("use-css-selector")
classifier.addImage(image, label)

Opcja 2: Utwórz nowy obraz

function load(url){
  return new Promise((resolve, reject) => {
    const im = new Image()
        im.crossOrigin = 'anonymous'
        im.src = 'url'
        im.onload = () => {
          resolve(im)
        }
   })
}

image = await load(url)
classifier.addImage(image, label)
1
edkeveked 8 październik 2020, 20:28