Informacje o wersji Androida 11 Camera Image Test Suite

Na tej stronie znajduje się podsumowanie zmian Camera Image Test Suite (ITS) (w języku angielskim) na Androidzie 11. Zmiana obejmuje następujące elementy: kategorie:

Zmiany dotyczące sprzętu

Android 11 wprowadza kilka zmian sprzętowych obniżyć koszty i zwiększyć dostępność. Zmiana obejmuje następujące kategorie: kategorie:

Dodatkowy producent

Firma Rahi Systems ma kwalifikacje niezbędne, aby produkować obudowy testowe ITS oprócz naszych od dotychczasowego dostawcy, projekt MYWAY. Informacje o firmie dla kwalifikowanych dostawców są następujące:

Ujednolicone metody produkcji

Zwykły pole widzenia rev1 (RFoV) ITS w opakowaniu została przeprojektowana tak, aby korzystała z metod produkcji używanych przez pole Szerokokątnego pola widzenia (WFoV) oraz Czujnik Fusion Box obudowy do testów. Funkcje są identyczne, a dla uproszczenia interfejs określa się jako rev1a. Dzięki tej zmianie producenci mogą mieć z tworzywa sztucznego do produkcji wszystkich obudów testowych. Dodatkowo tablet uchwyt i lampa zostały zaprojektowane tak, aby obsługiwały większą różnorodność tabletów. i paski świetlne LED.

Aby pobrać najnowsze opisy i rysunki mechaniczne, zobacz Skrzynka RFoV (rev1a) oraz WFoV box (wersja 2.9).

Większe możliwości dla tabletów

Tablety Samsung Galaxy Tab A 10.1 i Chuwi Hi9 Air 10.1 są została dodana do listy zalecanych tabletów. Ważne jest, aby na tablecie modulacja szerokości pulsu (PWM) pozwala dostosować jasność ekranu i wyeliminować pasy zdjęcia.

Najnowsze informacje na temat zalecanych tabletów znajdziesz tutaj Wymagania dotyczące tabletów

Rzadsze otwieranie tabletów

Aby można było korzystać z Galaxy Tab A 10.1, otwieranie tabletu jest nieco zmniejszone dla obudowy do testów RFoV (rev1a) i WFoV (rev2). wersje rev1a.1 oraz rev2.9, które odzwierciedlają te zmiany. W przypadku tych rysunków zobacz Skrzynka RFoV (rev1a) oraz WFoV box (wersja 2.9).

Nowy kontroler czujnika fusion

Przeprojektowaliśmy układ sprzętowy kontrolera Sen Fusion, aby ulepszyć i produktywność. Nowy kontroler oparty jest na Arduino i ma niestandardowy ekranu płytki routingu mocowanego na górze Arduino. Ilustracja 1 pokazuje Tarcza, a ilustrowany 2 – rysunek mechaniczny obudowy. Nowy kontroler jest zasilany z jednego źródła 5 V, które zasila silnik bezpośrednio. Elementy elektroniczne są sterowane w pełni przez złącze USB. Oddzielny zasilacz zapewnia całkowitą izolację od elementów sterujących w stosunku do układów elektronicznych i serwisora. Dodatkowo jeden kontroler może z maks. 6 silnikami.

Widok z góry na Arduino

Rysunek 1. Widok z góry na tarczę Arduino

Projekt obudowy

Rysunek 2. Projekt obudowy

Android 11 jest zgodny wstecznie z dotychczasowymi i kontrolerach. Do wywoływania testów za pomocą kontrolera opartego na Arduino użyj polecenia:

python tools/run_all_tests.py device=# camera=# rot_rig=arduino:1 scenes=sensor_fusion

Pierwszy poziom interfejsu API

Na Androidzie 10 testy ITS są oznaczone jako MANDATED i NOT_YET_MANDATED. Wprowadzenie na rynek w wersji na Androida 10 na urządzeniu, wszystkie testy (MANDATED) muszą zostać zaliczone. Testy NOT_YET_MANDATED mogą zakończyć się niepowodzeniem ale są wyświetlane jako PASS na potrzeby raportowania przez weryfikatora CTS. MANDATED – testy dotyczy również urządzeń uaktualnionych. To wymaganie w przypadku przejścia na wyższą wersję na urządzeniach, które zaliczyły wszystkie MANDATED testy, były opóźnione w Testy: MANDATED, ponieważ starsze urządzenia też muszą je przejść.

W Androidzie 11 testy MANDATED są ograniczone przez pierwszej flagi poziomu API z właściwości telefonu. Na urządzeniach przechodzących na Android 11, testy przebiegają jako NOT_YET_MANDATED oznacza, że test może się nie powieść, ale jego wartość jest przedstawiona jako PASS w CtsVerifier.apk

