Примечания к выпуску Android 13 Camera Image Test Suite

Выпуск Android 13 включает ряд изменений в Camera ITS . Помимо дополнительных изменений, таких как обновленные версии Python и пакетов, а также тестовые обновления оборудования, Android 13 поддерживает видеотестирование.

На этой странице кратко изложены изменения Camera ITS для Android 13. Изменения делятся на шесть широких категорий:

Python и версии пакетов

Android 13 поддерживает следующие версии Python в дополнение к версиям и библиотекам Python, поддерживаемым в Android 12:

Дополнения к конфигурационному файлу

В связи с добавлением управления освещением для теста test_auto_flash.py файлу config.yml нужны два дополнительных параметра для контроллера и канала освещения. Ниже приведен пример файла config.yml для запуска на планшете.

TestBeds:
  - Name: TEST_BED_TABLET_SCENES
    # Test configuration for scenes[0:4, 6, _change]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"  # "True" or "False"; quotes needed
      lighting_cntl: <controller-type>  # "arduino" or "None"; quotes needed
      lighting_ch: <controller-channel>
      camera: 0
      scene: <scene-name>  # if <scene-name> runs all scenes

Тестовые изменения

сцена1_1/test_black_white.py

Тест test_black_white имеет проверку насыщения канала, совместимую с предыдущими версиями Android, а это означает, что требуемый первый уровень API для проверки насыщения канала — Android 10.

scene1_2/test_yuv_plus_raw.py

Тест test_yuv_plus_raw обрабатывает датчики не с соотношением сторон 16:9 или 4:3, чтобы обеспечить лучшую поддержку RAW. Если тест не может найти общий формат между форматом RAW датчика и форматами захвата YUV, тест сравнивает захват RAW с самым большим захватом YUV, даже если соотношения сторон различаются.

scene2_a/test_faces.py

test_faces в test_num_faces .

scene2_a/test_num_faces.py

Тест test_num_faces обрабатывает кадрирование сенсора и правильно размещает прямоугольники лиц на кадрированных снимках камеры UW.

сцена3/test_lens_position.py

Тест test_lens_position устарел в Android 13.

сцена6/test_zoom.py

Тест test_zoom , чтобы упростить тестирование систем с тремя и четырьмя камерами. Если камера правильно тестирует 10-кратный коэффициент масштабирования, тест завершается корректно. Это позволяет проводить масштабирование на одном расстоянии от графика.

scene_change/test_scene_change.py

Тест test_scene_change устарел в Android 13.

Новые тесты на планшетах

Android 13 включает в себя два новых теста для планшетов. Оба теста обязательны для устройств, запускаемых с Android 13, но пропускаются для устройств, обновляющихся до Android 13.

Сцена Название теста Первый уровень API Описание
2_а test_auto_flash 33 Подтверждает срабатывание автоматической вспышки при съемке темных сцен.
2_б test_yuv_jpg_capture_sameness 33 Подтверждает, что снимки YUV и JPEG побитно идентичны.

scene2_a/test_auto_flash.py

Android 13 добавляет тест test_auto_flash .

Параметры

  • flash : Пропускает тест, если вспышка недоступна.

Метод

Тест настраивает запрос захвата для автоматической вспышки и представляет сцену, требующую события вспышки. Освещение в испытательном стенде и планшете выключено, чтобы представить темную сцену для алгоритма автоэкспозиции. Тест настраивает последовательность NUM_FRAMES с включенной автоматической вспышкой. Если параметр AE_STATE возвращает «FLASH_REQUIRED», тест проверяет, что при захвате срабатывает вспышка.

Освещением можно управлять вручную по запросу или автоматически с помощью контроллера Arduino с добавленным управлением освещением для автоматизированного тестирования. Новая служебная папка lighting_control_utils централизует код для управления освещением в тестах.

scene2_a/test_yuv_jpeg_capture_sameness.py

В Android 13 добавлен тест test_yuv_jpeg_capture_sameness .

Параметры

  • streamUseCase : определяет, поддерживает ли камера сценарий использования потока.
  • android.jpeg.quality : устанавливает качество JPEG на 100.

Метод

Этот тест захватывает два изображения с использованием самых больших распространенных форматов YUV и JPEG с тем же соотношением сторон, что и у самого большого формата JPEG, но не превышающим разрешение 1920x1440. Тест устанавливает для jpeg.quality значение 100 и фиксирует запрос двойной поверхности. Затем он преобразует оба изображения в массивы RGB и вычисляет трехмерную среднеквадратичную разницу (RMS) между двумя изображениями. Допуск разницы установлен на 1%.

Видео тестирование

Camera ITS добавляет поддержку тестирования видео в Android 13.

Android 13 добавляет следующие тесты:

