Przewodniki dotyczące poszczególnych platform
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
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.
Prześlij 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 jednej 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ę oraz rozmiar, jeśli nie zostały podane.
Uprawnienia
ARCore może śledzić do 20 obrazów jednocześnie. ARCore nie wykryje ani nie będzie śledzić jednocześnie wielu wystąpień 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 może być aktywna tylko jedna baza danych.
Obrazy można dodawać do bazy danych Augmented Image w czasie wykonywania, do maksymalnie 1000 obrazów na bazę danych. 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 podano fizycznego rozmiaru, ARCore szacuje go i zmienia ten szacunek z upływem czasu.
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 i śledzić je, jeśli:
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 on rękami.
Gdy ARCore zacznie śledzić obraz, będzie dostarczać szacowane 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 jeśli obraz jest tymczasowo poza widokiem kamery, ponieważ użytkownik przesunął urządzenie. W takim przypadku ARCore zakłada, że pozycja i orientacja obrazu są statyczne, a obraz nie porusza się w środowisku.
Cała funkcja śledzenia odbywa się na urządzeniu. Do wykrywania i śledzenia obrazów nie jest wymagane połączenie z internetem.
Wymagania
Obrazy muszą:
Aby twarz została wykryta, musi zajmować co najmniej 25% kadru.
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. Zastanów się, czy nie warto wyłączyć nieużywanych funkcji w czasie, gdy nie korzystasz z rozwiązań AR. Dzięki temu aplikacja będzie mieć dostępne dodatkowe cykle procesora, a także poprawi się jej wydajność termiczna i czas pracy na baterii.
Więcej informacji znajdziesz w artykule o wpływie na skuteczność.
Sprawdzone metody
Wskazówki dotyczące wybierania obrazów referencyjnych
- Rozdzielczość obrazu powinna wynosić co najmniej 300 x 300 pikseli. Używanie zdjęć w 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 o wysokiej kompresji, ponieważ zakłóca to wyodrębnianie cech.
- Unikaj obrazów zawierających dużą liczbę elementów geometrycznych lub bardzo niewiele elementów (np. kodów kreskowych, kodów QR, logo i innych rysunków liniowych), ponieważ spowoduje to 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 w zakresie0
–100
dla każdego obrazu. Zalecamy wynik jakości 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 obrazów
- 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 skompresowane reprezentacje cech wyodrębnionych z danych w szarościach na 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 fizyczny rozmiar obrazu, określ go. Te informacje poprawiają skuteczność wykrywania i śledzenia, zwłaszcza w przypadku dużych obrazów fizycznych (powyżej 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 oszacowań dotyczących pozycji i rozmiaru obrazu, dopóki stan śledzenia obrazu 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.