OpenCV Edge Detection σε Python με cv2.Canny() PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ανίχνευση άκρων OpenCV σε Python με cv2.Canny()

Εισαγωγή

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

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

Ανίχνευση Canny Edge

Τι είναι η μέθοδος Canny; Αποτελείται από τέσσερις διακριτές λειτουργίες:

  • Γκαουσιανή εξομάλυνση
  • Υπολογιστικές κλίσεις
  • Μη Μέγιστη Καταστολή
  • Κατώφλι υστέρησης

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

Διαβαθμίσεις εικόνας έχουν χρησιμοποιηθεί σε προηγούμενες εφαρμογές για την ανίχνευση ακμών. Πιο συγκεκριμένα, τα φίλτρα Sobel και Scharr βασίζονται σε διαβαθμίσεις εικόνας. Το φίλτρο Sobel βράζει σε δύο πυρήνες (Gx και Gy), όπου Gx ανιχνεύει οριζόντιες αλλαγές, ενώ Gy ανιχνεύει κάθετες αλλαγές:

G

x

=

[

-
1

0

+
1

-
2

0

+
2

-
1

0

+
1

]

G

y

=

[

-
1

-
2

-
1

0

0

0

+
1

+
2

+
1

]

Όταν τα σύρετε πάνω από μια εικόνα, το καθένα θα «σηκώσει» (τονίσει) τις γραμμές στον αντίστοιχο προσανατολισμό τους. Οι πυρήνες Scharr λειτουργούν με τον ίδιο τρόπο, με διαφορετικές τιμές:

G

x

=

[

+
3

0

-
3

+
10

0

-
10

+
3

0

-
3

]

G

y

=

[

+
3

+
10

+
3

0

0

0

-
3

-
10

-
3

]

Αυτά τα φίλτρα, αφού περιστραφούν πάνω από την εικόνα, θα παράγουν χάρτες χαρακτηριστικών:

OpenCV Edge Detection σε Python με cv2.Canny() PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Πίστωση εικόνας: Davidwkennedy

Για αυτούς τους χάρτες χαρακτηριστικών, μπορείτε να υπολογίσετε το μέγεθος κλίσης και προσανατολισμό κλίσης – δηλαδή πόσο έντονη είναι η αλλαγή (πόσο πιθανό είναι κάτι να είναι άκρο) και προς ποια κατεύθυνση δείχνει η αλλαγή. Εφόσον το Gy υποδηλώνει την κατακόρυφη αλλαγή (βαθμίδα Υ) και το Gx την οριζόντια αλλαγή (βαθμίδα Χ) – μπορείτε να υπολογίσετε το μέγεθος εφαρμόζοντας απλώς το Πυθαγόρειο θεώρημα, για να λάβετε την υπόθεση του τριγώνου που σχηματίζεται από το «αριστερό» και «σωστές» οδηγίες:

$$
{G} ={sqrt {{{G} _{x}}^{2}+{{G} _{y}}^{2}}}
$$

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

OpenCV Edge Detection σε Python με cv2.Canny() PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Πίστωση εικόνας: Davidwkennedy

Ωστόσο – μπορείτε να δείτε πόσος θόρυβος πιάστηκε επίσης από την κατασκευή των τούβλων! Οι διαβαθμίσεις εικόνας είναι πολύ ευαίσθητες στο θόρυβο. Αυτός είναι ο λόγος για τον οποίο τα φίλτρα Sobel και Scharr χρησιμοποιήθηκαν ως συστατικό, αλλά όχι η μόνη προσέγγιση στη μέθοδο του Canny. Η Gaussian εξομάλυνση βοηθάει και εδώ.

Μη Μέγιστη Καταστολή

Ένα αξιοσημείωτο πρόβλημα με το φίλτρο Sobel είναι ότι οι άκρες δεν είναι πραγματικά καθαρές. Δεν είναι σαν κάποιος να πήρε ένα μολύβι και να τράβηξε μια γραμμή για να δημιουργήσει γραμμική εικόνα της εικόνας. Οι άκρες συνήθως δεν είναι τόσο καθαρές στις εικόνες, καθώς το φως διαχέεται σταδιακά. Ωστόσο, μπορούμε να βρούμε την κοινή γραμμή στις άκρες και να καταπιέσουμε τα υπόλοιπα pixel γύρω από αυτήν, δημιουργώντας μια καθαρή, λεπτή γραμμή διαχωρισμού. Αυτό είναι γνωστό ως Non-Max Supression! Τα μη μέγιστο εικονοστοιχεία (αυτά με τα οποία τα συγκρίνουμε σε ένα μικρό τοπικό πεδίο, όπως ένας πυρήνας 3×3) αποκρύπτονται. Η ιδέα είναι εφαρμόσιμη σε περισσότερες εργασίες από αυτήν, αλλά ας τη συνδέσουμε με αυτό το πλαίσιο προς το παρόν.

