Pruebas del ITS de la cámara

En esta página, se proporciona una lista completa de las pruebas del Conjunto de pruebas de imágenes de la cámara (ITS), que forma parte del verificador del Conjunto de pruebas de compatibilidad (CTS) de Android. Las pruebas de ITS son pruebas funcionales, lo que significa que no miden la calidad de la imagen, sino que todas las funciones de la cámara anunciadas funcionan según lo esperado. En este documento, los desarrolladores y verificadores pueden comprender qué hacen las pruebas individuales y cómo depurar errores de pruebas.

Pruebas de las puertas de ITS de la cámara según las propiedades de cámara, el nivel de API y la clase de rendimiento del contenido multimedia (MPC) requeridos En cuanto al nivel de API, el ITS usa ro.product.first_api_level para limitar las pruebas agregadas en un nivel de API específico que prueban experiencias del usuario negativas para la funcionalidad en niveles de API inferiores. El ITS usa ro.vendor.api_level para limitar las pruebas de funciones agregadas en un nivel de API específico que requieren una nueva capacidad de hardware. Si se define ro.odm.build.media_performance_class para un dispositivo, el ITS requiere que se ejecuten pruebas específicas según el nivel de MPC.

Las pruebas se agrupan por escena de la siguiente manera:

  • scene0: Captura metadatos, Jitter, giroscopio y vibración
  • scene1: Exposición, sensibilidad, compensación de VE, YUV en comparación con JPEG/RAW
  • scene2: Detección de rostros, pruebas que requieren escenas de color o oscuridad completa
  • scene3: Mejora de bordes, movimiento de la lente
  • scene4: Relación de aspecto, recorte, campo visual
  • scene5: Sombreado de lente
  • scene6: Zoom
  • scene_extensions: Extensiones de la cámara
  • sensor_fusion: Desplazamiento de sincronización de la cámara/giroscopio

Consulta las secciones individuales para ver una descripción de cada escena.

escena0

Las pruebas de Scene0 no requieren información específica de la escena. Sin embargo, el teléfono debe estar fijo para las pruebas de giroscopio y vibración.

captura_de_ráfaga_de_prueba

Verifica que toda la canalización de captura pueda mantenerse al día con la velocidad de la captura de tamaño completo y el tiempo de CPU.

APIs probadas:

Aprobado: Captura una ráfaga de imágenes en tamaño original y la cámara es lo suficientemente rápida para evitar el tiempo de espera.

test_capture_result_dump

Prueba que un resultado de captura se muestre a partir de una captura manual y, luego, lo vuelca.

APIs probadas:

Aprobado: Completa la captura y vuelca los resultados.

prueba_gyro_sesgo

Prueba si el giroscopio tiene una salida estable cuando el dispositivo está quieto. Los datos se trazan como un promedio de 20 datos.

APIs probadas:

Aprobado: El delta de la lectura del giroscopio es inferior a 0.01 en el tiempo.

prueba_gyro_sesgo_plot.png

prueba_gyro_sesgo_plot.png

Jitter de prueba

Mide el jitter en las marcas de tiempo de la cámara.

APIs probadas:

Aprobado: Hay al menos un delta de 30 ms entre los fotogramas.

prueba_jitter_plot.png

test_jitter_plot.png (Ten en cuenta el rango pequeño del eje Y. El Jitter es en realidad pequeño en este diagrama).

metadatos_prueba

Prueba la validez de las entradas de metadatos. Observa los resultados de la captura y los objetos de características de la cámara. Esta prueba usa los valores de exposición y ganancia de auto_capture_request porque el contenido de la imagen no es importante.

APIs probadas:

Aprobado: El nivel de hardware, las etiquetas rollingShutterSkew, frameDuration, timestampSource, croppingType, blackLevelPattern, pixel_pitch, FoV y distancia hiperfocal están presentes y tienen valores válidos.

ráfaga_de_sensibilidad_de_prueba

Comprueba que el parámetro android.sensor.sensitivity se aplique correctamente en ráfaga. Inspecciona solo los metadatos de salida.

APIs probadas:

Aprobado: Los datos de salida tienen una tolerancia a errores inferior al 0.2%.

prueba_lectura_escritura

Prueba que el dispositivo escriba los valores correctos de exposición y ganancia mediante la lectura de los metadatos de captura.

APIs probadas:

Aprobado: Los valores de lectura y escritura coinciden en todas las tomas.

eventos_sensor_prueba

Prueba que el dispositivo consulta e imprime eventos de sensores para dispositivos que anuncian la compatibilidad con la fusión de sensores. Los sensores esperados son el acelerómetro, el giroscopio y el magnetómetro. Esta prueba solo funciona si la pantalla está encendida, es decir, el dispositivo no está en modo en espera.

APIs probadas:

Aprobado: Se reciben eventos para cada sensor.

prueba_solid_color_test_pattern

Comprueba que los patrones de prueba de colores sólidos se generen correctamente para silenciar la cámara. Si se admite el silenciamiento de la cámara, se deben admitir patrones de prueba de colores sólidos. Si no se admite el silenciamiento de la cámara, los patrones de prueba de colores sólidos solo se prueban si se anuncia la función.

Si se admiten imágenes RAW, también se prueba la asignación de colores. Los colores probados son negro, blanco, rojo, azul y verde. Para las cámaras que no admiten imágenes RAW, solo se prueba el negro.

APIs probadas:

Aprobado: Los patrones de prueba sólidos admitidos son del color correcto y hay una baja variación en la imagen.

prueba_patrón_prueba

Prueba el parámetro android.sensor.testPatternMode con el objetivo de capturar fotogramas para cada patrón de prueba válido y comprueba que los marcos se generen correctamente para colores sólidos y barras de color. Esta prueba incluye los siguientes pasos:

  1. Captura imágenes para todos los patrones de prueba compatibles.
  2. Realiza una verificación de corrección simple para un patrón de prueba de color sólido y barras de color.

APIs probadas:

Aprobado: Los patrones de prueba admitidos se generan correctamente.

prueba_patrones_prueba_2

prueba_patrones_prueba_2.jpg

curva_mapa_tono

Prueba la conversión del patrón de prueba de RAW a YUV con un mapa de tonos lineal. Esta prueba requiere android.sensor.testPatternMode = 2 (COLOR_BARS) para generar un patrón de imagen perfecto para la conversión de mapas de tonos. Se asegura de que la canalización tenga salidas de color adecuadas con un mapa de tonos lineal y una entrada de imagen ideal (se basa en test_test_patterns).

APIs probadas:

Aprobado: El YUV y la RAW son similares entre sí.

prueba_mapa_tono_curva_raw_2

prueba_mapa_tono_curva_raw_2.jpg

curva_mapa_tono_prueba_yuv_2.jpg

curva_mapa_tono_prueba_yuv_2.jpg

marca_de_tiempo_unificado_de_prueba

Comprueba si los eventos de sensores de imagen y movimiento están en el mismo dominio de tiempo.

APIs probadas:

Aprobado: Las marcas de tiempo de movimiento se encuentran entre las dos marcas de tiempo de imagen.

restricción_vibración_prueba

Prueba si la vibración del dispositivo funciona según lo esperado.