Na przykład:

  • Na Androidzie 11 test test_channel_saturation jest MANDATED w przypadku urządzeń o pierwszym poziomie interfejsu API wyższym niż 29.
  • Na Androidzie 10 test test_channel_saturation jest MANDATED dla wszystkich urządzeń.

Weryfikuję oświetlenie sceny

W Androidzie 11 oświetlenie sceny jest weryfikowane przez analizując jasność w rogach sceny. Wszystkie sceny utworzone ręcznie są zweryfikowanych pod kątem oświetlenia, a sceny z tabletu są sprawdzane pod kątem kamer RFoV. w urządzeniu testowym WFoV i kamerach WFoV w urządzeniu testowym WFoV. Jeśli oświetlenie są nieodpowiednie, zostaje zgłoszony błąd, a testowanie kończy się niepowodzeniem.

Zmiana nazwy sceny

Na Androidzie 10 scena 1 odpowiada za większość i stanowi znaczną część łącznego czasu trwania testów. Jeśli jakikolwiek test w scenie 1 trzeba powtórzyć całą scenę. Zasadniczo ponowne włączenie całej sceny zmniejsza liczbę testów krańcowych. W Androidzie 11 czas powtórek został skrócony, ponieważ scena 1 jest podzielona na dwie sceny: scen1_1 i scen1_2.

W tabeli poniżej znajdziesz czasy testów dotyczące tylnego aparatu Pixela 4 w różnych sytuacjach. Liczba testów jest dzielona, aby wyrównać czas trwania testu aby nie zrównoważyć liczby testów.

Dostępne jest też czyszczenie nazw. Scena 2 jest podzielona literami i sceną 1 jest podzielony na liczby. Nazewnictwo różnych rozszerzeń:

  • Sceny z tym samym wykresem, ale z innymi testami: *_1,2,3
  • Sceny z różnymi wykresami, ale te same testy: *_a,b,c
Oświetlenie Liczba testów Czas pracy telefonu Pixel 4 (min:s)
0 11 1:12
1_1 22 5:12
1_2 13 5:20
2_a 5 3:22
2_b 1 0:24
2_c 1 0:24
3 6 2:04
4 2 2:46

Sprawdź zmiany

Testy zostały zaktualizowane tak, aby używać pierwszego poziomu interfejsu API

Na Androidzie 11 testy w tabeli poniżej zaktualizowany tak, aby używała pierwszej flagi poziomu interfejsu API. Wszystkie te testy wykorzystują pierwszy poziom API 29, z wyjątkiem testu test_tonemap_curve, który używa a pierwszy poziom to 30.

Oświetlenie Nazwa testu Pierwszy poziom interfejsu API Opis
0 test_tonemap_curve 30 Zadbaj o to, aby dane wyjściowe potoku miały odpowiednie kolory z liniową mapą tonową i idealną obraz wejściowy (wymaga ustawienia test_test_patterns).
1 test_ae_precapture_trigger 29 Przetestuj maszynę stanu AE podczas korzystania z aktywatora wstępnego przechwytywania. Upewnij się, że używasz automatycznego tagowania wyłączony aktywator wstępnego przechwytywania nie ma żadnego efektu.
test_channel_saturation 29 Sprawdź, czy kanały RGB są nasycone podobnymi wartościami, aby wyeliminować zabarwienie regionów nasyconych.
2_a/b/c test_num_faces 29 Zwiększenie różnorodności wiekowej w filmach przedstawiających twarze

Testy ze zmianami

Testy w tej tabeli są aktualizowane na urządzeniach z Androidem 11. Zmiany te zostały opisane w kolumnie Opis zmian.

Oświetlenie Nazwa testu Pierwszy poziom interfejsu API Opis zmian
1 test_burst_sameness_manual 30 Zmniejsz tolerancję do 2%.
4 test_aspect_ratio_and_crop 30 Zmień, aby działać na LIMITED urządzeniach.
test_multi_camera_alignment 30 Jeśli robienie kilku kamer nie jest obsługiwane, musisz wykonać kolejne kroki z kamer. Przerobić logikę wyboru kamery, by uwzględnić systemy obejmujące 3 i 4 kamery. i pominąć aparaty mono, aparaty z głębią głębi i podczerwieni.

Nowe testy

Testy w poniższej tabeli są włączone w: Android 11. Testy zostały podsumowane w tabeli, szczegółowe opisy znajdziesz w kolejnych sekcjach.

