Πίνακας περιεχομένων:

Ανιχνευτής βήχα μεγέθους τσέπης: 7 βήματα
Ανιχνευτής βήχα μεγέθους τσέπης: 7 βήματα

Βίντεο: Ανιχνευτής βήχα μεγέθους τσέπης: 7 βήματα

Βίντεο: Ανιχνευτής βήχα μεγέθους τσέπης: 7 βήματα
Βίντεο: Ηχητικό βιβλίο: William Shakespeare. Οθέλλος. Η χώρα του βιβλίου. Δράμα. Τραγωδία. Ψυχολογία. 2024, Νοέμβριος
Anonim
Ανιχνευτής βήχα μεγέθους τσέπης
Ανιχνευτής βήχα μεγέθους τσέπης

Ο COVID19 είναι πραγματικά μια ιστορική πανδημία που πλήττει πολύ άσχημα ολόκληρο τον κόσμο και οι άνθρωποι κατασκευάζουν πολλές νέες συσκευές για να το πολεμήσουν. Έχουμε επίσης κατασκευάσει ένα αυτόματο μηχάνημα απολύμανσης και θερμικό όπλο για έλεγχο θερμοκρασίας χωρίς επαφή. Σήμερα θα κατασκευάσουμε μια ακόμη συσκευή για να βοηθήσουμε στην καταπολέμηση του κορωνοϊού. Είναι ένα σύστημα ανίχνευσης βήχα, το οποίο μπορεί να κάνει διάκριση μεταξύ θορύβου και ήχου βήχα και μπορεί να βοηθήσει στην εύρεση ύποπτου Corona. Θα χρησιμοποιήσει τεχνικές μηχανικής μάθησης για αυτό.

Σε αυτό το σεμινάριο, πρόκειται να δημιουργήσουμε ένα σύστημα ανίχνευσης βήχα χρησιμοποιώντας το Arduino 33 BLE Sense και το Edge Impulse Studio. Μπορεί να κάνει διάκριση μεταξύ φυσιολογικού θορύβου φόντου και βήχα σε ήχο σε πραγματικό χρόνο. Χρησιμοποιήσαμε το Edge Impulse Studio για να εκπαιδεύσουμε ένα σύνολο δειγμάτων βήχα και θορύβου και να δημιουργήσουμε ένα εξαιρετικά βελτιστοποιημένο μοντέλο TInyML, το οποίο μπορεί να ανιχνεύσει έναν ήχο βήχα σε πραγματικό χρόνο.

Προμήθειες

Σκεύη, εξαρτήματα

  • Arduino 33 BLE Sense
  • LEDJumper
  • Καλώδια

Λογισμικό

  • Edge Impulse Studio
  • Arduino IDE

Βήμα 1: Διάγραμμα κυκλώματος

Διάγραμμα κυκλώματος
Διάγραμμα κυκλώματος
Διάγραμμα κυκλώματος
Διάγραμμα κυκλώματος

Το διάγραμμα κυκλώματος για τον εντοπισμό βήχα χρησιμοποιώντας Arduino 33 BLE Sense δίνεται παραπάνω. Δεν ήταν διαθέσιμο το κομμάτι ψύξης για το Arduino 33 BLE, οπότε χρησιμοποίησα το Arduino Nano καθώς και τα δύο έχουν το ίδιο pin-out.

Το θετικό καλώδιο του LED συνδέεται με τον ψηφιακό ακροδέκτη 4 του Arduino 33 BLE sense και το αρνητικό καλώδιο συνδέεται με τον ακροδέκτη GND του Arduino.

Βήμα 2: Δημιουργία του Dataset για το μηχάνημα ανίχνευσης βήχα

Δημιουργία του Dataset για το μηχάνημα ανίχνευσης βήχα
Δημιουργία του Dataset για το μηχάνημα ανίχνευσης βήχα

