Μάθετε στο BME688 σας πώς να μυρίζει

Διδάξτε το BME688 σας πώς να μυρίζει την εικόνα τίτλου

Ένας πλήρης οδηγός για το πώς να εκπαιδεύσετε τον αισθητήρα BME688

Γεια σας συνάδελφοι λάτρεις της τεχνολογίας! Η Bosch κυκλοφόρησε το BME688, ένας νέος φοβερός αισθητήρας που μπορεί να διακρίνει έως και τέσσερις διαφορετικές μυρωδιές. Αυτός ο οδηγός θα σας εξηγήσει όλες τις λεπτομέρειες για να διδάξετε στον BME688 πώς να διακρίνει μυρωδιές. Μην ανησυχείτε αν είστε νέοι στην τεχνητή νοημοσύνη ή στην Python. Αυτός ο οδηγός είναι κατάλληλος για αρχάριους.

Ας προχωρήσουμε λοιπόν αμέσως.

Προαπαιτούμενα

Βήματα

  1. Επιλέξτε την εφαρμογή σας
  2. Καταγραφή δεδομένων
  3. Εκπαίδευση του αλγορίθμου
  4. Ανίχνευση οσμών

1. Επιλέξτε την εφαρμογή σας

Το πρώτο βήμα είναι να επιλέξετε την εφαρμογή σας. Για αυτόν τον οδηγό θα χρησιμοποιήσω το κρέας και το τυρί ως παραδείγματα. Αλλά υπάρχει ένα ατελείωτο φάσμα δυνατοτήτων. Μπορείτε να διακρίνετε τα φρούτα από τα λαχανικά ή τα καθαριστικά από τα αρώματα. Θα μπορούσατε επίσης να προσπαθήσετε να προσδιορίσετε πότε τα τρόφιμα έχουν χαλάσει.

Υπάρχουν ορισμένα πράγματα που πρέπει να λάβετε υπόψη σας όταν επιλέγετε μια εφαρμογή. Χρειάζεστε πολλά δείγματα για κάθε κλάση που θέλετε να διακρίνετε, για να διασφαλίσετε ότι ο αλγόριθμος θα γίνει εύρωστος. Για αρχή θα πρέπει να επιλέξετε κάτι που είναι φθηνό και ευρέως διαθέσιμο. Έχετε επίσης υπόψη σας ότι είναι σκόπιμο να χρησιμοποιήσετε τον κανονικό αέρα ως μία από τις κλάσεις, καθώς θα υπάρχει σχεδόν πάντα.

Για να δημιουργήσετε έναν αξιόπιστο αλγόριθμο θα πρέπει να χρησιμοποιήσετε τουλάχιστον μισή ώρα δεδομένων μέτρησης για κάθε δείγμα. Επομένως, τα δείγματα που παράγουν σταθερή μυρωδιά είναι μια καλή επιλογή. Φροντίστε επίσης να χρησιμοποιείτε ένα ευρύ φάσμα δειγμάτων. Εάν, για παράδειγμα, χρησιμοποιείτε μόνο πορτοκάλια, λεμόνια και λάιμ για την κατηγορία φρούτων, ο αισθητήρας μπορεί να αποτύχει να ταξινομήσει ένα βατόμουρο ως φρούτο, επειδή είναι πολύ διαφορετικό από τα δείγματα που χρησιμοποιήσατε για την εκπαίδευση. Όσο περισσότερα διαφορετικά δείγματα χρησιμοποιούνται τόσο το καλύτερο.

Μόλις ολοκληρώσετε την επιλογή σας, είναι ώρα να δημιουργήσετε ένα νέο έργο AI Studio. Ανοίξτε το AI Studio και πατήστε το κουμπί Δημιουργία έργου ... Κουμπί. Πατήστε Διαμόρφωση του πίνακα BME εάν θέλετε να καταγράψετε δεδομένα με μια συγκεκριμένη διαμόρφωση.

2. Καταγραφή δεδομένων

Αυτή η διαδικασία διαφέρει, ανάλογα με το αν χρησιμοποιείτε το BME688 Breakout Board ή Κιτ ανάπτυξης αισθητήρα αερίου Bosch BME688 (περαιτέρω επιβίβαση με λεωφορείο). Η πλακέτα shuttle είναι ευκολότερη στη χρήση και θα καταγράψει δεδομένα οκτώ φορές ταχύτερα από την πλακέτα breakout, αλλά είναι πολύ πιο ακριβή. Θα εξηγήσω λεπτομερώς και τις δύο μεθόδους στις επόμενες ενότητες.

