Fotocamera ITS-in-a-Box

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Android Camera Image Test Suite (ITS) fa parte di Android Compatibility Test Suite (CTS) Verifier e include test che verificano il contenuto delle immagini. CTS Verifier supporta l'automazione dei test ITS con Camera ITS-in-a-box; il supporto per i test manuali copre tutti i fattori di forma dei dispositivi Android.

ITS-in-a-box include i seguenti vantaggi:

  • Automazione. Durante il test non è necessario alcun intervento umano.
  • Facile risoluzione dei problemi. La coerenza dell'ambiente di test porta a un minor numero di errori di configurazione e aumenta la riproducibilità.
  • Efficienza. La possibilità di riprovare per singola telecamera/scena migliora l'efficienza dell'esecuzione del test.

Iniziare

ITS-in-a-box consiste in una scatola di plastica tagliata al laser da disegni CAD (computer-aided design), una tavoletta grafica e un dispositivo in prova (DUT). È possibile utilizzare l'ITS-in-a-box con ampio campo visivo (WFoV), che è in grado di testare sia le telecamere WFoV (FoV > 90 gradi) che RFoV (FoV < 90 gradi), oppure il normale campo visivo -view (RFoV) ITS-in-a-box.

Per iniziare con la fotocamera ITS-in-a-box:

  1. Acquista o crea un WFoV o RFoV ITS-in-a-box.
  2. Configura un tablet con il software Camera ITS.
  3. Eseguire test .
  4. Ottieni risultati dal DUT.

Configurazione del tablet

Questa sezione fornisce istruzioni dettagliate per la configurazione di un tablet da utilizzare con i test Camera ITS che si trovano nella directory CameraITS . Queste istruzioni utilizzano un Pixel C come tablet di esempio. Per informazioni sui requisiti e sui consigli del tablet, vedere Requisiti del tablet .

Nota: gli script Camera ITS Python impostano automaticamente le seguenti opzioni sul tablet:
Impostazioni > Display > Sospensione > Dopo 30 minuti di inattività
Luminosità adattiva > OFF

  1. Carica il tablet e accendilo. Se ti viene richiesto di configurare un account, saltalo (Camera ITS non richiede alcun account associato al tablet).
  2. Aggiorna il tablet ad Android 7.0 o versioni successive. Android 6.x e versioni precedenti non supportano Camera ITS.
  3. Abilita la modalità sviluppatore .
  4. Torna a Impostazioni e seleziona Opzioni sviluppatore.
    Abilita opzioni
    • SU
    • Stai sveglio
    • Debug USB (questo consente all'host di eseguire il tablet in modalità di debug. Quando si collega il tablet all'host per la prima volta, il tablet richiede Consenti debug USB? Se il tablet non visualizza il prompt di debug, scollegare e ricollegare il tavoletta.)
    Disabilita le opzioni
    • Aggiornamenti automatici del sistema
    • Verifica le app tramite USB
  5. Determina DUT e gli ID del grafico eseguendo $ adb devices per elencare i dispositivi disponibili. Per determinare device_id e chart_id , collegare e scollegare i dispositivi e osservare i dispositivi che si connettono e si disconnettono.
  6. Eseguire tre esecuzioni di test per sopprimere i suggerimenti e le richieste dell'utente che possono oscurare i grafici sullo schermo del tablet.
    1. Posizionare il tablet rivolto verso l'alto su un tavolo (non fissare il tablet al pannello posteriore della scatola).
    2. Eseguire il comando seguente:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      Le scene 2 e 3 richiedono che il tablet visualizzi un'immagine, quindi il tablet richiede Consenti a Drive di accedere a foto, contenuti multimediali e file sul dispositivo? . Cancella questo messaggio (ed evita messaggi futuri) premendo Consenti.
    3. Eseguire di nuovo il comando. Il tablet chiede Conservare una copia di questo file? e suggerisce Google Drive. Cancella questo messaggio (ed evita messaggi futuri) premendo l'icona Drive e quindi Annulla per il caricamento su Drive.
    4. Infine, esegui tools/run_all_tests.py e verifica che le scene cambino automaticamente man mano che lo script scorre attraverso diverse scene. Sebbene la maggior parte dei test fallisca (poiché la fotocamera non è puntata sul grafico), puoi verificare che il tablet scorra correttamente attraverso le scene senza visualizzare alcun prompt o altri popup sullo schermo.

Prove in corso