APIs probadas:

Aprobado: El dispositivo no vibra cuando lo silencia la API de restricción de audio de la cámara.

escena1

escena1 es un gráfico gris. El gráfico gris debe cubrir el 30% central del campo visual de la cámara. Se espera que el gráfico gris desafíe a 3A (exposición automática, balance de blancos automático, enfoque automático) con moderación, ya que la región central no tiene atributos. Sin embargo, la solicitud de captura especifica toda la escena, con funciones suficientes para que 3A converja.

Las cámaras RFoV se pueden probar en el equipo de prueba de WFoV o RFoV. Si se prueba una cámara de RFoV en el equipo de pruebas de WFoV, el gráfico se escala 2⁄3 para garantizar que algunos límites del gráfico gris en el FoV ayuden a la convergencia de 3A. Para obtener descripciones más detalladas de los equipos de prueba de la cámara, consulta ITS integrado en la cámara.

escena1

escena1: Gráfico de tamaño completo (izquierda). Gráfico a escala de 2⁄3 (derecha).

prueba_3a

Prueba la convergencia de 3A con un objetivo moderadamente difícil.

APIs probadas:

Aprobado: 3A converge y los valores 3A que se muestran son válidos.

prueba_ae_af

Prueba individualmente los algoritmos de exposición automática (AE) y enfoque automático (AF) de 3A.

APIs probadas:

Aprobado: 3A converge y los valores 3A que se muestran son legales.

test_ae_precapture_trigger

Prueba la máquina de estado de AE cuando se usa el activador de captura previa. Captura cinco solicitudes manuales con el AE inhabilitado. La última solicitud tiene un activador de captura previa de AE, que se debe ignorar porque AE está inhabilitado.

APIs probadas:

Aprobado: El AE converge.

prueba_automática_vs_manual

Las pruebas en las que se tomaron fotos automáticas y manuales tienen el mismo aspecto.

APIs probadas:

Aprobado: Las ganancias y las transformaciones manuales del balance de blancos que se informan en cada resultado de captura coinciden con el balance de blancos automático estimate del algoritmo 3A de la cámara.

prueba_automática_vs_manual_auto

prueba_auto_vs_manual_auto.jpg

prueba_auto_vs_manual_wb

prueba_auto_vs_manual_wb.jpg

prueba_automática_vs_manual_manual_wb_tm

prueba_auto_vs_manual_manual_wb_tm.jpg

prueba_blanco_negro

Prueba que el dispositivo produzca imágenes completas en blanco y negro. Toma dos capturas: la primera con una ganancia muy baja y una exposición corta, que da como resultado una foto negra, y la segunda con una ganancia y exposición larga extremadamente altas, que da como resultado una foto blanca.

APIs probadas:

Aprobado: Produce imágenes en blanco y negro. Los canales saturados de imágenes en blanco tienen valores RGB de [255, 255, 255] con un margen de error de menos del 1% de diferencia.

prueba_negro_blanco_negro prueba_negro_blanco_negro
prueba_negro_blanco_negro.jpg prueba_black_white_white.jpg

prueba_negro_trama_blanco_medios

prueba_black_white_plot_means.png

prueba_ráfaga_igualidad_manual

Toma 5 ráfagas de 50 imágenes con configuración de captura manual y verifica que todas sean idénticas. Esta prueba se puede usar para identificar si hay fotogramas esporádicos que se procesan de manera diferente o tienen artefactos.

APIs probadas:

Aprobado: Las imágenes son idénticas visualmente y en valores RGB.

Error: Muestra un aumento o una disminución en el gráfico promedio RGB al comienzo de cada ráfaga.

  • La tolerancia es del 3% para first_API_level < 30
  • La tolerancia es del 2% para first_API_level >= 30

promedio_de_párrago_de_prueba_de_la_seminencia_manual

prueba_burst_sameness_manual_mean.jpg

prueba_ráfaga_igualdad_trama_manual_medios

prueba_burst_sameness_manual_plot_means.png

prueba_captura_resultado

Prueba que los datos válidos se devuelven en objetos CaptureResult. Realiza capturas automáticas, manuales y automáticas.

APIs probadas:

Aprobado: Los metadatos son válidos para todas las capturas y la configuración manual no se filtra en la segunda captura automática. Traza la corrección de sombreado de las lentes para las capturas.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

prueba_crop_region_raw

Prueba que las transmisiones RAW no se pueden recortar.

APIs probadas:

Aprobado: Las imágenes YUV se cortan en el centro, pero no las imágenes RAW.

prueba_crop_región_raw_comp_raw_crop

prueba_crop_región_raw_comp_raw_crop.jpg

prueba_crop_region_raw_comp_raw_full

prueba_crop_región_raw_comp_raw_full.jpg

prueba_crop_región_raw_comp_yuv_crop

prueba_crop_región_raw_comp_yuv_crop.jpg

prueba_crop_region_raw_yuv_completo

prueba_crop_región_raw_yuv_completo.jpg

prueba_recorte_regiones

Prueba que funcionan las regiones de recorte. Toma una imagen completa y crea parches de 5 regiones diferentes (esquinas y centro). Toma imágenes con los recortes de las 5 regiones. Compara los valores de parche y imagen de recorte.

APIs probadas:

Aprobado: La imagen de la región recortada coincide con el parche que corresponde a la imagen recortada.

prueba_dng_ruido_modelo

Verifica que los parámetros del modelo DNG sin procesar sean correctos. El trazado representa la varianza medida de un parche central de la tarjeta gris en tomas sin procesar capturadas en un rango de sensibilidades y compara estos valores con la variación que se espera en cada sensibilidad por el modelo de ruido DNG en la HAL de la cámara (según los parámetros O,S mostrados en los objetos de resultado de captura). Para obtener más detalles sobre el modelo de ruido DNG, descarga el siguiente documento sobre el Modelo de ruido DNG.

APIs probadas:

Aprobado: Los parámetros del modelo sin procesar de DNG son correctos. Los valores RGB esperados coinciden con los de los valores RGB reales medidos.

prueba_dng_ruido_modelo_plog

prueba_dng_ruido_modelo_plog.png

prueba_ev_compensación_avanzada

Prueba que se aplique la compensación del valor de exposición (VE). La prueba aumenta la exposición en ocho pasos y comprueba el brillo medido en comparación con el brillo esperado. Los valores esperados se calculan a partir del brillo de la imagen sin compensación de VE aplicada, y el valor esperado se saturará si los valores calculados superan el rango real de valores de la imagen. La prueba falla si los valores esperados y los valores medidos no coinciden o si las imágenes se sobreexponen en cinco pasos.

APIs probadas:

Aprobado: Las imágenes muestran una exposición creciente sin sobreexposición en cinco pasos.

prueba_ev_compensación_avanzada_trazos_significa

prueba_ev_commitment_advanced_plot_means.png

prueba_ev_compensación_básica

Prueba que la compensación de VE se aplique con un rango creado con CONTROL_AE_COMPENSATION_STEP. Se capturan ocho fotogramas en cada valor de compensación.

APIs probadas:

Aprobado: Captura el aumento en la luma con un mayor parámetro de configuración de compensación de VE, y los ocho fotogramas capturados para cada configuración de compensación de VE tienen valores de luma estables.

