Απλή Ζωή

Η Επιστημονική Πειθαρχία της Όρασης Υπολογιστών

Αυτό το άρθρο δημοσιεύτηκε ως μέρος του Data Science Blogathon.

Εισαγωγή

Η τεχνητή νοημοσύνη και η μηχανική όραση, που παλαιότερα θεωρούνταν φουτουριστική τεχνολογία, έχουν πλέον γίνει κυρίαρχη, με ένα ευρύ φάσμα εφαρμογών που κυμαίνονται από την αυτοματοποιημένη συναρμολόγηση ρομπότ έως την αυτόματη καθοδήγηση οχήματος, την ανάλυση εικόνων τηλεπισκόπησης και την αυτοματοποιημένη οπτική επιθεώρηση. Το όραμα υπολογιστών και η βαθιά μάθηση είναι δύο από τα πιο καυτά θέματα αυτές τις μέρες, με κάθε τεχνολογική επιχείρηση, ακόμη και νεοφυείς επιχειρήσεις, να αγωνίζονται για να μείνουν μπροστά από το πακέτο. Σε αυτό το άρθρο, θα εξετάσουμε μερικές από τις βασικές ιδέες στο Deep Learning για το Computer Vision.

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

AI και Μηχανική Μάθηση
Πηγή: DevCommunitity.com

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

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

Τι είναι το Computer Vision (CV);

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

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

Τι είναι το Computer Vision
Πηγή: Medium.com

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

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

CNN: The Foundation of Modern Computer Vision

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

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

Modern Computer Vision Foundation
Πηγή: Medium.com

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

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

Deep Learning Architectures for Computer Vision

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

AlexNet (2012)

Η αρχιτεκτονική AlexNet βασίζεται στο σχέδιο LeNet. Έχει τρία πλήρως συνδεδεμένα στρώματα και πέντε συνελικτικά στρώματα. Για να διευκολυνθεί η χρήση δύο GPU κατά τη διάρκεια της εκπαίδευσης, το AlexNet έχει μια διάταξη διπλού αγωγού.

AlexNet (2012)
Πηγή: Run.ai

Αντί για τις συναρτήσεις ενεργοποίησης σιγμοειδούς ή Tanh που χρησιμοποιούνται σε τυπικά νευρωνικά δίκτυα, το AlexNet χρησιμοποιεί διορθωμένες γραμμικές μονάδες (ReLU). Το AlexNet μπορεί να εκπαιδεύσει μοντέλα πιο γρήγορα, επειδή το ReLU είναι απλούστερο και ταχύτερο στον υπολογισμό.

GoogleNet (2014)

Ο σχεδιασμός LeNet στηρίζει το GoogleNet, γνωστό και ως Inception V1. Αποτελείται από 22 επίπεδα που αποτελούνται από ενότητες έναρξης, οι οποίες είναι μικρές ομαδοποιήσεις συνελίξεων.

GoogleNet (2014)
Πηγή: Researchgate.com

Για να μειωθεί ο αριθμός των παραμέτρων που πρέπει να επεξεργαστεί το GoogleNet, αυτές οι ενότητες έναρξης χρησιμοποιούν κανονικοποίηση παρτίδας και RMSprop. Το RMSprop είναι μια προσέγγιση βελτιστοποίησης του ρυθμού μάθησης που χρησιμοποιεί προσαρμοστικές μεθοδολογίες ρυθμού μάθησης.

VGGNet (2014)

Η αρχιτεκτονική VGG 16 έχει 16 επίπεδα (ορισμένες παραλλαγές είχαν 19 επίπεδα). Το VGGNet έχει συνελικτικά στρώματα, ένα στρώμα συγκέντρωσης, μερικά ακόμη συνελικτικά στρώματα, ένα στρώμα συγκέντρωσης, μερικά ακόμη συνελικτικά στρώματα, ένα στρώμα συγκέντρωσης και ούτω καθεξής.

VGGNet (2014)
Πηγή: Run.ai

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

Xception (2016)

Το Xception είναι μια αρχιτεκτονική βασισμένη στο Inception που χρησιμοποιεί συνελίξεις που μπορούν να διαχωριστούν σε βάθος για να αντικαταστήσει τις μονάδες Inception (συνέλιξη σε βάθος ακολουθούμενη από συνελίξεις κατά σημείο).

Xception (2016)
Πηγή: Medium.com

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

The Promise of Deep Learning for Computer Vision

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

Οι υποσχέσεις της Deep Learning για το Computer Vision
Πηγή: Absolutecreative.com
  1. The Promise of Feature Learning: Αντί να απαιτείται η κατασκευή και ο καθορισμός ανιχνευτών χαρακτηριστικών από έναν ειδικό, οι προσεγγίσεις βαθιάς εκμάθησης ενδέχεται να μάθουν αυτόματα τα χαρακτηριστικά από δεδομένα εικόνας που απαιτούνται από το μοντέλο.
  2. Η υπόσχεση της συνεχούς βελτίωσης: Η απόδοση του Deep Learning στην όραση υπολογιστών βασίζεται σε δεδομένα του πραγματικού κόσμου και η πρόοδος φαίνεται να συνεχίζεται, αν όχι να επιταχύνεται.
  3. The Promise of End-to-End Models: Τεράστια μοντέλα βαθιάς εκμάθησης από άκρο σε άκρο μπορούν να τοποθετηθούν σε μεγάλα σύνολα δεδομένων εικόνων ή βίντεο, με αποτέλεσμα μια πιο γενική και αποτελεσματική μέθοδο.

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