Prima di eseguire ITS-in-a-box, assicurarsi che la configurazione del test includa il seguente hardware e software:

  • Un (1) ITS-in-a-box
  • Un (1) tablet da 10" ad alta risoluzione per la visualizzazione di scene, S/N: 5811000011
  • Un (1) DUT con l'app CTS Verifier 7.0_8+ installata. Esempio DUT:
    • Un (1) Pixel NOF26W per il test della fotocamera posteriore(0), S/N: FA6BM0305016. Per installare l'app CTS Verifier, decomprimere android-cts-verifier.zip quindi eseguire
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      

Esecuzione di scene basate su tablet

Per eseguire le scene da 0 a 4, 6 e scene_change sulla fotocamera posteriore:

cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0

Esempio:

Fotocamera 0 S/N: FA6BM0305016
Figura 1. Telecamera 0 S/N: FA6BM0305016

Riprovare le scene

Puoi riprovare le scene per una singola telecamera:

  • Per riprovare le scene su una singola telecamera:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

Scena di corsa 5

La scena 5 richiede una configurazione speciale con un'illuminazione specifica (per i dettagli, fare riferimento a CameraITS.pdf in CTS Verifier, che è possibile scaricare da Compatibility Test Suite Downloads ). Devi eseguire la scena 5 separatamente (fuori dagli schemi).

scena della telecamera 5
Figura 2. Scena della telecamera 5

Per eseguire la scena 5 per le fotocamere anteriore e posteriore su un singolo dispositivo:

python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5

Ottenere risultati

È possibile visualizzare i risultati durante il test e salvare i risultati completati come report.

  • Vedi i risultati. Per salvare i risultati di Camera ITS come rapporto:
    1. Premi Pass e salva il rapporto.
      rapporto ITS della telecamera
      Figura 3. Rapporto ITS della telecamera
    2. Estrai i report dal dispositivo:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. Decomprimi il file del report e visualizza test_result.xml .
      rapporti ITS della telecamera
      Figura 4. Rapporti ITS della telecamera

Requisiti del tablet

I tablet devono avere una dimensione del display di circa 10 pollici con una risoluzione dello schermo superiore a 1920 x 1200 pixel. Il valore di brightness deve essere impostato in config.yml in base al modello di tablet. La tabella seguente elenca i tablet consigliati per i test ITS insieme alle versioni di rilascio di Android per il DUT con cui funzionano i tablet.

Dispositivo Dimensioni del display
(pollici)
Dimensioni del display
(pixel)
Dimensioni tavoletta
(pollici)
Schermo
luminosità
Schermo
bit
Supportato
Sistema operativo DUT
SAMSUNG
Scheda Galaxy A8
10.5 1920x1200 9,72 x 6,37 x 0,27 192 8 Androide 13+
Xiaomi
Pad 5
11 2560 x 1600 10,03 x 6,55 x 0,27 1536 11 Android 12+
Lenovo
Scheda M10 Plus
10.3 1920x1200 9,61 x 6,03 x 0,32 192 8 Android 12+
SAMSUNG
Scheda Galaxy A7
10.4 2000 x 1200 9,75 x 6,2 x 0,28 192 8 Android 12+
Chuvi
Hi9 Aria 10.1
10.1 2560 x 1600 9,52 x 6,77 x 0,31 192 8 Androide 7+
ASUS
Zen Pad 3
9.7 2048 x 1536 9,47 x 6,44 x 0,28 192 8 Androide 7+
Huawei
Media Pad m5
10.8 2560 x 1600 10,18 x 6,76 x 0,29 192 8 Androide 7+
Google
Pixel C
10.2 2560 x 1800 9,53 x 7,05 x 0,28 96 8 Androide 7+
Sony
Xperia Z4
10.1 2560 x 1600 10 x 6,57 x 0,24 192 8 Androide 7+

Domande frequenti (FAQ)

D1: Come faccio a determinare quali banchi di prova mi servono per il mio dispositivo?

La revisione 1 RFoV ITS-in-a-box verifica le telecamere RFoV per i test dalla scena 0 alla scena 4 nella directory CameraITS/tests . RFoV è definito come 60° < FoV < 90° . Per le telecamere FoV più grandi, le luci potrebbero apparire nelle immagini o i grafici potrebbero coprire un'area troppo piccola nel FoV, influenzando i risultati del test.

