Recyclez mieux votre plastique avec l'intelligence artificielle ♻️
Ecosnap vous dit comment et où recycler vos articles à partir d'une image simple, avec des conseils adaptés à votre emplacement. Nous avons construit ce produit en une semaine pour Ben's Bites Ai Hackathon.
Essayez-le maintenant - c'est gratuit sans signe nécessaire
Vous pouvez soutenir ce projet (et bien d'autres) via des sponsors GitHub! ❤️
Fabriqué par Alyssa X & Leo. En savoir plus sur la façon dont nous avons construit cela ici.
? Casser ou télécharger une image d'un code en plastique
Installez la PWA sur votre téléphone pour un accès facile
? Recherchez un élément spécifique pour savoir comment en éliminer
♻️ Apprenez à recycler efficacement en utilisant l'IA
? Gardez une trace du nombre d'articles en plastique que vous avez recyclés
? Modifiez votre emplacement pour des conseils spécifiques
... et bien plus à venir - tout gratuitement et aucun signe de connexion nécessaire!
Vous pouvez déployer directement sur Vercel en cliquant ici.
Important: assurez-vous de mettre à jour la variable d'environnement pour next_public_model_url dans le fichier .env, et définissez-le sur une URL absolue où vous hébergez le modèle.json (assurez-vous d'inclure les autres fichiers de bin Shard aux côtés du JSON).
Le modèle a été formé sur des exemples d'image des 7 codes de résine différents, les données à ce sujet peuvent être trouvées dans ml/seven_plastics . Il s'agit d'une combinaison de l'ensemble de données Kaggle suivant et des images collectées par les auteurs et les contributeurs.
Le modèle final a été formé en utilisant la mise en œuvre efficace de TensorFlow, les poids du modèle ont été congelés pour l'apprentissage du transfert, afin que le modèle puisse apprendre les codes de résine plus rapidement! Le modèle a été formé à Python sur une machine alimentée par GPU, pour une formation plus rapide! Vous pouvez trouver le script de formation dans ml/train.py et l'essayer par vous-même, vous verrez que différentes méta-architectures et paramètres ont été expérimentés avant d'arriver au modèle final.
Pour prédire le code de résine en plastique, le modèle devait être intégré à l'application frontale pour les résultats en temps réel, pour ce faire, nous avons dû convertir le modèle d'une manière compatible avec Tensorflow.js. Nous avons utilisé des travailleurs Web pour empêcher le thread principal d'être bloqué lors de l'exécution de la prédiction dans le client.
L'application passe le tenseur d'image sur le modèle qui donne ensuite une probabilité pour chacun des codes de résine en plastique, celui avec la probabilité la plus élevée est montré à l'utilisateur, ainsi que des conseils sur mesure !
La formation d'un modèle spécifique est difficile, le modèle se trompe toujours. Donc, si c'est le cas, nous donnons à l'utilisateur l'occasion de nous dire quel était le bon code! Cela profite de plusieurs manières:
Bien que nous ayons mis en œuvre le frontal pour la boucle de rétroaction, nous avons fini par ne pas le connecter au backend car il a ajouté la complexité et le coût, et nous voulions que l'application soit très légère et fonctionne entièrement sur le client. Nous devions également communiquer clairement à l'utilisateur comment exactement leurs images seraient utilisées et configurer un système d'opt-in ou d'opt-out, qui semblait un peu lourd.
N'hésitez pas à nous contacter à [email protected], à Alyssa ou à Leo directement si vous avez des questions ou des commentaires! J'espère que vous trouverez cela utile?