Testowanie obrazów z kamery za pomocą automatyzacji

Pakiet testów obrazów z aparatu na Androida (ITS) jest częścią narzędzia CTS Verifier (Android Compatibility Test Suite) i zawiera testy weryfikujące zawartość obrazu. CTS Verifier obsługuje automatyzację testów ITS za pomocą Camera ITS-in-a-box. Obsługa testów ręcznych obejmuje wszystkie formy urządzeń z Androidem.

ITS-in-a-box zapewnia te korzyści:

  • Automatyzacja Podczas testu nie jest wymagana interwencja człowieka.
  • Łatwe rozwiązywanie problemów. Spójność środowiska testowego zmniejsza liczbę błędów konfiguracji i zwiększa powtarzalność.
  • Wydajność Możliwość ponowienia próby w przypadku poszczególnych kamer lub scen zwiększa efektywność wykonywania testów.

Wybór sprzętu

ITS-in-a-box składa się z plastikowego pudełka wycinanego laserowo na podstawie rysunków CAD, tabletu z wykresem i testowanego urządzenia (DUT). W poniższej tabeli znajdziesz opis funkcji i specyfikacji różnych dostępnych zestawów ITS-in-a-box. Aby wybrać odpowiednie urządzenie, weź pod uwagę konkretne pole widzenia i minimalną odległość ogniskowania urządzenia testowego. W przypadku systemów kamer o polu widzenia od 60 do 110 stopni i minimalnej odległości ogniskowania od 22 do 31 cm zalecamy modułową podstawę ze względu na jej uniwersalność. Jeśli system kamer obejmuje teleobiektyw o minimalnej odległości nastawiania ostrości od 31 cm do 110 cm, zalecamy użycie modułowego statywu z teleskopowym przedłużeniem, które jest zbliżone do odległości nastawiania ostrości obiektywu. Przedłużacze teleskopowe są dostępne w długościach od 50 cm do 90 cm.