Κατώφλι υστέρησης

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

Το όριο λειτουργεί με τον ίδιο τρόπο όπως συνήθως - εάν η διαβάθμιση είναι κάτω από ένα χαμηλότερο όριο, αφαιρέστε το (μηδενίστε το) και εάν είναι πάνω από ένα δεδομένο ανώτατο όριο, διατηρήστε το. Τα πάντα μεταξύ του κάτω ορίου και του άνω ορίου βρίσκονται στη «γκρίζα ζώνη». Εάν οποιαδήποτε ακμή μεταξύ των κατωφλίων συνδέεται με α οριστική άκρη (αυτά πάνω από το κατώφλι) – θεωρούνται επίσης άκρες. Εάν δεν είναι συνδεδεμένα, είναι πιθανότατα λάθη μιας εσφαλμένης υπολογισμένης ακμής.

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

Ας φορτώσουμε μια εικόνα και ας την κλίμακα του γκρι (Canny, ακριβώς όπως ο Sobel/Scharr απαιτεί οι εικόνες να είναι σε κλίμακα του γκρι):

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('finger.jpg', cv2.IMREAD_GRAYSCALE)
img_blur = cv2.GaussianBlur(img, (3,3), 0)

plt.imshow(img_blur, cmap='gray')

OpenCV Edge Detection σε Python με cv2.Canny() PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

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

Ανίχνευση άκρων σε εικόνες με cv2.Canny()

Ο αλγόριθμος του Canny μπορεί να εφαρμοστεί χρησιμοποιώντας το OpenCV Canny() μέθοδος:

cv2.Canny(input_img, lower_bound, upper_bound)

Ρίξτε μια ματιά στον πρακτικό μας οδηγό για την εκμάθηση του Git, με βέλτιστες πρακτικές, πρότυπα αποδεκτά από τον κλάδο και συμπεριλαμβανόμενο φύλλο εξαπάτησης. Σταματήστε τις εντολές του Git στο Google και πραγματικά μαθαίνουν το!

Η εύρεση της σωστής ισορροπίας μεταξύ του κάτω και του άνω ορίου μπορεί να είναι δύσκολη. Εάν και τα δύο είναι χαμηλά - θα έχετε λίγες άκρες. Εάν το κάτω όριο είναι χαμηλό και το επάνω υψηλό - θα έχετε θόρυβο. Αν και τα δύο είναι ψηλά και κοντά το ένα στο άλλο – θα έχετε λίγες άκρες. Το σωστό σημείο έχει αρκετό κενό μεταξύ των ορίων και τα έχει στη σωστή κλίμακα. Πείραμα!

Η εικόνα εισόδου θα θολωθεί με τη μέθοδο Canny, αλλά πολλές φορές θα επωφεληθείτε από τη θόλωση της πριν μπαίνει και αυτό. Η μέθοδος εφαρμόζει ένα θάμπωμα Gaussian 5×5 στην είσοδο πριν από τις υπόλοιπες λειτουργίες, αλλά ακόμα και με αυτό το θάμπωμα, κάποιος θόρυβος μπορεί να διαρρεύσει, επομένως θολώσαμε την εικόνα πριν την τροφοδοτήσουμε στον αλγόριθμο:


edge = cv2.Canny(img_blur, 20, 30)

fig, ax = plt.subplots(1, 2, figsize=(18, 6), dpi=150)
ax[0].imshow(img, cmap='gray')
ax[1].imshow(edge, cmap='gray')

Αυτο εχει ως αποτελεσμα:

OpenCV Edge Detection σε Python με cv2.Canny() PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Οι τιμές του 20 και 30 εδώ δεν είναι αυθαίρετα – Δοκίμασα τη μέθοδο σε διάφορες παραμέτρους και επέλεξα ένα σύνολο που φαινόταν να παράγει ένα αξιοπρεπές αποτέλεσμα. Μπορούμε να προσπαθήσουμε να το αυτοματοποιήσουμε;

Αυτοματοποιημένο όριο για cv2.Canny();

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

lower_bound = (1-sigma)*threshold
upper_bound = (1+sigma)*threshold

Όταν sigma, λέγεται, 0.33 – τα όρια θα είναι 0.66*threshold και 1.33*threshold, επιτρέποντας ένα εύρος ~ 1/3 γύρω από αυτό. Ωστόσο, βρίσκοντας το threshold είναι το πιο δύσκολο. Το OpenCV μας παρέχει τη μέθοδο του Otsu (λειτουργεί εξαιρετικά για εικόνες διπλής λειτουργίας) και τη μέθοδο Triangle. Ας δοκιμάσουμε και τα δύο, καθώς και λαμβάνοντας μια απλή διάμεσο των τιμών των pixel ως τρίτη επιλογή:

otsu_thresh, _ = cv2.threshold(img_blur, 0, 255, cv2.THRESH_OTSU)
triangle_thresh, _ = cv2.threshold(img_blur, 0, 255, cv2.THRESH_TRIANGLE)
manual_thresh = np.median(img_blur)

def get_range(threshold, sigma=0.33):
    return (1-sigma) * threshold, (1+sigma) * threshold

otsu_thresh = get_range(otsu_thresh)
triangle_thresh = get_range(triangle_thresh)
manual_thresh = get_range(manual_thresh)

print(f"Otsu's Threshold: {otsu_thresh} nTriangle Threshold: {triangle_thresh} nManual Threshold: {manual_thresh}")

Αυτο εχει ως αποτελεσμα:

Otsu's Threshold: (70.35, 139.65) 
Triangle Threshold: (17.419999999999998, 34.58) 
Manual Threshold: (105.18999999999998, 208.81)

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

Αν τρέξουμε το Canny() μέθοδος με αυτά τα εύρη κατωφλίου:

edge_otsu = cv2.Canny(img_blur, *otsu_thresh)
edge_triangle = cv2.Canny(img_blur, *triangle_thresh)
edge_manual = cv2.Canny(img_blur, *manual_thresh)

fig, ax = plt.subplots(1, 3, figsize=(18, 6), dpi=150)
ax[0].imshow(edge_otsu, cmap='gray')
ax[1].imshow(edge_triangle, cmap='gray')
ax[2].imshow(edge_manual, cmap='gray')

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

Αυτο εχει ως αποτελεσμα:

OpenCV Edge Detection σε Python με cv2.Canny() PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

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

Ανίχνευση άκρων σε πραγματικό χρόνο σε βίντεο με cv2.Canny()

Τέλος, ας εφαρμόσουμε την ανίχνευση Canny edge σε ένα βίντεο σε πραγματικό χρόνο! Θα εμφανίσουμε το βίντεο που υποβάλλεται σε επεξεργασία (κάθε καρέ όπως έχει γίνει) χρησιμοποιώντας cv2.imshow() που εμφανίζει ένα παράθυρο με το πλαίσιο που θα θέλαμε να εμφανίσουμε. Ωστόσο, θα αποθηκεύσουμε επίσης το βίντεο σε ένα αρχείο MP4 που μπορεί αργότερα να επιθεωρηθεί και να μοιραστεί.

Για να φορτώσουμε ένα βίντεο χρησιμοποιώντας το OpenCV, χρησιμοποιούμε το VideoCapture() μέθοδος. Αν περάσουμε μέσα 0 – θα κάνει εγγραφή από την τρέχουσα κάμερα web, ώστε να μπορείτε να εκτελέσετε τον κώδικα και στην κάμερα web! Εάν μεταβιβάσετε ένα όνομα αρχείου, θα φορτώσει το αρχείο:

def edge_detection_video(filename):
    cap = cv2.VideoCapture(filename)
    
    fourcc = cv2.VideoWriter_fourcc(*'MP4V')
    out = cv2.VideoWriter('output.mp4', fourcc, 30.0, (int(cap.get(3)), int(cap.get(4))), isColor=False)
    
    while cap.isOpened():
        (ret, frame) = cap.read()
        if ret == True:
            frame = cv2.GaussianBlur(frame, (3, 3), 0)
            frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            edge = cv2.Canny(frame, 50, 100)
            out.write(edge)
            cv2.imshow('Edge detection', edge)
        else:
            break

        if cv2.waitKey(10) & 0xFF == ord('q'):
            break

    cap.release()
    out.release()
    cv2.destroyAllWindows()

edge_detection_video('secret_video.mp4')

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

Ενώ ανοίγει η λήψη, προσπαθούμε να διαβάσουμε το επόμενο καρέ με cap.read(), το οποίο επιστρέφει έναν κωδικό αποτελέσματος και το επόμενο πλαίσιο. Ο κωδικός αποτελέσματος είναι True or False, που δηλώνει την παρουσία του επόμενου καρέ ή την έλλειψή του. Μόνο όταν υπάρχει πλαίσιο, θα προσπαθήσουμε να το επεξεργαστούμε περαιτέρω, διαφορετικά, θα σπάσουμε τον βρόχο. Για κάθε έγκυρο πλαίσιο, το περνάμε μέσα από μια γκαουσιανή θαμπάδα, το μετατρέπουμε σε κλίμακα του γκρι, τρέχουμε cv2.Canny() πάνω του και γράψτε το χρησιμοποιώντας το VideoWriter στο δίσκο και εμφανίστε χρησιμοποιώντας cv2.imshow() για ζωντανή προβολή.

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

Όταν εκτελείτε τη μέθοδο με a secret_video.mp4 input – θα δείτε ένα αναδυόμενο παράθυρο και μόλις ολοκληρωθεί, ένα αρχείο στον κατάλογο εργασίας σας:

