Průvodci a kontrolní seznamy·Technologie· 7 min read

Rozšířená realita pomocí značek ArUco v OpenCV

V této příručce se seznámíme s tím, jak vytvořit aplikaci rozšířené reality pomocí značek ArUco a knihovny OpenCV v jazyce Python.

Olena Dontsova
Olena Dontsova

Head of Marketing

Rozšířená realita pomocí značek ArUco v OpenCV

Úvod do rozšířené reality a značek ArUco

Rozšířená realita (AR) se stala transformativní technologií, která překlenuje propast mezi fyzickou a digitální sférou. Na rozdíl od virtuální reality (VR), která vytváří zcela pohlcující digitální prostředí, rozšiřuje rozšířená realita naše zážitky z reálného světa překrýváním virtuálního obsahu do fyzického prostředí. Toto spojení reálného a digitálního světa otevírá řadu možností v různých oblastech, od zábavy a vzdělávání až po zdravotnictví a průmyslové aplikace.

V AR jsou digitální informace, jako jsou obrázky, videa, animace a 3D modely, plynule integrovány do uživatelova pohledu na reálný svět. Tato integrace může probíhat prostřednictvím zařízení, jako jsou chytré telefony, tablety, chytré brýle, a dokonce i specializované náhlavní soupravy AR. Představte si, že můžete při cestování vidět kontextové informace o pamětihodnostech, vizualizovat si nábytek v domácnosti před jeho nákupem nebo získat pokyny krok za krokem překryté skutečným objektem při opravě.

Představení markerů ArUco a jejich významu

Jednou z klíčových výzev v oblasti rozšířené reality je přesné ukotvení digitálního obsahu v reálném světě. Zde přicházejí ke slovu markery. Markery jsou speciálně navržené vzory, které algoritmy počítačového vidění snadno detekují a rozpoznají. Slouží jako referenční body ve fyzickém prostředí a umožňují systémům AR pochopit polohu a orientaci zařízení uživatele vzhledem k těmto značkám.

Značky ArUco, zkratka pro "Augmented Reality University of Cordoba", jsou typem čtvercových značek, které si získaly popularitu pro aplikace AR založené na značkách. Tyto markery mají několik vlastností, které je činí ideálními pro sledování:

Jednoduchost

Značky ArUco se skládají z jednoduché mřížky černých a bílých čtverců, takže je lze snadno generovat, tisknout a detekovat.

Výrazné vzory

Každá značka má ve svém uspořádání čtverců zakódován jedinečný vzor, který umožňuje spolehlivou identifikaci.

Robustní detekce

Značky ArUco jsou navrženy tak, aby byly detekovatelné i v náročných podmínkách, například při různém osvětlení a pod různými úhly.
Značky ArUco slouží jako vizuální kotvy v prostředí a umožňují systémům rozšířené reality přesně překrýt digitální obsah na fyzický svět. Když kamera nebo zařízení zachytí scénu obsahující značky ArUco, může systém AR použít techniky počítačového vidění k rozpoznání a analýze polohy a orientace značek. Tyto informace tvoří základ pro zarovnání a vykreslení virtuálního obsahu způsobem, který se plynule integruje s pohledem uživatele.

Rozšířená realita pomocí značek ArUco v OpenCV

                               
                           
                       
                           

Použití OpenCV pro rozšířenou realitu

V tomto tutoriálu využijeme sílu OpenCV, všestranné a široce používané open-source knihovny počítačového vidění, k implementaci rozšířené reality pomocí značek ArUco. OpenCV poskytuje množství funkcí a nástrojů pro zpracování obrazu, detekci vzorů, kalibraci kamery a další. Kombinací schopností OpenCV a markerů ArUco můžeme vytvořit robustní zážitek z rozšířené reality, který detekuje markery, odhaduje jejich polohu a rozšiřuje realitu o virtuální obsah.

V dalších částech tohoto tutoriálu se budeme věnovat podrobnostem generování značek ArUco, kalibraci kamery, detekci značek, odhadu jejich polohy a nakonec překrytí digitálního obsahu značkami. Na konci této příručky již budete dobře rozumět tomu, jak vytvářet vlastní aplikace rozšířené reality pomocí markerů ArUco a OpenCV, což vám otevře dveře k nesčetným kreativním možnostem ve světě rozšířené reality.

