Cámara ITS-in-a-Box

Android Camera Image Test Suite (ITS) es parte del verificador de Android Compatibility Test Suite (CTS) e incluye pruebas que verifican el contenido de la imagen. CTS Verifier admite la automatización de pruebas ITS con Camera ITS-in-a-box; el soporte para pruebas manuales cubre todos los factores de forma de dispositivos Android.

ITS-in-a-box incluye los siguientes beneficios:

  • Automatización. No se necesita intervención humana durante la prueba.
  • Fácil resolución de problemas. La consistencia del entorno de prueba conduce a menos errores de configuración y aumenta la reproducibilidad.
  • Eficiencia. La capacidad de volver a intentar para cámara/escena individual mejora la eficiencia de ejecución de la prueba.

Empezando

ITS-in-a-box consta de una caja de plástico cortada con láser a partir de dibujos de diseño asistido por computadora (CAD), una tableta gráfica y un dispositivo bajo prueba (DUT). Puede usar el ITS-in-a-box de campo de visión amplio (WFoV), que es capaz de probar cámaras WFoV (FoV > 90 grados) y RFoV (FoV < 90 grados), o el campo de visión normal. -ver (RFoV) ITS-in-a-box.

Para comenzar con la cámara ITS-in-a-box:

  1. Compre o construya un WFoV o RFoV ITS-in-a-box.
  2. Configure una tableta con el software Camera ITS.
  3. Ejecutar pruebas .
  4. Obtenga resultados del DUT.

Configurando la tableta

Esta sección proporciona instrucciones paso a paso para configurar una tableta para su uso con las pruebas Camera ITS ubicadas en el directorio CameraITS . Estas instrucciones utilizan un Pixel C como tableta de ejemplo. Para obtener información sobre los requisitos y recomendaciones de la tableta, consulte Requisitos de la tableta.

Nota: Los scripts Camera ITS Python configuran automáticamente las siguientes opciones en la tableta para usted:
Ajustes > Pantalla > Suspender > Después de 30 minutos de inactividad
Brillo adaptativo > APAGADO

  1. Cargue la tableta y enciéndala. Si se le solicita que configure una cuenta, omítala (Camera ITS no requiere ninguna cuenta emparejada con la tableta).
  2. Actualice la tableta a Android 7.0 o superior. Android 6.x y versiones anteriores no son compatibles con Camera ITS.
  3. Habilitar el modo desarrollador .
  4. Regrese a Configuración y seleccione Opciones de desarrollador.
    Habilitar opciones
    • En
    • Mantente despierto
    • Depuración de USB (Esto permite que el host ejecute la tableta en modo de depuración. Cuando conecta la tableta al host por primera vez, la tableta solicita ¿Permitir depuración de USB? Si la tableta no muestra el mensaje de depuración, desconecte y vuelva a conectar la tableta.)
    Deshabilitar opciones
    • Actualizaciones automáticas del sistema
    • Verificar aplicaciones a través de USB
  5. Determine los ID de DUT y gráficos ejecutando $ adb devices para enumerar los dispositivos disponibles. Para determinar device_id y chart_id , conecte y desconecte dispositivos y observe los dispositivos que se conectan y desconectan.
  6. Realice tres ejecuciones de prueba para suprimir las sugerencias y las indicaciones del usuario que pueden ocultar los gráficos en la pantalla de la tableta.
    1. Coloque la tableta boca arriba sobre una mesa (no coloque la tableta en el panel posterior de la caja).
    2. Ejecute el siguiente comando:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      Las escenas 2 y 3 requieren que la tableta muestre una imagen, por lo que la tableta solicita ¿Permitir que Drive acceda a fotos, medios y archivos en su dispositivo? . Borre este aviso (y evite futuros avisos) presionando Permitir.
    3. Ejecute el comando de nuevo. La tableta le preguntará ¿Guardar una copia de este archivo? y sugiere Google Drive. Borre este aviso (y evite futuros avisos) presionando el ícono de Drive y luego Cancelar para cargar a Drive.
    4. Finalmente, ejecute tools/run_all_tests.py y confirme que las escenas cambian automáticamente a medida que el script pasa por diferentes escenas. Si bien la mayoría de las pruebas fallan (ya que la cámara no apunta al gráfico), puede verificar que la tableta recorre correctamente las escenas sin mostrar ningún mensaje u otras ventanas emergentes en la pantalla.