Όπως αναφέρθηκε προηγουμένως, χρησιμοποιούμε το Edge Impulse Studio για να εκπαιδεύσουμε το μοντέλο ανίχνευσης βήχα. Για αυτό, πρέπει να συλλέξουμε ένα σύνολο δεδομένων που περιέχει τα δείγματα δεδομένων που θα θέλαμε να είναι σε θέση να αναγνωρίσουν στο Arduino μας. Δεδομένου ότι ο στόχος είναι να ανιχνευθεί ο βήχας, θα χρειαστεί να συλλέξετε μερικά δείγματα αυτού και κάποια άλλα δείγματα για θόρυβο, ώστε να μπορεί να διακρίνει μεταξύ Βήχα και άλλων Θορύβων. Θα δημιουργήσουμε ένα σύνολο δεδομένων με δύο κατηγορίες "βήχας" και "θόρυβος". Για να δημιουργήσετε ένα σύνολο δεδομένων, δημιουργήστε έναν λογαριασμό Edge Impulse, επαληθεύστε τον λογαριασμό σας και, στη συνέχεια, ξεκινήστε ένα νέο έργο. Μπορείτε να φορτώσετε τα δείγματα χρησιμοποιώντας το κινητό σας, τον πίνακα Arduino ή μπορείτε να εισαγάγετε ένα σύνολο δεδομένων στο λογαριασμό σας στο παλμό ακμής. Ο ευκολότερος τρόπος για να φορτώσετε τα δείγματα στο λογαριασμό σας είναι χρησιμοποιώντας το κινητό σας τηλέφωνο. Για αυτό, πρέπει να συνδέσετε το κινητό σας με το Edge Impulse. Για να συνδέσετε το κινητό σας τηλέφωνο, κάντε κλικ στο «Συσκευές» και στη συνέχεια κάντε κλικ στο «Σύνδεση νέας συσκευής».

Βήμα 3: Σύνδεση στο κινητό τηλέφωνο

Συνδεθείτε στο κινητό τηλέφωνο
Συνδεθείτε στο κινητό τηλέφωνο

Τώρα στο επόμενο παράθυρο, κάντε κλικ στο «Χρήση του κινητού σας τηλεφώνου» και θα εμφανιστεί ένας κωδικός QR. Σαρώστε τον κωδικό QR με το κινητό σας τηλέφωνο χρησιμοποιώντας το Google Lens ή άλλη εφαρμογή σάρωσης κωδικών QR.

Αυτό θα συνδέσει το τηλέφωνό σας με το στούντιο Edge Impulse.

Με το τηλέφωνό σας συνδεδεμένο με το Edge Impulse Studio, μπορείτε τώρα να φορτώσετε τα δείγματά σας. Για να φορτώσετε τα δείγματα, κάντε κλικ στο «Απόκτηση δεδομένων». Στη σελίδα συλλογής δεδομένων, εισαγάγετε το όνομα της ετικέτας, επιλέξτε το μικρόφωνο ως αισθητήρα και εισαγάγετε το μήκος δείγματος. Κάντε κλικ στο «Έναρξη δειγματοληψίας», για να ξεκινήσετε τη δειγματοληψία δείγματος 40 δευτερολέπτων. Αντί να αναγκάζεστε να βήχετε, μπορείτε να χρησιμοποιήσετε διαδικτυακά δείγματα βήχα διαφορετικού μήκους. Καταγράψτε συνολικά 10 έως 12 δείγματα βήχα διαφορετικού μήκους.

Βήμα 4:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Αφού ανεβάσετε τα δείγματα βήχα, τώρα ορίστε την ετικέτα σε «θόρυβο» και συλλέξτε άλλα 10 έως 12 δείγματα θορύβου.

