Testowanie obrazów z kamery za pomocą automatyzacji

Pakiet testów obrazów z aparatu na Androida (ITS) jest częścią weryfikatora pakietu testów zgodności Androida (CTS) i zawiera testy, które weryfikują zawartość obrazu. Weryfikator CTS 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 opisano funkcje i specyfikacje 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 przy różnych kombinacjach odległości od tablicy 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 testu.
    Odległość od wykresu Procent skalowania sceny Obraz
    31 cm 33%
    50 cm 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 instrukcje krok po kroku dotyczące konfigurowania tabletu do używania z  testami ITS aparatu znajdującymi się w katalogu CameraITS. Te instrukcje dotyczą tabletu 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 z nich łączą się i rozłączają.
    6. Przeprowadź trzy 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. Na tablecie pojawi się pytanie Zachować kopię tego pliku? z propozycją Dysku 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ż aparat nie jest skierowany 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 DUT z zainstalowaną aplikacją CTS Verifier 7.0_8+. 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

    Ponawianie 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 pudełkiem) 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
    

    Zobacz wyniki

    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
    Honor
    Pad V9
    11,5 2800 x 1840 10,2 x 6,93 x 0,24 192 HNROL-M, HNROL-M1 Android 15
    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ągać 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
    Honor
    Pad V9
    HNROL-M1 Android 15+
    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 zdjęciach 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 DUT to tablet.

    Modułowy statyw podstawowy testuje kamery WFoV w scenach testowych tabletów w katalogu CameraITS/tests. WFoV to FoV >= 90°. Modułowy statyw bazowy umożliwia testowanie aparatów 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.

    Pole fuzji czujników testuje przesunięcie czasowe kamery/żyroskopu i synchronizację klatek systemów wielokamerowych 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 przykładowe konfiguracje.

    Minimalna odległość ogniskowania Pola widzenia kamery REALTIME? 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łowe stanowisko testowe 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 poszczególne testy.

      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.

    Testy ITS aparatu zapewniają, ż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 Camera ITS. Jeśli jednak testy są przeprowadzane łącznie jako scena, prawdopodobieństwo, że scena przejdzie test, wynosi tylko 0,1%.

    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. Na czym polega problem?

    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): większy niż 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 w luksach przy otwarciu tabletu mieści się w zakresie od 100 do 300.

    Jeśli poziom natężenia oświetlenia jest zbyt wysoki, funkcja scene1/test_param_flash_mode.py zwraca wartość FAIL. Jeśli poziom natężenia światła jest zbyt niski, wiele testów zakończy się niepowodzeniem.

    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.

    Pytanie 9. 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
    

    P10. Jak uruchomić scenę testową sensor_fusion za pomocą aparatu, którego minimalna odległość ogniskowania powoduje rozmycie obrazów w odległości 25 cm od tablicy?

    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ść kartę w odległości, w której urządzenie DUT może ustawić ostrość, i zmień wartość chart_distanceconfig.yml na zmierzoną odległość między urządzeniem DUT a kartą. 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ść platformy testowej RFoV), zamontuj go przed platformą w odległości, która pozwoli na wypełnienie około 60% pola widzenia aparatu przez scenę z wykresem, aby uzyskać ostrzejsze zdjęcia. Odległość ta 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.