La versione 2 di WFoV ITS-in-a-box testa le telecamere WFoV per i test dalla scena 0 alla scena 4 nella directory CameraITS/tests . WFoV è definito come FoV >= 90° . È funzionalmente identico alla revisione 1, ma più grande. Il banco di prova revisione 2 può testare entrambe le telecamere RFoV e WFoV in Android 9 e versioni successive.

La scatola di fusione dei sensori testa l'offset temporale della fotocamera/giroscopio e la sincronizzazione dei fotogrammi dei sistemi multi-camera con i test in scenes=sensor_fusion . Per il flag della funzione REALTIME e le app VR/AR è richiesto un offset di temporizzazione della fotocamera/giroscopio inferiore a 1 ms.

I dispositivi multicamera possono essere testati con un singolo rig per i test ITS statici e un rig di fusione dei sensori se la telecamera ha il flag della funzione REALTIME .

Nella tabella seguente viene fornita una serie di configurazioni di esempio.

Esempio FoV della fotocamera TEMPO REALE? Righe consigliate Appunti
1 75° NO Riv 1 Android 7.0 o versioni successive
2 75° Rev 1 + fusione sensori Android 9 o superiore
3 75° + 95° Rev 2 + fusione sensori Android 9 o superiore

Q2: Come posso designare quale banco di prova è in uso?

Per designare il banco di prova corretto, assicurarsi che il parametro della distanza del grafico sia corretto. Il banco di prova rev1 (RFoV) ha una distanza tra le carte di 31 cm e il banco di prova rev2 (WFoV) ha una distanza tra le carte di 22 cm. Per impostazione predefinita, la distanza della carta è impostata su 31 cm.

Da Android 10 ad Android 11

Per identificare il banco di prova corretto in Android da 10 a 11, aggiungi il flag dist alla riga di comando. Il valore predefinito per dist è 31 . Eseguire il seguente comando per modificare il parametro chart_distance .
python tools/run_all_tests.py ... chart=# dist=22

Androide 12

Per identificare il banco di prova corretto in Android 12 è possibile modificare il file config.yml per modificare il parametro chart_distance .
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

D3: Come posso controllare la luminosità del tablet?

Per impostazione predefinita, la luminosità del tablet è impostata su 96.

Per modificare la luminosità sui tablet con Android 7.0 fino ad Android 9, eseguire:

edit tools/wake_up_screen.py
DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192

Per modificare la luminosità sui tablet con Android da 10 a 11, il valore può essere modificato nella riga di comando aggiungendo il flag di brightness :

python tools/run_all_tests.py device=# camera=# chart=# brightness=192

Per modificare la luminosità sui tablet con Android 12, esegui:

edit config.yml
brightness: 96 → brightness: 192

D4: Come si esegue il debug di un singolo test?

I test possono essere eseguiti singolarmente per scopi di debug, ma i risultati non vengono segnalati a CtsVerifier.apk a meno che non venga eseguita l'intera scena.

Per eseguire una singola scena in Android 11 e versioni precedenti:

  1. Carica una scena aggiungendo il flag scenes in tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. Premere Control+C per interrompere i test dopo che la scena è stata registrata come caricata in stdout .

    Se la scena corretta è già sullo schermo, riattiva lo schermo:

    python tools/wake_up_screen.py screen=#
    
  3. Eseguire un test individuale.

    python tests/scene#/test_*.py device=# camera=#

    I grafici vengono quindi generati nella directory locale e stdout e stderr vengono stampati sullo schermo.

    Per ottenere maggiori informazioni per il debug, aggiungi istruzioni print allo script. Per aumentare l'output del test per il debug, aggiungi il flag debug=True .

    python tests/scene#/test_*.py device=# camera=# debug=True

I risultati vengono stampati sullo schermo locale e le immagini vengono salvate nella directory locale anziché nella /tmp/tmp### generata durante l'esecuzione di tools/run_all_tests.py .

Per eseguire una singola scena in Android 12:

  1. Modifica il file config.yml .

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. Eseguire il test individuale.

    python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
    

I risultati vengono stampati nella /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ ordinati per tempo di esecuzione.

D5: Perché devo eseguire i test con esito negativo come un'intera scena invece di eseguire nuovamente i test individualmente?

I test possono essere eseguiti singolarmente per scopi di debug, ma i risultati non vengono riportati in CtsVerifier.apk a meno che non venga eseguita l'intera scena.

