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

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

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

Η ενότητα ArUco και η βιβλιοθήκη OpenCV

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

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

instagram viewer

Ρύθμιση του περιβάλλοντος σας

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

pip εγκατάσταση opencv-contrib-python

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

Ο πλήρης πηγαίος κώδικας είναι διαθέσιμος σε α Αποθετήριο GitHub.

Δημιουργία του προγράμματος ArUco Maker Generator

Η δημιουργία του προγράμματος δείκτη ArUco είναι αρκετά απλή. Αυτό συμβαίνει επειδή η μονάδα AruCo κάνει το μεγαλύτερο μέρος της ανύψωσης βαρέων για εσάς. Ξεκινήστε εισάγοντας το OpenCV για να μπορέσετε να χρησιμοποιήσετε τις λειτουργίες και τα εργαλεία του στον κώδικά σας.

εισαγωγή cv2

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

defgenerate_single_marker(aruco_dict):
δείκτης_μέγεθος = int (εισαγωγή("Εισαγάγετε το μέγεθος του δείκτη: "))
marker_id = int (εισαγωγή("Εισαγάγετε το αναγνωριστικό δείκτη: "))

marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
δείκτης_μέγεθος)

cv2.imwrite("marker_{}.png".format (marker_id), marker_img)

marker_img = cv2.imread("marker_{}.png".format (marker_id))

cv2.imshow("Σημάδι", marker_img)

Τυπώνω("Διαστάσεις:", marker_img.shape)

cv2.waitKey(0)

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

defgenerate_bulk_markers(aruco_dict):
δείκτης_μέγεθος = int (εισαγωγή("Εισαγάγετε το μέγεθος του δείκτη: "))
num_markers = int (εισαγωγή("Εισαγάγετε τον αριθμό των δεικτών για δημιουργία: "))
marker_imgs = []

Για δείκτης_αναγνωριστικό σε εύρος (αριθμοί_δείκτες):
marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
δείκτης_μέγεθος)

cv2.imwrite("marker_{}.png".format (marker_id), marker_img)
marker_imgs.append (cv2.imread("marker_{}.png".format (marker_id)))

Για marker_img σε marker_imgs:
cv2.imshow("Σημάδι", marker_img)
Τυπώνω("Διαστάσεις:", marker_img.shape)
cv2.waitKey(0)

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

defκύριος():
aruco_dict = cv2.aruco.getPredefinedDictionary (cv2.aruco. DICT_4X4_50)

user_input = input("Πατήστε "1" για να δημιουργήσετε έναν μόνο δείκτη ή "
""2" για να δημιουργήσετε δείκτες μαζικά: ")

αν user_input == "1":
generate_single_marker (aruco_dict)
ελιφ user_input == "2":
generate_bulk_markers (aruco_dict)
αλλού:
Τυπώνω("Μη έγκυρη εισαγωγή. ΠΑΡΑΚΑΛΩ προσπαθησε ξανα.")

αν __όνομα__ == "__κύριος__":
κύριος()

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

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

Τι γίνεται μετά τη δημιουργία δεικτών ArUco;

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