Σημείωση: Ο αισθητήρας BME688 χρειάζεται λίγο χρόνο για να προσαρμοστεί στο περιβάλλον και να εγκλιματιστεί. Φροντίστε να τον αφήσετε να λειτουργεί για τουλάχιστον 24 ώρες πριν καταγράψετε τα δεδομένα της προπόνησής σας.

Καταγραφή δεδομένων με την πλακέτα BME688 Shuttle Board

Η BOSCH εξόπλισε την πλακέτα μεταφοράς με οκτώ αισθητήρες BME688, επομένως παράγει οκτώ φορές περισσότερα δεδομένα στον ίδιο χρόνο. Όλο το λογισμικό είναι ήδη εγκατεστημένο και είναι έτοιμο να λειτουργήσει από το κουτί. Παρακολουθήστε το αυτό το εκπαιδευτικό βίντεο από την Bosch για να μάθετε για τη διαδικασία μέτρησης.

Εάν καταγράφετε πολλά δείγματα σε μία μόνο συνεδρία, μπορεί να θέλετε να σημειώσετε τη σειρά των δειγμάτων για να αποφύγετε τη σύγχυση. Μπορείτε πάντα να περικόψετε τα δεδομένα στο AI Studio αργότερα, οπότε μη φοβάστε να καταγράψετε πολλά δεδομένα.

Καταγραφή δεδομένων με την πλακέτα BME688 Breakout Board

Εάν χρησιμοποιείτε το BME688 Breakout Board Εξακολουθώ να σας συμβουλεύω να παρακολουθήσετε το Σεμινάριο Bosch επειδή παρέχει ορισμένες χρήσιμες πληροφορίες σχετικά με τη διαδικασία εκπαίδευσης στο AI Studio. Αλλά για την καταγραφή των δεδομένων εκπαίδευσης απαιτούνται ορισμένα πρόσθετα βήματα.

Εμείς στο pi3g δημιούργησε μια βιβλιοθήκη python για τους αισθητήρες BME68X, την οποία μπορείτε να αναβαθμίσετε με Boschs BSEC 2.0. Επομένως, είναι χρήσιμο να έχετε κάποια εμπειρία στην python, αλλά δεν είναι απαραίτητο.

Σημείωση: Δείτε τις οδηγίες εγκατάστασης και χρήσης απευθείας στο GitHub.

Ξεκινήστε κλωνοποιώντας το bme68x-python-βιβλιοθήκη. Αυτό μπορεί να γίνει εκτελώντας την ακόλουθη εντολή σε ένα τερματικό bash.

git clone https://github.com/pi3g/bme68x-python-library.git

Τώρα πρέπει να δημιουργήσετε και να εγκαταστήσετε το module python bme68x. Το BSEC 2.0 είναι ιδιόκτητο λογισμικό, οπότε πρέπει να κατεβάσετε την έκδοση 2.0.6.1 απευθείας από την Bosch και να συμφωνήσετε με την άδεια χρήσης. Αποσυμπιέστε το στον φάκελο bme68x-python-library και προχωρήστε με αυτές τις εντολές.

cd path/to/bme68x-python-library
sudo python3 setup.py install

Τώρα μπορείτε να εκτελέσετε το bmerawdata.py script με τις προεπιλεγμένες ρυθμίσεις.

cd tools/bmerawdata
python3 bmerawdata.py

Το σενάριο θα εμφανίζει τα καταγεγραμμένα δεδομένα μετά από κάθε μέτρηση. Τερματίστε τη δέσμη ενεργειών και αποθηκεύστε τα δεδομένα σε ένα αρχείο συμβατό με το AI Studio πατώντας το πλήκτρο Ctrl+c.

3. Εκπαίδευση του αλγορίθμου

Εισαγωγή δεδομένων

Ανεξάρτητα από το αν χρησιμοποιείτε το BME688 Breakout Board ή το Κιτ ανάπτυξης αισθητήρα αερίου Bosch BME688, το επόμενο βήμα είναι η εισαγωγή των δεδομένων στο AI Studio. Πατήστε το Εισαγωγή δεδομένων Button και επιλέξτε το αρχείο .bmerawdata.

Διάλογος εισαγωγής δεδομένων

Η συνεδρία σας χρειάζεται ένα ουσιαστικό όνομα. Είναι κατάλληλο να επιλέξετε μια απαρίθμηση των δειγμάτων.