Rig Odległość od wykresu Zakres pola widzenia aparatu DUT (w przybliżeniu) Funkcje
Modułowa platforma bazowa 22 cm 60° - 120°
  • Mniejszy ślad węglowy
  • Duży otwór z przodu umożliwiający testowanie systemu z wieloma aparatami bez wycięcia, które blokuje aparaty dodatkowe
  • Możliwość obrotu o 90°
  • Modułowy zestaw podstawowy i zestaw z wysięgnikiem teleskopowym 22 cm - 110 cm* 10°–120°
  • Duży otwór z przodu
  • Obsługa testowania aparatów o większej minimalnej odległości nastawiania ostrości (większość teleobiektywów)
  • Długość wysięgnika można dostosować do różnych odległości od wykresu.
  • WFoV ITS-in-a-box 22 cm 60° - 120°
  • Duża powierzchnia umożliwiająca wiele pozycji montażu urządzenia
  • Obsługa dużych urządzeń, np. tabletów
  • RFoV ITS-in-a-box 31 cm 60°–90°
  • Tablet do rysowania
  • wewnętrzny system oświetlenia,
  • Gen2 ITS-in-a-box 31 cm 60°–90°
  • Wykres na papierze
  • wewnętrzny system oświetlenia,
  • Aby określić optymalny statyw dla urządzenia testowanego, w tabeli poniżej znajdziesz przykładowe zdjęcia wykonane w różnych kombinacjach odległości od wykresu i procentów skalowania sceny za pomocą aparatu o polu widzenia 25° i minimalnej odległości ogniskowania 80 cm. W tym przypadku najbardziej odpowiedni jest modułowy statyw z przedłużeniem o 30 cm lub 50 cm, co daje odległość od tablicy wynoszącą 50 cm lub 80 cm. Obraz zarejestrowany w odległości 31 cm od tablicy jest zbyt rozmyty i może prowadzić do niepowodzenia testów.
    Odległość od wykresu Procent skalowania sceny Obraz
    31 cm 33%
    50 cm O 50%
    80 cm 100%

    Aby rozpocząć korzystanie z zestawu Camera ITS-in-a-box:

    1. Kup lub zbuduj modułowy, WFoV lub RFoV oraz fuzję czujników ITS-in-a-box.
    2. Skonfiguruj tablet za pomocą oprogramowania Camera ITS.
    3. Przeprowadzanie testów
    4. Uzyskaj wyniki z urządzenia.

    Konfigurowanie tabletu

    W tej sekcji znajdziesz szczegółowe instrukcje konfigurowania tabletu do testów ITS aparatu, które znajdują się w katalogu CameraITS. W tych instrukcjach jako przykład tabletu użyto urządzenia Pixel C. Informacje o wymaganiach i zaleceniach dotyczących tabletów znajdziesz w artykule Wymagania dotyczące tabletów.

    Uwaga: skrypty Python Camera ITS automatycznie ustawiają na tablecie te opcje:
    Ustawienia > Wyświetlacz > Uśpienie > Po 30 minutach bezczynności
    Automatyczna jasność > WYŁĄCZONA

    1. Naładuj tablet i włącz go. Jeśli pojawi się prośba o skonfigurowanie konta, pomiń ją (Camera ITS nie wymaga żadnego konta sparowanego z tabletem).
    2. Zaktualizuj tablet do Androida w wersji 7.0 lub nowszej. Android w wersji 6.x i starszych nie obsługuje testów ITS kamery.
    3. Włącz tryb programisty.
    4. Wróć do Ustawień i wybierz Opcje programisty.
      Włączanie opcji
      • Wł.
      • Nie usypiaj
      • Debugowanie USB (umożliwia hostowi uruchamianie tabletu w trybie debugowania). Gdy po raz pierwszy podłączysz tablet do hosta, pojawi się na nim pytanie Zezwolić na debugowanie USB? Jeśli na tablecie nie wyświetla się prośba o debugowanie, odłącz go i podłącz ponownie.
      Wyłącz opcje
      • Automatyczne aktualizacje systemu
      • Zweryfikuj aplikacje przez USB
    5. Określ identyfikatory DUT i wykresu, uruchamiając polecenie $ adb devices, aby wyświetlić listę dostępnych urządzeń. Aby określić device_idchart_id, podłączaj i odłączaj urządzenia oraz obserwuj, które urządzenia są podłączane i odłączane.
    6. Przeprowadź 3 testy, aby wyłączyć podpowiedzi i komunikaty dla użytkownika, które mogą zasłaniać wykresy na ekranie tabletu.
      1. Połóż tablet ekranem do góry na stole (nie przyczepiaj go do tylnego panelu pudełka).
      2. Uruchom to polecenie:
        python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
        
        Sceny 2 i 3 wymagają wyświetlenia obrazu na tablecie, więc tablet wyświetla pytanie: Zezwolić Dyskowi na dostęp do zdjęć, multimediów i plików na urządzeniu? Aby zamknąć ten prompt (i zapobiec wyświetlaniu kolejnych), kliknij Zezwól.
      3. Uruchom polecenie ponownie. Tablet wyświetli pytanie Zachować kopię tego pliku? i zaproponuje Dysk Google. Aby zamknąć ten prompt (i zapobiec wyświetlaniu go w przyszłości), kliknij ikonę Dysku, a następnie Anuluj, aby anulować przesyłanie na Dysk.
      4. Na koniec uruchom tools/run_all_tests.py i sprawdź, czy sceny zmieniają się automatycznie w miarę przełączania się skryptu między różnymi scenami. Większość testów zakończy się niepowodzeniem (ponieważ kamera nie jest skierowana na wykres), ale możesz sprawdzić, czy tablet prawidłowo przełącza się między scenami bez wyświetlania żadnych komunikatów ani innych wyskakujących okienek na ekranie.

    Przeprowadzanie testów

    Przed uruchomieniem ITS-in-a-box upewnij się, że konfiguracja testowa obejmuje następujący sprzęt i oprogramowanie:

    • 1 zestaw ITS-in-a-box
    • 1 tablet 10-calowy o wysokiej rozdzielczości do wyświetlania scen, numer seryjny: 5811000011
    • 1 urządzenie poddawane testom z zainstalowaną aplikacją CTS Verifier w wersji 7.0_8 lub nowszej. Przykładowe urządzenie:
      • Jeden (1) Pixel NOF26W do testowania tylnego aparatu(0), numer seryjny: FA6BM0305016. Aby zainstalować aplikację Weryfikator CTS, rozpakuj plik android-cts-verifier.zip, a następnie uruchom
        adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
        

    Uruchamianie scen na tablecie

    Aby uruchomić sceny 0–4, 6 i scene_change na tylnym aparacie:

    cd android-cts-verifier/CameraITS
    . build/envsetup.sh
    python tools/run_all_tests.py camera=0
    

    Przykład:

    Aparat 0, numer seryjny: FA6BM0305016
    Rysunek 1. Aparat 0, numer seryjny: FA6BM0305016

    Ponów generowanie scen

    Możesz ponownie wypróbować sceny dla pojedynczej kamery:

    • Aby ponownie wypróbować sceny na jednej kamerze:
      python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
      

    Uruchom scenę 5

    Scena 5 wymaga specjalnej konfiguracji z określonym oświetleniem (szczegółowe informacje znajdziesz w CameraITS.pdf w CTS Verifier, który możesz pobrać na stronie Pobieranie pakietu testów zgodności). Scenę 5 musisz uruchomić osobno (poza skrzynką) i na ręcznym stanowisku testowym TEST_BED_MANUAL.

    scena z kamery 5
    Rysunek 2. Scena 5

    Aby uruchomić scenę 5 dla przedniego i tylnego aparatu na jednym urządzeniu:

    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
    python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5
    

    Uzyskiwanie wyników

    Wyniki możesz wyświetlać podczas testowania, a po zakończeniu testu możesz zapisać je w formie raportu.

    • Wyświetl wyniki. Aby zapisać wyniki Camera ITS jako raport:
      1. Kliknij Zatwierdź i zapisz raport.
        raport ITS dotyczący kamery,
        Rysunek 3. Raport ITS aparatu
      2. Pobierz raporty z urządzenia:
        adb -s FA6BM0305016 pull /sdcard/verifierReports
        
      3. Rozpakuj plik raportu i wyświetl test_result.xml.
        raporty ITS dotyczące kamery,
        Rysunek 4. Raporty ITS dotyczące aparatu

    Wymagania dotyczące tabletu

    W przypadku Androida 15 i nowszych tabletów używanych jako wyświetlacz wykresu ITS muszą one znajdować się na poniższej liście dozwolonych tabletów. Listę tabletów, na których można testować sceny przy słabym oświetleniu, znajdziesz w artykule Obsługiwane tablety do testowania scen przy słabym oświetleniu. W przypadku Androida 14 lub starszego zapoznaj się z wymaganiami dotyczącymi tabletów z Androidem 14 i starszymi wersjami.

    Tablety na liście dozwolonych są wybierane na podstawie tych kryteriów:

    • Wyświetlacz o przekątnej około 10 cali i rozdzielczości większej niż 1920 x 1200 pikseli.
    • Nie może mieć mierzalnego migotania spowodowanego regulacją jasności ekranu za pomocą modulacji szerokości impulsu (PWM).
    • Możliwość wykonywania poleceń adb wysyłanych przez testy ITS i wyświetlania obrazów wykresów z określoną jasnością ekranu.

    Wartość brightness musi być ustawiona w config.yml zgodnie z modelem tabletu. Aby sprawdzić, czy model tabletu odpowiada nazwie urządzenia na liście dozwolonych, wydrukuj wartość ro.product.device, uruchamiając polecenie adb shell getprop | grep 'ro.product.device' adb.

    Urządzenie Rozmiar wyświetlacza
    (cale)
    Rozmiar wyświetlanych elementów
    (piksele)
    Wymiary tabletu
    (cale)
    Jasność
    wyświetlacza
    Nazwa urządzenia
    (ro.product
    .device)
    Wersja systemu operacyjnego
    tabletu
    Google
    Pixel C
    10.2 2560 x 1800 9,53 x 7,05 x 0,28 96 smok Android 6 lub nowszy
    Honor
    Pad 8
    11 2000 x 1200 10,18 x 6,76 x 0,29 192 HNHEY-Q Android 12
    Huawei
    MediaPad m5
    10.8 2560 x 1600 10,18 x 6,76 x 0,29 192 HWCMR09 Android 8+
    Lenovo
    Tab M10 Plus
    10.3 1920 x 1200 9,61 x 6,03 x 0,32 192 X606F Android 9 lub nowszy
    Lenovo
    Tab P11
    11 2000 x 1200 10,17 x 6,42 x 0,30 192 J606F Android 11 lub nowszy
    Lenovo
    Tab P11 Gen2
    11,5 2000 x 1200 10,59 x 6,67 x 0,29 192 TB350FU Android 13 lub nowszy
    Nokia
    T21
    10.4 2000 x 1200 9,74 x 6,19 x 0,30 192 AGTA Android 12 lub nowszy
    Samsung
    Galaxy Tab A7
    10.4 2000 x 1200 9,75 x 6,2 x 0,28 192 gta4lwifi Android 10 lub nowszy
    Samsung
    Galaxy Tab A8
    10.5 1920 x 1200 9,72 x 6,73 x 0,27 192 gta8wifi Android 11 lub nowszy
    Samsung
    Galaxy Tab A9+
    11 1920 x 1200 10,12 x 6,64 x 0,27 192 gta9pwifi Android 13 lub nowszy
    Samsung
    Galaxy Tab S10 FE
    11 2304 x 1440 10,01 x 6,53 x 0,24 192 gts10fewifi Android 15+
    Vivo
    Pad2
    12.1 2800 x 1968 266 x 191,6 x 6,6 mm 192 DPD2221 Android 13 lub nowszy
    Xiaomi
    Pad 5
    11 2560 x 1600 10,18 x 6,76 x 0,29 192 nabu Android 13 lub nowszy
    Xiaomi
    Redmi
    Pad
    10,61 2000 x 1200 9,86 x 6,22 x 0,28 192 yunluo Android 14 lub nowszy
    Xiaomi
    Redmi
    Pad SE
    11 2560 x 1600 10,06 x 6,58 x 0,29 192 xun Android 13 lub nowszy

    Obsługiwane tablety w przypadku scen przy słabym oświetleniu

    W tabeli poniżej znajdziesz listę tabletów, na których można testować sceny przy słabym oświetleniu. Te tablety mogą osiągnąć poziom jasności potrzebny w scenach przy słabym oświetleniu, co pozwala urządzeniu testowanemu prawidłowo naświetlić wykres.
    Urządzenie Nazwa urządzenia (ro.product.device) Wersja systemu operacyjnego tabletu
    Huawei
    MediaPad m5
    HWCMR09 Android 8+
    Samsung Galaxy Tab A8 gta8wifi Android 11 lub nowszy
    Samsung Galaxy Tab A9+ gta9pwifi Android 13 lub nowszy
    Xiaomi Pad 5 nabu Android 13 lub nowszy
    Xiaomi
    Redmi
    Pad SE
    xun Android 13 lub nowszy

    Wymagania dotyczące tabletów z Androidem 14 i starszymi wersjami

    Tablety muszą mieć wyświetlacz o przekątnej około 10 cali i rozdzielczości większej niż 1920 x 1200 pikseli. Tablet nie może używać modulacji szerokości impulsu (PWM) do ustawiania poziomu jasności. Wartość brightness musi być ustawiona w config.yml zgodnie z modelem tabletu. W tabeli poniżej znajdziesz listę zalecanych tabletów do testów ITS wraz z wersjami Androida, z którymi działają te tablety.

    Urządzenie Rozmiar wyświetlacza
    (cale)
    Rozmiar wyświetlanych elementów
    (piksele)
    Wymiary tabletu
    (cale)
    Jasność
    wyświetlacza
    Wyświetlanie
     bitów
    Obsługiwany
    system operacyjny DUT
    Obsługiwany
    system operacyjny tabletu
    Samsung
    Galaxy Tab A8
    10.5 1920 x 1200 9,72 x 6,37 x 0,27 cala 192 8 Android 13 lub nowszy Android 11 lub nowszy
    Xiaomi
    Pad 5
    11 2560 x 1600 10,03 x 6,55 x 0,27 1024 11 Android 12 lub nowszy Tylko Android 11
    Lenovo
    Tab M10 Plus
    10.3 1920 x 1200 9,61 x 6,03 x 0,32 192 8 Android 12 lub nowszy Android 9 lub nowszy
    Samsung
    Galaxy Tab A7
    10.4 2000 x 1200 9,75 x 6,2 x 0,28 192 8 Android 12 lub nowszy Android 10 lub nowszy
    Chuwi
    Hi9 Air 10.1
    10.1 2560 x 1600 9,52 x 6,77 x 0,31 192 8 Android 7 lub nowszy Android 8+
    Asus
    ZenPad 3
    9.7 2048 x 1536 9,47 x 6,44 x 0,28 192 8 Android 7 lub nowszy Android 6 lub nowszy
    Huawei
    MediaPad m5
    10.8 2560 x 1600 10,18 x 6,76 x 0,29 192 8 Android 7 lub nowszy Android 8+
    Google
    Pixel C
    10.2 2560 x 1800 9,53 x 7,05 x 0,28 96 8 Android 7 lub nowszy Android 6 lub nowszy
    Sony
    Xperia Z4
    10.1 2560 x 1600 10 x 6,57 x 0,24 192 8 Android 7 lub nowszy Android 5 lub nowszy

    Najczęstsze pytania

    Pytanie 1. Jak określić, które stanowiska testowe są potrzebne w przypadku mojego urządzenia?

    Testy RFoV ITS-in-a-box w wersji 1 sprawdzają kamery RFoV pod kątem testów scen na tabletach w katalogu  CameraITS/tests. RFoV to 60° < FoV < 90°. W przypadku kamer o większym polu widzenia światła mogą być widoczne na obrazach lub wykresy mogą obejmować zbyt mały obszar w polu widzenia, co wpływa na wyniki testów.

    Testy WFoV ITS-in-a-box w wersji 2 testują kamery WFoV w scenach na tablety w katalogu CameraITS/tests. WFoV jest zdefiniowane jako FoV >= 90°. Stanowisko testowe w wersji 2 jest funkcjonalnie identyczne z wersją 1, ale większe. Stanowisko testowe w wersji 2 może testować kamery RFoV i WFoV na urządzeniach z Androidem 9 i nowszym. Ze względu na większy rozmiar wersja 2 jest idealna, jeśli urządzeniem DUT jest tablet.

    Modułowy statyw podstawowy testuje kamery WFoV w scenach testowych tabletów w katalogu CameraITS/tests. WFoV to FoV ≥ 90°. Modułowy zestaw podstawowy umożliwia testowanie kamer RFoV i WFoV na urządzeniach z Androidem 9 lub nowszym. Obsługuje też przedłużkę teleobiektywu, którą można przymocować, aby testować teleobiektywy z większą minimalną odległością nastawiania ostrości. Modułowa platforma bazowa jest funkcjonalnie identyczna z WFoV ITS-in-a-box, ale jest mniejsza.

    Sensor fusion box testuje przesunięcie czasowe kamery/żyroskopu i synchronizację klatek w systemach z wieloma kamerami za pomocą testów w scenes=sensor_fusion. Wymagane jest przesunięcie czasowe kamery/żyroskopu mniejsze niż 1 ms w przypadku flagi funkcji REALTIME.

    Urządzenia z wieloma kamerami można testować za pomocą jednego statywu w przypadku statycznych testów ITS i za pomocą statywu do fuzji czujników, jeśli kamera ma flagę funkcji REALTIME.

    W tabeli poniżej znajdziesz zestaw przykładowych konfiguracji.

    Minimalna odległość ogniskowania Pola widzenia kamery W CZASIE RZECZYWISTYM? Zalecane zestawy Uwagi
    31 cm - 22 cm 24° Nie Modułowa podstawa, WFoV lub RFoV Androida w wersji 7.0 lub nowszej,
    31 cm - 22 cm 24° Tak Modułowa podstawa, WFoV lub RFoV i fuzja czujników Android 9 lub nowszy
    22 cm lub mniej 75° + 95° Tak Modułowa podstawa lub szerokie pole widzenia i fuzja czujników Android 9 lub nowszy
    110 cm - 22 cm 75° + 95° + 20° Tak Modułowa baza, teleobiektyw i fuzja czujników Android 9 lub nowszy
    110 cm - 22 cm 75° + 95° + 20° Tak Modułowa podstawa i teleobiektyw, fuzja czujników i platforma drugiej generacji
    22 cm lub mniej 75° + 95° Tablet Nie WFoV Android 9 lub nowszy

    P2: Jak określić, które stanowisko testowe jest używane?

    Aby wyznaczyć prawidłowe stanowisko testowe, upewnij się, że parametr odległości od tablicy jest prawidłowy. Stanowisko testowe rev1 (RFoV) ma odległość wykresu wynoszącą 31 cm, a stanowisko rev2 (WFoV) – 22 cm. Domyślnie odległość od tablicy wynosi 31 cm.

    Android 10 na Androida 11

    Aby w Androidzie 10 i 11 wskazać prawidłowy sprzęt testowy, dodaj w wierszu poleceń flagę dist. Wartością domyślną parametru dist jest 31. Aby zmienić parametr chart_distance, uruchom to polecenie:
    python tools/run_all_tests.py ... chart=# dist=22
    

    Android 12 lub nowszy

    Aby zidentyfikować prawidłowy sprzęt testowy w Androidzie 12 i nowszych wersjach, możesz edytować plik config.yml, aby zmienić parametr chart_distance.
    edit config.yml
    chart_distance: 31.0 → chart_distance: 22.0
    

    P3: Jak sterować jasnością tabletu?

    Domyślna jasność tabletu to 96.

    Aby zmienić jasność na tabletach z Androidem w wersji od 7.0 do 9, wpisz:

    edit tools/wake_up_screen.py
    DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192
    

    Aby zmienić jasność na tabletach z Androidem 10–11, możesz zmienić wartość w wierszu poleceń, dodając flagę brightness:

    python tools/run_all_tests.py device=# camera=# chart=# brightness=192
    

    Aby zmienić jasność na tabletach z Androidem 12 lub nowszym, wykonaj to polecenie:

    edit config.yml
    brightness: 96 → brightness: 192
    

    P4. Jak debugować pojedynczy test?

    Testy można uruchamiać pojedynczo w celu debugowania, ale wyniki nie są raportowane do CtsVerifier.apk, chyba że zostanie uruchomiona cała scena.

    Aby uruchomić pojedynczą scenę na urządzeniu z Androidem 11 lub starszym:

    1. Wczytaj scenę, dodając flagę scenestools/run_all_tests.py:
      python tools/run_all_tests.py device=# camera=# chart=# scenes=#
      
    2. Naciśnij Control+C, aby zatrzymać testy po zarejestrowaniu sceny jako załadowanej do stdout.

      Jeśli na ekranie jest już odpowiednia scena, wybudź ekran:

      python tools/wake_up_screen.py screen=#
      
    3. Uruchom pojedynczy test.

      python tests/scene#/test_*.py device=# camera=#

      Wykresy są generowane w katalogu lokalnym, a na ekranie wyświetlane są znaki stdoutstderr.

      Aby uzyskać więcej informacji na potrzeby debugowania, dodaj do skryptu instrukcje print. Aby zwiększyć liczbę danych wyjściowych testu na potrzeby debugowania, dodaj flagę debug=True.

      python tests/scene#/test_*.py device=# camera=# debug=True

    Wyniki są wyświetlane na ekranie lokalnym, a obrazy są zapisywane w katalogu lokalnym zamiast w wygenerowanym katalogu /tmp/tmp### podczas uruchamiania tools/run_all_tests.py.

    Aby uruchomić poszczególne sceny na urządzeniu z Androidem 12 lub nowszym:

    1. Edytuj plik config.yml.

      edit config.yml
      camera: <camera-id> → camera:  0
      scene: <scene-name> → scene: scene1_1
    2. Uruchom test indywidualny.

      python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
      

    Wyniki są drukowane w katalogu /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ posortowanym według czasu działania.

    P5. Dlaczego muszę uruchamiać nieudane testy jako całą scenę zamiast uruchamiać je ponownie pojedynczo?

    Testy można uruchamiać pojedynczo w celu debugowania, ale wyniki nie są zgłaszane do CtsVerifier.apk, chyba że zostanie uruchomiona cała scena.

    Zestaw testów ITS aparatu zapewnia, że aplikacje innych firm mają zgodny interfejs aparatu. Podobnie jak w przypadku testu jednostkowego, każdy test sprawdza jedną specyfikację kamery. Aby wykryć nieprawidłowe działanie, te testy powinny przejść jako grupa dla całej sceny. Na przykład pojedynczy test, który zwraca niepewne wyniki, może przejść ponowne uruchomienie całej sceny, ale wiele takich testów raczej nie przejdzie.

    Jako ekstremalny przykład rozważmy sytuację, w której w scenie jest 10 testów, a każdy z nich ma 50% prawdopodobieństwa zwrócenia wartości PASS. Przeprowadzając każdy test osobno, operator ma dużą szansę na to, że kamera przejdzie testy ITS. Jeśli jednak testy są przeprowadzane łącznie jako scena, istnieje tylko 0,1% szansy, że scena przejdzie test.

    P6. Jak uruchomić jedną scenę lub zmienić kolejność scen?

    Domyślnie skrypt tools/run_all_tests.py uruchamia wszystkie sceny w kolejności. Sceny można jednak uruchamiać pojedynczo lub w określonej kolejności i przesyłać o nich raporty do CtsVerifier.apk.

    Aby uruchomić pojedynczą scenę (np. scenę 2) lub więcej niż jedną scenę w określonej kolejności na urządzeniu z Androidem 11 lub starszym:

    python tools/run_all_tests.py device=# camera=# chart=# scenes=2
    
    python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2
    

    Aby uruchomić pojedynczą scenę lub więcej niż jedną scenę w określonej kolejności na urządzeniu z Androidem 12 lub nowszym:

    python tools/run_all_tests.py scenes=2
    
    python tools/run_all_tests.py scenes=3,2
    

    Dodatkowe parametry są ustawiane w pliku config.yml.

    Pytanie 7. W przypadku konfiguracji z tabletem nie powiodło się kilka testów sceny 1, ale w przypadku wykresu na papierze testy te zostały zaliczone. Co robię źle?

    Upewnij się, że tablet i środowisko testowe spełniają te wymagania.

    Specyfikacje tabletu

    Upewnij się, że tablet spełnia te wymagania:

    • Rozmiar wyświetlacza (cale): 10 cali
    • Rozmiar wyświetlacza (piksele): ponad 1920 x 1200 pikseli

    Więcej informacji znajdziesz w sekcji Wymagania dotyczące tabletów.

    Jasność tabletu

    Jeśli jasność wyświetlacza tabletu jest zbyt niska, testy mogą nie dać prawidłowych wyników.

    Więcej informacji znajdziesz w artykule Jak sterować jasnością tabletu?.

    Poziom oświetlenia w pudełku (wymaga luksomierza)

    Upewnij się, że docelowa wartość natężenia oświetlenia przy otwarciu tabletu mieści się w przedziale od 100 do 300 luksów.

    Jeśli poziom natężenia oświetlenia jest zbyt wysoki, funkcja scene1/test_param_flash_mode.py zwraca wartość FAIL. Jeśli poziom luksów jest zbyt niski, wiele testów nie powiedzie się.

    P8. Jak debugować testy fuzji czujników?

    1. Sprawdź, czy należysz do grupy dialout.

      groups | egrep ‘dialout'
    2. Sprawdź, czy kontroler fuzji czujników jest podłączony, sprawdzając, czy urządzenie Microchip Technology jest podłączone do portu USB.

      lsusb
      …
      Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
      …
      
    3. Uruchom test kilka razy, aby uzyskać rozkład prób testowych za pomocą tych poleceń:

      Android 11 lub starszy:

      python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
      

      Na Androidzie 12 i nowszych:

      python tools/run_sensor_fusion_box.py num_runs=10
      

      Dodatkowe parametry są ustawiane w pliku config.yml.

      Dane wyjściowe uruchomienia znajdują się w folderze /tmp/tmp### utworzonym w folderach sensor_fusion_#, gdzie # to numer uruchomienia. Najczęstsze przyczyny niepowodzenia to:

      1. Telefon nie jest prawidłowo wyśrodkowany.
      2. Na zdjęciu nie wykryto wystarczającej liczby elementów (często problem z polem widzenia lub oświetleniem).
      3. Zwrócona wartość FAIL jest prawidłowa, a odchylenie czasowe między kamerą a żyroskopem musi zostać skorygowane.

    P9. Jakie informacje należy podać podczas zgłaszania błędu testowania?

    Zgłaszając błąd testowania, dołącz wygenerowane pliki i obrazy z testu.

    1. Jeśli test został przeprowadzony za pomocą tools/run_all_tests.py, dołącz do zgłoszenia błędu skompresowany katalog /tmp/.
    2. Jeśli test został przeprowadzony samodzielnie, dołącz do zgłoszenia błędu wszystkie wyjścia ekranowe i wygenerowane obrazy.

    Dołącz też raport o błędzie. Gdy test zakończy się niepowodzeniem, użyj tego polecenia, aby wygenerować raport o błędzie i dołączyć do niego wygenerowany plik ZIP.

    adb -s device_id bugreport
    

    Pytanie 10. Jak uruchomić scenę testową sensor_fusion z kamerą, która ma minimalną odległość ostrzenia powodującą rozmycie obrazów w odległości 25 cm od wykresu?

    Jeśli aparat nie może ustawić ostrości z odległości 25 cm, zdejmij panel mocujący wykres z pudełka z czujnikami. Umieść wykres w odległości, w której urządzenie DUT może ustawić ostrość, i zmień wartość chart_distance na config.yml, aby odzwierciedlała zmierzoną odległość między urządzeniem DUT a wykresem. Na rysunku 5 pokazano przykład pomiaru odległości od wykresu w tej sytuacji.

    sensor_fusion TELE testing example6
    Rysunek 5. Pomiar odległości od wykresu w scenie testowej fuzji czujników
      edit config.yml
    chart_distance: 25 → chart_distance: DISTANCE_BETWEEN_DUT_AND_CHART
    

    P11. Jak przeprowadzić testy scen na tablecie w przypadku aparatu o minimalnej odległości nastawiania ostrości, który przy odległości 31 cm od tablicy testowej tworzy rozmyte obrazy?

    Jeśli aparat nie może robić wystarczająco ostrych zdjęć podczas testowania w odległości 31 cm (głębokość stanowiska testowego RFoV), zamontuj go przed stanowiskiem w odległości, która pozwoli na wypełnienie około 60% pola widzenia aparatu przez scenę z wykresem, co umożliwi uzyskanie ostrzejszych zdjęć. Ta odległość może być mniejsza niż minimalna odległość nastawiania ostrości kamery. Pozostaw chart_distanceconfig.yml na wysokości 31 cm. Skalowanie wykresu na tablecie zależy od pola widzenia kamery, jak pokazano w tabeli poniżej:

    Pole widzenia kamery Współczynnik skalowania wykresu
    60 > FoV > 40 0,67x
    40 > FoV > 25 0,5x
    Pole widzenia < 25 0,33x

    P12. W przypadku interfejsu Logical Multi-Camera API które testy są przeprowadzane na których aparatach?

    Jeśli kamera korzysta z  REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA, wszystkie obsługiwane testy ITS są przeprowadzane na logicznej kamerze najwyższego poziomu. Podzbiór testów ITS jest przeprowadzany na fizycznych podkamerach, a testy te są wymienione w tools/run_all_tests.py w sekcji stałej SUB_CAMERA_TESTS.