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

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

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

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

Начать

ITS-in-a-box состоит из пластиковой коробки, вырезанной лазером из чертежей системы автоматизированного проектирования (САПР), графического планшета и тестируемого устройства (DUT). Вы можете использовать встроенную систему ITS с широким полем зрения (WFoV), которая способна тестировать камеры как WFoV (FoV > 90 градусов), так и RFoV (FoV < 90 градусов), или обычную камеру с полем обзора. -просмотр (RFoV) «ИТС в коробке».

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

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

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

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

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

  1. Зарядите планшет и включите его. Если будет предложено настроить учетную запись, пропустите его (Camera ITS не требует наличия учетной записи, сопряженной с планшетом).
  2. Обновите планшет до Android 7.0 или выше. Android 6.x и более ранние версии не поддерживают Camera ITS.
  3. Включите режим разработчика .
  4. Вернитесь в настройки и выберите «Параметры разработчика».
    Включить параметры
    • На
    • Бодрствуйте
    • Отладка по USB (это позволяет хосту запускать планшет в режиме отладки. При первом подключении планшета к хосту на планшете отображается запрос Разрешить отладку по USB? Если на планшете не отображается приглашение отладки, отключите, а затем снова подключите планшет.)
    Отключить параметры
    • Автоматические обновления системы
    • Проверка приложений через USB
  5. Определите идентификаторы DUT и диаграммы, запустив $ 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-в-коробке
  • Один (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

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

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

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

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

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

Устройство Размер дисплея
(дюймы)
Размер дисплея
(пикселей)
Размеры планшета
(дюймы)
Отображать
яркость
Отображать
биты
Поддерживается
ДУТ ОС
Поддерживается
ОС планшета
Samsung
Галактика Таб А8
10,5 1920 х 1200 9,72 х 6,37 х 0,27 192 8 Андроид 13+ Андроид 11+
Сяоми
Площадка 5
11 2560 х 1600 10,03 х 6,55 х 0,27 1024 11 Андроид 12+ Только Андроид 11
Леново
Вкладка М10 Плюс
10.3 1920 х 1200 9,61 х ​​6,03 х 0,32 192 8 Андроид 12+ Андроид 9+
Samsung
Галактика Таб А7
10.4 2000 х 1200 9,75 х 6,2 х 0,28 192 8 Андроид 12+ Андроид 10+
Чуви
Привет9 Эйр 10.1
10.1 2560 х 1600 9,52 х 6,77 х 0,31 192 8 Андроид 7+ Андроид 8+
Асус
ЗенПад 3
9,7 2048 х 1536 9,47 х 6,44 х 0,28 192 8 Андроид 7+ Андроид 6+
Хуавей
Медиапад м5
10,8 2560 х 1600 10,18 х 6,76 х 0,29 192 8 Андроид 7+ Андроид 8+
Google
Пиксель С
10.2 2560 х 1800 9,53 х 7,05 х 0,28 96 8 Андроид 7+ Андроид 6+
Сони
Xperia Z4
10.1 2560 х 1600 10 х 6,57 х 0,24 192 8 Андроид 7+ Андроид 5+

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

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

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

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

Блок Sensor Fusion проверяет смещение времени камеры/гироскопа и синхронизацию кадров многокамерных систем с помощью тестов в scenes=sensor_fusion . Для флага функции REALTIME требуется смещение синхронизации камеры/гироскопа менее 1 мс.

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

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

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

Вопрос 2. Как определить, какой испытательный стенд используется?

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

Android 10–Android 11

Чтобы определить правильную тестовую установку в Android 10–11, добавьте флаг dist в командной строке. Значение по умолчанию для dist31 . Выполните следующую команду, чтобы изменить 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

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

По умолчанию яркость планшета установлена ​​на 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

Вопрос 4. Как отладить один тест?

Тесты можно запускать по отдельности в целях отладки, но результаты не передаются в 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/ отсортированные по времени выполнения.

Вопрос 5. Почему мне нужно запускать неудачные тесты всей сценой, а не перезапускать тесты по отдельности?

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

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

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

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

По умолчанию 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 .

Вопрос 7. Некоторые тесты сцены 1 не проходят при настройке планшета, но проходят при использовании бумажной таблицы. В чем дело?

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

Характеристики планшета

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

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

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

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

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

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

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

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

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

Вопрос 8. Как отладить тесты слияния датчиков?

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

    groups | egrep ‘dialout'
  2. Убедитесь, что контроллер сенсора Fusion подключен, проверив, подключена ли технология Microchip Technology к порту 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
    

    В Андроид 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

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

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

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

Вопрос 9. Какую информацию следует указывать при сообщении об ошибке тестирования?

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

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

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

adb -s device_id bugreport

Вопрос 10. Как запустить тестовую сцену Sensor_fusion с камерой, минимальное расстояние фокусировки которой создает размытые изображения на расстоянии 25 см от карты?

Если ваша камера не может сфокусироваться на расстоянии 25 см, снимите панель крепления диаграммы блока сенсора. Разместите диаграмму на расстоянии, на котором тестируемое устройство может сфокусироваться, и chart_distance в config.yml на измеренное расстояние между тестируемым устройством и диаграммой. На рисунке 5 показан пример измерения расстояния по карте в этой ситуации.

Sensor_fusion Пример тестирования TELE6
Рисунок 5. Диаграмма измерения расстояния для сцены испытания на слияние датчиков
  edit config.yml
chart_distance: 25 → chart_distance: DISTANCE_BETWEEN_DUT_AND_CHART

Вопрос 11. Как запустить тестовые сцены планшета для камеры с минимальным расстоянием фокусировки, которая создает размытые изображения на расстоянии 31 см от карты?

Если ваша камера не может создавать достаточно резкие изображения при тестировании на расстоянии 31 см (глубина испытательного стенда RFoV), установите камеру перед установкой на таком расстоянии, чтобы сцена карты занимала примерно 60% поля камеры. вид (FoV) с более четкими изображениями. Это расстояние может быть меньше минимального расстояния фокусировки камеры. chart_distance в config.yml равным 31 см. Масштаб диаграммы на планшете определяется полем зрения камеры, как показано в следующей таблице:

Поле зрения камеры Коэффициент масштабирования диаграммы
60 > Поле зрения > 40 0,67x
40 > Поле зрения > 25 0,5x
Поле зрения < 25 0,33x

Вопрос 12. Какие тесты на каких камерах выполняются при использовании логического API нескольких камер?

Если ваша камера использует REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA , все поддерживаемые тесты ITS выполняются на логической камере верхнего уровня. Подмножество тестов ITS запускается на физических дополнительных камерах, и эти тесты перечислены в tools/run_all_tests.py под константой SUB_CAMERA_TESTS .