xxxxxxxxxx
95
// Cette application a pour fonction de prendre un instrument de musique en photo, de l’identifier et d’obtenir quelques informations, une anecdote sur cet instrument, ou bien un air connu de cet instrument à écouter. L’application a une visée pédagogique et est conçue pour être utilisée dans le cadre éducatif d’un musée comme celui de la Cité de la Musique à Paris. Les visiteurs, qu’ils soient enfants ou adultes, sont là pour découvrir. Cette application pourrait être une manière plus interactive de visiter le musée, et peut-être de garder une trace des informations apprises lors de la visite. L’idée serait de reconnaître beaucoup plus d’instruments et même des instruments plus rares, en utilisant d’autres données, et de faire un recueil d’informations/anecdotes sur les instruments, leur histoire etc. Cette application serait pratique également car elle est utilisable sur smartphone grâce à Mobilenet.
var modelUsed;
var video;
var loaded;
var downCanvas;
var result="";
var definition="Let's try to find the instrument you are looking at !";
// Definition and result are split in order to have two text styles.
// main function :
function setup() {
createCanvas(500,500).parent('canvasposition');
mobilenet.load().then(modelLoaded);
video = createCapture(VIDEO);
video.size(400,300);
video.hide();
downCanvas = createGraphics(400, 100);
button=createButton("Take a picture").parent('canvasposition');
button.mousePressed(btnClicked);
}
// Function to do the classification
function classifyDone(res){
//print(res);
//createP("Model detected a <b>" + res[0].className + "</b> with a confidence of <b>"+ res[0].probability + "</b>");
if (res[0].className == "oboe, hautboy, hautbois") {
//createP("<b>This is a oboe. Do you know it?</b>");
result="This an oboe !";
definition ="An instrument of the wood family."+'\n'+"Listen to Gabriel's oboe by Moricone.";
}
else if (res[0].className == "violin, fiddle") {
result="This a violin !";
definition ="An instrument of the string family."+'\n'+"Listen to Paganini's twenty-fourth caprice";
}
else if (res[0].className == "cello, violoncello") {
result="This a cello !";
definition ="An instrument of the string family."+'\n'+"Listen the Swan of Saint-Saëns.";
}
else if (res[0].className == "cornet, horn, trumpet, trump") {
result="This a trumpet !";
definition ="An instrument of the brass family."+'\n'+"Listen to Aïda's trumpets by Verdi.";
}
else if (res[0].className == "French horn, horn") {
result="This a horn !";
definition ="An instrument of the brass family."+'\n'+"Watch Young Frankenstein by Mel Brooks.";
}
else if (res[0].className == "trombone") {
result="This a trombone!";
definition ="An instrument of the brass family."+'\n'+"Listen to the Imperial March by John Williams.";
}
else if (res[0].className == "flute, transverse flute") {
result="This a flute !";
definition ="An instrument of the wood family."+'\n'+"Listen the Pavane by Gabriel Fauré.";
}
else {
result='...';
definition="No instrument found, take it again !";
}
}
function modelLoaded(net){
modelUsed = net;
loaded=true;
print("Model loaded");
}
function btnClicked() {
image(video,50 , 50, 400, 300);
if(loaded==true){
modelUsed.classify(video.elt).then(classifyDone);
}
}
function draw() {
drawDownCanvas();
image(downCanvas, 50, 350,400,100);
}
function drawDownCanvas() {
downCanvas.background(255,255,255);
downCanvas.fill(0, 0, 0);
downCanvas.textSize(25);
downCanvas.text(result, 25, 25);
downCanvas.textSize(15);
downCanvas.text(definition,25, 50);
}