Πίνακας περιεχομένων[Κρύβω][Προβολή]
- Τι είναι η ταξινόμηση εικόνων;
- Πώς λειτουργεί η ταξινόμηση εικόνων;
Ταξινόμηση εικόνων με χρήση Tensorflow & Keras σε python+-
- 1. Απαιτήσεις εγκατάστασης
- 2. Εισαγωγή εξαρτήσεων
- 3. Αρχικοποίηση παραμέτρων
- 4. Φόρτωση του συνόλου δεδομένων
- 5. Δημιουργία του μοντέλου
- 6. Εκπαίδευση του μοντέλου
- Δοκιμή του μοντέλου
- 7. Εισαγωγή των βοηθητικών προγραμμάτων για δοκιμή
- 8. Δημιουργία καταλόγου python
- 9. Φόρτωση δεδομένων δοκιμής & μοντέλου
- 10. Αξιολόγηση & Πρόβλεψη
- 11. Αποτελέσματα
- Συμπέρασμα
Είναι καθησυχαστικό να γνωρίζουμε ότι καταφέραμε να εμποτίσουμε τα ρομπότ με τις έμφυτες ικανότητές μας να μαθαίνουν με το παράδειγμα και να αντιλαμβάνονται το περιβάλλον τους. Η θεμελιώδης πρόκληση είναι να διδάξουν τους υπολογιστές να «βλέπουν» όπως οι άνθρωποι θα χρειάζονταν πολύ περισσότερο χρόνο και προσπάθεια.
Ωστόσο, όταν λάβουμε υπόψη την πρακτική αξία που αυτή η δεξιότητα προσφέρει αυτή τη στιγμή σε οργανισμούς και επιχειρήσεις, η προσπάθεια αξίζει τον κόπο. Σε αυτό το άρθρο, θα μάθετε για την ταξινόμηση εικόνων, τον τρόπο λειτουργίας και την πρακτική εφαρμογή της. Ας ξεκινήσουμε.
Τι είναι η ταξινόμηση εικόνων;
Η δουλειά της τροφοδοσίας μιας εικόνας σε α νευρικό σύστημα και η έξοδος κάποιας μορφής ετικέτας για αυτήν την εικόνα είναι γνωστή ως αναγνώριση εικόνας. Η ετικέτα εξόδου του δικτύου θα αντιστοιχεί σε μια προκαθορισμένη κλάση.
Μπορεί να υπάρχουν πολλές τάξεις που έχουν ανατεθεί στην εικόνα, ή απλώς μία. Όταν υπάρχει μόνο μία κλάση, ο όρος «αναγνώριση» χρησιμοποιείται συχνά, ενώ όταν υπάρχουν πολλές κλάσεις, ο όρος «ταξινόμηση» χρησιμοποιείται συχνά.
Ανίχνευση αντικειμένων είναι ένα υποσύνολο ταξινόμησης εικόνων στο οποίο εντοπίζονται συγκεκριμένες περιπτώσεις αντικειμένων ότι ανήκουν σε μια δεδομένη κατηγορία όπως ζώα, οχήματα ή άνθρωποι.
Πώς λειτουργεί η ταξινόμηση εικόνων;
Μια εικόνα σε μορφή pixel αναλύεται από έναν υπολογιστή. Αυτό το επιτυγχάνει αντιμετωπίζοντας την εικόνα ως μια συλλογή πινάκων, το μέγεθος των οποίων καθορίζεται από την ανάλυση της εικόνας. Με απλά λόγια, η ταξινόμηση εικόνων είναι η μελέτη στατιστικών δεδομένων που χρησιμοποιούν αλγόριθμους από την οπτική γωνία ενός υπολογιστή.
Η ταξινόμηση εικόνων επιτυγχάνεται στην ψηφιακή επεξεργασία εικόνας ομαδοποιώντας τα pixel σε προκαθορισμένες ομάδες ή «τάξεις». Οι αλγόριθμοι χωρίζουν την εικόνα σε μια σειρά αξιοσημείωτων χαρακτηριστικών, γεγονός που μειώνει την επιβάρυνση για τον τελικό ταξινομητή.
Αυτές οι ιδιότητες ενημερώνουν τον ταξινομητή για το νόημα και την πιθανή ταξινόμηση της εικόνας. Επειδή οι υπόλοιπες διαδικασίες ταξινόμησης μιας εικόνας εξαρτώνται από αυτήν, η χαρακτηριστική μέθοδος εξαγωγής είναι η πιο κρίσιμη φάση.
Η παρεχόμενα δεδομένα στον αλγόριθμο είναι επίσης κρίσιμης σημασίας για την ταξινόμηση εικόνων, ειδικά την εποπτευόμενη ταξινόμηση. Σε σύγκριση με ένα τρομερό σύνολο δεδομένων με ανισορροπία δεδομένων βάσει κλάσης και χαμηλής ποιότητας εικόνας και σχολιασμού, ένα καλά βελτιστοποιημένο σύνολο δεδομένων ταξινόμησης αποδίδει θαυμάσια.
Ταξινόμηση εικόνων με χρήση Tensorflow & Keras σε python
Θα χρησιμοποιήσουμε το CIFAR-10 σύνολο δεδομένων (που περιλαμβάνει αεροσκάφη, αεροπλάνα, πουλιά και άλλα 7 πράγματα).
1. Απαιτήσεις εγκατάστασης
Ο παρακάτω κωδικός θα εγκαταστήσει όλα τα προαπαιτούμενα.
2. Εισαγωγή εξαρτήσεων
Δημιουργήστε ένα αρχείο train.py στην Python. Ο παρακάτω κώδικας θα εισάγει τις εξαρτήσεις Tensorflow και Keras.
3. Αρχικοποίηση παραμέτρων
Το CIFAR-10 περιλαμβάνει μόλις 10 κατηγορίες εικόνων, επομένως οι αριθμοί κλάσεων αναφέρονται απλώς στον αριθμό των κατηγοριών που πρέπει να ταξινομηθούν.
4. Φόρτωση του συνόλου δεδομένων
Η συνάρτηση χρησιμοποιεί τη λειτουργική μονάδα Tensorflow Datasets για να φορτώσει το σύνολο δεδομένων και ορίσαμε τις πληροφορίες σε True για να λάβουμε κάποιες πληροφορίες σχετικά με αυτό. Μπορείτε να το εκτυπώσετε για να δείτε ποια είναι τα πεδία και οι τιμές τους και θα χρησιμοποιήσουμε τις πληροφορίες για να ανακτήσουμε τον αριθμό των δειγμάτων στα σετ εκπαίδευσης και δοκιμής.
5. Δημιουργία του μοντέλου
Τώρα θα δημιουργήσουμε τρία επίπεδα, το καθένα αποτελούμενο από δύο ConvNets με max-pooling και λειτουργία ενεργοποίησης ReLU, ακολουθούμενα από ένα πλήρως συνδεδεμένο σύστημα 1024 μονάδων. Σε σύγκριση με το ResNet50 ή το Xception, τα οποία είναι μοντέλα τελευταίας τεχνολογίας, αυτό μπορεί να είναι ένα σχετικά μικρό μοντέλο.
6. Εκπαίδευση του μοντέλου
Χρησιμοποίησα το Tensorboard για να μετρήσω την ακρίβεια και τις απώλειες σε κάθε εποχή και να μας προσφέρω μια υπέροχη οθόνη μετά την εισαγωγή των δεδομένων και τη δημιουργία του μοντέλου. Εκτελέστε τον ακόλουθο κώδικα. ανάλογα με τη CPU/GPU σας, η εκπαίδευση θα διαρκέσει αρκετά λεπτά.
Για να χρησιμοποιήσετε το tensorboard, απλώς πληκτρολογήστε την ακόλουθη εντολή στο τερματικό ή στη γραμμή εντολών στον τρέχοντα κατάλογο:
Θα δείτε ότι η απώλεια επικύρωσης μειώνεται και η ακρίβεια αυξάνεται σε περίπου 81%. Αυτό είναι φανταστικό!
Δοκιμή του μοντέλου
Όταν τελειώσει η προπόνηση, το τελικό μοντέλο και τα βάρη αποθηκεύονται στον φάκελο αποτελεσμάτων, επιτρέποντάς μας να προπονηθούμε μία φορά και να κάνουμε προβλέψεις όποτε επιλέξουμε. Ακολουθήστε τον κώδικα σε ένα νέο αρχείο python που ονομάζεται test.py.
7. Εισαγωγή των βοηθητικών προγραμμάτων για δοκιμή
8. Δημιουργία καταλόγου python
Δημιουργήστε ένα λεξικό Python που μεταφράζει κάθε ακέραια τιμή στην κατάλληλη ετικέτα του συνόλου δεδομένων:
9. Φόρτωση δεδομένων δοκιμής & μοντέλου
Ο παρακάτω κώδικας θα φορτώσει τα δεδομένα δοκιμής και το μοντέλο.
10. Αξιολόγηση & Πρόβλεψη
Ο παρακάτω κώδικας θα αξιολογήσει και θα κάνει προβλέψεις για τις εικόνες βατράχου.
11. Αποτελέσματα
Το μοντέλο προέβλεψε τον βάτραχο με ακρίβεια 80.62%.
Συμπέρασμα
Εντάξει, τελειώσαμε με αυτό το μάθημα. Αν και το 80.62% δεν είναι καλό για λίγο CNN, σας συμβουλεύω ανεπιφύλακτα να αλλάξετε το μοντέλο ή να δείτε τα ResNet50, Xception ή άλλα μοντέλα αιχμής για καλύτερα αποτελέσματα.
Τώρα που δημιουργήσατε το πρώτο σας δίκτυο αναγνώρισης εικόνας στο Keras, θα πρέπει να πειραματιστείτε με το μοντέλο για να ανακαλύψετε πώς οι διαφορετικές παράμετροι επηρεάζουν την απόδοσή του.
Αφήστε μια απάντηση