Oświetlenie Nazwa testu Pierwszy poziom interfejsu API Opis
0 test_vibration_restrictions 30 Sprawdź, czy alerty i wibracje nie są włączone podczas robienia zdjęć.
2_a test_jpeg_quality 30 Sprawdź, czy tabele kwantyzacji zmniejszają kompresję, aby uzyskać większy rozmiar JPEG jakości.
2_d/2_e test_num_faces 30 Zwiększenie różnorodności twarzy.
2_e test_continuous_picture 30 Upewnij się, że 3A rozliczają się w android.control.afAvailableModes = CONTINUOUS_PICTURE.
zmień test_scene_change 31 Zgłoszono prawa do treści android.control.afSceneChange po zmianie sceny.
6 test_zoom 30 Przetestuj android.control.zoomRatioRange.

scena0/ograniczenie_wibracji_testowej

Ten test nie wymaga żadnej konkretnej sceny, ale testowane urządzenie musi być umieszczone na twardej powierzchni lub na niej. Obejmuje to m.in. montaż na Obudowy testowe ITS w pudełku.

Zgłoszenia

  • Brak wibracji podczas używania kamery

scena2_a/test_jpeg_quality

Metoda

Różne części pliku JPEG są oznaczone 2-bajtowymi znacznikami. Więcej informacje znajdziesz w sekcji JPEG.

Test wyodrębnia matryce kwantyzacji z przechwycenia JPEG. Znacznik dla matryc kwantyzacyjnych w przechwytywaniu JPEG jest sekwencja [255, 219]. Po znalezieniu znacznika rozmiaru są 2 następne elementy listy. plik JPEG DQT, znacznik rozmiaru to zwykle [0, 132] = 256*0+132 = 132, co odpowiada rozmiarowi danych DQT w zapisie JPEG. Umieszczone dane mają następujący format: [255, 219, 0, 132, 0 (znacznik luma), matryca 8 x 8 luma, 1 (znacznik luma), matrycy kolorów 8x8].

Pojawią się wartości 0 dla znacznika matrycy luma i 1 w przypadku wielu urządzeń, w tym telefonów, które rozdzielają dane. do osobnych sekcji DQT w pliku JPEG. Matryce kolorów mają większą różnorodność wartości niż matryce kolorów, ponieważ ludzkie oko wrażliwe na lumę, a w przypadku zdjęć JPEG.

Poniżej przedstawiono próbkę wyodrębnionych matryc luma i matryc chromatycznych dla czynników jakościowych: 85 i 25 dla tylnego aparatu Pixela 4, rejestrując scenę2_a za pomocą sprzętu testowego ITS. Wartości macierzy znacznie zwiększają (co oznacza zwiększoną kompresję) przez ustawienie niższej jakości. Te macierze są drukowane ze skryptem tylko wtedy, gdy stosowana jest flaga debug=True. Zwróć uwagę na większe różnice we wpisach w matryce luma.

    luma matrix (quality = 85)    chroma matrix (quality = 85)

    [[ 5  3  4  4  4  3  5  4]    [[ 5  5  5  7  6  7 14  8]
     [ 4  4  5  5  5  6  7 12]     [ 8 14 30 20 17 20 30 30]
     [ 8  7  7  7  7 15 11 11]     [30 30 30 30 30 30 30 30]
     [ 9 12 17 15 18 18 17 15]     [30 30 30 30 30 30 30 30]
     [17 17 19 22 28 23 19 20]     [30 30 30 30 30 30 30 30]
     [26 21 17 17 24 33 24 26]     [30 30 30 30 30 30 30 30]
     [29 29 31 31 31 19 23 34]     [30 30 30 30 30 30 30 30]
     [36 34 30 36 28 30 31 30]]     [30 30 30 30 30 30 30 30]]

    luma matrix (quality = 25)            chroma matrix (quality = 25)

    [[ 32  22  24  28  24  20  32  28]    [[ 34  36  36  48  42  48  94  52]
     [ 26  28  36  34  32  38  48  80]     [ 52  94 198 132 112 132 198 198]
     [ 52  48  44  44  48  98  70  74]     [198 198 198 198 198 198 198 198]
     [ 58  80 116 102 122 120 114 102]     [198 198 198 198 198 198 198 198]
     [112 110 128 144 184 156 128 136]     [198 198 198 198 198 198 198 198]
     [174 138 110 112 160 218 162 174]     [198 198 198 198 198 198 198 198]
     [190 196 206 208 206 124 154 226]     [198 198 198 198 198 198 198 198]
     [242 224 200 240 184 202 206 198]]     [198 198 198 198 198 198 198 198]]

Ilustracja 3 przedstawia średnie wartości matrycy w przypadku tylnego aparatu Pixela 4 w porównaniu z formatami JPEG jakości. Wraz ze wzrostem jakości plików JPEG poziom kompresji (średnia matrycy DQT luma/chroma) maleje.

Średnie wartości macierzy na Pixelu 4

Rysunek 3. Średnie matrycy kolorów DQT w tylnym aparacie Pixel 4 w porównaniu do formatu JPEG jakość

Zgłoszenia

  • W przypadku firm [25, 45, 65, 86] wartość +20 w zakresie jakości ma redukcję kwantyzacji o 20% średnie wartości macierzy.
  • Ładunki macierzy DQT to liczby kwadratowe.

Ilustracja 4 przedstawia przykład telefonu, który nie przeszedł testu. Pamiętaj, że w przypadku bardzo niskich wysokiej jakości (jpeg.quality < 50), nie zwiększa się kompresja lub macierz kwantyzacji.

Przykład nieudanego testu

Rysunek 4. Przykład nieudanego testu

scena2_d/e test_liczba_twarzy

Dodaliśmy 2 nowe sceny wykrywania twarzy, aby zwiększyć różnorodność testów algorytmu wykrywania twarzy. Po wielokrotnym przetestowaniu kilku kamer najtrudniejsza ściana ma być skrajnie lewa w scenie2_d. Na szczególną uwagę zasługuje kapelusz i broda, i sceny twarzy. Nowe sceny przedstawiono na rysunkach 5 i 6.

scena2_d

Rys. 5. scen2_d

scena2_e

Rys. 6. scen2_e

Zgłoszenia

  • num_faces == 3

scena2_e/test_continuous_obraz

Metoda

Test test_continuous_picture korzysta ze sceny2_e, ale można ją włączyć z dowolną sceną z jej twarzy. W ramach tego testu 50 klatek o rozdzielczości VGA jest zarejestrowane przy użyciu pierwszego ustawienia żądania przechwytywania android.control.afMode = 4 (CONTINUOUS_PICTURE).

System 3A powinien się ustabilizować po zakończeniu rejestrowania 50 klatek.

Zgłoszenia

  • Na końcu przechwytywania jest w stanie zbieżnym 3A.

zmiana_sceny/zmiana_sceny_testowej

Metoda

Włączony jest nowy test, który pozwala sprawdzić, czy flaga android.control.afSceneChange jest co jest równoznaczne ze zmianą sceny. Zmiana sceny wykorzystuje tablet wyświetlenie sceny twarzy, a następnie włączanie i wyłączanie tabletu w celu utworzenia zmianę sceny. Wykorzystuje ponownie scenę2_e, ale znajduje się w osobnej scenie, ponieważ: wymagany element sterujący na tablecie.

W przypadku testów ręcznych zmianę scenerii można też przeprowadzić machnięciem dłonią. dłoń przed aparatem.

Rysunek 7 przedstawia diagram czasowy testu. Czas między obracaniem ekranu wyłączone, a rejestrowanie jest dostosowywane na podstawie wyników zdarzeń z poprzednich zapisów.

Diagram czasu dla parametru test_scene_change

Rysunek 7. Diagram czasu dla parametru test_scene_change

Zmień warunki:

  • Jeśli nastąpi zmiana sceny i afSceneChange == 1, test powróci PASS
  • Jeśli następuje zmiana sceny i afSceneChange == 0, następuje jej zmiana. przenosi o 5 klatek wcześniej, aby dać elementowi afSceneChange więcej czasu na potwierdzenie.
  • Jeśli scena się nie zmieni, a afSceneChange == 1, test powróci FAIL
  • Jeśli scena się nie zmienia, a scena afSceneChange == 0 się nie zmienia, przesuń o 30 klatek wcześniej, by uzyskać zmianę sceny.

Zgłoszenia

  • Przełączniki ekranu (sceny).
  • Flaga afSceneChange znajduje się w zakresie [0, 1].
  • Jeśli scena się nie zmieni, 3A będą zbieżne (funkcjonalnie identyczne jak test_continuous_picture).
  • Jeśli wybrano ustawienie afSceneChange == 1, jasność sceny musi się zmienić.
  • PASS w ciągu 6 prób, przy czym czas został zmieniony na podstawie poprzednich wyników.

scen6/zoom_testowy

Metoda

Aby przetestować android.control.zoomRatioRange jako stałe sceny nie mają cech dostatecznie małej, aby można było je powiększyć. (sceny [1, 2, 4]) lub znajdują się w nich wiele obiektów, których nie da się łatwo zidentyfikować, komplikujące wyodrębnianie cech (scena 3).

