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 dell'immagine. 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. Non è necessario alcun intervento umano durante il test.
  • 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 una singola telecamera/scena migliora l'efficienza dell'esecuzione del test.

Iniziare

ITS-in-a-box è costituito da 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'ampio campo visivo (WFoV) ITS-in-a-box, in grado di testare entrambe le telecamere WFoV (FoV > 90 gradi) e RFoV (FoV < 90 gradi), oppure il normale campo visivo -view (RFoV) ITS-in-a-box.

Per iniziare con Camera ITS-in-a-box:

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

Configurazione del tablet

Questa sezione fornisce istruzioni dettagliate per configurare 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 per i tablet, vedere Requisiti per i 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 viene richiesto di configurare un account, saltarlo (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 (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, disconnettersi e ricollegare il tavoletta.)
    Disabilita le opzioni
    • Aggiornamenti automatici del sistema
    • Verifica le app tramite USB
  5. Determina gli ID DUT e grafico eseguendo $ adb devices per elencare i dispositivi disponibili. Per determinare device_id e chart_id , collega e scollega i dispositivi e osserva i dispositivi che si connettono e disconnettono.
  6. Eseguire tre esecuzioni di prova per eliminare i suggerimenti e le richieste dell'utente che possono oscurare i grafici sullo schermo del tablet.
    1. Posizionare il tablet a faccia in su su un tavolo (non collegare 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, file multimediali e file sul dispositivo? . Cancella questa richiesta (e impedisci richieste future) premendo Consenti.
    3. Esegui di nuovo il comando. Il tablet richiede Conservare una copia di questo file? e suggerisce Google Drive. Cancella questa richiesta (e impedisci richieste future) premendo l'icona Drive, quindi Annulla per il caricamento su Drive.
    4. Infine, esegui tools/run_all_tests.py e conferma che le scene cambiano automaticamente mentre lo script scorre attraverso scene diverse. Sebbene la maggior parte dei test fallisca (poiché la fotocamera non è puntata verso il grafico), è possibile verificare che il tablet scorra correttamente le scene senza visualizzare alcun messaggio o altro popup sullo schermo.

Esecuzione di test

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

  • Un (1) ITS in una scatola
  • Un (1) tablet da 10" ad alta risoluzione per la visualizzazione di scene, S/N: 5811000011
  • Un (1) DUT su cui è installata l'app CTS Verifier 7.0_8+. Esempio DUT:
    • Un (1) Pixel NOF26W per il test della fotocamera posteriore(0), S/N: FA6BM0305016. Per installare l'app CTS Verifier, decomprimi android-cts-verifier.zip quindi esegui
      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:

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

Riprova le scene

Puoi riprovare le scene per una singola telecamera:

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

Scena in esecuzione 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 in 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 unico 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 Passa e salva il rapporto.
      rapporto ITS della fotocamera
      Figura 3. Report ITS della telecamera
    2. Estrai i rapporti dal dispositivo:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. Decomprimere il file di report e visualizzare test_result.xml .
      rapporti ITS della fotocamera
      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 maggiore di 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 tablet
(pollici)
Schermo
luminosità
DUT supportato
Sistema operativo
Samsung Galaxy Tab A8 10.5 1920 x 1200 9,72 x 6,37 x 0,27 192 Android 13+
Xiaomi Pad 5 11 2560 x 1600 10,03 x 6,55 x 0,27 192 Android 12+
Lenovo Tab M10 Plus 10.3 1920 x 1200 9,61 x 6,03 x 0,32 192 Android 12+
Samsung Galaxy Tab A7 10.4 2000 x 1200 9,75 x 6,2 x 0,28 192 Android 12+
Chuwi Hi9 Air 10.1 10.1 2560 x 1600 9,52 x 6,77 x 0,31 192 Android 7+
Asus ZenPad 3 9.7 2048 x 1536 9,47 x 6,44 x 0,28 192 Android 7+
Huawei MediaPad m5 10.8 2560 x 1600 10,18 x 6,76 x 0,29 192 Android 7+
Pixel C 10.2 2560 x 1800 9,53 x 7,05 x 0,28 96 Android 7+
Sony Xperia Z4 10.1 2560 x 1600 10 x 6,57 x 0,24 192 Android 7+

Domande frequenti (FAQ)

Q1: Come faccio a determinare quali banchi di prova ho bisogno per il mio dispositivo?

La revisione RFoV ITS-in-a-box 1 testa le telecamere RFoV per i test di scena da 0 a scena 4 nella directory CameraITS/tests . RFoV è definito come 60° < FoV < 90° . Per le fotocamere 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 revisione 2 di WFoV ITS-in-a-box verifica le telecamere WFoV per i test di scena da 0 a scena 4 nella directory CameraITS/tests . WFoV è definito come FoV >= 90° . È funzionalmente identico alla revisione 1, ma più grande. Il banco di prova della revisione 2 può testare sia le fotocamere RFoV che WFoV in Android 9 e versioni successive.

La scatola di fusione del sensore verifica l'offset di temporizzazione della telecamera/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 telecamera/giroscopio inferiore a 1 ms.

I dispositivi multi-camera possono essere testati con un singolo rig per 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? Impianti consigliati Appunti
1 75° No Rev 1 Android 7.0 o versioni successive
2 75° Rev 1 + fusione del sensore Android 9 o versioni successive
3 75° + 95° Rev 2 + fusione sensore Android 9 o versioni successive

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

Per designare il banco di prova corretto, assicurarsi che il parametro della distanza della carta sia corretto. Il banco di prova rev1 (RFoV) ha una distanza della carta di 31 cm e il banco di prova rev2 (WFoV) ha una distanza della carta 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 comando seguente per modificare il parametro chart_distance .
python tools/run_all_tests.py ... chart=# dist=22

Android 12

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

Q3: 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 tramite 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 dalla 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, eseguire:

edit config.yml
brightness: 96 → brightness: 192

Q4: 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 su stdout .

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

    python tools/wake_up_screen.py screen=#
    
  3. Esegui 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 le 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. Esegui 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 runtime.

D5: Perché è necessario eseguire i test non riusciti come un'intera scena invece di eseguire nuovamente i test singolarmente?

I test possono essere eseguiti singolarmente per scopi di debug, ma i risultati non vengono riportati a 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 comportamenti inaffidabili, questi test dovrebbero passare come gruppo per un'intera scena. Ad esempio, sebbene un singolo test inaffidabile possa superare la ripetizione di un'intera scena, è difficile che più test inaffidabili superino.

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

Q6: Come posso eseguire una singola scena o riordinare 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 specifico ed essere segnalate a CtsVerifier.apk .

Per eseguire una singola scena (ad esempio, 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: Un certo numero di test della scena 1 hanno esito negativo con l'impostazione del tablet ma sono stati superati con un grafico cartaceo. Cosa c'è che non va?

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

Specifiche del tablet

Assicurarsi che il tablet soddisfi le seguenti specifiche:

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

Per maggiori dettagli, vedere Requisiti del tablet .

Luminosità tablet

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

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

Livello di illuminazione del box (richiede luxmetro)

Assicurarsi che il valore target di lux all'apertura della compressa 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.

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

  1. Assicurati di essere in un gruppo di dialout .

    groups | egrep ‘dialout'
  2. Assicurarsi che il controller di fusione del sensore sia collegato determinando se la tecnologia Microchip è collegata alla porta USB.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. Esegui 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
    

    In 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 di fallimento sono:

    1. Il telefono non è centrato correttamente.
    2. Non si trovano abbastanza funzioni nell'immagine (spesso un FoV o un problema di illuminazione).
    3. Il FAIL restituito è valido e l'offset di temporizzazione tra la telecamera e il giroscopio deve essere corretto.

Q9: Quali informazioni devo includere quando si segnala un bug di test?

Quando si segnala un bug di test, includere i file e le immagini generati per il test.

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

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

adb -s device_id bugreport

Q10: Come si rimuovono 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=*