Předpoklady

Než začnete, ujistěte se, že máte nainstalovány následující předpoklady:

  • Python (verze 3.6 nebo vyšší)
  • Knihovna OpenCV (pip install opencv-python ).
  • Knihovna Numpy (pip install numpy ).

Generování značek ArUco

Značky ArUco jsou speciální vzory, které algoritmy počítačového vidění snadno detekují a rozpoznávají. Začněme generováním sady markerů ArUco pomocí OpenCV.

python

import cv2import cv2.aruco as arucoimport numpy as np# Create a dictionary of ArUco markersaruco_dict = aruco.Dictionary_get(aruco.DICT_6X6_250)# Create and save multiple ArUco markersfor i in range(5):    marker_image = aruco.drawMarker(aruco_dict, i, 200)    cv2.imwrite(f"marker_{i}.png", marker_image)

Tento kód vygeneruje pět značek ArUco a uloží je jako obrazové soubory.

Kalibrace kamery

Pro přesnou detekci značek a odhad polohy je klíčová kalibrace kamery. Pořiďte několik snímků šachovnicového obrazce z různých úhlů a použijte je ke kalibraci kamery.

python

# Capture images for camera calibration# ...# Perform camera calibration# ...# Save calibration parameters# ...

Detekce markerů a odhad polohy

Zachytíme video z kamery a detekujeme značky ArUco v reálném čase. Odhadneme polohu a orientaci (pózu) detekovaných markerů.

# Initialize camera and marker detectorcap = cv2.VideoCapture(0)parameters = aruco.DetectorParameters_create()while True:    ret, frame = cap.read()        # Detect ArUco markers    corners, ids, _ = aruco.detectMarkers(frame, aruco_dict, parameters=parameters)        if ids is not None:        # Draw markers and estimate poses        rvecs, tvecs, _ = aruco.estimatePoseSingleMarkers(corners, 0.05, camera_matrix, dist_coeffs)        for i in range(ids.size):            aruco.drawAxis(frame, camera_matrix, dist_coeffs, rvecs[i], tvecs[i], 0.1)        cv2.imshow("AR using ArUco", frame)        if cv2.waitKey(1) & 0xFF == ord('q'):        breakcap.release()cv2.destroyAllWindows()

Tento kód zachycuje video z kamery, detekuje značky ArUco, odhaduje jejich polohu a vizualizuje zážitek z rozšířené reality vykreslením souřadnicových os na značkách.

Rozšíření reality

Nyní rozšíříme realitu překrytím virtuálního obsahu na detekované značky ArUco.

# Load virtual content (image or 3D model)content = cv2.imread("virtual_content.png") # Load your content herewhile True:    ret, frame = cap.read()        # Detect ArUco markers    corners, ids, _ = aruco.detectMarkers(frame, aruco_dict, parameters=parameters)        if ids is not None:        for i in range(ids.size):            # Estimate marker pose            rvec, tvec = aruco.estimatePoseSingleMarkers(corners[i], 0.05, camera_matrix, dist_coeffs)                        # Project virtual content onto the marker            # ...                    # Draw markers        aruco.drawDetectedMarkers(frame, corners, ids)        cv2.imshow("AR using ArUco", frame)        if cv2.waitKey(1) & 0xFF == ord('q'):        breakcap.release()cv2.destroyAllWindows()

V této části načtete vlastní virtuální obsah (obrázek nebo 3D model) a promítnete jej na značky na základě jejich odhadovaných poloh.

Gratulujeme!

Naučili jste se vytvořit aplikaci rozšířené reality pomocí markerů ArUco a OpenCV. Tento průvodce se zabýval generováním markerů, kalibrací kamery, detekcí markerů, odhadem pózy a rozšířením reality o virtuální obsah. Neváhejte dále zkoumat, přidávat interaktivitu nebo experimentovat s pokročilejšími funkcemi.

Nezapomeňte, že rozšířená realita nabízí nekonečné možnosti kreativních aplikací a tento průvodce slouží jako pevný základ pro vytváření vlastních zážitků s rozšířenou realitou.

Reference

Nebojte se rozšířit jednotlivé části a upravit kód podle svých potřeb. Tento komplexní průvodce by měl čtenářům poskytnout hluboké pochopení toho, jak implementovat rozšířenou realitu pomocí značek ArUco a OpenCV.