Χρήσεις της βαθιάς μάθησης στην όραση υπολογιστών

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

Θήκες χρηστών Deep Learning στο Computer Vision
Πηγή: Hackernoon.com
  1. Εντοπισμός και εντοπισμός αντικειμένων: Ο όρος “τοπικοποίηση εικόνας” αναφέρεται στη διαδικασία προσδιορισμού πού βρίσκονται τα στοιχεία σε μια εικόνα. Τα αντικείμενα υποδεικνύονται με ένα πλαίσιο οριοθέτησης μόλις αναγνωριστούν. Η ανίχνευση αντικειμένων το κάνει ένα βήμα παραπέρα ταξινομώντας τα αντικείμενα που έχουν εντοπιστεί. Σε αυτή την τεχνική χρησιμοποιούνται CNN.
  2. Σημασιολογική κατάτμηση: Η τμηματοποίηση αντικειμένων, γνωστή και ως σημασιολογική τμηματοποίηση, είναι παρόμοια με την ανίχνευση αντικειμένων, εκτός από το ότι βασίζεται στα συγκεκριμένα εικονοστοιχεία που σχετίζονται με ένα αντικείμενο. Αυτό επιτρέπει τον ακριβέστερο ορισμό των αντικειμένων εικόνας χωρίς την ανάγκη οριοθέτησης πλαισίων. Πλήρως συνελικτικά δίκτυα (FCN) ή U-Nets χρησιμοποιούνται συχνά για σημασιολογική τμηματοποίηση. Η εκπαίδευση των αυτόνομων οχημάτων είναι μια αξιοσημείωτη χρήση για τη σημασιολογική κατάτμηση.
  3. Εκτίμηση πόζας: Η εκτίμηση πόζας είναι μια τεχνική για τον προσδιορισμό του πού βρίσκονται οι αρθρώσεις σε μια φωτογραφία ενός ατόμου ή ενός αντικειμένου, καθώς και τι σημαίνει η τοποθέτησή τους. Μπορούν να χρησιμοποιηθούν και 2D και 3D φωτογραφίες με αυτό. Το PostNet, μια αρχιτεκτονική που βασίζεται στο CNN, είναι η πιο συχνά χρησιμοποιούμενη αρχιτεκτονική για την εκτίμηση πόζας. Η εκτίμηση πόζας είναι μια τεχνική για την πρόβλεψη του πού θα εμφανιστούν τμήματα του σώματος σε μια εικόνα και μπορεί να χρησιμοποιηθεί για τη δημιουργία ρεαλιστικών ανθρώπινων στάσεων και κίνησης.

Βασική εφαρμογή Python

Μοντέλο ταξινόμησης εικόνας

Ένα νέο πρότυπο σύνολο δεδομένων για την όραση υπολογιστών και τη βαθιά μάθηση είναι η πρόκληση ταξινόμησης ρούχων Fashion-MNIST. Είναι μια συλλογή 60.000 μικρών τετράγωνων φωτογραφιών σε κλίμακα του γκρι 2828 pixel με προϊόντα από δέκα διαφορετικές κατηγορίες ενδυμάτων, όπως παπούτσια, μπλουζάκια, φορέματα και άλλα.

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

from keras.datasets import fashion_mnist
from keras.utils import to_categorical
from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Dense
from keras.layers import Flatten
# load dataset
(trainX, trainY), (testX, testY) = fashion_mnist.load_data()
trainX = trainX.reshape((trainX.shape[0], 28, 28, 1))
testX = testX.reshape((testX.shape[0], 28, 28, 1))
# convert from integers to floats
trainX, testX = trainX.astype('float32'), testX.astype('float32')
# normalize to range 0-1
trainX,testX = trainX / 255, testX / 255
# one hot encode target values
trainY, testY = to_categorical(trainY), to_categorical(testY)
# define model
model = Sequential()
model.add(Conv2D(32.0, (3.0, 3.0), activation='relu', kernel_initializer="he_uniform", input_shape=(28.0, 28.0, 1.0)))
model.add(MaxPooling2D())
model.add(Flatten())
model.add(Dense(100, activation='relu', kernel_initializer="he_uniform"))
model.add(Dense(10, activation='softmax'))
model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=['accuracy'])
# fit model
model.fit(trainX, trainY, epochs=10, batch_size=32, verbose=2)
# evaluate model
loss, acc = model.evaluate(testX, testY, verbose=0)
print(loss, acc)

συμπέρασμα

  1. Η όραση υπολογιστή απαιτεί μεγάλο όγκο δεδομένων. Περνάει από τη διαδικασία επεξεργασίας δεδομένων ξανά και ξανά μέχρι να εντοπίσει διακρίσεις και, τελικά, να αναγνωρίσει εικόνες.
  2. Η βαθιά μάθηση, ένα είδος μηχανικής μάθησης και ένα συνελικτικό νευρωνικό δίκτυο (CNN) είναι δύο βασικές τεχνολογίες που χρησιμοποιούνται στο βιογραφικό.
  3. Οι τεχνικές υπολογιστικής όρασης είναι υπολογιστικά ακριβές και σε κλίμακα, μπορεί να απαιτούνται πολλές GPU.
  4. Η βαθιά μάθηση έχει φέρει επανάσταση στον τομέα της όρασης των υπολογιστών, φέρνοντας αποτελεσματικές απαντήσεις σε προβλήματα που προηγουμένως παρέμεναν άλυτα.

Τα μέσα που εμφανίζονται σε αυτό το άρθρο δεν ανήκουν στο Analytics Vidhya και χρησιμοποιούνται κατά την κρίση του συγγραφέα.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button