Dodaj wymiar do obrazów

Przewodniki dotyczące poszczególnych platform

Interfejsy Augmented Images API w ARCore umożliwiają tworzenie aplikacji AR, które mogą wykrywać i rozszerzać obrazy 2D w środowisku użytkownika, np. plakaty lub opakowania produktów.

Podajesz zestaw obrazów referencyjnych. ARCore używa algorytmu widzenia komputerowego do wyodrębniania cech z informacji w odcieniach szarości w każdym obrazie i przechowuje reprezentację tych cech w co najmniej 1 bazie danych obrazów rozszerzonych.

W czasie działania ARCore wyszukuje te funkcje na płaskich powierzchniach w otoczeniu użytkownika. Dzięki temu ARCore może wykrywać te obrazy w świecie i określać ich położenie, orientację i rozmiar, jeśli nie zostały podane.

Uprawnienia

ARCore może śledzić maksymalnie 20 obrazów jednocześnie. ARCore nie będzie jednocześnie wykrywać ani śledzić wielu wystąpień tego samego obrazu.

Każda baza danych obrazów rozszerzonych może przechowywać informacje o maksymalnie 1000 obrazach referencyjnych. Liczba baz danych nie jest ograniczona, ale w danym momencie może być aktywna tylko jedna z nich.

Obrazy można dodawać do bazy danych obrazów rozszerzonych w czasie działania aplikacji, aż do limitu 1000 obrazów na bazę danych. Wcześniej utworzone bazy danych można pobrać za pomocą połączenia sieciowego.

Podczas dodawania obrazu można podać jego fizyczny rozmiar, aby go wykryć. Poprawi to skuteczność wykrywania obrazów.

  • Jeśli nie podasz fizycznego rozmiaru, ARCore oszacuje go i z czasem będzie go doprecyzowywać.

  • Jeśli podano fizyczny rozmiar, ARCore używa go do oszacowania pozycji i orientacji 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ą nieruchome, np. odbitka wisząca na ścianie lub czasopismo leżące na stole;

  • ruchome obrazy, np. reklama na przejeżdżającym autobusie lub obraz na płaskim obiekcie trzymanym przez użytkownika, który porusza rękami;

Gdy ARCore zacznie śledzić obraz, w każdej klatce będzie podawać szacunkowe dane dotyczące jego pozycji i orientacji. ARCore stale doprecyzowuje te szacunki w miarę gromadzenia większej ilości danych.

Gdy obraz zostanie wykryty, ARCore nadal „śledzi” jego położenie i orientację, nawet jeśli obraz tymczasowo zniknie z obrazu z kamery, ponieważ użytkownik przesunie urządzenie. W takiej sytuacji ARCore zakłada, że pozycja i orientacja obrazu są statyczne i że sam obraz nie porusza się w środowisku.

Całe śledzenie odbywa się na urządzeniu. Do wykrywania i śledzenia obrazów nie jest wymagane połączenie z internetem.

Wymagania

Grafika musi:

  • Wypełnij co najmniej 25% kadru kamery, aby zostać wstępnie wykrytym.

  • Musi być płaska (np. nie może być pomarszczona ani owinięta wokół butelki).

  • być dobrze widoczna dla kamery; Nie powinny być częściowo zasłonięte, oglądane pod bardzo ostrym kątem ani oglądane, gdy kamera porusza się zbyt szybko z powodu rozmycia spowodowanego ruchem.

Wykorzystanie procesora i wydajność

W zależności od tego, które funkcje ARCore są już włączone, włączenie funkcji Rozszerzone obrazy może zwiększyć wykorzystanie procesora przez ARCore. Rozważ wyłączenie nieużywanych funkcji, gdy nie są one potrzebne w Twoim środowisku AR. Dzięki temu aplikacja będzie miała do dyspozycji więcej cykli procesora, co poprawi wydajność termiczną i wydłuży czas pracy na baterii.

Więcej informacji znajdziesz w sekcji Wskazówki dotyczące wydajności.

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ć w formacie PNG lub JPEG.
  • Informacje o kolorach nie są używane. Zarówno kolorowe, jak i odpowiadające im obrazy w skali szarości mogą być używane jako obrazy referencyjne lub przez użytkowników w czasie działania.
  • Unikaj obrazów z dużą kompresją, ponieważ utrudnia to wyodrębnianie cech.
  • Unikaj obrazów zawierających dużą liczbę cech geometrycznych lub bardzo małą liczbę cech (np. kody kreskowe, kody QR, logo i inne grafiki liniowe), ponieważ spowoduje to słabą skuteczność wykrywania i śledzenia.
  • Unikaj obrazów z powtarzającymi się wzorami, ponieważ mogą one powodować problemy z wykrywaniem i śledzeniem.
  • Użyj narzędzia arcoreimg dołączonego do pakietu ARCore SDK, aby uzyskać ocenę jakości w zakresie od 0 do 100 dla każdego obrazu. Zalecamy uzyskanie wyniku 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, odpowiednia rozdzielczość, zawiera wiele unikalnych cech.

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 w przypadku tworzenia aplikacji na Androida i Androida NDK. Jest on wbudowany w pakiet Unity SDK i wtyczkę ARCore Unreal.
  • Baza danych przechowuje skompresowaną reprezentację cech wyodrębnionych z danych w odcieniach szarości na obrazach referencyjnych. Każdy wpis obrazu zajmuje około 6 KB.
  • Dodanie obrazu do bazy danych w czasie działania zajmuje około 30 ms.
    • Dodawaj obrazy w wątku instancji roboczej, aby uniknąć blokowania wątku UI.
    • Możesz też w miarę możliwości dodawać obrazy w czasie kompilacji za pomocą narzędzia arcoreimg dołączonego do pakietu ARCore SDK.
  • Jeśli znasz oczekiwany fizyczny rozmiar obrazu, podaj 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 mieć niewielki wpływ na wydajność systemu ze względu na zwiększone wykorzystanie procesora.

Wskazówki dotyczące optymalizacji śledzenia

  • Jeśli obraz nigdy nie zmieni swojej początkowej pozycji (np. plakat przyklejony do ściany), możesz do niego dołączyć punkt zakotwiczenia, aby zwiększyć stabilność śledzenia.
  • Obraz fizyczny musi zajmować co najmniej 25% obrazu z kamery, aby można było go wstępnie wykryć. Możesz poprosić użytkowników o dopasowanie fizycznego obrazu do kadru aparatu.
  • Nie używaj szacunków dotyczących pozycji i rozmiaru obrazu, dopóki stan śledzenia obrazu nie będzie pełny. Gdy ARCore wykryje obraz po raz pierwszy, a nie określono oczekiwanego rozmiaru fizycznego, śledzenie zostanie wstrzymane. Oznacza to, że ARCore rozpoznał obraz, ale nie zebrał wystarczającej ilości danych, aby oszacować jego położenie w przestrzeni 3D.