New Articles

New blog posts you may be interested in

Jak firmy ztrácí kontrolu: příliš nástrojů, příliš excelů, příliš verzí pravdy

Jak firmy ztrácí kontrolu: příliš nástrojů, příliš excelů, příliš verzí pravdy

Řešení na míruObchodní řešení a strategie
6 minut čtení

Mnoho firem si digitalizaci nepokazí tím, že by nic nedělaly. Naopak. Postupně nakoupí řadu nástrojů, z nichž každý řeší malou část jejich fungování. Jenže časem zjistí, že místo jednoho funkčního systému mají roztříštěné procesy, nedůvěryhodná data a lidi, kteří si pro jistotu vedou vlastní excelové tabulky bokem.

Číst dále
Jak propojit logistiku, finance a reporting do jednoho automatizovaného procesu

Jak propojit logistiku, finance a reporting do jednoho automatizovaného procesu

Řešení na míruObchodní řešení a strategie
11 minut čtení

Tímto článkem bychom rádi rozebrali situaci, se kterou jsme se v praxi již několikrát setkali. Netýká se samozřejmě v určitých ohledech jen logistických společnosti, ale pro dnešek to využijeme jako příklad.

Číst dále
Praktický obchodní a technický průvodce pro 2D a 3D konfigurátory

Praktický obchodní a technický průvodce pro 2D a 3D konfigurátory

Průvodci a kontrolní seznamyTechnologie
17 minut čtení

V tomto článku Jakub Bily sdílí praktický přístup k výběru správného konfigurátoru. Vysvětluje, kdy dává smysl 2D řešení, kdy je vhodnější 3D a kdy má smysl přidat AR (augmentovanou realitu) jako doplněk. Popisuje také, co má obvykle největší vliv na rozpočet vývoje a jak může integrace s e-commerce platformou nebo výrobními systémy změnit celý prodejní proces. Článek se krátce dotýká i technické stránky tvorby 3D konfigurátoru, včetně napojení na stávající systémy. To vše vycházející z reálných zkušeností z praxe.

Číst dále

Read also

Recommended reads for You

Jak firmy ztrácí kontrolu: příliš nástrojů, příliš excelů, příliš verzí pravdy

Jak firmy ztrácí kontrolu: příliš nástrojů, příliš excelů, příliš verzí pravdy

Řešení na míruObchodní řešení a strategie
6 minut čtení

Mnoho firem si digitalizaci nepokazí tím, že by nic nedělaly. Naopak. Postupně nakoupí řadu nástrojů, z nichž každý řeší malou část jejich fungování. Jenže časem zjistí, že místo jednoho funkčního systému mají roztříštěné procesy, nedůvěryhodná data a lidi, kteří si pro jistotu vedou vlastní excelové tabulky bokem.

Číst dále
Postavte si správný hotelový software a AI CRM systém, který vám bude vyhovovat

Postavte si správný hotelový software a AI CRM systém, který vám bude vyhovovat

Projektové řízeníAI
7 minut čtení

Užitečné postřehy od naší projektové manažerky Hsinyu Ko pro hotely, které chtějí lepší software, jenž skutečně odpovídá jejich způsobu práce. Vycházejí z našich zkušeností se softwarovými projekty.

Číst dále
Proč je konverzační AI budoucností hlasové podpory

Proč je konverzační AI budoucností hlasové podpory

TechnologieAI
12 minut čtení

Většina „AI“ chatbotů v call centrech pouze následuje předem daný scénář. Když zákazník položí nečekanou otázku, systém často selže. V Moravio však vyvíjíme chytré hlasové asistenty, kteří skutečně rozumí lidem, zvládnou i složité dotazy a odpovídají přirozeně – jako člověk. Tím pomáháme firmám šetřit čas, peníze i reputaci při vyřizování rutinních hovorů. Zákazníci získají rychlou a přirozenou podporu kdykoli, zatímco týmy se mohou soustředit na důležitější úkoly.

Číst dále
Jakub Bílý

Jakub Bílý

Vedoucí obchodního rozvoje

Pojďme společně k výsledkům!

Vyplňte formulář a odpovíme vám do 8 pracovních hodin.
Rádi odpovíme na všechny vaše otázky!
Analyzujeme váš projekt a probereme detaily.

Napište nám