Table des matières:
- Fournitures
- Étape 1: schéma de circuit
- Étape 2: Création de l'ensemble de données pour la machine de détection de la toux
- Étape 3: Connectez-vous au téléphone portable
- Étape 4:
- Étape 5: Entraîner le modèle et peaufiner le code
- Étape 6:
- Étape 7: Coder
Vidéo: Détecteur de toux de poche : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
COVID19 est vraiment une pandémie historique qui affecte très durement le monde entier et les gens construisent de nombreux nouveaux appareils pour lutter contre elle. Nous avons également construit une machine de désinfection automatique et un pistolet thermique pour le contrôle de la température sans contact. Aujourd'hui, nous allons construire un autre appareil pour aider à lutter contre le coronavirus. Il s'agit d'un système de détection de la toux, qui peut faire la distinction entre le bruit et le son de la toux et peut aider à trouver un suspect Corona. Pour cela, il utilisera des techniques d'apprentissage automatique.
Dans ce tutoriel, nous allons créer un système de détection de la toux à l'aide d'Arduino 33 BLE Sense et Edge Impulse Studio. Il peut faire la différence entre le bruit de fond normal et la toux en temps réel. Nous avons utilisé Edge Impulse Studio pour former un ensemble de données d'échantillons de toux et de bruit de fond et créer un modèle TInyML hautement optimisé, capable de détecter un son de toux en temps réel.
Fournitures
Matériel
- Arduino 33 BLE Sense
- LEDCavalier
- Fils
Logiciel
- Studio d'impulsion de bord
- IDE Arduino
Étape 1: schéma de circuit
Le schéma de circuit pour la détection de la toux à l'aide d'Arduino 33 BLE Sense est donné ci-dessus. La partie Fritzing pour Arduino 33 BLE n'était pas disponible, j'ai donc utilisé Arduino Nano car les deux ont le même brochage.
Le fil positif de la LED est connecté à la broche numérique 4 de l'Arduino 33 BLE sense et le fil négatif est connecté à la broche GND d'Arduino.
Étape 2: Création de l'ensemble de données pour la machine de détection de la toux
Comme mentionné précédemment, nous utilisons Edge Impulse Studio pour former notre modèle de détection de la toux. Pour cela, nous devons collecter un jeu de données qui contient les échantillons de données que nous aimerions pouvoir reconnaître sur notre Arduino. Étant donné que l'objectif est de détecter la toux, vous devrez collecter des échantillons de celle-ci et d'autres échantillons pour le bruit, afin qu'il puisse faire la distinction entre la toux et les autres bruits. Nous allons créer un jeu de données avec deux classes « toux » et « bruit ». Pour créer un jeu de données, créez un compte Edge Impulse, vérifiez votre compte, puis démarrez un nouveau projet. Vous pouvez charger les échantillons en utilisant votre mobile, votre carte Arduino ou vous pouvez importer un ensemble de données dans votre compte Edge Impulsion. Le moyen le plus simple de charger les échantillons sur votre compte est d'utiliser votre téléphone portable. Pour cela, vous devez connecter votre mobile à Edge Impulse. Pour connecter votre téléphone portable, cliquez sur « Appareils », puis sur « Connecter un nouvel appareil ».
Étape 3: Connectez-vous au téléphone portable
Maintenant, dans la fenêtre suivante, cliquez sur « Utilisez votre téléphone mobile » et un code QR apparaîtra. Scannez le code QR avec votre téléphone portable à l'aide de Google Lens ou d'une autre application de scanner de code QR.
Cela connectera votre téléphone au studio Edge Impulse.
Avec votre téléphone connecté à Edge Impulse Studio, vous pouvez maintenant charger vos échantillons. Pour charger les échantillons, cliquez sur « Acquisition de données ». Maintenant, sur la page Acquisition de données, entrez le nom de l'étiquette, sélectionnez le microphone comme capteur et entrez la longueur de l'échantillon. Cliquez sur « Démarrer l'échantillonnage » pour commencer à échantillonner un échantillon de 40 Sec. Au lieu de vous forcer à tousser, vous pouvez utiliser des échantillons de toux en ligne de différentes longueurs. Enregistrez un total de 10 à 12 échantillons de toux de différentes longueurs.
Étape 4:
Après avoir téléchargé les échantillons de toux, définissez maintenant l'étiquette sur « bruit » et collectez 10 à 12 autres échantillons de bruit.
Ces exemples sont destinés à la formation du module. Dans les prochaines étapes, nous collecterons les données de test. Les données de test doivent représenter au moins 30 % des données d'entraînement, alors collectez les 3 échantillons de « bruit » et 4 à 5 échantillons de « toux ». Au lieu de collecter vos données, vous pouvez importer notre ensemble de données dans votre compte Edge Impulse à l'aide de l'Edge Téléchargeur CLI Impulse. Pour installer CLI Uploader, commencez par télécharger et installer Node.js sur votre ordinateur portable. Après cela, ouvrez l'invite de commande et entrez la commande ci-dessous:
npm install -g edge-impulse-cli
Téléchargez maintenant l'ensemble de données (Dataset Link) et extrayez le fichier dans votre dossier de projet. Ouvrez l'invite de commande, accédez à l'emplacement de l'ensemble de données et exécutez les commandes ci-dessous:
edge-impulse-uploader --cleanedge-impulse-uploader --category training training/*.json
edge-impulse-uploader --category training training/*.cbor
edge-impulse-uploader --category testing testing/*.json edge-impulse-uploader --category testing testing/*.cbor
Étape 5: Entraîner le modèle et peaufiner le code
Comme l'ensemble de données est prêt, nous allons maintenant créer une impulsion pour les données. Pour cela, rendez-vous sur la page « Créer une impulsion ».
Maintenant, sur la page « Créer une impulsion », cliquez sur « Ajouter un bloc de traitement ». Dans la fenêtre suivante, sélectionnez le bloc Audio (MFCC). Après cela, cliquez sur « Ajouter un bloc d'apprentissage » et sélectionnez le bloc Réseau de neurones (Keras). Cliquez ensuite sur « Enregistrer l'impulsion ».
À l'étape suivante, accédez à la page MFCC, puis cliquez sur « Générer des fonctionnalités ». Il générera des blocs MFCC pour toutes nos fenêtres audio.
Après cela, allez sur la page « NN Classifier » et cliquez sur les trois points dans le coin supérieur droit des « Paramètres du réseau neuronal » et sélectionnez « Passer en mode Keras (expert) ».
Remplacez l'original par le code suivant et remplacez l'« indice de confiance minimum » par « 0,70 ». Cliquez ensuite sur le bouton « Démarrer la formation ». Il commencera à entraîner votre modèle.
importer tensorflow en tant que tffrom tensorflow.keras.models importer Sequential depuis tensorflow.keras.layers importer Dense, InputLayer, Dropout, Flatten, Reshape, BatchNormalization, Conv2D, MaxPooling2D, AveragePooling2D depuis tensorflow.keras.optimizers importer Adamas import.consorflow. MaxNorm # architecture du modèle model = Sequential() model.add(InputLayer(input_shape=(X_train.shape[1],), name='x_input')) model.add(Reshape((int(X_train.shape[1] / 13), 13, 1), input_shape=(X_train.shape[1],))) model.add(Conv2D(10, kernel_size=5, activation='relu', padding='same', kernel_constraint=MaxNorm(3))) model.add(AveragePooling2D(pool_size=2, padding='same')) model.add(Conv2D(5, kernel_size=5, activation='relu', padding='same', kernel_constraint=MaxNorm(3))) model.add(AveragePooling2D(pool_size=2, padding='same')) model.add(Flatten()) model.add(Dense(classes, activation='softmax', name='y_pred', kernel_constraint=MaxNorm (3))) # ceci contrôle le taux d'apprentissage opt = Adam(lr=0.005, beta_ 1=0.9, beta_2=0.999) # entraîner le réseau de neurones model.compile(loss='categorical_crossentropy', Optimizer=opt, metrics=['accuracy']) model.fit(X_train, Y_train, batch_size=32, epochs=9, validation_data=(X_test, Y_test), verbose=2)
Étape 6:
Après avoir entraîné le modèle, il affichera les performances d'entraînement. Pour moi, la précision était de 96,5% et la perte était de 0,10, ce qui est bon pour continuer.
Maintenant que notre modèle de détection de la toux est prêt, nous allons déployer ce modèle en tant que bibliothèque Arduino. Avant de télécharger le modèle en tant que bibliothèque, vous pouvez tester les performances en vous rendant sur la page « Classification en direct ». Accédez à la page « Déploiement » et sélectionnez « Bibliothèque Arduino ». Faites maintenant défiler vers le bas et cliquez sur « Construire » pour démarrer le processus. Cela créera une bibliothèque Arduino pour votre projet.
Ajoutez maintenant la bibliothèque dans votre IDE Arduino. Pour cela, ouvrez l'IDE Arduino, puis cliquez sur Sketch > Inclure la bibliothèque > Bibliothèque Add. ZIP. Ensuite, chargez un exemple en allant dans Fichier > Exemples > Nom de votre projet - Edge Impulse > nano_ble33_sense_microphone. Nous allons apporter quelques modifications au code afin que nous puissions émettre un son d'alerte lorsque l'Arduino détecte la toux. Pour cela, un buzzer est interfacé avec Arduino et chaque fois qu'il détecte une toux, la LED clignote trois fois. Les modifications sont apportées dans les fonctions void loop() où elles impriment les valeurs de bruit et de toux. Dans le code d'origine, il imprime à la fois les étiquettes et leurs valeurs ensemble. for (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) { ei_printf(" %s: %.5f\n", result.classification[ix].label, result.classification[ix].value); }Nous allons enregistrer les valeurs de bruit et de toux dans différentes variables et comparer les valeurs de bruit. Si la valeur du bruit est inférieure à 0,50, cela signifie que la valeur de la toux est supérieure à 0,50 et que le son sera émis. Remplacez le code for loop() d'origine par ceci: for (size_t ix = 1; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) { Serial.print(result.classification[ix].value); float Data = result.classification[ix].value; if (Données < 0,50){ Serial.print("Cough Detected"); alarme(); } } Après avoir apporté les modifications, téléchargez le code dans votre Arduino. Ouvrez le moniteur série à 115200 bauds.
C'est donc ainsi qu'une machine de détection de la toux peut être construite, ce n'est pas une méthode très efficace pour trouver un suspect COVID19 mais cela peut bien fonctionner dans certaines zones surpeuplées.
Étape 7: Coder
Veuillez trouver le fichier joint, Et si ça vous a plu, n'oubliez pas de me voter dans le concours ci-dessous.
Conseillé:
Détecteur de CO (monoxyde de carbone) de poche : 5 étapes
Détecteur de CO (monoxyde de carbone) de poche : comme son nom l'indique, il s'agit d'un détecteur de CO de poche qui est utilisé pour détecter le monoxyde de carbone dans l'air. Notre objectif était de rendre cet appareil portable et qui tient dans un format de poche. problème de pollution de l'air due à l'industrialisation ev
DIY : Lampe de poche Lego UV LED / Détecteur d'urine pour animaux de compagnie fait maison : 3 étapes
Bricolage : lampe de poche à LED Lego UV / détecteur d'urine pour animaux de compagnie fait maison : il s'agit d'un moyen facile (aucune soudure requise), amusant et bon marché de fabriquer une excellente lampe de poche à LED UV à partir de Legos. Cela sert également de détecteur d'urine pour animaux de compagnie fait maison (comparez les prix). Si vous avez déjà rêvé de faire votre propre Lego Flash maison
Détecteur de fil de poche : 3 étapes
Pocket Wire Finder : Les fils sont essentiels pour conduire l'électricité d'un endroit à un autre. Ceux-ci jouent un rôle majeur dans la vie humaine. Nous traitons beaucoup de fils allant des écouteurs au téléviseur. Nous avons tous les fils qui passent à l'intérieur des murs juste pour avoir un beau w
Détecteur de fumée IOT : mettre à jour le détecteur de fumée existant avec IOT : 6 étapes (avec photos)
Détecteur de fumée IOT : Mettre à jour le détecteur de fumée existant avec IOT : Liste des contributeurs, Inventeur : Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Superviseur : Dr Chia Kim Seng Département de génie mécatronique et robotique, Faculté de génie électrique et électronique, Universiti Tun Hussein Onn Malaisie.Distribuer
Lampe de poche LED à capteur (9v, avec vidéo détecteur de lumière/obscurité) : 5 étapes
Lampe de poche à capteur LED (9v, avec vidéo détecteur de lumière/obscurité) : cette instructable concerne la fabrication d'une lampe de poche LED avec capteur de lumière/obscurité. il s'allume automatiquement quand il fait noir et s'éteint quand il fait jour