prueba_ev_compensación_básica

prueba_ev_compensación_básica.png

exposición_prueba

Prueba que se logra una exposición constante como ISO y el tiempo de exposición varía. Realiza una serie de tomas que tienen valores de ISO y de exposición elegidos para lograr un equilibrio entre sí. Los resultados deben tener el mismo brillo, pero, en la secuencia, la imagen debería volverse más ruidosa. Verifica que los valores medios de píxeles de muestra estén cerca entre sí. Garantiza que las imágenes no se fijen en 0 o 1 (lo que haría que se vean como líneas planas). La prueba también se puede ejecutar con imágenes RAW si estableces la marca debug en el archivo de configuración.

APIs probadas:

Aprobado: Las imágenes tienen el mismo brillo, pero se vuelven más ruidosas con ISO más altas. Los planos RGB son planos cuando el valor de ISO*exposure es constante en el espacio de ganancia probado.

prueba_exposición_trazado_medios

prueba_exposición_trace_medios.png

prueba_exposición_mult=1.00 prueba_exposición_mult=64.00
prueba_exposición_mult=1.00.jpg prueba_exposición_mult=64.00.jpg

prueba_jpeg

Las pruebas que convirtieron las imágenes YUV y las imágenes JPEG del dispositivo tienen el mismo aspecto. La prueba toma el 10% central de la imagen, calcula el valor RGB y verifica que coincidan.

APIs probadas:

Aprobado: La diferencia de RGB promedio entre cada imagen es inferior al 3%.

prueba_jpeg_fmt=jpg.jpg prueba_jpeg=fmt=yuv.jpg
prueba_jpeg_fmt=jpg.jpg prueba_jpeg=fmt=yuv.jpg

enganche_prueba

Prueba que los parámetros de configuración (exposición y ganancia) se ajusten al marco correcto para las cámaras FULL y LEVEL_3. Realiza una serie de tomas mediante solicitudes consecutivas y varía los parámetros de solicitud de captura entre tomas. Comprueba que las imágenes tengan las propiedades esperadas.

APIs probadas:

Aprobado: Las imágenes [2, 3, 6, 8, 10, 12, 13] tienen un aumento de ISO o de exposición y se muestran con medios RGB más altos en test_latching_plot_means.png.

prueba_latching_i=00.jpg prueba_latching_i=01.jpg prueba_latching_i=02.jpg
prueba_latching_i=00.jpg prueba_latching_i=01.jpg prueba_latching_i=02.jpg
prueba_latching_i=03.jpg prueba_latching_i=04.jpg prueba_latching_i=05.jpg
prueba_latching_i=03.jpg prueba_latching_i=04.jpg prueba_latching_i=05.jpg
prueba_latching_i=06.jpg prueba_latching_i=07.jpg prueba_latching_i=08.jpg
prueba_latching_i=06.jpg prueba_latching_i=07.jpg prueba_latching_i=08.jpg
prueba_latching_i=09.jpg prueba_latching_i=10.jpg prueba_latching_i=11.jpg
prueba_latching_i=09.jpg prueba_latching_i=10.jpg prueba_latching_i=11.jpg
prueba_latching_i=12.jpg
prueba_latching_i=12.jpg

prueba_enlace_trama_medios

prueba_latching_plot_means.png

linealidad_de_prueba

Prueba que el procesamiento del dispositivo se pueda invertir a píxeles lineales. Captura una secuencia de tomas con el dispositivo apuntando a un objetivo uniforme.

APIs probadas:

Aprobado: Los valores R, G y B deben aumentar de manera lineal con mayor sensibilidad.

prueba_linealidad_diagrama_medios

prueba_linealidad_diagramas_medios.png

ráfaga_bloqueada_prueba

Prueba el bloqueo de 3A y el aumento de actividad de YUV (con la configuración automática). Esta prueba está diseñada para aprobar incluso en dispositivos limitados que no tienen MANUAL_SENSOR ni PER_FRAME_CONTROLS. La prueba verifica la coherencia de la imagen YUV mientras la verificación de velocidad de fotogramas está en CTS.

APIs probadas:

Aprobado: Las capturas tienen un aspecto coherente.

prueba_bloqueada_ráfaga_marco0

prueba_bloqueada_ráfaga_marco0.jpg

prueba_bloqueada_ráfaga_marco1

prueba_bloqueada_ráfaga_marco1.jpg

prueba_bloqueada_ráfaga_marco2

prueba_bloqueada_ráfaga_marco2.jpg

test_param_color_correction

Prueba que se apliquen los parámetros android.colorCorrection.* cuando se configuran. Toma fotos con diferentes valores de transformación y ganancia, y comprueba que se vean diferentes. La transformación y las ganancias se eligen para que el resultado sea cada vez más rojo o azul. Usa un mapa de tonos lineal. La asignación de tono es una técnica que se usa en el procesamiento de imágenes para asignar un conjunto de colores a otro y, así, aproximar la apariencia de las imágenes de alto rango dinámico en un medio con un rango dinámico más limitado.

APIs probadas:

Aprobado: Los valores R y B se potencian según la transformación.

prueba_param_color_correction_plot_means

prueba_param_color_correction_plot_means.png

*El eje x corresponde a las solicitudes de captura: 0 = unidad, 1=aumento rojo, 2= potencia azul

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (potencia R)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (potenciador B)

tiempo_de_exposición_para_prueba

Prueba que se aplique el parámetro android.sensor.exposureTime.

APIs probadas:

Aprobado: Cada toma es más brillante que la anterior.

prueba_param_exposure_time_frame0

prueba_param_exposición_marco_de_tiempo0.jpg

prueba_param_exposure_time_plot

prueba_param_exposición_tiempo_plot.png

modo_de_flash_prueba_de_prueba

Prueba que se aplique el parámetro android.flash.mode. De forma manual, establece la exposición en el lado oscuro, de modo que sea evidente si el flash se activó o no, y usa un mapa de tonos lineal. Comprueba el centro con la imagen de mosaico para comprobar si se creó un gradiente grande para verificar si se activó el flash.

APIs probadas:

Aprobado: El centro de la imagen de mosaico tiene un gran gradiente, lo que significa que se activó el flash.

prueba_param_flash_mode_1

prueba_param_flash_mode_1.jpg

prueba_param_flash_mode_1_mosaico

prueba_param_flash_mode_1_tile.jpg

modo_de_flash_prueba_2

prueba_param_flash_mode_2.jpg

prueba_param_flash_mode_2_mosaico

prueba_param_flash_mode_2_tile.jpg

prueba_param_reducción_de_ruido

Prueba que el parámetro android.noiseReduction.mode se aplique correctamente cuando se configura. Captura imágenes con la cámara con poca luz. Usa una ganancia analógica alta para garantizar que la imagen capturada sea ruidosa. Captura tres imágenes: NR desactivado, "rápido" y "alta calidad". También captura una imagen con baja ganancia y NR desactivada, y usa su varianza como modelo de referencia. Cuanto mayor sea la relación señal-ruido (SNR), mejor será la calidad de la imagen.

APIs probadas:

Aprobado: La SNR varía con los diferentes modos de reducción de ruido y se comporta de manera similar al siguiente gráfico.

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