Ejecutando pruebas

Antes de ejecutar ITS-in-a-box, asegúrese de que su configuración de prueba incluya el siguiente hardware y software:

  • Un (1) ITS-en-una-caja
  • Una (1) tableta de 10" de alta resolución para mostrar escenas, S/N: 5811000011
  • Un (1) dispositivo bajo prueba que tenga instalada la aplicación CTS Verifier 7.0_8+. Ejemplo de DUT:
    • Un (1) Pixel NOF26W para la prueba de la cámara trasera (0), S/N: FA6BM0305016. Para instalar la aplicación CTS Verifier, descomprima android-cts-verifier.zip y luego ejecute
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      

Ejecución de escenas basadas en tabletas

Para ejecutar las escenas 0 a 4, 6 y scene_change en la cámara trasera:

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

Ejemplo:

Cámara 0 S/N: FA6BM0305016
Figura 1. Cámara 0 S/N: FA6BM0305016

Reintentar escenas

Puede volver a intentar escenas para una sola cámara:

  • Para volver a intentar escenas en una sola cámara:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

Corriendo escena 5

La escena 5 requiere una configuración especial con iluminación específica (para obtener más información, consulte CameraITS.pdf en CTS Verifier, que puede descargar en Descargas de conjuntos de pruebas de compatibilidad ). Debe ejecutar la escena 5 por separado (fuera de la caja).

escena de cámara 5
Figura 2. Escena de cámara 5

Para ejecutar la escena 5 para las cámaras delantera y trasera en un solo 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

Obteniendo resultados

Puede ver los resultados durante las pruebas y guardar los resultados completos como un informe.

  • Ver resultados. Para guardar los resultados de Camera ITS como un informe:
    1. Presione Aprobar y guarde el informe.
      informe de ITS de la cámara
      Figura 3. Informe ITS de la cámara
    2. Obtener informes del dispositivo:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. Descomprima el archivo del informe y visualice test_result.xml .
      Informes ITS de la cámara
      Figura 4. Informes ITS de la cámara

Requisitos de la tableta

Las tabletas deben tener un tamaño de pantalla de alrededor de 10 pulgadas con una resolución de pantalla superior a 1920 x 1200 píxeles. El valor de brightness debe establecerse en config.yml según el modelo de tableta. La siguiente tabla enumera las tabletas recomendadas para las pruebas de ITS junto con las versiones de lanzamiento de Android para el DUT con el que funcionan las tabletas.

Dispositivo Tamaño de la pantalla
(pulgadas)
Tamaño de la pantalla
(píxeles)
Dimensiones de la tableta
(pulgadas)
Monitor
brillo
DUT compatible
sistema operativo
Almohadilla Xiaomi 5 11 2560x1600 10,03x6,55x0,27 192 Androide 12+
Lenovo Tab M10 Más 10.3 1920x1200 9,61x6,03x0,32 192 Androide 12+
Samsung Galaxy Tab A7 10.4 2000x1200 9,75x6,2x0,28 192 Androide 12+
Chuwi Hi9 Aire 10.1 10.1 2560x1600 9,52 x 6,77 x 0,31 192 androide 7+
Asus Zen Pad 3 9.7 2048x1536 9,47x6,44x0,28 192 androide 7+
Huawei mediapad m5 10.8 2560x1600 10,18x6,76x0,29 192 androide 7+
Píxel C 10.2 2560x1800 9,53 x 7,05 x 0,28 96 androide 7+
sony xperia z4 10.1 2560x1600 10x6,57x0,24 192 androide 7+

Preguntas frecuentes (FAQ)

P1: ¿Cómo determino qué equipos de prueba necesito para mi dispositivo?

La revisión 1 de RFoV ITS-in-a-box prueba las cámaras RFoV para las pruebas de escena 0 a escena 4 en el directorio CameraITS/tests . RFoV se define como 60° < FoV < 90° . Para cámaras FoV más grandes, las luces pueden aparecer en las imágenes o los gráficos pueden cubrir un área demasiado pequeña en el FoV, lo que afecta los resultados de la prueba.