Сцена Название теста Первый уровень API Описание
4 test_preview_стабилизация_fov 33 Подтверждает, что предварительный просмотр видео не обрезается слишком сильно при включенной стабилизации.
4 test_video_aspect_ratio_and_crop 33 Подтверждает видеоформаты FoV, соотношение сторон и кадрирование.
Sensor_fusion test_preview_stabilition 33 Подтверждает, что стабилизация предварительного просмотра работает.
Sensor_fusion test_video_stabilition 33 Подтверждает, что стабилизация видео работает.

сцена4/test_preview_стабилизация_fov.py

В Android 13 добавлен тест test_preview_stabilization_fov . Этот тест проверяет поддерживаемые размеры предварительного просмотра, чтобы убедиться, что поле зрения не обрезано ненадлежащим образом.

Метод

Тест снимает два видео, одно с включенной стабилизацией предварительного просмотра и одно с выключенной стабилизацией предварительного просмотра. Репрезентативный кадр выбирается из каждого видео и анализируется, чтобы убедиться, что изменения поля зрения в двух видео находятся в пределах спецификаций.

В частности, тест проверяет следующие параметры со стабилизацией предварительного просмотра и без нее:

  • Округлость окружности остается постоянной.
  • Центр круга остается стабильным.
  • Размер круга изменяется не более чем на 20%, то есть поле зрения изменяется не более чем на 20%.

сцена4/test_video_aspect_ratio_and_crop.py

В Android 13 добавлен тест test_video_aspect_ratio_and_crop . Подобно test_aspect_ratio_and_crop для неподвижных изображений, этот тест проверяет поддерживаемые форматы видео, чтобы убедиться, что видеокадры не растягиваются и не обрезаются ненадлежащим образом. Все качество видео, о котором сообщают пользователи, тестируются. Кроме того, если камера поддерживает видео HLG10 , тестируется 10-битное видео.

Android 13 добавляет метод get_available_video_qualities в its_session_utils . Чтобы использовать общий код с существующими тестами, Android 13 также включает две новые служебные функции, image_fov_utils и video_processing_utils .

Метод

Тест захватывает эталонное изображение в формате RAW или в формате JPEG с самым высоким разрешением, если RAW не поддерживается. По эталонному изображению определяются размер и положение круга. Затем снимаются короткие видеоролики со всеми поддерживаемыми качествами видео. Окончательный эталонный кадр извлекается из каждого качества видео. Из опорного кадра для каждого качества видео рассчитываются поле зрения (FoV), центрирование (обрезка) и соотношение сторон.

Для расчета поля зрения тест сравнивает размер круга видеокадра с рассчитанным размером круга из эталонного изображения и размеров видеоформата. Для проверки обрезки тест сравнивает центрирование видеокадра с центрированием эталонного изображения. Для проверки соотношения сторон, используя сцену, представляющую собой большой черный круг на белом фоне, тест определяет соотношение сторон круга и проверяет, не искажен ли кадр.

Sensor_fusion/test_preview_стабилизация.py

В Android 13 добавлен тест test_preview_stabilization , который проверяет все поддерживаемые качества предварительного просмотра до 1920x1080. В тесте используется испытательный стенд для слияния датчиков , и для него требуется новый контроллер слияния датчиков версии 2 или обновление прошивки более ранних версий контроллера Arduino. Дополнительные сведения о новом контроллере см. в разделе Обновления и дополнения оборудования .

Метод

Телефон медленно перемещается под углом примерно 15 градусов с включенной стабилизацией предварительного просмотра. Затем вращение изображений сравнивается с вращением гироскопа.

Sensor_fusion/test_video_стабилизация.py

В Android 13 добавлен тест test_video_stabilization , который проверяет поддерживаемое качество видео до 1920x1080. Качество видео с низким разрешением QCIF исключено. В тесте используется испытательный стенд для слияния датчиков , и для него требуется новый контроллер слияния датчиков версии 2 или обновление прошивки более ранних версий контроллера Arduino. Дополнительные сведения о новом контроллере см. в разделе Обновления и дополнения оборудования .

Метод

Тестовая установка медленно перемещает телефон под углом примерно 15 градусов с включенной стабилизацией предварительного просмотра. Затем вращение изображений сравнивается с вращением гироскопа.

Аппаратные обновления и дополнения

Android 13 включает в себя обновление до контроллера слияния датчиков версии 2 на базе Arduino. Это обновление включает в себя как аппаратные, так и микропрограммные изменения. Обновление позволяет контроллеру устанавливать скорость вращения и управление молнией. Модернизация также включает в себя новый щит (показан на рис. 1), обеспечивающий три канала вращения и три канала управления освещением.

Плата Arduino rev2.0

Рисунок 1. Arduino Shield rev2.0 с управлением вращением и освещением

Кроме того, для версии 13 необходимо обновить прошивку существующих контроллеров, чтобы включить управление скоростью вращения. Эту прошивку можно скачать с:

Дополнительные сведения о новом контроллере см. в статье Контроллер слияния сенсоров Android 13 .