p5(sketch => {
let img
let detector
let objects = []
function onModelLoaded() {
detector.detect(img, onDetected)
}
function onDetected(error, results) {
if (error) console.error(error)
else objects = results
}
sketch.preload = function() {
img = sketch.loadImage(fileMetadata.url)
};
sketch.setup = function() {
sketch.createCanvas(fileMetadata.width, fileMetadata.height)
sketch.background(0)
sketch.image(img, 0, 0)
detector = ml5.objectDetector('cocossd', onModelLoaded)
};
sketch.draw = function() {
objects.forEach(obj => {
sketch.stroke(0, 255, 0)
sketch.strokeWeight(4)
sketch.noFill()
sketch.rect(obj.x, obj.y, obj.width, obj.height)
sketch.noStroke()
sketch.fill(255)
sketch.textSize(24)
sketch.text(obj.label, obj.x + 10, obj.y + 24)
})
}
})