Questa pagina riassume le modifiche apportate alla Camera Image Test Suite (ITS) in Android 11. Le modifiche rientrano nelle seguenti categorie:
- Modifiche hardware
- Test OBBLIGATORI del primo livello API
- Test dell'illuminazione con esito positivo
- Modifiche ai nomi delle scene
- Testare le modifiche e le aggiunte
- Aumento dei test LIMITATI della fotocamera
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 box di test ITS oltre 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, USA
rahisystems.com/products/android-device-testing-equipment/
androidpartner@rahisystems.com
+1-510-319-3802MYWAY design
4F., N. 163, Fu-Ying Road, XinZhuang District, New Taipei City, Taiwan
twmyway.com
sales@myway.tw
+886-2-29089060
Metodi di produzione unificati
La scatola di test ITS-in-a-box con campo visivo (FoV) normale rev1 è stata riprogettata per utilizzare i metodi di produzione in uso per le scatole con campo visivo (FoV) ampio e scatole di test per la fusione dei sensori. La funzionalità è identica e, per semplicità, il design è denominato rev1a. Il nuovo design consente ai produttori di immagazzinare un unico tipo di plastica per produrre tutti gli involucri di test. Inoltre, i supporti per tablet e per luci sono stati riprogettati per gestire una maggiore varietà di tablet e barre luminose a LED.
Per scaricare le descrizioni e i disegni meccanici più recenti, consulta Scatola RFoV (rev1a) e Scatola WFoV (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 di larghezza di impulso (PWM) per regolare la luminosità dello schermo ed eliminare le bande nelle immagini acquisite.
Per le informazioni più recenti sui tablet consigliati, consulta Requisiti per i tablet.
Apertura ridotta del tablet
Per consentire l'utilizzo del Galaxy Tab A 10.1, l'apertura del tablet è leggermente ridotta in altezza sia per le custodie di test RFoV (rev1a) che WFoV (rev2). Le revisioni che riflettono queste modifiche sono rev1a.1 e rev2.9. Per questi disegni, consulta RFoV box (rev1a) e WFoV box (rev2.9).
Nuovo controller di fusione dei sensori
L'hardware del controller di fusione dei sensori è stato riprogettato per migliorare la producibilità. Il nuovo controller è basato su Arduino, con una scheda di routing personalizzata shield che si monta sopra Arduino. La figura 1 mostra la protezione e la figura 2 mostra il disegno meccanico dell'involucro. Il nuovo controller è alimentato da un'unica alimentazione a 5 V che alimenta direttamente il motore. L'elettronica è controllata completamente tramite il connettore USB. L'alimentatore separato consente l'isolamento completo tra l'elettronica di controllo e il servomotore. Inoltre, un singolo controller può controllare fino a sei servomotori.
Figura 1. Vista dall'alto della scheda Arduino
Figura 2. Progettazione di recinzioni
Android 11 è compatibile con i controller esistenti. Per richiamare il 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 designati 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 di verifica CTS. Il requisito dei test MANDATED
si applica anche ai dispositivi di cui è stato eseguito l'upgrade. Questo requisito per cui i dispositivi
aggiornati devono superare tutti i test MANDATED ha causato ritardi nella trasformazione dei test in test
MANDATED perché anche i dispositivi meno recenti devono superarli.
In Android 11, i test MANDATED sono limitati dal
primo flag del livello API delle proprietà dello smartphone. Per i dispositivi che eseguono 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 tabulato come PASS in
CtsVerifier.apk.
Ad esempio:
- In Android 11, il test
test_channel_saturationèMANDATEDper i dispositivi con un primo livello API superiore a 29. - In Android 10, il test
test_channel_saturationèMANDATEDper 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 vengono convalidate per l'illuminazione e le scene basate su tablet vengono convalidate per le videocamere RFoV nel banco di prova RFoV e per le videocamere WFoV nel banco di prova WFoV. Se i livelli di illuminazione sono inadeguati, viene segnalato un errore e il test non riesce.
Modifiche ai nomi delle scene
In Android 10, la scena 1 rappresenta la maggior parte dei test e una percentuale elevata del tempo totale di test. Se un test all'interno della scena 1 non va a buon fine, l'intera scena deve essere eseguita di nuovo. Per progettazione, la ripetizione dell'intera scena riduce il superamento dei 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 è suddivisa con lettere e la scena 1 è suddivisa con 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 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 per utilizzare il primo flag del livello API. Tutti questi test utilizzano un
livello API iniziale di 29, ad eccezione del test test_tonemap_curve, che utilizza
un livello API iniziale di 30.
| Scena | Nome del test | Primo livello API | Descrizione |
|---|---|---|---|
| 0 | test_tonemap_curve |
30 | Assicurati che la pipeline abbia output di colore corretti con la mappatura dei toni lineare e l'input
dell'immagine ideale (si basa su test_test_patterns). |
| 1 | test_ae_precapture_trigger |
29 | Testa la macchina a stati AE quando utilizzi il trigger di preacquisizione. Assicurati che con AE il trigger di preacquisizione disattivato non abbia alcun effetto. |
test_channel_saturation |
29 | Assicurati che i canali RGB saturino valori simili per eliminare la tonalità nelle regioni sature. | |
| 2_a/b/c | test_num_faces |
29 | Aumentare la diversità di età nelle scene con volti. |
Test con modifiche
I test nella tabella seguente vengono 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 | Passa all'esecuzione su dispositivi LIMITATI. |
test_multi_camera_alignment |
30 | Passa da una videocamera all'altra singolarmente se l'acquisizione con più videocamere non è supportata. Rielabora la logica di selezione della videocamera per tenere conto dei sistemi a tre e quattro videocamere e ignora le videocamere mono, solo profondità e IR. |
Nuovi test
I test nella tabella seguente sono abilitati in Android 11. I test sono riassunti nella tabella e le descrizioni dettagliate sono fornite nelle sezioni seguenti.
| Scena | Nome del test | Primo livello API | Descrizione |
|---|---|---|---|
| 0 | test_vibration_restrictions |
30 | Assicurati che gli avvisi e le 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à dell'età dei volti. |
| 2_e | test_continuous_picture |
30 | Assicurati che 3A si stabilisca in android.control.afAvailableModes =
CONTINUOUS_PICTURE. |
| modifica | test_scene_change |
31 | android.control.afSceneChange asserito al cambio di scena. |
| 6 | test_zoom |
30 | Test android.control.zoomRatioRange. |
scene0/test_vibration_restriction
Questo test non richiede una scena specifica, ma il dispositivo in esame deve essere posizionato o montato su una superficie dura. Ciò include il montaggio sui box di test ITS-in-a-box.
Asserts
- Nessuna vibrazione durante l'utilizzo della fotocamera
scene2_a/test_jpeg_quality
Metodo
Diverse porzioni del file JPEG sono definite da marcatori di 2 byte. Per ulteriori informazioni, vedi JPEG.
Il test estrae le matrici di quantizzazione dalla cattura JPEG. Il marcatore per le matrici di quantizzazione nell'acquisizione JPEG è la sequenza [255, 219]. Quando viene trovato il marcatore, i due elementi di elenco successivi sono la dimensione. Il marcatore di dimensione DQT JPEG è in genere [0, 132] = 256*0+132 = 132, che tiene conto delle dimensioni dei dati DQT nell'acquisizione JPEG. I dati incorporati hanno il formato: [255, 219, 0, 132, 0 (marcatore di luminanza), matrice di luminanza 8x8, 1 (marcatore di crominanza), matrice di crominanza 8x8].
Il valore 0 per il marcatore della matrice di luminanza e 1 per il marcatore di crominanza
è coerente per una serie di dispositivi, inclusi gli smartphone 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 di esempio per fattori di qualità di
85 e 25 per la fotocamera posteriore di Pixel 4 che acquisisce la scena2_a 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 nelle voci delle
matrici di luminanza rispetto a quelle 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. All'aumentare della qualità JPEG, il livello di compressione (media della matrice DQT di luminanza/crominanza) diminuisce.
Figura 3. Medie della matrice DQT di luminanza/croma della fotocamera posteriore di Pixel 4 rispetto alla qualità JPEG
Asserts
- Per [25, 45, 65, 86], +20 nella qualità comporta una riduzione del 20% delle medie della matrice di quantizzazione.
- I payload della matrice 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 si verifica un aumento della compressione nella matrice di quantizzazione.
Figura 4. Esempio di test non riuscito
scene2_d/e test_num_faces
Sono state aggiunte due nuove scene di rilevamento del volto per aumentare la diversità facciale dei controlli dell'algoritmo di rilevamento del volto. Con test ripetuti di diverse videocamere, il volto più difficile dovrebbe essere quello più a sinistra in scene2_d. In particolare, sul modello sono presenti sia un cappello che una barba, una novità nelle scene del volto. Le nuove scene sono mostrate nelle figure 5 e 6.
Figura 5. scene2_d
Figura 6. scene2_e
Asserts
num_faces == 3
scene2_e/test_continuous_picture
Metodo
Il test test_continuous_picture utilizza scene2_e, ma può essere attivato
con una qualsiasi delle scene 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).
Il sistema 3A dovrebbe stabilizzarsi al termine di un'acquisizione di 50 fotogrammi.
Asserts
- La messa a fuoco automatica 3A è nello 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
asserito con un cambio di scena. Il cambio di scena utilizza il tablet
che mostra una scena con un volto, 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 del tablet richiesto.
Inoltre, per i test manuali, il cambio di scena può essere eseguito agitando la mano davanti alla videocamera.
La figura 7 mostra un diagramma temporale del test. La tempistica tra lo spegnimento dello schermo e l'acquisizione viene regolata 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 si verifica un cambio di scena e
afSceneChange == 0, il cambio di scena si sposta di 5 fotogrammi in anticipo per dare più tempo aafSceneChangedi asserire. - Se non c'è un cambio di scena e
afSceneChange == 1, il test restituisceFAIL. - Se non c'è un cambio di scena e
afSceneChange == 0, il cambio di scena viene spostato 30 fotogrammi prima per acquisire il cambio di scena.
Asserts
- Attivazione/disattivazione dello schermo (scena).
- Il flag
afSceneChangeè compreso tra 0 e 1. - Se non viene rilevato alcun cambio di scena, 3A converge (funzionalmente identico a
test_continuous_picture). - Se
afSceneChange == 1, la luminosità deve cambiare nella scena. PASSentro sei tentativi con la tempistica modificata in base ai risultati precedenti.
scene6/test_zoom
Metodo
È necessaria una nuova scena per testare android.control.zoomRatioRange, in quanto le scene esistenti non hanno una funzionalità abbastanza piccola da essere ingrandita (scene [1, 2, 4]) o la scena ha molti oggetti che non sono facilmente identificabili, il che complica l'estrazione delle funzionalità (scena 3).
La figura 8 mostra la nuova scena con una normale matrice di cerchi. La matrice di
cerchi allenta i requisiti di centraggio del DUT/grafico e consente di avere un cerchio
sempre vicino al centro dell'immagine acquisita. In questa scena, una matrice di cerchi 9x5
con un bordo nero copre l'intero tablet. Un cerchio viene sostituito
da un quadrato nell'angolo in alto a destra per mostrare l'orientamento. Le dimensioni dei cerchi
hanno una funzionalità con un'area di circa 7500 pixel (radius=50pixels) per un
sensore 4000x3000 acquisito con un campo visivo (FOV) di circa 80 gradi.
Figura 8. test_zoom scene
Figura 9. Pixel 4 cam[0] zoom = [1, 3.33, 5.67, 8] images with found circle
La figura 9 mostra le immagini acquisite per la fotocamera posteriore di Pixel 4 man mano che lo zoom aumenta da 1 a 8x in quattro passaggi. Questo set di immagini viene acquisito senza particolare attenzione alla centratura, tranne per l'utilizzo dell'apertura di test dello smartphone con due aperture per consentire il test delle fotocamere anteriore e posteriore. È previsto un offset dal centro, che si osserva quando il tablet grafico si trova leggermente a sinistra del centro. Inoltre, il grafico sembra sufficiente per i test con rapporti di zoom superiori a 8x.
Trovare le 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 un centro nero.
- I contorni devono assomigliare a un cerchio, ovvero la loro area è vicina 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 la circonferenza trovata tocca i bordi dell'immagine. Viene eseguito un controllo per assicurarsi che nel test venga raggiunto un livello di zoom sufficiente (10x).
Asserts
- Viene trovato almeno un cerchio in ogni impostazione di zoom.
- Viene testato un valore 10 volte superiore o un massimo di
android.control.zoomRatioRange. - Il raggio del cerchio viene scalato con lo zoom (RTOL 10% rispetto al previsto).
- Il centro del cerchio è spostato rispetto al centro e la scala varia in base allo zoom (RTOL 10% rispetto al previsto).
- È stato raggiunto un livello di zoom sufficiente (2x).
Aumento dei test LIMITATI della videocamera
In Android 11, i test nella tabella seguente
testano le videocamere LIMITED. Oltre ai nuovi test,
il test scene4/test_aspect_ratio_and_crop viene aggiornato per consentire il test
dei dispositivi LIMITED con un primo livello API 30 o superiore.
| 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 decodificatore segreto di Android 11 ITS. L'anello decodificatore segreto mostra le impostazioni di test che limitano i singoli test. Il gating è codificato a colori per semplificare la visualizzazione. Gli elementi principali di gating sono:
MANUAL_SENSORREAD_3A*richiedeMANUAL SENSORCOMPUTE_TARGET_EXPOSURES*richiedeMANUAL SENSORPER_FRAME_CONTROLRAWSENSORS*REALTIMEMULTI_CAMERA
MANUAL SENSOR, READ_3A, COMPUTE_TARGET_EXPOSURES e
PER_FRAME_CONTROL controllano la maggior parte dei test. Inoltre, i test abilitati per i dispositivi LIMITED sono evidenziati in verde chiaro.
Figura 10. Anello decodificatore segreto di Android 11