Camera ITS garantisce che le app di terze parti dispongano di un'interfaccia fotocamera compatibile. Simile a un test unitario , ogni test sottolinea una singola specifica nella fotocamera. Per rilevare un comportamento inaffidabile, questi test devono essere superati in gruppo per un'intera scena. Ad esempio, sebbene un singolo test inaffidabile possa superare la ripetizione di un'intera scena, è difficile che vengano superati più test inaffidabili.

Come esempio estremo, considera il caso in cui ci sono 10 test in una scena ognuno dei quali ha una probabilità del 50% di restituire PASS . Eseguendo ciascun test individualmente, c'è un'alta probabilità che un operatore riesca a far superare alla telecamera Camera ITS. Tuttavia, se i test vengono eseguiti complessivamente come scena, c'è solo una probabilità dello 0,1% che la scena venga superata.

D6: Come eseguo una singola scena o riordino le scene di esecuzione?

Per impostazione predefinita, lo script tools/run_all_tests.py esegue tutte le scene in ordine. Tuttavia, le scene possono essere eseguite singolarmente o in un ordine specificato ed essere segnalate a CtsVerifier.apk .

Per eseguire una singola scena (ad esempio, la scena 2) o eseguire più di una scena in un ordine specifico in Android 11 o versioni precedenti:

python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2

Per eseguire una singola scena o eseguire più di una scena in un ordine specifico in Android 12:

python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2

I parametri aggiuntivi sono impostati nel file config.yml .

D7: Numerosi test della scena 1 falliscono con la configurazione del tablet ma passano con un grafico cartaceo. Cosa c'è che non va?

Assicurarsi che il tablet e l'ambiente di test soddisfino le seguenti specifiche.

Specifiche della tavoletta

Assicurarsi che il tablet soddisfi le seguenti specifiche:

  • Dimensioni del display (pollici): 10 pollici
  • Dimensione del display (pixel): maggiore di 1920 x 1200 pixel

Per maggiori dettagli, vedi Requisiti del tablet .

Luminosità della tavoletta

I test potrebbero non ottenere risultati corretti se la luminosità del display del tablet è troppo bassa.

Per ulteriori dettagli, vedere Come si controlla la luminosità del tablet?

Livello di illuminazione della scatola (richiede luxmetro)

Assicurarsi che il valore di lux target all'apertura della tavoletta sia compreso tra 100 e 300.

Se il livello di lux è troppo alto, scene1/test_param_flash_mode.py restituisce FAIL . Se il livello di lux è troppo basso, più test falliscono.

D8: Come si esegue il debug dei test di fusione dei sensori?

  1. Assicurati di essere in un gruppo dialout .

    groups | egrep ‘dialout'
  2. Assicurarsi che il controller di fusione dei sensori sia collegato determinando se Microchip Technology è collegata alla porta USB.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. Eseguire il test più volte per ottenere una distribuzione dei tentativi di test con i seguenti comandi.

    In Android 11 o versioni precedenti:

    python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
    

    Su Android 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    I parametri aggiuntivi sono impostati nel file config.yml .

    Gli output della corsa si trovano nella cartella /tmp/tmp### creata nelle cartelle sensor_fusion_# , dove # è il numero della corsa. I motivi comuni per il fallimento sono:

    1. Il telefono non è centrato correttamente.
    2. Nell'immagine non vengono trovate abbastanza caratteristiche (spesso un problema di FoV o di illuminazione).
    3. Il FAIL restituito è valido e l'offset temporale tra la telecamera e il giroscopio deve essere corretto.

D9: Quali informazioni devo includere quando segnalo un bug di test?

Quando segnali un bug di test, includi i file e le immagini generati per il test.

  1. Se hai eseguito il test tramite tools/run_all_tests.py , allega una /tmp/ compressa al bug.
  2. Se hai eseguito il test da solo, allega tutti gli output dello schermo e le immagini generate al bug.

Includi anche una segnalazione di bug. Dopo che il test in questione fallisce, utilizzare il seguente comando per generare una segnalazione di bug e allegare il file zip generato al bug.

adb -s device_id bugreport

D10: Come rimuovo le barre di navigazione sui tablet 16:10 che oscurano la scena?

Per i tablet con proporzioni 16:10 (o superiori), la barra di navigazione può oscurare parte della scena. Per nascondere la barra di navigazione utilizzare il seguente comando adb per il tablet.

adb -s device_id shell settings put global policy_control immersive.full=*