0: DESACTIVADO, 1: RÁPIDO, 2: HQ, 3: MÍN , 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

prueba_param_ruido_reducción_baja_ganancia

prueba_param_noise_reduction_low_gain.jpg

parámetro_de_prueba_de_sensibilidad

Prueba que se aplique el parámetro android.sensor.sensitivity. La prueba aumenta la sensibilidad en 5 pasos con una exposición fija para cada toma.

APIs probadas:

Aprobado: Los medios RGB de un 10% central se hacen más brillantes con una mayor sensibilidad.

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

diagrama_de_prueba_de_sensibilidad

prueba_param_sensibilidad_plot.png

modo_de_sombreado_de_parámetro_de_prueba

Prueba que se aplique el parámetro android.shading.mode.

APIs probadas:

Aprobado: Se cambian los modos de sombreado y los mapas de sombreado de lente se modifican según lo previsto.

prueba_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

prueba_param_shading_mode_ls_maps_mode_1_loop_0

prueba_param_shading_mode_ls_maps_mode_1_loop_0.png

prueba_param_shading_mode_ls_maps_mode_2_loop_0

prueba_param_shading_mode_ls_maps_mode_2_loop_0.png

modo_mapa_tono_para_prueba

Prueba que se aplique el parámetro android.tonemap.mode. Aplica diferentes curvas de mapa de tonos a cada canal R, G y B, y comprueba que las imágenes de salida se modifiquen como se espera. Esta prueba consta de dos pruebas: test1 y test2.

APIs probadas:

Aprobado:

  • test1: Ambas imágenes tienen un mapa de tonos lineal, pero n=1 tiene un gradiente más pronunciado. El canal G (verde) es más brillante para la imagen n=1.
  • prueba2: Tiene el mismo mapa de tonos, pero diferente duración. Las imágenes son iguales.
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

prueba_post_raw_aumento_de_la_sensibilidad

Verifica el aumento de sensibilidad posterior a la RAW. Captura un conjunto de imágenes RAW y YUV con sensibilidad diferente, publica la combinación de aumento de sensibilidad RAW y verifica si la media de píxeles de salida coincide con la configuración de la solicitud.

APIs probadas:

Aprobado: Las imágenes RAW se oscurecen a medida que aumenta el aumento, mientras que las imágenes YUV se mantienen constantes en el brillo.

prueba_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

prueba_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

prueba_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

prueba_post_raw_sensitivity_boost_raw_plot_means_pruebas

prueba_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

prueba_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

prueba_post_raw_sensitivity_boost_yuv_plot_significa

prueba_post_raw_sensitivity_boost_yuv_plot_means.png

prueba_raw_burst_sensibilidad

Captura un conjunto de imágenes sin procesar con aumentos cada vez mayores y mide el ruido. Captura solo sin procesar, en ráfaga.

APIs probadas:

Aprobado: Cada golpe es más ruidoso que el anterior, ya que la ganancia aumenta.

Usa la varianza de la celda de la cuadrícula de estadísticas centrales.

prueba_raw_burst_varianza_de_sensibilidad

prueba_raw_burst_varianza_de_sensibilidad.png

exposición_sin_prueba

Captura un conjunto de imágenes sin procesar con un tiempo de exposición creciente y mide los valores de píxeles.

APIs probadas:

Aprobado: aumentar el ISO (aumento) hace que los píxeles sean más sensibles a la luz, por lo que el trazado se mueve hacia la izquierda.

prueba_raw_exposure_s=55

prueba_raw_exposure_s=55.png

(100 es 1 ms, 101 es 10 ms, 10−1 es 0.1 ms)

prueba_raw_exposure_s=132

prueba_raw_exposure_s=132.png

prueba_raw_exposure_s=209

prueba_raw_exposure_s=209.png

prueba_raw_exposure_s=286

prueba_raw_exposure_s=286.png

prueba_raw_exposure_s=363

prueba_raw_exposure_s=363.png

prueba_raw_exposure_s=440

prueba_raw_exposure_s=440.png

prueba_raw_sensibilidad

Captura un conjunto de imágenes sin procesar con sensibilidades crecientes y mide el ruido (varianza) en el 10% central de la imagen. Prueba que cada disparo sea más ruidoso que el anterior.

APIs probadas:

Aprobado: La variación aumenta con cada golpe.

prueba_varianza_de_sensibilidad

prueba_raw_sensitivity_variance.png

prueba_reducción_de_ruido

Prueba que se aplique android.noiseReduction.mode para volver a procesar solicitudes. Captura imágenes reprocesadas con la cámara tenue. Usa una ganancia analógica alta para garantizar que la imagen capturada sea ruidosa. Captura tres imágenes reprocesadas: NR desactivado, "rápido" y "alta calidad". Captura una imagen reprocesada con baja ganancia y NR desactivado, y usa su varianza como modelo de referencia.

APIs probadas:

Aprobado: RÁPIDO >= APAGADO, HQ >= RÁPIDA, HQ >> DESACTIVADA

Diagrama de SNR y NR_MODE típico

Diagrama de SNR y NR_MODE típico

secuencia_mapa_tono

Prueba una secuencia de tomas con diferentes curvas de mapa de tonos. Captura 3 tomas manuales con un mapa de tonos lineal. Captura 3 tomas manuales con mapa de tonos predeterminado. Calcula el delta entre cada par de fotogramas consecutivos.

APIs probadas:

Aprobado: Hay 3 fotogramas idénticos seguidos de un conjunto diferente de 3 fotogramas idénticos.

prueba_mapa_tono_secuencia_i=0

prueba_tonemap_secuencia_i=0.jpg

prueba_mapa_tono_secuencia_i=1

prueba_tono_secuencia_i=1.jpg

prueba_mapa_tono_secuencia_i=2

prueba_tono_secuencia_i=2.jpg

prueba_mapa_tono_secuencia_i=3

prueba_tono_secuencia_i=3.jpg

prueba_mapa_tono_secuencia_i=4

prueba_tono_secuencia_i=4.jpg

prueba_mapa_tono_secuencia_i=5

prueba_tono_secuencia_i=5.jpg

prueba_yuv_jpeg_todo

Prueba que todos los tamaños y formatos informados para la captura de imágenes funcionan. Usa una solicitud manual con un mapa de tonos lineal para que YUV y JPEG se vean iguales cuando el módulo image_processing_utils los convierta. Las imágenes no se guardan de forma predeterminada, pero se pueden guardar habilitando debug_mode.

APIs probadas:

Aprobado: Todos los centros de imágenes tienen una diferencia máxima de RMS (valor de la raíz cuadrada de la media de una señal) en las imágenes convertidas a RGB con un 3% de la imagen YUV con la resolución más alta.

prueba_yuv_jpeg_todo

prueba_yuv_jpeg_all.png

prueba_yuv_plus_dng

Prueba que los tamaños y formatos informados para la captura de imágenes funcionan.

APIs probadas:

Aprobado: La prueba se completa y muestra las imágenes solicitadas.

prueba_yuv_plus_dng

prueba_yuv_plus_dng.jpg

prueba_yuv_plus_jpeg

Prueba la captura de un solo fotograma como salida YUV y JPEG. Usa una solicitud manual con un mapa de tonos lineal para que YUV y JPEG se vean iguales cuando el módulo image_processing_utils los convierta.

APIs probadas:

Aprobado: Las imágenes YUV y JPEG son similares y tienen una diferencia inferior al 1% de RMS (valor raíz cuadrado de una señal).

prueba_yuv_plus_jpg_jpg.jpg prueba_yuv_plus_jpeg_yuv.jpg
prueba_yuv_plus_jpg_jpg.jpg prueba_yuv_plus_jpeg_yuv.jpg

prueba_yuv_plus_raw

Prueba la captura de un solo fotograma como salidas RAW/RAW10/RAW12 y YUV, si son compatibles. Usa una solicitud manual con un mapa de tonos lineal, por lo que se espera que los datos sin procesar y YUV sean iguales. Compara los valores RGB centrales del 10% de las imágenes convertidas RGB. Registrosandroid.shading.mode.

APIs probadas:

Aprobado: Las imágenes YUV y sin formato son similares y tienen una diferencia inferior a 3.5% de RMS (valor raíz cuadrada de la media de una señal).

prueba_yuv_plus_raw_shading=1_raw.jpg prueba_yuv_plus_raw_shading=1_yuv.jpg
prueba_yuv_plus_raw_shading=1_raw.jpg prueba_yuv_plus_raw_shading=1_yuv.jpg

escena2_a

La escena 2_a tiene tres caras con un fondo gris y ropa neutra. Los rostros se eligen por tener una amplia gama de tonos de piel. El gráfico debe tener la orientación correcta para que la detección de rostro funcione de manera óptima.

escena2_a

escena2_a

prueba_auto_flash

Prueba que el flash automático se activa en una escena oscura. Verifica que el flash automático se active. Para ello, comprueba que el centro de la imagen del mosaico tenga un gran gradiente. Para activar el flash automático, la tablet y las luces de la plataforma de prueba deben estar apagadas. La prueba apaga la tablet, y las luces se pueden apagar automáticamente con el controlador Arduino. La escena debe ser completamente oscura para que la prueba funcione correctamente. Por lo tanto, la apertura de la tablet posterior debe estar completamente cubierta por la tablet de escena, y la abertura frontal debe estar cubierta por una apertura y el teléfono DUT para evitar que la luz suelta entre en la plataforma.

APIs probadas:

Aprobado: El centro de la imagen de mosaico tiene un gran gradiente, lo que significa que se activó la escritura en la memoria flash automática.

encuadre automático de prueba

Prueba el comportamiento de encuadre automático del dispositivo de la cámara. Realiza un zoom grande de modo que ninguno de los rostros de la escena sea visible, habilita el modo de encuadre automático configurando AUTOFRAMING en CaptureRequest como True y verifica si se pueden detectar todos los rostros de la escena original cuando converge el estado (es decir, cuando AUTOFRAMING_STATE en CaptureResult se establece en AUTOFRAMING_STATE_CONVERGED).

APIs probadas:

Aprobado: Se detectaron los tres rostros.

pantalla_de_prueba_p3

Prueba la captura de Display P3 en JPEG con la API de ColorSpaceProfiles. Comprueba que el JPEG capturado tenga un perfil ICC apropiado en el encabezado y que la imagen contenga colores fuera del gamut sRGB.

APIs probadas:

Aprobado: El JPEG contiene un perfil de ICC de Display P3 y colores fuera del gamut de sRGB.

prueba_efectos

Captura el marco para los efectos de cámara compatibles y comprueba si se generaron correctamente. La prueba solo verifica los efectos OFF y MONO, pero guarda las imágenes para todos los efectos compatibles.

APIs probadas:

Aprobado: Captura la imagen de escena con efectos OFF y una imagen monocromática con efectos establecidos en MONO.

prueba_efectos_MONO

efectos_prueba_MONO.jpg

combos_formato_prueba

Prueba diferentes combinaciones de formatos de salida.

APIs probadas:

Aprobado: Todas las combinaciones se capturaron correctamente.

calidad_jpeg_prueba

Prueba la calidad de compresión JPEG de la cámara. Revisa las características de JPEG en un paso de android.jpeg.quality y garantiza que las tablas de cuantización cambien correctamente.

APIs probadas:

Aprobado: La matriz de cuantización disminuye con el aumento de calidad. (la matriz representa el factor de división).

calidad_jpeg_prueba

Promedio de los promedios de la matriz DQT de luma/croma de la cámara posterior del Pixel 4 en comparación con la calidad JPEG

Error en el valor test_jpeg_quality

Ejemplo de prueba fallida

Ten en cuenta que para imágenes de muy baja calidad (jpeg.quality < 50), no hay aumento en la compresión en la matriz de cuantización.

prueba_núm_rostros

Prueba la detección de rostro.

APIs probadas:

Aprobado: Busca tres rostros.

prueba_num_faces_fd_mode_1

prueba_num_faces_fd_mode_1.jpg

prueba_preview_min_frame_rate

Prueba que la velocidad de fotogramas de la vista previa disminuya correctamente en una escena oscura. Para que esta prueba funcione correctamente, el control o el operador de prueba deben apagar las luces de la plataforma de prueba.

APIs probadas:

Aprobado: La velocidad de fotogramas de la vista previa es la mínima del rango de velocidad de fotogramas solicitado y la variación entre los fotogramas es menor que la tolerancia absoluta establecida en la prueba.

prueba_reprocesamiento_uv_swap

Comprueba que el reprocesamiento de YUV no cambie los planos U y V. Esto se detecta mediante el cálculo de la suma de las diferencias absolutas (SAD) entre la imagen reprocesada y una captura no procesada. Si el intercambio de los planos U y V de salida de la captura reprocesada da como resultado un aumento del SAD, se supone que la salida tiene los planos U y V correctos.

APIs probadas:

Aprobado: Los aviones U y V no están intercambiados.

prueba_reprocesamiento_uv_swap

prueba_reprocesamiento_uv_swap.png

escena2_b

prueba_núm_rostros

Prueba la detección de rostro con una mayor diversidad de tonos de piel en escenas faciales.

APIs probadas:

Aprobado: Encuentra 3 rostros.

prueba_num_faces_fd_mode_1

prueba_num_faces_fd_mode_1.jpg

prueba_yuv_jpeg_captura_misma

Captura dos imágenes con los formatos YUV y JPEG comunes más grandes con la misma relación de aspecto que el formato JPEG más grande, sin superar una resolución de 1920 x 1440. Establece jpeg.quality en 100 y captura una solicitud de superficie doble. Convierte ambas imágenes en arrays RGB y calcula la diferencia de la raíz cuadrada de la media (RMS) en 3D entre las dos imágenes.

APIs probadas:

Aprobado: Las imágenes YUV y JPEG son similares y tienen una diferencia inferior al 1% de RMS (valor raíz cuadrado de una señal).

escena2_c

prueba_núm_rostros

Prueba la detección de rostro con una mayor diversidad de tonos de piel en escenas faciales.

APIs probadas:

Aprobado: Encuentra 3 rostros.

prueba_num_faces_fd_mode_1

prueba_num_faces_fd_mode_1.jpg

prueba_jpeg_capture_perf_class

Prueba la latencia de captura JPEG para la clase de rendimiento S como se especifica en la sección 2.2.7.2 Cámara en el CDD.

Aprobado: DEBE tener una latencia de captura JPEG de Camera2 inferior a 1,000 ms para una resolución de 1080p según las mediciones de la PerformanceTest de la cámara del CTS en condiciones de iluminación del ITS (3,000 K) para ambas cámaras principales.

clase_de_rendimiento_de_la_cámara_de_prueba

Prueba la latencia de inicio de la cámara para la clase de rendimiento S como se especifica en la sección 2.2.7.2 Cámara del CDD.

Aprobado: DEBE tener una latencia de inicio de camera2 (abre la cámara al primer marco de vista previa) inferior a 600 ms, según la medición de la PerformanceTest de la cámara del CTS en condiciones de iluminación del ITS (3,000 K) para ambas cámaras principales.

escena2_d

prueba_núm_rostros

Prueba la detección de rostro con una mayor diversidad de tonos de piel en escenas faciales.

APIs probadas:

Aprobado: Encuentra 3 rostros.

escena2_e

prueba_imagen_continua

Se capturan 50 fotogramas de resolución VGA con la primera configuración de la solicitud de captura. android.control.afMode = 4 (CONTINUOUS_PICTURE).

APIs probadas:

Aprobado: El sistema 3A se establece al final de una captura de 50 fotogramas.

prueba_núm_rostros

Prueba la detección de rostro con una mayor diversidad de tonos de piel en escenas faciales.

APIs probadas:

Aprobado: Encuentra 3 rostros.

escena2_f

escena2_f tiene tres caras con un fondo blanco y ropa blanca. Los rostros tienen una amplia variedad de tonos de piel y un alto contraste con el fondo.

escena2_f.png

escena2_f

prueba_núm_rostros

Prueba la detección de rostro con una mayor diversidad de tonos de piel en escenas faciales.

APIs probadas:

Aprobado: Encuentra 3 rostros.

prueba_num_faces_fd_mode_1

prueba_num_faces_fd_mode_1.jpg

escena3

Scene3 usa el gráfico ISO12233 y la mayoría de las pruebas usan un método de extractor de gráficos para encontrar el gráfico en la escena. Por esta razón, la mayoría de las imágenes guardadas no tienen bordes como las imágenes de las escenas 1, 2 o 4, sino solo el gráfico. El gráfico debe estar en la orientación correcta para que el buscador de gráficos funcione de manera óptima.

prueba_3a_coherencia

Pruebas de coherencia 3A.

APIs probadas:

Aprobado: 3A converge para exposición, ganancia, awb (equilibrio de blancos automático) y fd (distancia de enfoque) tres veces dentro de la tolerancia.

probar_mejora_de_borde

Prueba que el parámetro android.edge.mode se aplique correctamente. Captura imágenes que no se vuelven a procesar para cada modo perimetral y muestra la nitidez de la imagen de salida y los metadatos del resultado de la captura. Procesa una solicitud de captura con un modo perimetral, sensibilidad, tiempo de exposición, distancia de enfoque y parámetro de superficie de salida determinados.

Aprobado: El modo HQ (2) más nítido que el modo OFF (0). El modo FAST (1) es más nítido que el modo OFF. El modo HQ es más nítido o igual al modo FAST.

APIs probadas:

Parámetros de la cámara afectados:

  • EDGE_MODE

prueba_edge_mejorar_edge=0

test_edge_mejorar_edge=0.jpg

prueba_edge_mejorar_edge=1

test_edge_enhancement_edge=1.jpg (modo rápido)

prueba_edge_mejorar_edge=2

test_edge_enhancement_edge=2.jpg (modo de alta calidad)

espejo_espejo_de_prueba

Comprueba si la imagen está orientada correctamente según la sección del CDD 7.5.2 Cámara frontal [C-1-5].

Las imágenes duplicadas, giradas o rotadas se pueden identificar por el componente de diamante cercano al centro.

Aprobado: La imagen no está girada, duplicada ni girada.

prueba_flip_duplica_escena_parche

prueba_flip_Mirror_scene_patch.jpg

prueba_horizontal_a_vertical

Prueba si la anulación de la orientación horizontal a la vertical funciona correctamente para los sensores orientados al modo horizontal.

APIs probadas:

Aprobado: La prueba puede ubicar un gráfico con la rotación esperada (0 grados cuando la anulación de horizontal a vertical está inhabilitada y 90 grados cuando está habilitada).

prueba_horizontal_a_vertical

prueba_horizontal_a_vertical.png

informe_de_movimiento_de_el_lente_de_prueba

Comprueba si la marca de movimiento de la lente se informa correctamente. Captura una ráfaga de 24 imágenes con los primeros 12 fotogramas a la distancia de enfoque óptima (según lo que encontró 3A) y los últimos 12 fotogramas a la distancia de enfoque mínima. Alrededor del fotograma 12, la lente se mueve, lo que causa que disminuya la nitidez. La nitidez se estabiliza con el tiempo a medida que el lente se mueve a la posición final. La marca de movimiento de la lente se debe confirmar en todos los fotogramas en los que la nitidez sea intermedia o se muestre en los primeros fotogramas con la lente estacionaria a una distancia focal óptima y en los últimos fotogramas en los que la lente está fija en la distancia focal mínima. El fotograma exacto que mueve la lente no es importante: lo que se verifica es que se indica la marca de movimiento cuando la lente se mueve.

APIs probadas:

Aprobado: La marca de movimiento del lente está True en el marco con cambio de nitidez.