OpenCV Edge Detection σε Python με cv2.Canny() PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Συμπέρασμα

Σε αυτόν τον οδηγό, ρίξαμε μια ματιά στον τρόπο με τον οποίο λειτουργεί η ανίχνευση άκρων Canny και τα συστατικά μέρη της - gaussian smoothing, φίλτρα Sobel και διαβαθμίσεις εικόνας, Non-Max Supression και Hysteresis Thresholding. Τέλος, εξερευνήσαμε μεθόδους για την αυτοματοποιημένη αναζήτηση εύρους ορίου για τον εντοπισμό άκρων Canny με cv2.Canny(), και χρησιμοποίησε την τεχνική σε ένα βίντεο, παρέχοντας ανίχνευση άκρων σε πραγματικό χρόνο και αποθηκεύοντας τα αποτελέσματα σε ένα αρχείο βίντεο.

Going Further – Πρακτική βαθιά μάθηση για το Computer Vision

Η περιπετειώδης φύση σας σας κάνει να θέλετε να πάτε παραπέρα; Σας προτείνουμε να ελέγξετε το δικό μας Πορεία: "Πρακτική βαθιά μάθηση για την όραση υπολογιστή με Python".

OpenCV Edge Detection σε Python με cv2.Canny() PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ένα άλλο μάθημα Computer Vision;

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

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

Τι είναι μέσα?

  • Οι πρώτες αρχές της όρασης και πώς οι υπολογιστές μπορούν να διδαχθούν να «βλέπουν»
  • Διαφορετικές εργασίες και εφαρμογές της όρασης υπολογιστή
  • Τα εργαλεία του εμπορίου που θα κάνουν τη δουλειά σας πιο εύκολη
  • Εύρεση, δημιουργία και χρήση συνόλων δεδομένων για την όραση υπολογιστή
  • Η θεωρία και η εφαρμογή των συνελικτικών νευρωνικών δικτύων
  • Χειρισμός μετατόπισης τομέα, συνεμφάνισης και άλλων προκαταλήψεων στα σύνολα δεδομένων
  • Μεταφέρετε τη μάθηση και χρησιμοποιείτε τον χρόνο εκπαίδευσης και τους υπολογιστικούς πόρους άλλων προς όφελός σας
  • Κατασκευή και εκπαίδευση ενός υπερσύγχρονου ταξινομητή καρκίνου του μαστού
  • Πώς να εφαρμόσετε μια υγιή δόση σκεπτικισμού στις επικρατούσες ιδέες και να κατανοήσετε τις επιπτώσεις των ευρέως υιοθετημένων τεχνικών
  • Οπτικοποίηση του «εννοιολογικού χώρου» ενός ConvNet χρησιμοποιώντας t-SNE και PCA
  • Μελέτες περίπτωσης για το πώς οι εταιρείες χρησιμοποιούν τεχνικές όρασης υπολογιστή για να επιτύχουν καλύτερα αποτελέσματα
  • Σωστή αξιολόγηση μοντέλου, οπτικοποίηση λανθάνοντος χώρου και αναγνώριση της προσοχής του μοντέλου
  • Εκτέλεση έρευνας τομέα, επεξεργασία των δικών σας συνόλων δεδομένων και δημιουργία δοκιμών μοντέλων
  • Αρχιτεκτονικές αιχμής, η εξέλιξη των ιδεών, τι τις κάνει μοναδικές και πώς να τις εφαρμόσετε
  • KerasCV – μια βιβλιοθήκη WIP για τη δημιουργία αγωγών και μοντέλων τελευταίας τεχνολογίας
  • Πώς να αναλύετε και να διαβάζετε έγγραφα και να τα εφαρμόζετε μόνοι σας
  • Επιλογή μοντέλων ανάλογα με την εφαρμογή σας
  • Δημιουργία ενός αγωγού μηχανικής εκμάθησης από άκρο σε άκρο
  • Τοπίο και διαίσθηση για την ανίχνευση αντικειμένων με ταχύτερα R-CNN, RetinaNets, SSD και YOLO
  • Παρουσίαση και σημασιολογική κατάτμηση
  • Αναγνώριση αντικειμένων σε πραγματικό χρόνο με το YOLOv5
  • Εκπαίδευση ανιχνευτών αντικειμένων YOLOv5
  • Εργασία με μετασχηματιστές χρησιμοποιώντας KerasNLP (βιβλιοθήκη WIP με αντοχή στη βιομηχανία)
  • Ενσωμάτωση Transformers με ConvNets για τη δημιουργία λεζάντων εικόνων
  • DeepDream
  • Βελτιστοποίηση μοντέλου Deep Learning για όραση υπολογιστή

Σφραγίδα ώρας:

Περισσότερα από Stackabuse