La revisión 2 de WFoV ITS-in-a-box prueba las cámaras WFoV para las pruebas de escena 0 a escena 4 en el directorio CameraITS/tests . WFoV se define como FoV >= 90° . Es funcionalmente idéntico a la revisión 1, pero más grande. El banco de pruebas de revisión 2 puede probar cámaras RFoV y WFoV en Android 9 y superior.

La caja de fusión del sensor prueba la compensación de tiempo de la cámara/giroscopio y la sincronización de cuadros de los sistemas multicámara con pruebas en scenes=sensor_fusion . Se requiere una compensación de tiempo de cámara/giroscopio de menos de 1 ms para el indicador de función REALTIME y las aplicaciones VR/AR.

Los dispositivos multicámara se pueden probar con un solo equipo para pruebas ITS estáticas y un equipo de fusión de sensores si la cámara tiene la marca de función REALTIME .

En la siguiente tabla se proporciona un conjunto de configuraciones de ejemplo.

Ejemplo Campos de visión de la cámara ¿TIEMPO REAL? Equipos recomendados notas
1 75° No Rev 1 Android 7.0 o superior
2 75° Rev 1 + fusión de sensores Android 9 o superior
3 75° + 95° Rev 2 + fusión de sensores Android 9 o superior

P2: ¿Cómo designo qué equipo de prueba está en uso?

Para designar el equipo de prueba correcto, asegúrese de que el parámetro de distancia del gráfico sea correcto. El equipo de prueba rev1 (RFoV) tiene una distancia de gráfico de 31 cm y el equipo de prueba rev2 (WFoV) tiene una distancia de gráfico de 22 cm. De forma predeterminada, la distancia del gráfico se establece en 31 cm.

Android 10 a Android 11

Para identificar el equipo de prueba correcto en Android 10 a 11, agregue el indicador dist en la línea de comando. El valor predeterminado para dist es 31 . Ejecute el siguiente comando para cambiar el parámetro chart_distance .
python tools/run_all_tests.py ... chart=# dist=22

androide 12

Para identificar el equipo de prueba correcto en Android 12, puede editar el archivo config.yml para cambiar el parámetro chart_distance .
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

P3: ¿Cómo controlo el brillo de la tableta?

De forma predeterminada, el brillo de la tableta está configurado en 96.

Para cambiar el brillo en tabletas con Android 7.0 a Android 9, ejecute:

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

Para cambiar el brillo en tabletas con Android 10 a 11, el valor se puede cambiar en la línea de comando agregando el indicador de brightness :

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

Para cambiar el brillo en tabletas con Android 12, ejecute:

edit config.yml
brightness: 96 → brightness: 192

P4: ¿Cómo depuro una sola prueba?

Las pruebas se pueden ejecutar individualmente con fines de depuración, pero los resultados no se informan a CtsVerifier.apk a menos que se ejecute toda la escena.

Para ejecutar una escena individual en Android 11 y versiones anteriores:

  1. Cargue una escena agregando el indicador de scenes en tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. Presione Control+C para detener las pruebas después de que la escena se registre como cargada en la stdout .

    Si la escena correcta ya está en la pantalla, active la pantalla:

    python tools/wake_up_screen.py screen=#
    
  3. Ejecute una prueba individual.

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

    Luego se generan gráficos en el directorio local y stdout y stderr se imprimen en la pantalla.

    Para obtener más información para la depuración, agregue declaraciones de print al script. Para aumentar la salida de prueba para la depuración, agregue el indicador debug=True .

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

Los resultados se imprimen en la pantalla local y las imágenes se guardan en el directorio local en lugar del directorio /tmp/tmp### generado cuando se ejecuta tools/run_all_tests.py .

Para ejecutar una escena individual en Android 12:

  1. Edite el archivo config.yml .

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. Ejecute la prueba individual.

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

Los resultados se imprimen en el directorio /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ ordenados por tiempo de ejecución.

P5: ¿Por qué necesito ejecutar las pruebas fallidas como una escena completa en lugar de volver a ejecutar las pruebas individualmente?

Las pruebas se pueden ejecutar individualmente con fines de depuración, pero los resultados no se informan a CtsVerifier.apk a menos que se ejecute toda la escena.