Mecanismos de falla:

  • lens_moving: True (android.hardware.camera2.CaptureResult#LENS_STATE = 1) en test_log.DEBUG solo se confirma en fotogramas en los que la nitidez no cambia.
  • Los fotogramas con lens_moving: False (android.hardware.camera2.CaptureResult#LENS_STATE = 0) en test_log.DEBUG tienen una diferencia de nitidez en comparación con los primeros fotogramas con una distancia focal óptima o los últimos en la distancia de enfoque mínima.

prueba_reprocesamiento_del_arista_mejora

Prueba si los métodos de reprocesamiento compatibles para la mejora de bordes funcionan correctamente. Procesa una solicitud de captura con un modo perimetral de reprocesamiento determinado y compara los diferentes modos para capturar con los modos perimetrales de reprocesamiento inhabilitados.

APIs probadas:

Aprobado: La nitidez de los diferentes modos de borde es correcta. HQ (modo 2) es más nítido que OFF (modo 0), y la mejora entre los diferentes modos es similar.

prueba_reprocesar_límite_mejora_diagrama

prueba_reprocess_edge_mejora_plot.png

escena4

Scene4 consiste en un círculo negro sobre un fondo blanco dentro de un cuadrado.

escena4

escena4

prueba_aspect_ratio_and_crop

Prueba si las imágenes se distorsionan o se recortan de forma inesperada en la canalización de imágenes. Toma fotos de un círculo en todos los formatos. Verifica que el círculo no esté distorsionado, que no se mueva desde el centro de la imagen y que no cambie de tamaño de forma incorrecta con diferentes relaciones de aspecto o resoluciones.

APIs probadas:

Aprobado: Las imágenes no se estiran, su centro no difiere en más de un 3% y se conserva el FoV (campo visual) máximo posible.

Mecanismos de falla:

  • La cámara no está alineada con el círculo que se muestra en la tablet en el centro de la escena capturada.
  • La canalización de procesamiento distorsiona el círculo en la imagen capturada.
  • La imagen de menor resolución se recorta dos veces en la canalización de imágenes y crea diferentes FoV entre las imágenes de alta y baja resolución.
  • El círculo en la imagen capturada se recorta debido a una solicitud de captura de relación de aspecto extrema que reduce la altura o el ancho de la imagen.
  • El círculo en la imagen capturada se refleja en el centro y no parece estar completamente relleno.

prueba_alineación_de_múltiples_cámaras

Prueba los parámetros de calibración de la cámara relacionados con su posicionamiento para sistemas de varias cámaras. Con las subcámaras físicas de varias cámaras, toma una foto con una de las cámaras físicas. Busca el centro del círculo. Proyecta el centro del círculo en función de las coordenadas mundiales de cada cámara. Compara la diferencia entre los centros circulares de las cámaras en coordenadas mundiales. Reproyecta las coordenadas mundiales en coordenadas de píxeles y las compara con las originales como una verificación de validez. Compara los tamaños de los círculos y comprueba si las longitudes focales de las cámaras son diferentes.

APIs probadas:

Aprobado: Los centros de los círculos y los tamaños son los esperados en las imágenes proyectadas en comparación con las imágenes capturadas con los datos de calibración de la cámara y las longitudes focales.

Mecanismos de falla:

  • LENS_INTRINSIC_CALIBRATION, LENS_POSE_TRANSLATION o LENS_POSE_ROTATION son valores de diseño y no datos de calibración reales.
  • El sistema de la cámara no es apropiado para la configuración de prueba. Por ejemplo, probar un sistema de cámara con gran angular y uno ultra gran angular con el equipo de prueba de RFoV. Para obtener más información, consulta Preguntas frecuentes sobre ITS integrado en la cámara.

prueba_vista previa_aspect_ratio_y_crop

Al igual que la prueba test_aspect_ratio_and_crop para capturas estáticas, esta prueba verifica los formatos de vista previa compatibles para garantizar que los fotogramas de vista previa no se estiren ni se recorten de forma inapropiada. Verifica que la relación de aspecto del círculo no cambie, que las imágenes recortadas mantienen el círculo en el centro del marco y que el tamaño del círculo no cambia para un formato constante o con diferentes resoluciones (verificación del campo visual).

APIs probadas:

Aprobado: Las imágenes no se estiran, su centro no difiere en más del 3% y se conserva el FoV (campo visual) máximo posible.

prueba_preview_estabilización_fov

Verifica los tamaños de vista previa compatibles para asegurarse de que el FoV se recorte correctamente. La prueba captura dos videos, uno con estabilización de vista previa ON y otro con estabilización de vista previa OFF. Se selecciona un fotograma representativo de cada video y se analiza para garantizar que los cambios de FoV en los dos videos cumplan con las especificaciones.

APIs probadas:

Aprobado: La relación de aspecto del círculo se mantiene constante, la ubicación central del círculo se mantiene estable y el tamaño del círculo no cambia más de un 20%.

prueba_proporción_de_aspect_ratio_y_recorte

Graba videos de un círculo dentro de un cuadrado sobre todos los formatos de video. Extrae los fotogramas clave y verifica que la relación de aspecto del círculo no cambie, las imágenes recortadas mantienen el círculo en el centro y el tamaño del círculo no cambia para un formato constante o con una resolución diferente (verificación del campo visual).

APIs probadas:

Aprobado: Los fotogramas del video no se estiran, el centro no difiere en más de un 3% y se conserva el FoV (campo visual) máximo posible.

escena5

Scene5 requiere una escena gris con iluminación uniforme. Esto se logra mediante un difusor que se coloca sobre la lente de la cámara. Recomendamos el siguiente difusor: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168.

Para preparar la escena, coloca un difusor frente a la cámara y apunta la cámara a una fuente de iluminación de alrededor de 2,000 lux. Las imágenes capturadas para ambiente5 requieren una iluminación difusa sin ninguna característica evidente. La siguiente es una imagen de muestra:

escena5

captura de ambiente 5

prueba_sombra_de_lente_y_uniformidad_de_color

Prueba que la corrección de sombreado de la lente se aplique correctamente y que el color de una escena uniforme monocromático se distribuya de manera uniforme. Realiza esta prueba en un marco YUV con 3A automático. El sombreado de la lente se evalúa según el canal y. Mide el valor Y promedio para cada bloque de muestra especificado y determina si se aprobó o no a través de una comparación con el valor Y central. La prueba de uniformidad de colores se evalúa en el espacio r/g y b/g.

APIs probadas:

Aprobado: en el radio especificado de la imagen, la varianza de los valores r/g y b/g debe ser inferior al 20% para pasar la prueba.

escena6

Scene6 es una cuadrícula de pequeños círculos con un cuadrado en una esquina para indicar la orientación. Los círculos pequeños son necesarios para probar la función de zoom en un rango grande.

escena6

escena6

prueba_en_sensor_zoom

Prueba el comportamiento de la función de zoom en el sensor de la cámara, que produce imágenes RAW recortadas.

Con el caso de uso de transmisión establecido en CROPPED_RAW, la prueba toma dos capturas en el rango de zoom: una imagen RAW de campo visual completo (FoV) y una imagen RAW recortada. La prueba convierte las imágenes en arrays RGB, reduce la escala de la imagen RAW de tamaño completo recortada al tamaño que informa SCALER_RAW_CROP_REGION y calcula la diferencia de la raíz cuadrada de la media (RMS) en 3D entre las dos imágenes.

APIs probadas:

Aprobado: La diferencia de la raíz cuadrada de la media (RMS) en 3D entre la imagen RAW recortada y la imagen RAW completa de FoV es inferior al 1%.

prueba_zoom

Prueba el comportamiento del zoom de la cámara. Toma capturas del rango de zoom y comprueba si los círculos se agrandan a medida que la cámara se acerca.

APIs probadas:

Aprobado: El tamaño relativo del círculo capturado es preciso con respecto a la relación de zoom solicitada para garantizar que la cámara haga el zoom correcto.

prueba_zoom

test_zoom para encontrar el contorno del círculo más cercano al centro.

prueba_baja_latencia_zoom

Prueba el comportamiento del zoom de baja latencia de la cámara. Toma capturas del rango de zoom con android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) y comprueba si los círculos de las imágenes de salida coinciden con las proporciones de zoom en los metadatos de captura.

APIs probadas:

Aprobado: El tamaño relativo del círculo capturado es preciso en función de los metadatos de resultado de la proporción de zoom.

coincidencia de video de vista previa de prueba

Prueba que, durante la grabación y el zoom, la vista previa del video y la salida de video se muestran y graban la misma salida. Calcula el tamaño del círculo más cercano al centro con diferentes relaciones de zoom y comprueba si el tamaño del círculo aumenta a medida que aumenta la relación de zoom.

APIs probadas:

Aprobado: El tamaño relativo del círculo capturado es preciso en comparación con la relación de zoom solicitada en el video y la vista previa.

VGA_640x480_key_frame.png

VGA_640x480_key_frame.png (antes de zoom)

preview_640x480_key_frame.png

preview_640x480_key_frame.png (antes de zoom)

VGA_640x480_key_frame_zoomed.png

VGA_640x480_key_frame.png (después de zoom)

preview_640x480_key_frame_zoomed.png

preview_640x480_key_frame.png (después del zoom)

extensiones_de_escena

Las pruebas de scene_extensions son para extensiones de la cámara y deben usar el ITS integrado en la cámara, ya que requieren un control preciso del entorno de prueba.

escena_hdr

La escena scene_hdr consta de un retrato a la izquierda y un código QR de contraste bajo a la derecha.

escena_hdr

escena_hdr

prueba_extensión_hdr

Prueba la extensión HDR. Toma capturas con la extensión habilitada y sin ella, y verifica si esta permite detectar mejor el código QR.

APIs probadas:

Aprobado: La extensión HDR reduce la cantidad de cambios de contraste necesarios para detectar el código QR o reduce el gradiente a lo largo del código QR.

escena_noche

La escena scene_night consta de un círculo blanco con cuatro círculos más pequeños en su interior, todos sobre un fondo negro. El círculo más pequeño en la esquina superior derecha es más oscuro que los otros para indicar orientación.

escena_noche

escena_noche

extensión_noche_prueba

Prueba la extensión nocturna. Toma capturas con la extensión habilitada y sin ella y verifica lo siguiente:

  • La captura con la extensión Noche habilitada tarda más tiempo.
  • La captura con la extensión Noche habilitada es más brillante o tiene artefactos de escena con una apariencia mejorada.

APIs probadas:

Aprobado: En comparación con una captura sin la extensión Noche habilitada, una captura con la extensión Noche habilitada tarda al menos 0.5 segundos más. La captura debe ser al menos un 10% más brillante, o los puntos grises en la escena deben ser 20 valores de píxeles más bajos que el centro del círculo circundante.

fusión de sensores

Las pruebas de fusión de sensores requieren un movimiento específico del teléfono frente a un patrón de tablero de ajedrez. Para obtener resultados óptimos, asegúrate de que el gráfico de prueba esté instalado de forma plana. Los gráficos que no son planos afectan los cálculos de rotación de muchas de las pruebas. Las pruebas de sensor_fusion se pueden automatizar con la Caja de fusión de sensores.

tablero de ajedrez

Imagen de una tabla de ajedrez

prueba_sincronización_de_marcos_múltiples_cámaras

Las pruebas de que las marcas de tiempo de fotogramas capturadas por la cámara lógica se realizan dentro de los 10 ms mediante el cálculo de ángulos de cuadrados dentro del tablero de ajedrez para determinar la marca de tiempo.

APIs probadas:

Aprobado: El ángulo entre las imágenes de cada cámara no cambia de forma perceptible con la rotación del teléfono.

estabilización_de_vista previa_de_prueba

Prueba que estabiliza el video de vista previa rota menos que el giroscopio.

APIs probadas:

Aprobado: La rotación máxima del ángulo sobre los marcos es inferior al 70% de la rotación del giroscopio.

Estos son videos de muestra con y sin estabilización.

  • Video de muestra con estabilización

  • Video de muestra sin estabilización

prueba_sensor_fusion

Prueba la diferencia de marca de tiempo entre la cámara y el giroscopio para aplicaciones de RA y RV. El teléfono se rota 90 grados 10 veces frente al patrón de tablero de ajedrez. El movimiento es de aproximadamente 2 s de ida y vuelta. Esta prueba se omite si no se incluye un giroscopio o si el parámetro REALTIME de origen de la marca de tiempo no está habilitado.

La prueba test_sensor_fusion genera varios diagramas. Los dos diagramas más importantes para la depuración son los siguientes:

  • test_sensor_fusion_gyro_events: Muestra los eventos del giroscopio del teléfono durante la prueba. El movimiento en la dirección x e y implica que el teléfono no está montado de manera segura en la placa de montaje, lo que reduce la probabilidad de que se apruebe la prueba. El número de ciclos en el diagrama depende de la velocidad de escritura para guardar fotogramas.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations: Muestra la alineación del giroscopio y los eventos de la cámara. Este gráfico debe mostrar un movimiento coincidente entre la cámara y el giroscopio en +/-1 ms.

    prueba_sensor_fusion_plot_rotations.png

    prueba_sensor_fusion_plot_rotations

APIs probadas:

Aprobado: El desplazamiento de las marcas de tiempo de la cámara y el giroscopio es inferior a 1 ms según el artículo del CDD 7.3.9, sensores de alta fidelidad [C-2-14].

Mecanismos de falla:

  • Error de desplazamiento: El desplazamiento de la cámara y el giroscopio no está calibrado correctamente en +/-1 ms.
  • Caídas de fotogramas: La canalización no es lo suficientemente rápida para capturar 200 fotogramas de forma consecutiva.
  • Errores de socket: adb no puede conectarse de manera confiable al DUT el tiempo suficiente para ejecutar la prueba.
  • El gráfico no está instalado de forma plana. El diagrama test_sensor_fusion_plot_rotations tiene fotogramas en los que el giroscopio y la rotación de la cámara varían considerablemente a medida que la cámara rota por las partes del gráfico que no son planas.
  • La cámara no está montada en una superficie plana. El diagrama test_sensor_fusion_gyro_events muestra movimiento en los planos X e Y. Esta falla es más común en las cámaras frontales, ya que la cámara posterior suele tener una protuberancia elevada en el resto del cuerpo del teléfono, lo que genera una inclinación cuando se monta la parte posterior del teléfono en la placa de montaje.

prueba_estabilización_video

Prueba que el video estabilizado rota menos que el giroscopio.

APIs probadas:

Aprobado: La rotación máxima del ángulo sobre los marcos es inferior al 60% de la rotación del giroscopio.

Estos son videos de muestra con y sin estabilización.

  • Video de muestra con estabilización

  • Video de muestra sin estabilización

Instantánea_LED_de_prueba

Prueba que las instantáneas de LED no saturen ni tiñen la imagen.

En esta prueba, se agrega un controlador de iluminación a la caja de fusión de sensores para controlar las luces. Con las luces configuradas en OFF, la prueba toma una captura con el modo AUTO_FLASH establecido en ON. Durante esta captura, la prueba ejecuta una secuencia de captura previa con el activador aePrecapture establecido en START y establece el intent de captura en Preview para tomar la captura con flash.

Debido a que la captura tiene un hotspot distintivo debido al flash, la prueba calcula la media de la imagen con flash de toda la captura y verifica si el valor está dentro del rango (68, 102). Para verificar si la imagen tiene un balance de blancos razonable, la prueba calcula las proporciones R/G y B/G, y verifica si estas se encuentran dentro de 0.95 y 1.05.

APIs probadas:

Aprobado: Las proporciones R/G y B/G están dentro de 0.95 y 1.05. La media de la imagen Flash se encuentra dentro del rango (68, 102).