Rysunek 8 przedstawia nową scenę z regularnymi okręgami. Tablica okręgi rozwiązują wymagania dotyczące wyśrodkowania ekranu DUT i pozwalają na pojawienie się okręgu zawsze w pobliżu środka zdjęcia. W tej scenie tablica 9 x 5 okręgi z czarnym obramowaniem zakrywają cały tablet. Zastąpiono 1 krąg z kwadratem w prawym górnym rogu, aby pokazać orientację. Rozmiary okręgu mają cechę o obszarze około 7500 pikseli (radius=50pixels) dla Czujnik rozdzielczości 4000 x 3000 został zarejestrowany z polem widzenia (FoV) ustawionym na około 80 stopni.

scena test_zoom

Rys. 8. Scena test_zoom

Pixel 4 znalazł okrąg

Rysunek 9. Pixel 4 cam[0] zoom = [1, 3.33, 5.67, 8] obrazy ze znalezionym okręgiem

Ilustracja 9 przedstawia zdjęcia tylnego aparatu Pixela 4 w trybie powiększenia zwiększa się od 1 do 8x w 4 krokach. Ten zestaw zdjęć jest robiony bez w taki sposób, aby było to możliwe tylko w przypadku testowania przysłony w telefonie. dwa otwory umożliwiające testowanie przedniego i tylnego aparatu. Przesunięcie od jest oczekiwany i jest obserwowany, gdy tablet z wykresem jest nieco na lewo od pomocy. Poza tym wykres wydaje się wystarczający do przetestowania powiększenia. wyższe niż 8x.

Znajdowanie kręgów

Test obejmuje metodę find_circle() z użyciem findContours, która znajduje wszystkie kontury i zawężanie wyszukiwania konturów w dół do żądanych okręgów przez testowanie następujące:

  • Obszar konturów musi być większy niż 10 pikseli.
  • Kontury muszą zawierać atrybut NUM_PTS >= 15.
  • Kontury muszą mieć czarne środki.
  • Kontury muszą przypominać koło, czyli ich pole w pobliżu obszaru pi*r2 konturu.

Zakres testowy

Pole android.control.zoomRatioRange jest podzielone na 10 kroków.

  • [1, 7] testów [1, 1,67, 2,33, 3, 3,67, 4,33, 5, 5.67, 6.33, 7]

Powiększanie zostanie zatrzymane, jeśli znaleziony okrąg styka się z granicami obrazu. Trzeba sprawdzić, czy w teście jest osiągnięty wystarczający poziom powiększenia. (10x).

Zgłoszenia

  • Przy każdym ustawieniu powiększenia znajduje się co najmniej jeden okrąg.
  • Testowana jest 10x lub maksymalna liczba android.control.zoomRatioRange.
  • Promień okręgu skaluje się przy powiększeniu (RTOL o 10% od oczekiwanego).
  • Przesunięcie środka okręgu od środka skal z powiększeniem (RTOL 10% od oczekiwanych).
  • Osiągnięto wystarczający poziom powiększenia (2x).

Zwiększono limit testowania aparatu (LIMITED)

Na Androidzie 11 testy w poniższej tabeli przetestuj LIMITED kamer. Oprócz nowych testów test scene4/test_aspect_ratio_and_crop został zaktualizowany, aby umożliwić testowanie z LIMITED urządzeń z pierwszym poziomem interfejsu API wynoszącym 30 lub wyższym.

Oświetlenie Nazwa testu
0 test_vibration_restrictions
2_a test_jpeg_quality
2_d/2_e test_num_faces
4 test_aspect_ratio_and_crop
6 test_zoom

Rysunek 10 przedstawia tajny dekoder ITS w Androidzie 11 dzwonek. Dekoder obiektu tajnego pokazuje on ustawienia, jakie są kontrolowane przez poszczególne testy. Bramka jest są oznaczone kolorami, które ułatwiają przeglądanie. Główne elementy bramki to:

  • MANUAL_SENSOR
  • READ_3A *wymaga MANUAL SENSOR
  • COMPUTE_TARGET_EXPOSURES *wymaga MANUAL SENSOR
  • PER_FRAME_CONTROL
  • RAW
  • SENSORS *REALTIME
  • MULTI_CAMERA

MANUAL SENSOR, READ_3A, COMPUTE_TARGET_EXPOSURES i W przypadku większości testów bramka PER_FRAME_CONTROL. Dodatkowo testy, które włączone na LIMITED urządzeniach są wyróżnione na jasnozielono.

tajny dekoder pierścienia

Rysunek 10. Android 11 – pierścień dekodera tajnego