Αυτά τα δείγματα είναι για την εκπαίδευση της ενότητας, στα επόμενα βήματα, θα συλλέξουμε τα δεδομένα δοκιμής. Τα δεδομένα δοκιμών πρέπει να αποτελούν τουλάχιστον το 30% των δεδομένων εκπαίδευσης, οπότε συλλέξτε τα 3 δείγματα «θορύβου» και 4 έως 5 δείγματα «βήχα». Αντί να συλλέξετε τα δεδομένα σας, μπορείτε να εισαγάγετε το σύνολο δεδομένων μας στον λογαριασμό σας Edge Impulse χρησιμοποιώντας το Edge Impulse CLI Uploader. Για να εγκαταστήσετε το CLI Uploader, κατεβάστε πρώτα και εγκαταστήστε το Node.js στο φορητό υπολογιστή σας. Στη συνέχεια, ανοίξτε τη γραμμή εντολών και εισαγάγετε την παρακάτω εντολή:

npm εγκατάσταση -g edge-impulse-cli

Τώρα κατεβάστε το σύνολο δεδομένων (Link Dataset) και εξαγάγετε το αρχείο στο φάκελο του έργου σας. Ανοίξτε τη γραμμή εντολών και μεταβείτε στη θέση δεδομένων και εκτελέστε τις παρακάτω εντολές:

edge-impulse-uploader --cleanedge-impulse-uploader-εκπαίδευση κατηγορίας/*. json

edge-impulse-uploader-εκπαίδευση κατηγορίας κατάρτισης/*. cbor

edge-impulse-uploader-δοκιμή δοκιμής κατηγορίας/*. json edge-impulse-uploader-δοκιμή δοκιμής κατηγορίας/*. cbor

Βήμα 5: Εκπαίδευση του μοντέλου και τροποποίηση του κώδικα

Καθώς το σύνολο δεδομένων είναι έτοιμο, τώρα θα δημιουργήσουμε μια ώθηση για δεδομένα. Για αυτό, μεταβείτε στη σελίδα "Δημιουργία ώθησης".

Τώρα στη σελίδα «Δημιουργία ώθησης», κάντε κλικ στο «Προσθήκη μπλοκ επεξεργασίας». Στο επόμενο παράθυρο, επιλέξτε το μπλοκ ioχος (MFCC). Στη συνέχεια, κάντε κλικ στο «Προσθήκη μπλοκ εκμάθησης» και επιλέξτε το μπλοκ Neural Network (Keras). Στη συνέχεια, κάντε κλικ στο «Save Impulse».

Στο επόμενο βήμα, μεταβείτε στη σελίδα MFCC και, στη συνέχεια, κάντε κλικ στο «Δημιουργία λειτουργιών». Θα δημιουργήσει μπλοκ MFCC για όλα τα παράθυρα ήχου μας.

Στη συνέχεια, μεταβείτε στη σελίδα "NN Classifier" και κάντε κλικ στις τρεις τελείες στην επάνω δεξιά γωνία των "Ρυθμίσεων νευρωνικού δικτύου" και επιλέξτε "Μετάβαση στη λειτουργία Keras (ειδικός)".

Αντικαταστήστε το πρωτότυπο με τον ακόλουθο κώδικα και αλλάξτε την «Ελάχιστη βαθμολογία εμπιστοσύνης» σε «0,70». Στη συνέχεια, κάντε κλικ στο κουμπί «Έναρξη προπόνησης». Θα ξεκινήσει να εκπαιδεύει το μοντέλο σας.

εισαγωγή tensorflow ως tffrom tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, InputLayer, Dropout, Flatten, Reshape, BatchNormalization, Conv2D, MaxPooling2D, AveragePooling2D from tensorflow.keras.optimonstrators MaxNorm # model architecture 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 (Πυκνό (κλάσεις, ενεργοποίηση = 'softmax', name = 'y_pred', kernel_constraint = MaxNorm (3))) # αυτό ελέγχει το ρυθμό μάθησης opt = Adam (lr = 0,005, beta_ 1 = 0.9, beta_2 = 0.999) # εκπαιδεύστε το νευρωνικό δίκτυο, validation_data = (X_test, Y_test), verbose = 2)

Βήμα 6:

Μετά την εκπαίδευση του μοντέλου, θα δείξει την απόδοση της προπόνησης. Για μένα, η ακρίβεια ήταν 96,5% και η απώλεια ήταν 0,10 που είναι καλό να προχωρήσουμε.

Τώρα καθώς το μοντέλο ανίχνευσης βήχα είναι έτοιμο, θα αναπτύξουμε αυτό το μοντέλο ως βιβλιοθήκη Arduino. Πριν από τη λήψη του μοντέλου ως βιβλιοθήκη, μπορείτε να δοκιμάσετε την απόδοση μεταβαίνοντας στη σελίδα «Ζωντανή ταξινόμηση». Μεταβείτε στη σελίδα «Ανάπτυξη» και επιλέξτε «Βιβλιοθήκη Arduino». Τώρα μετακινηθείτε προς τα κάτω και κάντε κλικ στο «Build» για να ξεκινήσετε τη διαδικασία. Αυτό θα δημιουργήσει μια βιβλιοθήκη Arduino για το έργο σας.

Τώρα προσθέστε τη βιβλιοθήκη στο Arduino IDE. Για αυτό ανοίξτε το Arduino IDE και, στη συνέχεια, κάντε κλικ στο Sketch> Include Library> Add. ZIP Library. Στη συνέχεια, φορτώστε ένα παράδειγμα μεταβαίνοντας στο Αρχείο> Παραδείγματα> Το όνομα του έργου σας - Edge Impulse> nano_ble33_sense_microphone. Θα κάνουμε κάποιες αλλαγές στον κώδικα, ώστε να μπορούμε να κάνουμε έναν ήχο ειδοποίησης όταν το Arduino ανιχνεύσει βήχα. Για αυτό, ένας βομβητής διασυνδέεται με το Arduino και κάθε φορά που εντοπίζει βήχα, το LED θα αναβοσβήνει τρεις φορές. Οι αλλαγές πραγματοποιούνται στις λειτουργίες void loop () όπου εκτυπώνει τις τιμές θορύβου και βήχα. Στον αρχικό κώδικα, εκτυπώνει τόσο τις ετικέτες όσο και τις τιμές τους μαζί. για (size_t ix = 0; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {ei_printf (" %s: %.5f / n", result.classification [ix].label, result.classification [ix].value); } Θα αποθηκεύσουμε τις τιμές θορύβου και βήχα σε διαφορετικές μεταβλητές και θα συγκρίνουμε τις τιμές θορύβου. Εάν η τιμή θορύβου πέσει κάτω από το 0,50, αυτό σημαίνει ότι η τιμή του βήχα είναι μεγαλύτερη από 0,50 και θα κάνει τον ήχο. Αντικαταστήστε τον πρωτότυπο για τον κωδικό βρόχου () με αυτό: για (size_t ix = 1; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {Serial.print (result.classification [ix].value); float Data = result.classification [ix].value; εάν (Δεδομένα <0,50) {Serial.print ("Βήχας εντοπίστηκε"); τρομάζω(); }} Αφού κάνετε τις αλλαγές, ανεβάστε τον κώδικα στο Arduino σας. Ανοίξτε τη σειριακή οθόνη στο 115200 baud.

Έτσι, μπορεί να κατασκευαστεί μια μηχανή ανίχνευσης βήχα, δεν είναι μια πολύ αποτελεσματική μέθοδος για να βρείτε οποιοδήποτε ύποπτο για COVID19, αλλά μπορεί να λειτουργήσει όμορφα σε κάποια πολυσύχναστη περιοχή.

Βήμα 7: Κωδικός

Παρακαλώ βρείτε το συνημμένο αρχείο, Και αν σας άρεσε μην ξεχάσετε να με ψηφίσετε στον παρακάτω διαγωνισμό.

Συνιστάται: