Камера ITS-in-a-Box

Android Camera Image Test Suite (ITS) является частью Android Compatibility Test Suite (CTS) Verifier и включает тесты, которые проверяют содержимое изображения. CTS Verifier поддерживает автоматизацию тестирования ITS с помощью Camera ITS-in-a-box; поддержка ручных тестов охватывает все форм-факторы Android-устройств.

ITS-in-a-box включает в себя следующие преимущества:

  • Автоматизация. Вмешательство человека во время теста не требуется.
  • Простое устранение неполадок. Постоянство тестовой среды приводит к меньшему количеству ошибок настройки и повышает воспроизводимость.
  • Эффективность. Возможность повторной попытки для отдельной камеры/сцены повышает эффективность выполнения теста.

Начиная

ITS-in-a-box состоит из пластиковой коробки, вырезанной лазером из чертежей системы автоматизированного проектирования (CAD), планшета с диаграммами и тестируемого устройства (DUT). Вы можете использовать ITS-in-a-box с широким полем зрения (WFoV), который позволяет тестировать как камеры WFoV (FoV > 90 градусов), так и камеры RFoV (FoV < 90 градусов), или стандартное поле зрения. -view (RFoV) ITS-in-a-box.

Чтобы начать работу с камерой ITS-in-a-box:

  1. Купите или создайте WFoV или RFoV ITS-in-a-box.
  2. Настройте планшет с программным обеспечением Camera ITS.
  3. Запустите тесты .
  4. Получите результаты от DUT.

Настройка планшета

В этом разделе приведены пошаговые инструкции по настройке планшета для использования с тестами Camera ITS, расположенными в каталоге CameraITS . В этих инструкциях в качестве примера используется планшет Pixel C. Сведения о требованиях к планшетам и рекомендации см. в разделе Требования к планшетам .

Примечание. Скрипты Camera ITS Python автоматически устанавливают для вас следующие параметры планшета:
Настройки > Дисплей > Спящий режим > Через 30 минут бездействия
Адаптивная яркость > ВЫКЛ.

  1. Зарядите планшет и включите его. Если будет предложено настроить учетную запись, пропустите ее (Camera ITS не требует какой-либо учетной записи, сопряженной с планшетом).
  2. Обновите планшет до Android 7.0 или выше. Android 6.x и более ранние версии не поддерживают Camera ITS.
  3. Включить режим разработчика .
  4. Вернитесь в « Настройки » и выберите «Параметры разработчика».
    Включить параметры
    • На
    • бодрствовать
    • Отладка по USB (это позволяет хосту запускать планшет в режиме отладки. При первом подключении планшета к хосту на планшете появляется запрос Разрешить отладку по USB? Если планшет не отображает запрос на отладку, отключите, а затем снова подключите планшет.)
    Отключить параметры
    • Автоматические обновления системы
    • Проверка приложений через USB
  5. Определите идентификаторы тестируемого устройства и диаграммы, запустив $ adb devices для получения списка доступных устройств. Чтобы определить device_id и chart_id , подключайте и отключайте устройства и наблюдайте, какие устройства подключаются и отключаются.
  6. Выполните три тестовых прогона, чтобы отключить подсказки и подсказки пользователя, которые могут скрывать диаграммы на экране планшета.
    1. Положите планшет на стол лицевой стороной вверх (не прикрепляйте планшет к задней стенке коробки).
    2. Выполните следующую команду:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      Сцены 2 и 3 требуют, чтобы планшет отображал изображение, поэтому планшет предлагает разрешить Диску доступ к фотографиям, мультимедиа и файлам на вашем устройстве? . Очистите это приглашение (и предотвратите появление запросов в будущем), нажав Разрешить.
    3. Запустите команду еще раз. Планшет предложит Сохранить копию этого файла? и предлагает Google Диск. Очистите это приглашение (и предотвратите будущие запросы), нажав значок Диска, а затем Отменить для загрузки на диск.
    4. Наконец, запустите tools/run_all_tests.py и убедитесь, что сцены меняются автоматически, когда сценарий циклически проходит через разные сцены. Хотя большинство тестов завершаются неудачно (поскольку камера не направлена ​​на график), вы можете убедиться, что планшет правильно циклически перемещается по сценам без отображения каких-либо подсказок или других всплывающих окон на экране.

Запуск тестов

Перед запуском ITS-in-a-box убедитесь, что ваша тестовая установка включает следующее аппаратное и программное обеспечение:

  • Один (1) ITS-in-a-box
  • Один (1) 10-дюймовый планшет с высоким разрешением для отображения сцен, серийный номер: 5811000011
  • Одно (1) тестируемое устройство с установленным приложением CTS Verifier 7.0_8+. Пример тестируемого устройства:
    • Один (1) пиксель NOF26W для тестирования задней камеры (0), серийный номер: FA6BM0305016. Чтобы установить приложение CTS Verifier, распакуйте android-cts-verifier.zip запустите
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      
      .

Запуск сцен на планшете

Чтобы запустить сцены с 0 по 4, 6 и scene_change на задней камере:

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

Пример:

Камера 0 Серийный номер: FA6BM0305016
Рис. 1. Серийный номер камеры 0: FA6BM0305016

Повтор сцен

Вы можете повторить сцены для одной камеры:

  • Чтобы повторить сцены на одной камере:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

Бегущая сцена 5

Сцена 5 требует специальной настройки с определенным освещением (подробности см. в CameraITS.pdf в CTS Verifier, который можно загрузить в разделе «Загрузки комплекта тестов совместимости» ). Вы должны запустить сцену 5 отдельно (вне коробки).

камера сцена 5
Рисунок 2. Сцена камеры 5

Чтобы запустить сцену 5 для передней и задней камер на одном устройстве:

python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5

Получение результатов

Вы можете просматривать результаты во время тестирования и сохранять готовые результаты в виде отчета.

  • Посмотреть Результаты. Чтобы сохранить результаты Camera ITS в виде отчета:
    1. Нажмите Pass и сохраните отчет.
      камера ITS отчет
      Рис. 3. Отчет ITS камеры
    2. Получение отчетов с устройства:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. Разархивируйте файл отчета и просмотрите test_result.xml .
      камера ИТС отчеты
      Рисунок 4. Отчеты камеры ITS

Требования к планшету

Планшеты должны иметь размер дисплея около 10 дюймов и разрешение экрана более 1920 x 1200 пикселей. Значение brightness должно быть установлено в config.yml в соответствии с моделью планшета. В таблице ниже перечислены планшеты, рекомендуемые для тестирования ITS, а также версии Android для тестируемого устройства, с которым работают планшеты.

Устройство Размер дисплея
(дюймы)
Размер дисплея
(пиксели)
Размеры планшета
(дюймы)
Отображать
яркость
Поддерживаемое тестируемое устройство
Операционные системы
Сяоми Пэд 5 11 2560 х 1600 10,03 х 6,55 х 0,27 192 Андроид 12+
Вкладка Lenovo M10 Plus 10.3 1920 х 1200 9,61 х ​​6,03 х 0,32 192 Андроид 12+
Вкладка Samsung Galaxy Tab A7 10.4 2000 х 1200 9,75 х 6,2 х 0,28 192 Андроид 12+
Чуви Хай9 Эйр 10.1 10.1 2560 х 1600 9,52 х 6,77 х 0,31 192 Андроид 7+
Асус Зенпад 3 9,7 2048 х 1536 9,47 х 6,44 х 0,28 192 Андроид 7+
Huawei MediaPad m5 10,8 2560 х 1600 10,18 х 6,76 х 0,29 192 Андроид 7+
Пиксель С 10.2 2560 х 1800 9,53 х 7,05 х 0,28 96 Андроид 7+
Сони Икспериа З4 10.1 2560 х 1600 10 х 6,57 х 0,24 192 Андроид 7+

Часто задаваемые вопросы (FAQ)

Q1: Как определить, какие испытательные стенды мне нужны для моего устройства?

RFoV ITS-in-a-box версии 1 тестирует камеры RFoV для тестов сцен 0 и 4 в CameraITS/tests . RFoV определяется как 60° < FoV < 90° . Для камер с большим полем зрения на изображениях могут появляться огни или диаграммы могут покрывать слишком малую область поля зрения, что влияет на результаты тестирования.

WFoV ITS-in-a-box версии 2 тестирует камеры WFoV для сцен от 0 до 4 в CameraITS/tests . WFoV определяется как FoV >= 90° . Он функционально идентичен ревизии 1, но крупнее. Испытательный стенд версии 2 может тестировать камеры RFoV и WFoV в Android 9 и выше.

Блок слияния датчиков проверяет смещение синхронизации камеры/гироскопа и синхронизацию кадров многокамерных систем с помощью тестов в scenes=sensor_fusion . Смещение синхронизации камеры/гироскопа менее 1 мс требуется для флага функции REALTIME и приложений VR/AR.

Устройства с несколькими камерами можно тестировать с помощью одной установки для статических тестов ITS и установки для слияния датчиков, если камера имеет флаг функции REALTIME .

Набор примеров конфигураций представлен в таблице ниже.

Пример Поле зрения камеры В РЕАЛЬНОМ ВРЕМЕНИ? Рекомендуемые установки Заметки
1 75° Нет Версия 1 Андроид 7.0 или выше
2 75° Да Rev 1 + слияние датчиков Андроид 9 или выше
3 75° + 95° Да Rev 2 + слияние датчиков Андроид 9 или выше

Q2: Как указать, какая испытательная установка используется?

Чтобы выбрать правильную испытательную установку, убедитесь, что параметр расстояния на диаграмме указан правильно. У испытательной установки rev1 (RFoV) расстояние до диаграммы составляет 31 см, а у установки rev2 (WFoV) — 22 см. По умолчанию расстояние диаграммы установлено на 31 см.

Android 10 — Android 11

Чтобы определить правильную тестовую установку в Android 10–11, добавьте флаг dist в командную строку. Значение по умолчанию для dist равно 31 . Выполните следующую команду, чтобы изменить параметр chart_distance .
python tools/run_all_tests.py ... chart=# dist=22

Андроид 12

Чтобы определить правильную тестовую установку в Android 12, вы можете отредактировать файл config.yml, изменив параметр chart_distance .
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

Q3: Как мне управлять яркостью планшета?

По умолчанию яркость планшета установлена ​​на 96.

Чтобы изменить яркость на планшетах под управлением Android 7.0–Android 9, выполните:

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

Чтобы изменить яркость на планшетах под управлением Android 10–11, значение можно изменить в командной строке, добавив флаг brightness :

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

Чтобы изменить яркость на планшетах под управлением Android 12, запустите:

edit config.yml
brightness: 96 → brightness: 192

Q4: Как отладить один тест?

Тесты можно запускать по отдельности в целях отладки, но результаты не передаются в CtsVerifier.apk , пока не будет запущена вся сцена.

Чтобы запустить отдельную сцену в Android 11 и ниже:

  1. Загрузите сцену, добавив флаг scenes в tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. Нажмите Control+C , чтобы остановить тесты после того, как сцена будет зарегистрирована как загруженная на stdout .

    Если правильная сцена уже есть на экране, активируйте экран:

    python tools/wake_up_screen.py screen=#
    
  3. Проведите индивидуальный тест.

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

    Затем графики генерируются в локальном каталоге, а stdout и stderr выводятся на экран.

    Чтобы получить дополнительную информацию для отладки, добавьте в скрипт операторы print . Чтобы увеличить вывод теста для отладки, добавьте флаг debug=True .

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

Результаты выводятся на локальный экран, а изображения сохраняются в локальном каталоге вместо созданного каталога /tmp/tmp### при запуске tools/run_all_tests.py .

Чтобы запустить отдельную сцену в Android 12:

  1. Отредактируйте файл config.yml .

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. Проведите индивидуальный тест.

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

Результаты распечатываются в /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ , отсортированные по времени выполнения.

Q5: Почему мне нужно запускать неудачные тесты как всю сцену, а не перезапускать тесты по отдельности?

Тесты можно запускать по отдельности в целях отладки, но результаты не передаются в CtsVerifier.apk , пока не будет запущена вся сцена.

Камера ITS гарантирует, что сторонние приложения имеют совместимый интерфейс камеры. Подобно модульному тесту , каждый тест проверяет одну спецификацию камеры. Ожидается, что для обнаружения ненадежного поведения эти тесты будут проходить как группа для всей сцены. Например, хотя один ненадежный тест может пройти повтор всей сцены, несколько ненадежных тестов пройти сложно.

В качестве крайнего примера рассмотрим случай, когда в сцене есть 10 тестов, каждый из которых имеет 50%-ную вероятность возврата PASS . Выполняя каждый тест по отдельности, оператор с большой долей вероятности сможет заставить камеру пройти тест Camera ITS. Однако, если тесты выполняются в совокупности как сцена, вероятность того, что сцена пройдет, составляет всего 0,1%.

Q6: Как запустить одну сцену или изменить порядок сцен?

По умолчанию скрипт tools/run_all_tests.py запускает все сцены по порядку. Однако сцены можно запускать по отдельности или в указанном порядке и сообщать об этом в CtsVerifier.apk .

Чтобы запустить отдельную сцену (например, сцену 2) или несколько сцен в определенном порядке в Android 11 или более ранней версии:

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

Чтобы запустить отдельную сцену или несколько сцен в определенном порядке в Android 12:

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

Дополнительные параметры задаются в файле config.yml .

Q7: Ряд тестов сцены 1 не проходит с настройкой планшета, но проходит с бумажной диаграммой. Что случилось?

Убедитесь, что планшет и тестовая среда соответствуют следующим спецификациям.

Технические характеристики планшета

Убедитесь, что планшет соответствует следующим требованиям:

  • Размер дисплея (дюймы): 10 дюймов
  • Размер дисплея (в пикселях): более 1920 x 1200 пикселей

Дополнительные сведения см. в разделе Требования к планшету .

Яркость планшета

Тесты могут не дать правильных результатов, если яркость дисплея планшета слишком низкая.

Дополнительные сведения см. в разделе Как управлять яркостью планшета?

Уровень освещения коробки (требуется люксметр)

Убедитесь, что целевое значение освещенности при открытии планшета составляет от 100 до 300.

Если уровень освещенности слишком высок, scene1/test_param_flash_mode.py возвращает FAIL . Если уровень освещенности слишком низкий, несколько тестов не пройдут.

Q8: Как отлаживать тесты слияния датчиков?

  1. Убедитесь, что вы находитесь в группе dialout .

    groups | egrep ‘dialout'
  2. Убедитесь, что контроллер слияния датчиков подключен, определив, подключена ли технология Microchip к порту USB.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. Запустите тест несколько раз, чтобы получить распределение попыток тестирования с помощью следующих команд.

    В Android 11 или более ранней версии:

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

    В Android 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    Дополнительные параметры задаются в файле config.yml .

    Выходные данные запуска находятся в папке /tmp/tmp### , созданной в папках sensor_fusion_# , где # — номер запуска. Распространенными причинами отказа являются:

    1. Телефон не отцентрирован должным образом.
    2. На изображении обнаружено недостаточное количество функций (часто проблема с полем зрения или освещением).
    3. FAIL действителен, и смещение синхронизации между камерой и гироскопом должно быть исправлено.

Q9: Какую информацию я должен указать, сообщая об ошибке тестирования?

При сообщении об ошибке тестирования включите сгенерированные файлы и изображения для теста.

  1. Если вы запускали тест через tools/run_all_tests.py , прикрепите заархивированный каталог /tmp/ к ошибке.
  2. Если вы запустили тест отдельно, прикрепите все выходные данные экрана и сгенерированные изображения к ошибке.

Также включите отчет об ошибке. После того, как рассматриваемый тест не пройден, используйте следующую команду, чтобы создать отчет об ошибке и прикрепить сгенерированный zip-файл к ошибке.

adb -s device_id bugreport

Q10: Как удалить панели навигации на планшетах с соотношением сторон 16:10, которые затемняют сцену?

Для планшетов с соотношением сторон 16:10 (или больше) панель навигации может закрывать часть сцены. Чтобы скрыть панель навигации, используйте следующую команду adb для планшета.

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