Questa pagina riepiloga le modifiche apportate a Camera Image Test Suite (ITS) in Android 11. Le modifiche rientrano nelle seguenti categorie:
- Modifiche all'hardware
- Primi test OBBLIGATORI a livello API
- Test di illuminazione convalidato
- Il nome della scena cambia
- Testare modifiche e aggiunte
- Aumento dei test LIMITATI della fotocamera
Modifiche all'hardware
Android 11 introduce diverse modifiche hardware per ridurre i costi e aumentare la disponibilità. Tali modifiche rientrano nelle seguenti categorie:
- Produttore aggiuntivo
- Metodi di produzione unificati
- Maggiori opzioni per i tablet
- Apertura compressa ridotta
- Nuovo controller di fusione dei sensori
Produttore aggiuntivo
Rahi Systems è qualificata per produrre custodie per test ITS in aggiunta al nostro fornitore esistente, MYWAY design. Le informazioni aziendali per i fornitori qualificati sono le seguenti:
Rahi Systems Inc.
48303 Fremont Blvd, Fremont CA 94538, Stati Uniti
rahisystems.com/products/android-device-testing-equipment/
androidpartner@rahisystems.com
+1-510-319-3802Progettazione MYWAY
4F., No. 163, Fu-Ying Road, distretto di XinZhuang, Nuova Taipei City, Taiwan
twmyway.com
vendite@myway.tw
+886-2-29089060
Metodi di produzione unificati
La custodia di prova ITS-in-a-box rev1 con campo di vista regolare (RFoV) è stata riprogettata per utilizzare i metodi di produzione utilizzati dalle custodie di prova della scatola con campo di vista ampio (WFoV) e della scatola di fusione dei sensori . La funzionalità è identica e, per semplicità, il design è denominato rev1a . La riprogettazione consente ai produttori di immagazzinare un unico tipo di plastica per produrre tutti gli involucri di prova. Inoltre, il supporto per tablet e i supporti per luci sono stati riprogettati per gestire una maggiore variazione di tablet e barre luminose a LED.
Per scaricare le descrizioni e i disegni meccanici più recenti, vedere il box RFoV (rev1a) e il box WFoV (rev2.9) .
Maggiori opzioni per i tablet
I tablet tra cui il Samsung Galaxy Tab A 10.1 e il Chuwi Hi9 Air 10.1 vengono aggiunti all'elenco dei tablet consigliati. È importante che il tablet non disponga della modulazione di larghezza di impulso (PWM) per regolare la luminosità dello schermo ed eliminare le bande nelle immagini catturate.
Per le informazioni più recenti sui tablet consigliati, vedere Requisiti dei tablet .
Apertura compressa ridotta
Per consentire l'utilizzo del Galaxy Tab A 10.1, l'apertura del tablet è leggermente ridotta in altezza sia per i contenitori di test RFoV (rev1a) che WFoV (rev2). Le revisioni che riflettono questi cambiamenti sono rev1a.1 e rev2.9. Per questi disegni, vedere il riquadro RFoV (rev1a) e il riquadro WFoV (rev2.9) .
Nuovo controller di fusione dei sensori
L'hardware per il controller di fusione dei sensori è stato riprogettato per migliorare la producibilità. Il nuovo controller è basato su Arduino , con uno scudo della scheda di routing personalizzato che si monta sopra Arduino. La Figura 1 mostra lo schermo e la figura 2 mostra il disegno meccanico della custodia. Il nuovo controller è alimentato da un singolo alimentatore da 5 V che alimenta direttamente il motore. L'elettronica è controllata completamente tramite il connettore USB. L'alimentazione separata 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 dello scudo Arduino
Figura 2. Progettazione dell'involucro
Android 11 è retrocompatibile con i controller esistenti. Per richiamare il test con il controller basato su Arduino utilizzare:
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 designati come MANDATED
e NOT_YET_MANDATED
. Per essere avviato come dispositivo Android 10, è necessario superare tutti i test MANDATED
. I test NOT_YET_MANDATED
possono fallire ma vengono tabulati come PASS
per i report del verificatore CTS. Il requisito dei test MANDATED
si applica anche ai dispositivi aggiornati. Questo requisito per i dispositivi aggiornati di superare tutti i test MANDATED
ha causato un ritardo nel diventare test MANDATED
perché anche i dispositivi più vecchi devono superare i test.
In Android 11, i test MANDATED
sono controllati dal primo flag di livello API dalle proprietà del telefono. Per i dispositivi che eseguono l'aggiornamento ad Android 11, i test vengono eseguiti come test NOT_YET_MANDATED
, il che significa che un test può fallire ma essere tabulato come PASS
in CtsVerifier.apk
.
Per esempio:
- In Android 11, il test
test_channel_saturation
èMANDATED
per i dispositivi con un primo livello API maggiore di 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 della scena. Tutte le scene manuali sono convalidate per l'illuminazione e le scene basate su tablet sono convalidate per le telecamere RFoV nel banco di prova RFoV e le telecamere WFoV nel banco di prova WFoV. Se i livelli di illuminazione sono inadeguati, viene segnalato un errore e il test fallisce.
Il nome della scena cambia
In Android 10, la scena 1 rappresenta la maggior parte dei test e un'ampia percentuale del tempo totale del test. Se un test all'interno della scena 1 fallisce, è necessario eseguire nuovamente l'intera scena. In base alla progettazione, la riesecuzione dell'intera scena riduce il passaggio dei test marginali. In Android 11, i tempi di ripetizione vengono ridotti dividendo la scena 1 in due scene, scena1_1 e scena1_2.
La tabella seguente mostra i tempi di test calcolati per la fotocamera posteriore Pixel 4 per diverse scene. Il numero di test viene suddiviso per pareggiare la durata del test, non per pareggiare il numero di test.
Inoltre, c'è una pulizia del nome. La scena 2 è divisa in lettere e la scena 1 è divisa in numeri. La nomenclatura per le diverse estensioni è:
- 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 | Durata del 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 |
Testare le modifiche
Test aggiornati per utilizzare il primo livello API
In Android 11, i test nella tabella seguente vengono aggiornati per utilizzare il primo flag di livello API. Tutti questi test utilizzano un primo livello API pari a 29, ad eccezione del test test_tonemap_curve
, che utilizza un primo livello API pari a 30.
Scena | Nome della prova | Primo livello API | Descrizione |
---|---|---|---|
0 | test_tonemap_curve | 30 | Assicurati che la pipeline abbia output di colore adeguati con mappatura dei toni lineare e input di immagine ideale (si basa su test_test_patterns ). |
1 | test_ae_precapture_trigger | 29 | Testare la macchina a stati AE quando si utilizza il trigger di preacquisizione. Assicurarsi che il trigger di preacquisizione AE disabilitato non abbia alcun effetto. |
test_channel_saturation | 29 | Assicurati che i canali RGB si saturino a valori simili per eliminare la tinta nelle regioni saturate. | |
2_a/b/c | test_num_faces | 29 | Aumenta la diversità di età nelle scene dei volti. |
Prove con modifiche
I test nella tabella seguente vengono aggiornati in Android 11. Le modifiche sono descritte nella colonna Descrizione delle modifiche .
Scena | Nome della prova | Primo livello API | Descrizione delle modifiche |
---|---|---|---|
1 | test_burst_sameness_manual | 30 | Ridurre la tolleranza al 2%. |
4 | test_aspect_ratio_and_crop | 30 | Modifica per eseguire su dispositivi LIMITATI. |
test_multi_camera_alignment | 30 | Passa attraverso le fotocamere singolarmente se l'acquisizione di più fotocamere non è supportata. Rielaborare la logica di selezione della telecamera per tenere conto dei sistemi a tre e quattro telecamere e ignorare le telecamere mono, di sola profondità e IR. |
Nuovi test
I test nella tabella seguente sono abilitati in Android 11. I test sono riepilogati nella tabella e le descrizioni dettagliate sono fornite nelle sezioni seguenti.
Scena | Nome della prova | Primo livello API | Descrizione |
---|---|---|---|
0 | test_vibration_restrictions | 30 | Assicurati che avvisi e vibrazioni non vengano attivati durante l'acquisizione di immagini. |
2_a | test_jpeg_quality | 30 | Verifica che le tabelle di quantizzazione riducano la compressione per una maggiore qualità JPEG. |
2_d/2_e | test_num_faces | 30 | Aumentare la diversità dell'età del viso. |
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 affermato al cambio di scena. |
6 | test_zoom | 30 | Prova 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 dura. Ciò include il montaggio sulle custodie di prova ITS-in-a-box.
Afferma
- Nessuna vibrazione durante l'utilizzo della fotocamera
scene2_a/test_jpeg_quality
Metodo
Parti diverse del file JPEG sono definite da contrassegni a 2 byte. Per ulteriori informazioni, vedere JPEG .
Il test estrae le matrici di quantizzazione dall'acquisizione JPEG. Il marcatore per le matrici di quantizzazione nell'acquisizione JPEG è la sequenza [255, 219]. Quando viene trovato il marcatore, i due elementi successivi dell'elenco rappresentano la dimensione. L'indicatore della dimensione DQT JPEG è solitamente [0, 132] = 256*0+132 = 132, che tiene conto della dimensione dei dati DQT nell'acquisizione JPEG. I dati incorporati sono nel formato: [255, 219, 0, 132, 0 (marcatore luminanza), matrice luminanza 8x8, 1 (marcatore luminanza), matrice luminanza 8x8].
Lo 0
per il marcatore della matrice luminanza e 1
per il marcatore della crominanza appaiono coerenti per un numero di dispositivi inclusi i telefoni che separano le due matrici in sezioni DQT separate 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 ne tengono conto.
Di seguito sono mostrate le matrici di luminanza e crominanza estratte campione per fattori di qualità di 85 e 25 per la fotocamera posteriore Pixel 4 che cattura la scena2_a con il banco di prova ITS. I valori della matrice aumentano (denotando una maggiore compressione) sostanzialmente per l'impostazione di qualità inferiore. Queste matrici vengono stampate con lo script solo se viene applicato il flag debug=True
. Si noti la maggiore variazione nelle 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 Pixel 4 rispetto alla qualità JPEG. Aumentando la qualità JPEG, il livello di compressione (media della matrice DQT luminanza/crominanza) diminuisce.
Figura 3. Medie della matrice DQT luma/chroma della fotocamera posteriore Pixel 4 rispetto alla qualità JPEG
Afferma
- Per [25, 45, 65, 86], +20 in qualità ha una riduzione del 20% delle medie della matrice di quantizzazione.
- I carichi utili della matrice DQT sono numeri quadrati.
La Figura 4 mostra un esempio di un telefono che non supera il test. Si noti che per immagini di qualità molto bassa ( jpeg.quality < 50
), non vi è alcun aumento della compressione nella matrice di quantizzazione.
Figura 4. Esempio di test fallito
scene2_d/e test_num_faces
Sono state aggiunte due nuove scene di rilevamento dei volti per aumentare la diversità facciale dei controlli dell'algoritmo di rilevamento dei volti. Dopo ripetuti test su diverse fotocamere, si prevede che il volto più impegnativo sarà quello più a sinistra nella scena2_d. In particolare, sulla modella sono presenti sia il cappello che la barba, qualcosa di nuovo nelle scene dei volti. Le nuove scene sono mostrate nelle figure 5 e 6.
Figura 5. scena2_d
Figura 6. scena2_e
Afferma
-
num_faces == 3
scene2_e/test_continuous_picture
Metodo
Il test test_continuous_picture
utilizza scene2_e ma può essere abilitato con qualsiasi scena dei volti. In questo test, vengono acquisiti 50 fotogrammi con risoluzione VGA impostando prima la richiesta di acquisizione android.control.afMode = 4 (CONTINUOUS_PICTURE)
.
Si prevede che il sistema 3A si stabilizzerà al termine di un'acquisizione di 50 fotogrammi.
Afferma
- 3A è in stato di convergenza al termine dell'acquisizione.
cambio_scena/test_cambio_scena
Metodo
È abilitato un nuovo test per verificare se il flag android.control.afSceneChange
viene affermato con un cambio di scena. Il cambio di scena utilizza il tablet che visualizza una scena del volto e quindi accende e spegne il tablet per creare un cambio di scena. La scena riutilizza scene2_e ma si trova in una scena separata a causa del controllo tablet richiesto.
Inoltre, per i test manuali, il cambio di scena può essere effettuato agitando la mano davanti alla telecamera.
La Figura 7 mostra un diagramma temporale del test. Il tempo tra lo spegnimento dello schermo e l'acquisizione viene regolato in base ai risultati degli eventi delle acquisizioni precedenti.
Figura 7. Diagramma temporale per test_scene_change
Condizioni di turno:
- Se c'è un cambio di scena e
afSceneChange == 1
, il test restituiscePASS
. - Se c'è un cambio di scena e
afSceneChange == 0
, il cambio di scena si sposta di 5 fotogrammi prima per dare più tempo adafSceneChange
per affermarsi. - Se non c'è alcun cambio di scena e
afSceneChange == 1
, il test restituisceFAIL
. - Se non c'è alcun cambio di scena e
afSceneChange == 0
, il cambio di scena si sposta 30 fotogrammi prima per ottenere il cambio di scena durante l'acquisizione.
Afferma
- La schermata (scena) cambia.
- 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 tempi modificati in base ai risultati precedenti.
scena6/test_zoom
Metodo
È necessaria una nuova scena per testare android.control.zoomRatioRange
poiché le scene stabilite non hanno una caratteristica abbastanza piccola da essere ingrandita (scene [1, 2, 4]) o la scena ha molti oggetti che non sono facilmente identificabili , complicando l'estrazione delle caratteristiche (scena 3).
La Figura 8 mostra la nuova scena con una serie regolare di cerchi. La serie di cerchi allenta i requisiti sulla centratura del DUT/carta e consente un cerchio sempre vicino al centro dell'immagine catturata. In questa scena una serie 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 mostrare l'orientamento. Le dimensioni del cerchio hanno una caratteristica con un'area di circa 7500 pixel ( radius=50pixels
) per un sensore 4000x3000 catturato con un campo visivo (FoV) di circa 80 gradi.
Figura 8. scena test_zoom
Figura 9. Pixel 4 cam[0] zoom = [1, 3,33, 5,67, 8] immagini con cerchio trovato
La Figura 9 mostra le immagini catturate dalla fotocamera posteriore di un Pixel 4 mentre lo zoom aumenta da 1 a 8x in quattro passaggi. Questa serie di immagini viene catturata senza particolare attenzione alla centratura, ad eccezione dell'utilizzo dell'apertura di prova del telefono con due aperture per consentire il test sia della fotocamera anteriore che di quella posteriore. È previsto uno spostamento dal centro e si osserva poiché la tavoletta cartografica è leggermente a sinistra del centro. Inoltre, il grafico sembra sufficiente per testare con rapporti di zoom superiori a 8x.
Trovare cerchi
Il test include un metodo find_circle()
che utilizza findContours
che trova tutti i contorni e restringe 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 centri neri.
- I contorni devono assomigliare a un cerchio, ovvero la loro area è vicina all'area pi*r2 del contorno.
Campo di prova
android.control.zoomRatioRange
è diviso 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. C'è un controllo per assicurarsi che venga raggiunto un livello di zoom sufficiente nel test (10x).
Afferma
- È presente almeno un cerchio per ciascuna impostazione di zoom.
- Viene testato 10 volte o un massimo di
android.control.zoomRatioRange
. - Il raggio del cerchio viene ridimensionato con lo zoom (RTOL 10% rispetto al previsto).
- Offset del centro del cerchio dalle scale centrali con zoom (RTOL 10% rispetto al previsto).
- È stato raggiunto un livello di zoom sufficiente (2x).
Aumento dei test LIMITATI della fotocamera
In Android 11, i test nella tabella seguente testano fotocamere LIMITED
. Oltre ai nuovi test , il test scene4/test_aspect_ratio_and_crop
viene aggiornato per consentire il test di dispositivi LIMITED
con un primo livello API 30 o superiore.
Scena | Nome della prova |
---|---|
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 del decodificatore segreto di Android 11 ITS. L'anello del decodificatore segreto mostra da quali impostazioni di test sono delimitati i singoli test. Il cancello è codificato a colori per semplicità di visualizzazione. I principali elementi di gating 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
eseguono la maggior parte dei test. Inoltre, i test abilitati per dispositivi LIMITED
sono evidenziati in verde chiaro.
Figura 10. Anello del decodificatore segreto di Android 11