Wersja Androida 13 zawiera szereg zmian w Camera ITS . Oprócz stopniowych zmian, takich jak zaktualizowane wersje Pythona i pakietów oraz testowe aktualizacje sprzętu, system Android 13 obsługuje testy wideo.
Ta strona podsumowuje zmiany ITS aparatu dla Androida 13. Zmiany dzielą się na siedem szerokich kategorii:
- Wersje Pythona i pakietów
- Dodatki do pliku konfiguracyjnego
- Zmiany testowe
- Nowe testy oparte na tablecie
- Testy wideo
- Aktualizacje i dodatki sprzętowe
- Składane wsparcie testowe
Wersje Pythona i pakietów
Android 13 obsługuje następujące wersje Pythona oprócz wersji Pythona i bibliotek obsługiwanych w Androidzie 12:
- Pythona 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Poduszka 8.3.1
- PyYAML 5.4.1
- Mobilny 1.11
- FFmpeg 4.4.1
Dodatki do pliku konfiguracyjnego
W związku z dodaniem sterowania oświetleniem do testu test_auto_flash.py
plik config.yml
potrzebuje dwóch dodatkowych parametrów dla sterownika i kanału oświetlenia. Aby określić, czy testowane urządzenie (DUT) jest składane, czy nie, plik config.yml
wymaga trzeciego dodatkowego parametru, który należy dodać zarówno do części dotyczącej tabletu, jak i łączenia czujników.
TestBeds:
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "True" or "False"; quotes needed
lighting_cntl: <controller-type> # "arduino" or "None"; quotes needed
lighting_ch: <controller-channel>
camera: 0
foldable_device: "False". # set "True" if testing foldable
scene: <scene-name> # if <scene-name> runs all scenes
Zmiany testowe
scene1_1/test_black_white.py
Test test_black_white
ma sprawdzanie nasycenia kanałów zgodne z poprzednimi wersjami Androida, co oznacza, że wymaganym pierwszym poziomem API do sprawdzania nasycenia kanałów jest Android 10.
scene1_2/test_yuv_plus_raw.py
Test test_yuv_plus_raw
obsługuje czujniki inne niż 16:9 lub 4:3, aby zapewnić lepszą obsługę formatu RAW. Jeśli w teście nie można znaleźć wspólnego formatu między formatem RAW czujnika a formatami przechwytywania YUV, test porównuje przechwycony obraz RAW z największym przechwyceniem YUV, nawet jeśli współczynniki proporcji są różne.
scene2_a/test_faces.py
test_faces
jest refaktoryzowany do test_num_faces
.
scene2_a/test_num_faces.py
Test test_num_faces
obsługuje kadrowanie czujnika i prawidłowo umieszcza prostokąty twarzy na przyciętych ujęciach z kamery UW.
scene3/test_lens_position.py
Test test_lens_position
jest przestarzały w systemie Android 13.
scene6/test_zoom.py
Test test_zoom
został zrefaktoryzowany, aby umożliwić łatwiejsze testowanie systemów z trzema i czterema kamerami. Jeśli kamera przetestuje prawidłowo w zakresie powiększenia 10x, test zakończy się poprawnie. Umożliwia to przeprowadzanie testów powiększenia w odległości pojedynczej mapy.
scene_change/test_scene_change.py
Test test_scene_change
jest przestarzały w systemie Android 13.
Nowe testy oparte na tablecie
Android 13 zawiera dwa nowe testy oparte na tabletach. Oba testy są obowiązkowe dla urządzeń uruchamianych z systemem Android 13, ale są pomijane w przypadku urządzeń aktualizujących system do Androida 13.
Scena | Nazwa testu | Pierwszy poziom API | Opis |
---|---|---|---|
2_a | test_auto_flash | 33 | Potwierdza, że ciemne sceny wyzwalają automatyczną lampę błyskową. |
2_b | test_yuv_jpg_capture_sameness | 33 | Potwierdza, że zdjęcia YUV i JPEG są bitowo identyczne. |
scene2_a/test_auto_flash.py
Android 13 dodaje test_auto_flash
.
Parametry
-
flash
: Pomija test, jeśli flash nie jest dostępny.
metoda
Test konfiguruje żądanie przechwycenia dla automatycznego błysku i przedstawia scenę wymagającą zdarzenia błysku. Oświetlenie stanowiska testowego i tabletu jest wyłączone, aby przedstawić ciemną scenę dla algorytmu automatycznej ekspozycji. Test konfiguruje sekwencję przechwytywania NUM_FRAMES
z włączonym automatycznym flashowaniem. Jeśli ustawienie AE_STATE
zwróci wartość FLASH_REQUIRED
, test weryfikuje, czy w przechwyconych obrazach wyzwalana jest lampa błyskowa.
Oświetleniem można sterować ręcznie po wyświetleniu monitu lub automatycznie za pomocą kontrolera Arduino z dodanym sterowaniem oświetleniem w celu zautomatyzowanego testowania. Nowy folder narzędziowy lighting_control_utils
centralizuje kod do sterowania oświetleniem w testach.
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13 dodaje test_yuv_jpeg_capture_sameness
.
Parametry
-
streamUseCase
: Określa, czy kamera obsługuje przypadek użycia strumienia. -
android.jpeg.quality
: Ustawia jakość JPEG na 100.
metoda
Ten test rejestruje dwa obrazy przy użyciu największych popularnych formatów YUV i JPEG o takim samym współczynniku proporcji jak największy format JPEG, nieprzekraczającym rozdzielczości 1920x1440. Test ustawia jpeg.quality
na 100 i przechwytuje żądanie podwójnej powierzchni. Następnie konwertuje oba obrazy na tablice RGB i oblicza różnicę średniej kwadratowej (RMS) 3D między dwoma obrazami. Tolerancja różnicy jest ustawiona na 1%.
Testy wideo
Camera ITS dodaje obsługę testowania wideo w systemie Android 13.
Android 13 dodaje następujące testy:
Scena | Nazwa testu | Pierwszy poziom API | Opis |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | Potwierdza, że podgląd wideo nie przycina się zbytnio przy włączonej stabilizacji. |
4 | test_video_aspect_ratio_and_crop | 33 | Potwierdza formaty wideo FoV, współczynnik proporcji i kadrowanie. |
sensor_fusion | test_preview_stabilizacja | 33 | Potwierdza działanie stabilizacji podglądu. | sensor_fusion | test_stabilizacji_wideo | 33 | Potwierdza działanie stabilizacji wideo. |
scene4/test_preview_stabilization_fov.py
Android 13 dodaje test_preview_stabilization_fov
. Ten test sprawdza obsługiwane rozmiary podglądu, aby upewnić się, że FoV nie jest niewłaściwie przycięte.
metoda
Test przechwytuje dwa filmy, jeden z włączoną stabilizacją podglądu, a drugi z wyłączoną stabilizacją podglądu. Z każdego filmu wybierana jest reprezentatywna klatka, która jest analizowana w celu upewnienia się, że zmiany FoV w dwóch filmach mieszczą się w specyfikacji.
W szczególności test sprawdza następujące parametry ze stabilizacją podglądu i bez:
- Okrągłość koła pozostaje stała.
- Środek koła pozostaje stabilny.
- Rozmiar koła zmienia się nie więcej niż o 20%, co oznacza, że FoV zmienia się maksymalnie o 20%.
scene4/test_video_aspect_ratio_and_crop.py
Android 13 dodaje test_video_aspect_ratio_and_crop
test. Podobnie do testu test_aspect_ratio_and_crop
dla nieruchomych przechwyceń, ten test sprawdza obsługiwane formaty wideo, aby upewnić się, że klatki wideo nie są niewłaściwie rozciągnięte lub przycięte. Wszystkie zgłoszone przez siebie jakości wideo są testowane. Dodatkowo, jeśli kamera obsługuje wideo HLG10
, testowane jest wideo 10-bitowe.
Android 13 dodaje metodę get_available_video_qualities
do its_session_utils
. Aby udostępnić wspólny kod z istniejącymi testami, Android 13 zawiera również dwie nowe funkcje narzędziowe, image_fov_utils
i video_processing_utils
.
metoda
Test rejestruje obraz referencyjny w formacie RAW lub w formacie JPEG o najwyższej rozdzielczości, jeśli format RAW nie jest obsługiwany. Na podstawie obrazu referencyjnego określa się rozmiar i położenie okręgu. Następnie nagrywane są krótkie filmy ze wszystkimi obsługiwanymi jakościami wideo. Ostateczna klatka odniesienia jest wyodrębniana z każdej jakości wideo. Na podstawie klatki odniesienia dla każdej jakości wideo obliczane jest pole widzenia (FoV), wyśrodkowanie (przycięcie) i współczynnik proporcji.
W celu obliczenia FoV test porównuje rozmiar okręgu klatki wideo z obliczonym rozmiarem okręgu na podstawie rozmiaru obrazu referencyjnego i formatu wideo. W przypadku kontroli kadrowania test porównuje wyśrodkowanie klatki wideo z wyśrodkowaniem obrazu referencyjnego. W celu sprawdzenia współczynnika proporcji przy użyciu sceny, która jest dużym czarnym kółkiem na białym tle, test określa współczynnik kształtu koła i sprawdza, czy ramka nie jest zniekształcona.
sensor_fusion/test_preview_stabilization.py
Android 13 dodaje test_preview_stabilization
test, który sprawdza wszystkie obsługiwane jakości podglądu do 1920x1080. Test wykorzystuje platformę do testowania fuzji czujników i wymaga nowego kontrolera fuzji czujników w wersji 2 lub aktualizacji oprogramowania układowego wcześniejszych wersji kontrolera Arduino. Aby uzyskać więcej informacji na temat nowego kontrolera, zobacz Aktualizacje i dodatki sprzętowe .
metoda
Telefon porusza się powoli pod kątem około 15 stopni z włączoną stabilizacją podglądu. Obrót obrazów jest następnie porównywany z obrotem żyroskopu.
sensor_fusion/test_video_stabilization.py
Android 13 dodaje test_video_stabilization
test, który sprawdza obsługiwane jakości wideo do 1920x1080. Jakość wideo w niskiej rozdzielczości QCIF jest wykluczona. Test wykorzystuje platformę do testowania fuzji czujników i wymaga nowego kontrolera fuzji czujników w wersji 2 lub aktualizacji oprogramowania układowego wcześniejszych wersji kontrolera Arduino. Aby uzyskać więcej informacji na temat nowego kontrolera, zobacz Aktualizacje i dodatki sprzętowe .
metoda
Platforma testowa powoli przesuwa telefon pod kątem około 15 stopni z włączoną stabilizacją podglądu. Obrót obrazów jest następnie porównywany z obrotem żyroskopu.
Aktualizacje i dodatki sprzętowe
Android 13 zawiera aktualizację kontrolera fuzji czujników opartego na Arduino w wersji 2 . Ta aktualizacja obejmuje zarówno zmiany sprzętu, jak i oprogramowania układowego. Aktualizacja umożliwia sterownikowi ustawienie prędkości obrotowej oraz sterowanie oświetleniem. Modernizacja obejmuje również nową tarczę (pokazaną na rysunku 1), która zapewnia trzy kanały obrotu i trzy kanały sterowania oświetleniem.
Rysunek 1. Nakładka Arduino rev2.0 ze sterowaniem obrotem i oświetleniem
Dodatkowo dla wersji 13 należy zaktualizować firmware istniejących sterowników, aby umożliwić sterowanie prędkością obrotową. To oprogramowanie układowe można pobrać z:
Aby uzyskać więcej informacji na temat nowego kontrolera, zobacz Kontroler fuzji czujników z systemem Android 13 .
Składane wsparcie testowe
Android 13 obejmuje testowanie obsługi urządzeń składanych. Aby włączyć interfejs API wielu kamer dla urządzeń składanych, podczas testowania wymagany jest stan telefonu ( Folded
lub Unfolded
). Aby włączyć sondowanie stanu telefonu dla wszystkich DUT, w tym telefonów nieskładanych, uruchom następujące polecenie adb po podłączeniu DUT do hosta.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier