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
Jitter de prueba
Mide el jitter en las marcas de tiempo de la cámara.
APIs probadas:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Aprobado: Hay al menos un delta de 30 ms entre los fotogramas.
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:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
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:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
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:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
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:
- Captura imágenes para todos los patrones de prueba compatibles.
- Realiza una verificación de corrección simple para un patrón de prueba de color sólido y barras de color.
APIs probadas:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Aprobado: Los patrones de prueba admitidos se generan correctamente.
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:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Aprobado: El YUV y la RAW son similares entre sí.
prueba_mapa_tono_curva_raw_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:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
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:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
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: 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:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
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:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
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:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
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:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
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_auto_vs_manual_auto.jpg
prueba_auto_vs_manual_wb.jpg
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:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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.jpg | prueba_black_white_white.jpg |
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:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
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
prueba_burst_sameness_manual_mean.jpg
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:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
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.png
prueba_crop_region_raw
Prueba que las transmisiones RAW no se pueden recortar.
APIs probadas:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Aprobado: Las imágenes YUV se cortan en el centro, pero no las imágenes RAW.
prueba_crop_región_raw_comp_raw_crop.jpg
prueba_crop_región_raw_comp_raw_full.jpg
prueba_crop_región_raw_comp_yuv_crop.jpg
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:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
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:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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.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:
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Aprobado: Las imágenes muestran una exposición creciente sin sobreexposición en cinco pasos.
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
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.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:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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_trace_medios.png
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 |
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=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=09.jpg | prueba_latching_i=10.jpg | prueba_latching_i=11.jpg | |
prueba_latching_i=12.jpg |
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:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Aprobado: Los valores R, G y B deben aumentar de manera lineal con mayor sensibilidad.
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:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Aprobado: Las capturas tienen un aspecto coherente.
prueba_bloqueada_ráfaga_marco0.jpg
prueba_bloqueada_ráfaga_marco1.jpg
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:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Aprobado: Los valores R y B se potencian según la transformación.
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.jpg
test_param_color_correctness_req=1.jpg (potencia R)
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_exposición_marco_de_tiempo0.jpg
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.jpg
prueba_param_flash_mode_1_tile.jpg
prueba_param_flash_mode_2.jpg
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.png
0: DESACTIVADO, 1: RÁPIDO, 2: HQ, 3: MÍN , 4: ZSL
test_param_noise_reduction_high_gain_nr=0.jpg
test_param_noise_reduction_high_gain_nr=1.jpg
test_param_noise_reduction_high_gain_nr=2.jpg
test_param_noise_reduction_high_gain_nr=3.jpg
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.jpg
test_param_sensitivity_iso=1819.jpg
test_param_sensitivity_iso=3583.jpg
test_param_sensitivity_iso=5347.jpg
test_param_sensitivity_iso=7111.jpg
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:
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
Aprobado: Se cambian los modos de sombreado y los mapas de sombreado de lente se modifican según lo previsto.
test_param_shading_mode_ls_maps_mode_0_loop_0.png
prueba_param_shading_mode_ls_maps_mode_1_loop_0.png
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:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
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 |
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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.
test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
prueba_post_raw_sensitivity_boost_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
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:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
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.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:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
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.png
(100 es 1 ms, 101 es 10 ms, 10−1 es 0.1 ms)
prueba_raw_exposure_s=132.png
prueba_raw_exposure_s=209.png
prueba_raw_exposure_s=286.png
prueba_raw_exposure_s=363.png
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:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Aprobado: La variación aumenta con cada golpe.
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
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_tonemap_secuencia_i=0.jpg
prueba_tono_secuencia_i=1.jpg
prueba_tono_secuencia_i=2.jpg
prueba_tono_secuencia_i=3.jpg
prueba_tono_secuencia_i=4.jpg
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:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
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_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.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:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
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_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:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.hardware.graphics.ImageFormat#RAW10
android.hardware.graphics.ImageFormat#RAW12
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 |
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
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:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
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:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Aprobado: Captura la imagen de escena con efectos OFF
y una imagen monocromática con efectos establecidos en MONO
.
efectos_prueba_MONO.jpg
combos_formato_prueba
Prueba diferentes combinaciones de formatos de salida.
APIs probadas:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
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).
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
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:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Aprobado: Busca tres rostros.
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
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:
android.hardware.camera2.CameraDevice#createCaptureSession
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Aprobado: Los aviones U y V no están intercambiados.
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:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Aprobado: Encuentra 3 rostros.
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:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
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:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Aprobado: Encuentra 3 rostros.
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:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
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:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
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:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
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
prueba_núm_rostros
Prueba la detección de rostro con una mayor diversidad de tonos de piel en escenas faciales.
APIs probadas:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Aprobado: Encuentra 3 rostros.
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:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
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
test_edge_mejorar_edge=0.jpg
test_edge_enhancement_edge=1.jpg (modo rápido)
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_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:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
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.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:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#LENS_STATE
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
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) entest_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) entest_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:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
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_reprocess_edge_mejora_plot.png
escena4
Scene4 consiste en un círculo negro sobre un fondo blanco dentro de un cuadrado.
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:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
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:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
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
oLENS_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:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
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:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
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:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
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:
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:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
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
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
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.
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
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 (antes de zoom)
preview_640x480_key_frame.png (antes de zoom)
VGA_640x480_key_frame.png (después de zoom)
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
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:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
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
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:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
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.
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:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
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:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
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
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
APIs probadas:
android.hardware.camera2.CameraCharacteristics#LENS_FACING
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
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:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
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:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
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).