Przewodniki dotyczące poszczególnych platform
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Nierealistyczny mechanizm
Interfejsy API Augmented Images w ARCore umożliwiają tworzenie aplikacji AR, które mogą wykrywać i rozszerzać obrazy 2D w otoczeniu użytkownika, np. plakaty czy opakowania produktów.
Musisz przesłać zestaw obrazów referencyjnych. ARCore używa algorytmu widzenia komputerowego do wyodrębniania cech z informacji o skalach szarości w każdym obrazie i przechowuje reprezentację tych cech w co najmniej 1 bazie danych Augmented Image.
Podczas działania ARCore wyszukuje te funkcje na płaskich powierzchniach w otoczeniu użytkownika. Dzięki temu ARCore może wykrywać te obrazy w środowisku i szacować ich położenie, orientację i rozmiar, jeśli nie zostały podane.
Możliwości
ARCore może śledzić do 20 obrazów jednocześnie. ARCore nie wykrywa ani nie śledzi jednocześnie wielu instancji tego samego obrazu.
Każda baza danych Augmented Image może przechowywać informacje o maksymalnie 1000 obrazach referencyjnych. Nie ma limitu liczby baz danych, ale w danym momencie aktywna może być tylko jedna baza danych.
Obrazy można dodawać do bazy danych Augmented Image w czasie wykonywania aplikacji. Maksymalna liczba obrazów na bazę danych wynosi 1000. Pobrane mogą być wcześniej utworzone bazy danych za pomocą połączenia sieciowego.
Podczas dodawania obrazu możesz podać jego fizyczny rozmiar. Dzięki temu poprawi się wykrywanie obrazów.
Jeśli nie podasz rozmiaru fizycznego, ARCore oszacuje rozmiar i z czasem go ulepszy.
Jeśli podany jest rozmiar fizyczny, ARCore używa podanego rozmiaru i szacuje położenie oraz orientację obrazu, ignorując wszelkie rozbieżności między pozornym lub rzeczywistym rozmiarem a podanym rozmiarem fizycznym.
ARCore może reagować na obrazy, które:
obrazy, które są przymocowane na stałe, np. plakat wiszący na ścianie lub magazyn na stole;
Obrazy w ruchu, np. reklama na przejeżdżającym autobusie lub obraz na płaskim obiekcie trzymanym przez użytkownika, gdy porusza rękami.
Gdy ARCore zacznie śledzić obraz, będzie podawać przybliżone położenie i orientację każdej klatki. ARCore stale ulepsza te szacunki, gdy zbiera więcej danych.
Po wykryciu obrazu ARCore nadal „śledzi” jego położenie i orientację, nawet gdy obraz zniknie na chwilę z pola widzenia kamery, ponieważ użytkownik przesunie urządzenie. W takim przypadku ARCore zakłada, że położenie i orientacja obrazu są statyczne oraz że obraz sam nie porusza się po środowisku.
Cały proces śledzenia odbywa się na urządzeniu. Wykrywanie i śledzenie obrazów nie wymaga połączenia z internetem.
Wymagania
Obrazy muszą:
Wypełnij co najmniej 25% kadru kamery, która ma być wykrywana na początku.
być płaski (np. nie może być pofałdowany ani owinięty wokół butelki);
Upewnij się, że kamera wyraźnie Cię widzi. Nie powinny być częściowo zasłonięte, oglądane pod bardzo ostrym kątem ani w przypadku, gdy kamera porusza się zbyt szybko, co powoduje rozmycie obrazu.
Wykorzystanie procesora i wydajność
W zależności od tego, które funkcje ARCore są już włączone, włączenie funkcji Augmented Images może zwiększyć wykorzystanie procesora przez ARCore. Rozważ wyłączenie nieużywanych funkcji, gdy nie są one potrzebne do korzystania z rozwiązań AR. Umożliwi to aplikacji dostęp do dodatkowych cykli procesora, a także poprawi wydajność termiczną i żywotność baterii.
Więcej informacji znajdziesz w artykule o wpływie na skuteczność.
Sprawdzone metody
Wskazówki dotyczące wyboru obrazów referencyjnych
- Rozdzielczość obrazu powinna wynosić co najmniej 300 x 300 pikseli. Używanie zdjęć o wysokiej rozdzielczości nie zwiększa skuteczności.
- Obrazy referencyjne mogą być dostarczone w formacie PNG lub JPEG.
- Informacje o kolorach nie są używane. Zarówno obrazy kolorowe, jak i odpowiednie obrazy w szarościach mogą być używane jako obrazy referencyjne lub przez użytkowników w czasie działania.
- Unikaj obrazów mocno skompresowanych, ponieważ zakłóca to wyodrębnianie cech.
- Unikaj obrazów zawierających dużą liczbę elementów geometrycznych lub bardzo niewielką liczbę elementów (np. kodów kreskowych, kodów QR, logo i innych rysunków liniowych), ponieważ może to spowodować słabe wykrywanie i śledzenie.
- Unikaj obrazów z powtarzającymi się wzorami, ponieważ mogą one powodować problemy z wykrywaniem i śledzeniem.
Użyj narzędzia
arcoreimg
zawartego w pakiecie ARCore SDK, aby uzyskać wynik jakości między0
a100
dla każdego obrazu. Zalecamy wynik jakości na poziomie co najmniej 75. Poniżej przedstawiamy dwa przykłady:Przykładowy obraz 1 Przykładowy obraz 2 Wynik: 0
Wynik: 100
zawiera powtarzające się elementy geometryczne; wystarczająca rozdzielczość; zawiera wiele unikalnych funkcji
Wskazówki dotyczące tworzenia bazy danych zdjęć
- Użyj narzędzia arcoreimg na Androida, aby wygenerować plik bazy danych obrazów. To narzędzie jest dostępne tylko do tworzenia aplikacji na Androida i Androida NDK. Jest ona wbudowana w pakiet SDK Unity i wtyczkę ARCore dla Unreal.
- Baza danych przechowuje skompresowaną reprezentację funkcji wyodrębnionych z danych skali szarości w obrazach referencyjnych. Każdy wpis dotyczący obrazu zajmuje około 6 KB.
- Dodanie obrazu do bazy danych w czasie wykonywania zajmuje około 30 ms.
- Dodawaj obrazy w wątku roboczym, aby uniknąć blokowania wątku interfejsu użytkownika.
- Jeśli to możliwe, dodaj obrazy w czasie kompilacji za pomocą narzędzia
arcoreimg
, które jest częścią pakietu ARCore SDK.
- Jeśli znasz oczekiwany rozmiar fizyczny obrazu, określ go. Te informacje poprawiają skuteczność wykrywania i śledzenia, zwłaszcza w przypadku dużych obrazów fizycznych (ponad 75 cm).
- Unikaj przechowywania w bazie danych wielu nieużywanych obrazów, ponieważ może to nieznacznie wpływać na wydajność systemu z powodu zwiększonego wykorzystania procesora.
Wskazówki dotyczące optymalizacji śledzenia
- Jeśli obraz nigdy nie zmieni swojej pozycji (np. plakat przymocowany do ściany), możesz dołączyć do niego kotwicę, aby zwiększyć stabilność śledzenia.
- W przypadku wykrywania początkowego obraz fizyczny musi zajmować co najmniej 25% obrazu z kamery. Możesz poprosić użytkowników, aby umieścili fizyczny obraz w kadrze aparatu.
- Nie używaj szacunków dotyczących pozycji i rozmiaru obrazu, dopóki stan śledzenia nie będzie pełny. Gdy ARCore wykryje obraz, ale nie zostanie określony oczekiwany rozmiar fizyczny, stan śledzenia zostanie wstrzymany. Oznacza to, że ARCore rozpoznało obraz, ale nie zebrało wystarczającej ilości danych, aby oszacować jego położenie w przestrzeni 3D.