Μπορείτε να δείτε μια γραφική παράσταση των δεδομένων σας, για παράδειγμα του καναλιού δεδομένων αερίου, όπως φαίνεται παρακάτω.

Κανάλι δεδομένων αερίου

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

Σημείωση: Στις περισσότερες περιπτώσεις θα πρέπει να χρησιμοποιείτε μόνο το κανάλι δεδομένων αερίου για εκπαίδευση.

Τώρα πρέπει να επισημάνουμε τα δείγματά μας. Εάν καταγράψατε τα δεδομένα με την πλακέτα shuttle και χρησιμοποιήσατε τα κουμπιά επί του σκάφους για να επισημάνετε τα δείγματα, θα μπορείτε ήδη να δείτε ένα πρότυπο για κάθε ένα από αυτά. Μπορείτε επίσης να περικόψετε τα δείγματα και να δημιουργήσετε νέα δείγματα (για παράδειγμα, αν καταγράψατε πολλαπλά δείγματα χρησιμοποιώντας την πλακέτα διάσπασής μας).

Ετικέτες δειγμάτων και χρονικές σφραγίδες

Αφού ολοκληρώσετε την επεξεργασία της συνεδρίας πατήστε το πλήκτρο Εισαγωγή δεδομένων στην κάτω δεξιά γωνία του διαλόγου.

Αφού εισαγάγετε και επισημάνετε όλα τα δείγματά σας, ήρθε η ώρα να δημιουργήσετε και να εκπαιδεύσετε τον αλγόριθμο.

Δημιουργήστε τον αλγόριθμο

Επιλέξτε Οι αλγόριθμοί μου στην κορυφή και κάντε κλικ στο + Νέος αλγόριθμος . Δώστε στον αλγόριθμό σας ένα όνομα που αντιπροσωπεύει αυτό που υποτίθεται ότι κάνει, στην περίπτωσή μου AirMeatCheese. Στη συνέχεια, προσθέστε τις κλάσεις. Ονόμασα τις κλάσεις μου NormalAir, Meat και Cheese. Επιλέξτε ποια δείγματα ανήκουν σε ποια κλάση και επιλέξτε ένα χρώμα για κάθε κλάση.

Ονομάστε τον αλγόριθμό σας
Ονομάστε τον αλγόριθμό σας
Επεξεργαστείτε τις τάξεις σας
Επεξεργαστείτε τις τάξεις σας

Για να προσθέσετε ή να αφαιρέσετε δείγματα, μπορείτε να κάνετε κλικ σε μία από τις κατηγορίες. Ακολουθεί ένα παράδειγμα του τι μπορεί να κάνει το Κρέας class μοιάζει με.

Άποψη της κατηγορίας κρέατος
Άποψη της κατηγορίας κρέατος

Κάτω από τις κλάσεις μπορείτε να δείτε ορισμένα πρόσθετα δεδομένα σχετικά με τον αλγόριθμο.

Πρόσθετα δεδομένα αλγορίθμου
Πρόσθετα δεδομένα αλγορίθμου

Το ισοζύγιο δεδομένων δείχνει τη συνολική διάρκεια της μέτρησης για κάθε κατηγορία. Για να εξασφαλιστεί η καλύτερη απόδοση, η διάρκεια μέτρησης κάθε κλάσης πρέπει να είναι ίση. Εάν η διάρκεια μέτρησης μιας από τις κλάσεις είναι πολύ μεγαλύτερη, ενδέχεται να παρατηρηθεί μεροληψία του αλγορίθμου προς αυτή την κλάση. Σημειώστε επίσης το κουμπί με το ερωτηματικό μπροστά από κάθε επικεφαλίδα. Πατήστε το για να λάβετε πιο λεπτομερείς πληροφορίες.

Σημείωση: Βεβαιωθείτε ότι έχετε ελέγξει την Τεκμηρίωση του BME688 AI Studio για περισσότερες πληροφορίες.

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

Εκπαίδευση και εξαγωγές

Εκπαιδεύστε τον αλγόριθμό σας
Εκπαιδεύστε τον αλγόριθμό σας

Εδώ μπορείτε να επιλέξετε τη μέθοδο εκπαίδευσης, τους μέγιστους γύρους και το διαχωρισμό των δεδομένων. Εάν είστε νέοι στα νευρωνικά δίκτυα, θα πρέπει να αφήσετε τα πάντα στις προεπιλεγμένες ρυθμίσεις. Παρ' όλα αυτά, θα προσπαθήσω να εξηγήσω εν συντομία καθεμία από αυτές τις ρυθμίσεις.

