Vous aimez votre chien, vous l'aimez tellement qu'il vous arrive de lui
donner les restes de certains de vos repas, des petits snacks, où encore
de tester sa réaction face à certains légumes. Mais ne vous êtes vous
pas déjà demandé quel impact ces aliments ont pour sa santé ? Ou plutôt,
est ce que ce que vous lui donnez est nocif pour sa santé ou non ? Votre
fidèle compagnon a dévoré un champignon lors de votre dernnière balade
en forêt mais vous avez des doutes sur la toxicité de celui ci.
Avec l'application "Dogo Foodo", vous pourrez avoir accès aux réponses à
ces questions. Les aliments non comestibles ou toxiques pour votre
canidé n'auront plus de secrets pour vous.
Pour utiliser l'application, il vous suffit de sortir votre smartphone
et de prendre une photo de l'aliment que vous souhaitez donner à votre
chien. L'application se chargera d'analyser la photo que vous venez de
prendre à l'instant ou celle que vous venez de charger depuis votre
photothèque. Dès lors que l'analyse est terminée, une notification
apparait sur votre écran et vous indique avec une flèche verte si
l'aliment est comestible, ou une croix rouge lorsque l'aliment est
nocif.
Votre écran s'affichera de la sorte :
C'est une application qui est destinée à un usage mobile uniquement car elle nécessite l'utilisation d'une camera; or, le smartphone rempli parfaitement cette fonction. De plus, je souhaite créer une application utilisable par tous, à tout moment. Pour ce faire, on va concevoir une application style "cross-plateforms" plutot qu'une application "native" pour ainsi permettre aux utilisateurs de iOS et d'Android d'avoir accès à l'application. On va choisir "React native", qui est un langage permettant de traduire en iOS et android; de plus, ce langage est gratuit, opensource (c'est à dire que une communauté peut nous venir en aide si on en a besoin), et est porté par Facebook.
On se servira du module React Native Image Picker afin d'utiliser l'interface native pour sélectionner une photo ou vidéo depuis la gallerie photo ou directement depuis la caméra du smartphone.
L'application étant basée sur la reconnaissance d'aliments, ml5.js et
notamment sa fonctionnalité "image classifier" vont être nécessaire pour
parvenir à la création de l'application. On va utiliser le machine
learning de "image classifier " afin de reconnaitre et de labéliser les
aliments.
On pourra se servir de ce code de "image classifier" afin d'obtenir le
résultat escompté.
// Initialize the Image Classifier method with MobileNet
const classifier = ml5.imageClassifier('MobileNet', modelLoaded);
// Make a prediction with a selected image
classifier.classify(document.getElementById('image'), (err, results) = {
console.log(results);
});
On va également avoir besoin d'une base de données. Nous allons commencé par récuperer le résultat fourni par ml5.js avant d'interroger une base de donnée. Une des bases de données qui pourrait être utilisée est "SQLite" qui a l'avantage d'être gratuite et opensource. Cette base de données pourra nous permettre de classifier tous les éléments comme étant soit "nocifs", soit "comestibles".
Afin de parvenir à la création de l'application, Node.JS sera également nécessaire afin de déterminer l'environnement permettant d’exécuter du Javascript côté serveur.
Links :
Image Classifier on ml5.js
Node.JS Website
React Native Documentation
React Native GitHub
SQLite Website
Vidéos :