Questa pagina riassume le modifiche apportate al Camera Image Test Suite (ITS) in Android 11. Le modifiche rientrano nelle seguenti categorie:
- Modifiche hardware
- Primi test OBBLIGATORIO a livello di API
- Illuminazione di prova convalidata
- Modifiche ai nomi delle scene
- Testare le modifiche e le aggiunte
- Aumento dei test LIMITATI delle videocamere
Modifiche hardware
Android 11 introduce diverse modifiche hardware per ridurre i costi e aumentare la disponibilità. Queste modifiche rientrano nelle seguenti categorie:
- Produttore aggiuntivo
- Metodi di produzione unificati
- Più opzioni per i tablet
- Apertura del tablet ridotta
- Nuovo controller di fusione dei sensori
Produttore aggiuntivo
Rahi Systems è qualificata per produrre custodie per test ITS, oltre al nostro fornitore esistente MYWAY Design. Di seguito sono riportate le informazioni sull'azienda per i fornitori qualificati:
Rahi Systems Inc.
48303 Fremont Blvd, Fremont CA 94538, USA
rahisystems.com/products/android-device-testing-equipment/
androidpartner@rahisystems.com
+1-510-319-3802Design MYWAY
4F., No. 163, Fu-Ying Road, XinZhuang District, New Taipei City, Taiwan
twmyway.com
sales@myway.tw
+886-2-29089060
Metodi di produzione unificati
La cover di test del sistema ITS-in-a-box con campo visivo regolare (RFoV) della revisione 1 è stata riprogettata per utilizzare i metodi di produzione in uso per le cover di test del sistema ITS-in-a-box con campo visivo ampio (WFoV) e del sistema ITS-in-a-box con fusione di sensori. La funzionalità è identica e, per semplicità, il design è indicato come rev1a. Il nuovo design consente ai produttori di avere un solo tipo di plastica per la produzione di tutti gli involucri di prova. Inoltre, il supporto del tablet e i supporti delle luci sono stati riprogettati per gestire una maggiore variabilità di tablet e barre luminose a LED.
Per scaricare le descrizioni e i disegni meccanici più recenti, consulta RFoV box (rev1a) e WFoV box (rev2.9).
Maggiori opzioni per i tablet
I tablet, tra cui Samsung Galaxy Tab A 10.1 e Chuwi Hi9 Air 10.1, sono stati aggiunti all'elenco dei tablet consigliati. È importante che il tablet non abbia la modulazione della larghezza dell'impulso (PWM) per regolare la luminosità dello schermo ed eliminare le bande nelle immagini acquisite.
Per le informazioni più recenti sui tablet consigliati, vedi Requisiti dei tablet.
Apertura del tablet ridotta
Per consentire l'utilizzo del Galaxy Tab A 10.1, l'apertura del tablet è leggermente ridotta in altezza sia per le custodie di prova RFoV (rev1a) che WFoV (rev2). Le revisioni che riflettono queste modifiche sono rev1a.1 e rev2.9. Per questi disegni, consulta Riquadro RFoV (rev1a) e Riquadro WFoV (rev2.9).
Nuovo controller Sensor Fusion
L'hardware del controller di fusione dei sensori è stato riprogettato per migliorare la produzione. Il nuovo controller è basato su Arduino, con una scheda di routing personalizzata che si monta sopra Arduino. La figura 1 mostra la protezione e la figura 2 il disegno meccanico dell'involucro. Il nuovo controllore è alimentato da un'unica alimentazione da 5 V che alimenta direttamente il motore. L'elettronica è controllata completamente tramite il connettore USB. L'alimentatore separato consente il completo isolamento tra l'elettronica di controllo e il servomotore. Inoltre, un singolo controller può controllare fino a sei servomotori.
Figura 1. Vista dall'alto di uno scudo di Arduino
Figura 2. Progettazione dell'involucro
Android 11 è compatibile con le versioni precedenti con i controller esistenti. Per richiamare i test con il controller basato su Arduino, utilizza:
python tools/run_all_tests.py device=# camera=# rot_rig=arduino:1 scenes=sensor_fusion
Primo livello API
In Android 10, i test ITS sono contrassegnati come MANDATED
e NOT_YET_MANDATED
. Per il lancio come dispositivo Android 10, tutti i test MANDATED
devono essere superati. I test NOT_YET_MANDATED
possono non riuscire, ma vengono tabulati come PASS
per i report dei verificatori CTS. Il requisito dei test MANDATED
si applica anche ai dispositivi di cui è stato eseguito l'upgrade. Questo requisito che imponeva il superamento di tutti i test MANDATED
da parte dei dispositivi di cui è stato eseguito l'upgrade ha causato il ritardo dei test, che ora sono diventati MANDATED
test, perché anche i dispositivi meno recenti devono superare questi test.
In Android 11, i test MANDATED
sono bloccati dal primo flag a livello di API delle proprietà dello smartphone. Per i dispositivi di cui viene eseguito l'upgrade ad Android 11, i test vengono eseguiti come test NOT_YET_MANDATED
, il che significa che un test può non riuscire, ma essere inserito nella tabella come PASS
in CtsVerifier.apk
.
Ad esempio:
- In Android 11, il test
test_channel_saturation
èMANDATED
per i dispositivi con un primo livello API superiore a 29. - In Android 10, il test
test_channel_saturation
èMANDATED
per tutti i dispositivi.
Convalida dell'illuminazione della scena
In Android 11, l'illuminazione della scena viene convalidata analizzando la luminosità negli angoli. Tutte le scene manuali vengono convalidate per l'illuminazione, mentre le scene basate su tablet sono convalidate per le videocamere RFoV nell'impianto di test RFoV e per le videocamere WFoV nel banco di prova WFoV. Se i livelli di illuminazione non sono adeguati, viene segnalato un errore e il test non va a buon fine.
Modifiche ai nomi delle scene
In Android 10, la scena 1 rappresenta la maggior parte delle prove e una percentuale elevata del tempo di test totale. Se un test all'interno della scena 1 non va a buon fine, l'intera scena deve essere eseguita di nuovo. Per impostazione predefinita, la riesecuzione dell'intera scena riduce il passaggio di test marginali. In Android 11, i tempi di esecuzione vengono ridotti dividendo la scena 1 in due scene, scene1_1 e scene1_2.
La tabella seguente mostra i tempi di test tabulati per la fotocamera posteriore di Pixel 4 per diverse scene. Il numero di test viene suddiviso per uniformare il tempo di test, non per uniformare il numero di test.
Inoltre, viene eseguita una pulizia dei nomi. La scena 2 è divisa con lettere e la scena 1 con numeri. La nomenclatura delle diverse estensioni è la seguente:
- Scene con lo stesso grafico, ma test diversi:
*_1,2,3
- Scene con grafici diversi, ma stessi test:
*_a,b,c
Scena | Numero di test | Tempo di esecuzione di Pixel 4 (min:sec) |
---|---|---|
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 |
Testa modifiche
Test aggiornati per utilizzare il primo livello API
In Android 11, i test nella tabella seguente vengono aggiornati in modo da utilizzare il primo flag a livello di API. Tutti questi test utilizzano un primo livello API pari a 29, tranne il test test_tonemap_curve
, che utilizza un primo livello API pari a 30.
Scena | Nome del test | Primo livello API | Descrizione |
---|---|---|---|
0 | test_tonemap_curve |
30 | Assicurati che la pipeline abbia uscite di colore adeguate con mappatura tonale lineare e input di immagini ideali (si basa su test_test_patterns ). |
1 | test_ae_precapture_trigger |
29 | Prova la macchina a stati AE quando utilizzi l'attivatore di preacquisizione. Assicurati che con l'attivatore preacquisizione disabilitato AE non abbia alcun effetto. |
test_channel_saturation |
29 | Assicurati che i canali RGB saturano a valori simili per eliminare la tinta nelle regioni sature. | |
2_a/b/c | test_num_faces |
29 | Aumenta la diversità di età nelle scene con volti. |
Test con modifiche
I test nella tabella seguente sono aggiornati in Android 11. Le modifiche sono descritte nella colonna Descrizione delle modifiche.
Scena | Nome del test | Primo livello API | Descrizione delle modifiche |
---|---|---|---|
1 | test_burst_sameness_manual |
30 | Riduci la tolleranza al 2%. |
4 | test_aspect_ratio_and_crop |
30 | Modifica per la pubblicazione su dispositivi CON LIMITAZIONI. |
test_multi_camera_alignment |
30 | Passa da una videocamera all'altra singolarmente se la registrazione con più videocamere non è supportata. Rivedere la logica di selezione della videocamera in modo da tenere conto dei sistemi con tre e quattro videocamere e saltare le videocamere mono, solo per la profondità e a infrarossi. |
Nuovi test
I test nella tabella seguente sono abilitati in Android 11. I test sono riassunti nella tabella e le descrizioni dettagliate sono riportate nelle sezioni seguenti.
Scena | Nome del test | Primo livello API | Descrizione |
---|---|---|---|
0 | test_vibration_restrictions |
30 | Assicurati che avvisi e vibrazioni non siano attivati durante l'acquisizione delle immagini. |
2_a | test_jpeg_quality |
30 | Verifica che le tabelle di quantizzazione riducano la compressione per aumentare la qualità JPEG. |
2_d/2_e | test_num_faces |
30 | Aumenta la diversità di età dei volti. |
2_e | test_continuous_picture |
30 | Assicurati che 3A si stabilizzi in android.control.afAvailableModes =
CONTINUOUS_PICTURE. |
modifica | test_scene_change |
31 | android.control.afSceneChange assert upon scene change. |
6 | test_zoom |
30 | Test android.control.zoomRatioRange . |
scene0/test_vibration_restriction
Questo test non richiede una scena specifica, ma il dispositivo in prova (DUT) deve essere posizionato o montato su una superficie rigida. Sono inclusi i montaggi sulle casse di prova ITS-in-a-box.
Dichiarazioni
- Nessuna vibrazione durante l'utilizzo della fotocamera
scene2_a/test_jpeg_quality
Metodo
Parti diverse del file JPEG sono definite da indicatori di 2 byte. Per ulteriori informazioni, vedi JPEG.
Il test estrae le matrici di quantizzazione dall'acquisizione JPEG. L'indicatore per le matrici di quantizzazione nell'acquisizione JPEG è la sequenza [255, 219]. Quando viene trovato l'indicatore, i due elementi dell'elenco successivi sono le dimensioni. In genere, l'indicatore delle dimensioni DQT JPEG è [0, 132] = 256*0 + 132 = 132, che tiene conto delle dimensioni dei dati DQT nell'acquisizione JPEG. I dati incorporati sono del seguente tipo: [255, 219, 0, 132, 0 (indicatore di luminanza), matrice di luminanza 8x8, 1 (indicatore di crominanza), matrice di crominanza 8x8].
I valori 0
per l'indicatore della matrice di luminanza e 1
per l'indicatore della matrice di crominanza sembrano essere coerenti per una serie di dispositivi, inclusi gli smartphone, che separano le due matrici in sezioni DQT distinte nel file JPEG. Le matrici di luminanza tendono ad avere una maggiore varietà di valori rispetto alle matrici di crominanza, poiché l'occhio umano è più sensibile alla luminanza rispetto alla crominanza e le immagini JPEG lo tengono conto.
Di seguito sono riportati campioni di matrici di luminanza e crominanza estratti per i fattori di qualità di
85 e 25 per l'acquisizione della scena 2_a con la fotocamera posteriore di Pixel 4 con il banco di prova ITS.
I valori della matrice aumentano (a indicare una maggiore compressione) in modo sostanziale per
l'impostazione di qualità inferiore. Queste matrici vengono stampate con lo script solo se viene applicato il flag debug=True
. Nota la maggiore variazione delle voci nelle matrici di luminanza rispetto alle matrici di crominanza.
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]]
La Figura 3 mostra i valori medi della matrice per la fotocamera posteriore di Pixel 4 rispetto alla qualità JPEG. Con l'aumento della qualità JPEG, il livello di compressione (media della matrice DQT luma/chroma) diminuisce.
Figura 3. Medie della matrice DQT luma/chroma della fotocamera posteriore di Pixel 4 rispetto alla qualità JPEG
Affermazioni
- Per [25, 45, 65, 86], +20 di qualità comporta una riduzione del 20% della quantizzazione medie della matrice.
- I payload delle matrici DQT sono numeri quadrati.
La figura 4 mostra un esempio di smartphone che non supera il test. Tieni presente che per le immagini di qualità molto bassa (jpeg.quality < 50
) non viene aumentata la compressione nella matrice di quantizzazione.
Figura 4. Esempio di test non riuscito
scena2_d/e test_num_volti
Sono state aggiunte due nuove scene di rilevamento dei volti per aumentare la diversità dei controlli dell'algoritmo di rilevamento dei volti. Con test ripetuti di un numero di videocamere, si prevede che il volto più difficile sia quello più a sinistra in scene2_d. In particolare, il modello indossa un cappello e una barba, una novità nelle scene con il volto. Le nuove scene sono mostrate nelle figure 5 e 6.
Figura 5. scene2_d
Figura 6. scene2_e
Affermazioni
num_faces == 3
scene2_e/test_continuous_picture
Metodo
Il test test_continuous_picture
utilizza scene2_e, ma può essere abilitato
con qualsiasi scena di volti. In questo test, vengono acquisiti 50 frame con risoluzione VGA con la prima impostazione della richiesta di acquisizione android.control.afMode = 4
(CONTINUOUS_PICTURE)
.
Si prevede che il sistema 3A si sia stabilizzato alla fine di un'acquisizione a 50 frame.
Affermazioni
- 3A è in stato di convergenza al termine dell'acquisizione.
scene_change/test_scene_change
Metodo
È stato attivato un nuovo test per verificare se il flag android.control.afSceneChange
viene affermato con una modifica della scena. Il cambio di scena utilizza il tablet per mostrare una scena con un volto e poi accendere e spegnere il tablet per creare un cambio di scena. La scena riutilizza scene2_e ma si trova in una scena separata per via del controllo tablet richiesto.
Inoltre, per i test manuali, il cambio di scena può essere effettuato agitando la mano di fronte alla fotocamera.
La figura 7 mostra un diagramma di temporizzazione del test. I tempi tra lo spegnimento dello schermo e l'acquisizione vengono regolati in base ai risultati degli eventi delle acquisizioni precedenti.
Figura 7. Diagramma di temporizzazione per test_scene_change
Condizioni di spostamento:
- Se è presente un cambio di scena e
afSceneChange == 1
, il test restituiscePASS
. - Se si verifica un cambio di scena e
afSceneChange == 0
, il cambio di scena avviene 5 fotogrammi prima per dare più tempo aafSceneChange
per essere asserto. - Se non c'è un cambio di scena e
afSceneChange == 1
, il test restituisceFAIL
. - Se non è presente alcun cambio scena e
afSceneChange == 0
, il cambio scena si sposta di 30 frame prima per acquisire il cambio di scena durante l'acquisizione.
Affermazioni
- Attivazione/disattivazione dello schermo (scena).
- Il flag
afSceneChange
è in [0, 1]. - Se non cambia scena, 3A converge (funzionalmente identico a
test_continuous_picture
). - Se
afSceneChange == 1
, la luminosità deve cambiare nella scena. PASS
entro sei tentativi con la temporizzazione modificata in base ai risultati precedenti.
scene6/test_zoom
Metodo
Per testare android.control.zoomRatioRange
è necessaria una nuova scena perché le scene stabilite non hanno un elemento abbastanza piccolo da essere ingrandito (scene [1, 2, 4]) o perché la scena contiene molti oggetti che non sono facilmente identificabili, complicando l'estrazione delle funzionalità (scena 3).
La figura 8 mostra la nuova scena con una serie regolare di cerchi. L'array di cerchi allenta i requisiti relativi al centratura del DUT/del grafico e consente di avere sempre un cerchio vicino al centro dell'immagine acquisita. In questa scena, un array di cerchi 9x5 con un bordo nero copre l'intero tablet. Un cerchio viene sostituito
con un quadrato nell'angolo in alto a destra per indicare l'orientamento. Le dimensioni dei cerchi
hanno una funzionalità con un'area di circa 7500 pixel (radius=50pixels
) per un
sensore 4000 x 3000 acquisito con un campo visivo (FoV) di circa 80 gradi.
Figura 8. scena test_zoom
Figura 9. Fotocamera Pixel 4[0] zoom = [1, 3,33, 5,67, 8] immagini con cerchio trovato
La Figura 9 mostra le immagini acquisite con la fotocamera posteriore di Pixel 4 man mano che lo zoom aumenta da 1 a 8 volte in quattro passaggi. Questo insieme di immagini viene acquisito senza prestare particolare attenzione al centro, tranne che per l'utilizzo dell'apertura di test dello smartphone con due aperture per consentire il test sia della fotocamera anteriore che di quella posteriore. È previsto un offset dal centro, che viene osservato quando il grafico è leggermente a sinistra del centro. Inoltre, il grafico sembra sufficiente per i test con rapporti di zoom superiori a 8x.
Trovare cerchie
Il test include un metodo find_circle()
che utilizza findContours
per trovare tutti i contorni e restringere la ricerca dei contorni ai cerchi desiderati testando quanto segue:
- I contorni devono avere un'area maggiore di 10 pixel.
- I contorni devono avere
NUM_PTS >= 15
. - I contorni devono avere i centri neri.
- I contorni devono assomigliare a un cerchio, ovvero la loro area deve essere simile all'area pi*r2 del contorno.
Intervallo di test
android.control.zoomRatioRange
è suddiviso in 10 passaggi.
- [1, 7] test [1, 1,67, 2,33, 3, 3,67, 4,33, 5, 5,67, 6,33, 7]
Lo zoom viene interrotto se il cerchio trovato tocca i confini dell'immagine. Nel test viene eseguito un controllo per assicurarsi che venga raggiunto un livello di zoom sufficiente (10x).
Affermazioni
- In ogni impostazione dello zoom viene trovato almeno un cerchio.
- Viene testato un valore 10 volte superiore o massimo
android.control.zoomRatioRange
. - Il raggio del cerchio varia in base allo zoom (RTOL 10% rispetto al previsto).
- Offset centrale del cerchio dalle scale centrali con zoom (RTOL 10% dal previsto).
- È stato raggiunto un livello di zoom sufficiente (2x).
Aumento dei test LIMITATI della videocamera
In Android 11, i test riportati nella tabella seguente esaminano le videocamere LIMITED
. Oltre ai nuovi test,
il test scene4/test_aspect_ratio_and_crop
viene aggiornato per consentire
di testare i dispositivi LIMITED
con un primo livello API pari o superiore a 30.
Scena | Nome del test |
---|---|
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 |
La Figura 10 mostra l'anello di decodifica dei secret ITS di Android 11. L'anello di decodifica del segreto mostra le impostazioni di test in base alle quali vengono attivati i singoli test. Il gating è codificato in base al colore per facilitare la visualizzazione. Gli elementi principali di questo tipo sono:
MANUAL_SENSOR
READ_3A
*richiedeMANUAL SENSOR
COMPUTE_TARGET_EXPOSURES
*richiedeMANUAL SENSOR
PER_FRAME_CONTROL
RAW
SENSORS
*REALTIME
MULTI_CAMERA
MANUAL SENSOR
, READ_3A
, COMPUTE_TARGET_EXPOSURES
e
PER_FRAME_CONTROL
controllano la maggior parte dei test. Inoltre, i test attivati per i dispositivi LIMITED
sono evidenziati in verde chiaro.
Figura 10. Anello decodificatore segreto Android 11