Η μόνη μέθοδος εκπαίδευσης που είναι διαθέσιμη τη στιγμή που γράφω αυτό το κείμενο είναι ο βελτιστοποιητής ADAM. Πρόκειται για έναν ειδικό τρόπο εύρεσης ενός ελαχίστου στη συνάρτηση σφάλματος (μικρότερο σφάλμα σημαίνει ακριβέστερες προβλέψεις). Μπορείτε να επιλέξετε διαφορετικά μεγέθη παρτίδων για να βελτιώσετε την ταχύτητα και τη σταθερότητα της εκπαίδευσης.

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

Υπερπροσαρμογή σημαίνει ότι το νευρωνικό δίκτυο έχει προσαρμοστεί υπερβολικά στα δεδομένα εκπαίδευσης. Εάν ο αλγόριθμος επιτυγχάνει πολύ υψηλή ακρίβεια κατά την εκπαίδευση, αλλά έχει κακές επιδόσεις στις δοκιμές στην πραγματική ζωή, ίσως να θέλετε να μειώσετε τους μέγιστους γύρους εκπαίδευσης.

Η ρύθμιση διαχωρισμού δεδομένων σας επιτρέπει να επιλέξετε πόσα από τα καταγεγραμμένα δεδομένα σας χρησιμοποιούνται για την εκπαίδευση και πόσα για τη δοκιμή. Θα πρέπει να αποφεύγετε να χρησιμοποιείτε περισσότερο από το ένα τρίτο των δεδομένων για δοκιμές. Όπως υποδηλώνει το όνομα, ο αλγόριθμος θα χρησιμοποιήσει μόνο τα δεδομένα εκπαίδευσης για την εκπαίδευση. Αφού ολοκληρωθεί η εκπαίδευση, το AI Studio θα αξιολογήσει τον αλγόριθμο χρησιμοποιώντας τα δεδομένα δοκιμής, τα οποία δεν έχει δει ποτέ πριν.

Τύπος Εκπαίδευση νευρωνικού δικτύου για να ξεκινήσετε την εκπαίδευση. Θα δείτε τον εκτιμώμενο εναπομένοντα χρόνο εκπαίδευσης και το γραμμικό διάγραμμα της ακρίβειας και των απωλειών.

Πρόοδος κατάρτισης
Πρόοδος κατάρτισης

Με κάθε εποχή η Ακρίβεια και η Ακρίβεια επικύρωσης θα πρέπει να βελτιώνονται, ενώ η Απώλεια και η Απώλεια επικύρωσης θα πρέπει να μειώνονται. Περιμένετε μέχρι να ολοκληρωθεί η εκπαίδευση.

Όταν ολοκληρωθεί η εκπαίδευση, ελέγξτε τον πίνακα σύγχυσης. Περιέχει σημαντικές πληροφορίες σχετικά με τα αποτελέσματα της εκπαίδευσης. Η πιο ενδιαφέρουσα στατιστική είναι η ακρίβεια, αλλά αν τα δεδομένα εκπαίδευσης είναι άνισα κατανεμημένα, η βαθμολογία F1 μπορεί να είναι μια καλύτερη μέτρηση.

Πίνακας σύγχυσης και αποτελέσματα εκπαίδευσης
Πίνακας σύγχυσης και αποτελέσματα εκπαίδευσης

Σπάνια θα πετύχετε ακρίβεια πάνω από 90%, οπότε αν η ακρίβεια είναι πάνω από 80% θα πρέπει να εξάγετε τον αλγόριθμο για να τον ελέγξετε. Θα ανιχνεύσουμε τις οσμές χρησιμοποιώντας τον PiCockpit web interface. Βεβαιωθείτε ότι εξάγετε τον αλγόριθμο για την έκδοση BSEC 2.0.6.1, δεδομένου ότι PiCockpit υποστηρίζει μόνο αυτή την έκδοση μέχρι στιγμής.

Σημείωση: Στις περισσότερες περιπτώσεις, η εκπαίδευση θα ολοκληρωθεί πριν από τη συμπλήρωση της εκτιμώμενης διάρκειας.

4. Ανίχνευση οσμών

Για να ανιχνεύσετε τις μυρωδιές απλά εγκαταστήστε το PiCockpit πελάτη και συνδέστε τον με τον λογαριασμό σας. Εάν δεν έχετε PiCockpit απλά εγγραφείτε δωρεάν και ακολουθήστε τις οδηγίες που δίνονται εκεί. Η εφαρμογή μας Digital Nose App σας επιτρέπει να ανεβάσετε τον εκπαιδευμένο αλγόριθμό σας και να βλέπετε ζωντανές προβλέψεις μέσω της διαδικτυακής διεπαφής. Ελέγξτε το Ψηφιακή βοήθεια μύτης για μια πλήρη εξήγηση σχετικά με τον τρόπο χρήσης της εφαρμογής.

Ένας άλλος τρόπος για να ανιχνεύσετε μυρωδιές είναι χρησιμοποιώντας το Επέκταση BME68X Python. Αυτό απαιτεί κάποια κωδικοποίηση σε python, αλλά προσφέρει περισσότερο έλεγχο και σας επιτρέπει να δημιουργήσετε τις δικές σας εφαρμογές χρησιμοποιώντας τον αλγόριθμό σας. Ανατρέξτε στο README.md, το Documentation.md και το παραδείγματα για να μάθετε πώς να εγκαταστήσετε και να χρησιμοποιήσετε την επέκταση.

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

Επικοινωνήστε μαζί μου στο [email protected]

9 Σχόλια

  1. Siroj42 στις Μάρτιος 30, 2022 στις 8:14 πμ

    Για μένα, η εκπαίδευση του αλγορίθμου δεν λειτουργεί. Αντ' αυτού, το λογισμικό εμφανίζει το σφάλμα "Ο αλγόριθμος δεν μπόρεσε να εκπαιδευτεί. Είτε τα δεδομένα εκπαίδευσης είτε τα δεδομένα δοκιμής φαίνεται να λείπουν.". Ωστόσο, έχω καταγράψει περίπου μία ώρα δεδομένων για κάθε μία από τις τάξεις μου χρησιμοποιώντας την πλακέτα BME688 Breakout Board. Έχετε κάποια ιδέα για το τι θα μπορούσα να κάνω λάθος;

    • Nathan Busler στις Μάρτιος 31, 2022 στις 10:09 πμ

      Αυτό ακούγεται σαν να έχει καταστραφεί το αρχείο .bmerawdata. Θα μπορούσατε να ρίξετε μια ματιά στο αρχείο, για να δείτε αν περιέχονται κακές τιμές. Είναι σε μορφή json

    • tomm στις Απρίλιος 11, 2022 στις 3:13 μμ

      Βρήκατε κάποια λύση για αυτό το πρόβλημα;

  2. Thomas στις Απρίλιος 10, 2022 στις 4:51 μμ

    Γεια σου Nathan
    Επίσης, μόλις δοκίμασα τον κώδικά σας και παίρνω το ίδιο σφάλμα όταν φτιάχνω έναν αλγόριθμο.
    " Είτε τα δεδομένα εκπαίδευσης είτε τα δεδομένα δοκιμής φαίνεται να λείπουν."

    υπάρχει κάποιο πρόβλημα στον κώδικά σας maby?

    • Nathan Busler στις Απρίλιος 14, 2022 στις 1:00 μμ

      Γεια σου Thomas
      Δεν μπόρεσα να αναδημιουργήσω το σφάλμα ακόμα.
      Τι έκδοση του AI Studio dp χρησιμοποιείτε; Το σενάριο δοκιμάστηκε με την έκδοση 1.6.0 του AI Studio

      • Thomas στις Απρίλιος 14, 2022 στις 9:11 μμ

        Γεια σου Nathan
        Χρησιμοποίησα τη νεότερη έκδοση (1.6.0) και σας έστειλα ένα μήνυμα σχετικά με αυτό, οπότε θέλετε να σας στείλω τα αρχεία δείγματος;
        Έχω δοκιμάσει πολλές δοκιμές αλλά το ίδιο σφάλμα κάθε φορά 🙁

      • Thomas στις Απρίλιος 17, 2022 στις 6:28 μμ

        ναι im επίσης χρησιμοποιώντας 1.6.0 παρακαλώ ελέγξτε αυτά τα αρχεία από τη συλλογή δεδομένων ένα είναι αναθυμιάσεις άλλο είναι κανονικό αέρα https://we.tl/t-PwfkYXjnGP

  3. [...], όπως ένας αισθητήρας θερμοκρασίας και υγρασίας ή ίσως ένα έργο ποιότητας του αέρα με ένα DHT22 ή BME688, ή ένας αισθητήρας φωτεινότητας με ένα [...]

  4. [...] Διδάξτε στο BME688 σας πώς να μυρίζει [...]

Αφήστε ένα σχόλιο