Camera ITS garantiza que las aplicaciones de terceros tengan una interfaz de cámara compatible. Similar a una prueba unitaria , cada prueba enfatiza una sola especificación en la cámara. Para detectar un comportamiento poco fiable, se espera que estas pruebas pasen como un grupo para una escena completa. Por ejemplo, aunque una sola prueba no confiable puede pasar una repetición de una escena completa, es difícil que pasen varias pruebas no confiables.

Como ejemplo extremo, considere el caso en el que hay 10 pruebas en una escena y cada una tiene un 50 % de probabilidad de devolver PASS . Al ejecutar cada prueba individualmente, existe una alta probabilidad de que un operador pueda lograr que la cámara pase Camera ITS. Sin embargo, si las pruebas se ejecutan en conjunto como una escena, solo hay un 0,1 % de posibilidades de que la escena pase.

P6: ¿Cómo ejecuto una sola escena o reordeno las escenas de ejecución?

De forma predeterminada, el script tools/run_all_tests.py ejecuta todas las escenas en orden. Sin embargo, las escenas se pueden ejecutar individualmente o en un orden específico y se pueden informar a CtsVerifier.apk .

Para ejecutar una escena individual (por ejemplo, la escena 2) o ejecutar más de una escena en un orden específico en Android 11 o versiones anteriores:

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

Para ejecutar una escena individual o ejecutar más de una escena en un orden específico en Android 12:

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

Los parámetros adicionales se establecen en el archivo config.yml .

P7: Varias pruebas de la escena 1 fallan con la configuración de la tableta, pero pasan con un gráfico en papel. ¿Qué ocurre?

Asegúrese de que la tableta y el entorno de prueba cumplan con las siguientes especificaciones.

Especificaciones de la tableta

Asegúrese de que la tableta cumpla con las siguientes especificaciones:

  • Tamaño de pantalla (pulgadas): 10 pulgadas
  • Tamaño de pantalla (píxeles): superior a 1920 x 1200 píxeles

Para obtener más detalles, consulte Requisitos de la tableta .

Brillo de la tableta

Es posible que las pruebas no obtengan resultados correctos si el brillo de la pantalla de la tableta es demasiado bajo.

Para obtener más detalles, consulte ¿Cómo controlo el brillo de la tableta?

Nivel de iluminación de la caja (requiere luxómetro)

Asegúrese de que el valor objetivo de lux al abrir la tableta esté entre 100 y 300.

Si el nivel de lux es demasiado alto, scene1/test_param_flash_mode.py devuelve FAIL . Si el nivel de lux es demasiado bajo, varias pruebas fallan.

P8: ¿Cómo depuro las pruebas de fusión de sensores?

  1. Asegúrese de estar en un grupo de dialout .

    groups | egrep ‘dialout'
  2. Asegúrese de que el controlador de fusión del sensor esté conectado determinando si Microchip Technology está conectado al puerto USB.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. Ejecute la prueba varias veces para obtener una distribución de los intentos de prueba con los siguientes comandos.

    En Android 11 o inferior:

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

    En Android 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    Los parámetros adicionales se establecen en el archivo config.yml .

    Los resultados de la ejecución se encuentran en la carpeta /tmp/tmp### creada en las carpetas sensor_fusion_# , donde # es el número de ejecución. Las razones comunes de falla son:

    1. El teléfono no está centrado correctamente.
    2. No se encuentran suficientes características en la imagen (a menudo un problema de FoV o de iluminación).
    3. El FAIL devuelto es válido y se debe corregir el desfase de tiempo entre la cámara y el giroscopio.

P9: ¿Qué información debo incluir al informar un error de prueba?

Cuando informe un error de prueba, incluya los archivos e imágenes generados para la prueba.

  1. Si ejecutó la prueba a través de tools/run_all_tests.py , adjunte un directorio /tmp/ comprimido al error.
  2. Si ejecutó la prueba por sí sola, adjunte todas las salidas de pantalla y las imágenes generadas al error.

Incluya también un informe de errores. Después de que falle la prueba en cuestión, use el siguiente comando para generar un informe de error y adjunte el archivo zip generado al error.

adb -s device_id bugreport

P10: ¿Cómo elimino las barras de navegación en las tabletas 16:10 que oscurecen la escena?

Para tabletas con relaciones de aspecto de 16:10 (o superior), la barra de navegación puede ocultar parte de la escena. Para ocultar la barra de navegación, use el siguiente comando adb para la tableta.

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