На этой странице кратко описаны изменения в наборе тестов изображений камеры (Camera Image Test Suite, ITS) в Android 11. Изменения подразделяются на следующие категории:
- Изменения в аппаратном обеспечении
- Первые обязательные тесты на уровне API
- Проверка освещения подтверждена.
- Изменение названия сцены
- Изменения и дополнения в тестах
- Расширенное ОГРАНИЧЕННОЕ тестирование камер
Изменения в аппаратном обеспечении
В Android 11 внесен ряд аппаратных изменений, направленных на снижение стоимости и повышение доступности. Эти изменения подразделяются на следующие категории:
- Дополнительный производитель
- Единые методы производства
- Расширенный выбор планшетов
- Уменьшенное отверстие для таблетки
- Новый контроллер объединения данных с датчиков
Дополнительный производитель
Компания Rahi Systems, помимо нашего существующего поставщика, MYWAY design, имеет квалификацию для производства испытательных корпусов ITS. Информация о компаниях-поставщиках, имеющих квалификацию, приведена ниже:
Rahi Systems Inc.
48303 Fremont Blvd, Fremont CA 94538, США
rahisystems.com/products/android-device-testing-equipment/
androidpartner@rahisystems.com
+1-510-319-3802Дизайн MYWAY
4F., № 163, улица Фу-Ин, район Синьчжуан, город Нью-Тайбэй, Тайвань
twmyway.com
sales@myway.tw
+886-2-29089060
Единые методы производства
В тестовом корпусе rev1 с обычным полем зрения (RFoV) ITS-in-a-box используются методы производства, аналогичные тем, что применяются в тестовых корпусах с широким полем зрения (WFoV) и корпусах для объединения данных с датчиков . Функциональность идентична, и для простоты конструкция обозначается как rev1a . Перепроектирование позволяет производителям использовать один тип пластика для изготовления всех тестовых корпусов. Кроме того, крепление для планшета и держатели для ламп переработаны для работы с большим разнообразием планшетов и светодиодных балок.
Чтобы загрузить последние описания и чертежи, см. раздел RFoV (версия 1a) и раздел WFoV (версия 2.9) .
Расширенный выбор планшетов
В список рекомендуемых планшетов добавлены такие модели, как Samsung Galaxy Tab A 10.1 и Chuwi Hi9 Air 10.1. Важно, чтобы планшет не поддерживал широтно-импульсную модуляцию (ШИМ) для регулировки яркости экрана и устранения полос на полученных изображениях.
Актуальную информацию о рекомендуемых планшетах см. в разделе «Требования к планшетам» .
Уменьшенное отверстие для таблетки
Для обеспечения возможности использования Galaxy Tab A 10.1 высота отверстия для планшета немного уменьшена как в тестовом корпусе RFoV (rev1a), так и в корпусе WFoV (rev2). Изменения внесены в версиях rev1a.1 и rev2.9. Чертежи этих изменений см. в блоке RFoV (rev1a) и блоке WFoV (rev2.9) .
Новый контроллер объединения данных с датчиков
Аппаратная часть контроллера для объединения данных с датчиков была переработана для повышения технологичности производства. Новый контроллер основан на Arduino , с пользовательской платой расширения, которая устанавливается поверх Arduino. На рисунке 1 показана плата расширения, а на рисунке 2 — механическая схема корпуса. Новый контроллер питается от одного источника питания 5 В, который напрямую питает двигатель. Электроника полностью управляется через USB-разъем. Отдельный источник питания обеспечивает полную изоляцию между управляющей электроникой и сервомотором. Кроме того, один контроллер может управлять до шести сервомоторами.

Рисунок 1. Вид сверху на плату расширения Arduino.

Рисунок 2. Конструкция корпуса.
Android 11 обратно совместим с существующими контроллерами. Для запуска тестирования с контроллером на базе Arduino используйте:
python tools/run_all_tests.py device=# camera=# rot_rig=arduino:1 scenes=sensor_fusion
Первый уровень API
В Android 10 тесты ITS обозначаются как MANDATED и NOT_YET_MANDATED . Для запуска на устройстве Android 10 необходимо пройти все MANDATED тесты. ПОКА NOT_YET_MANDATED тесты могут завершиться неудачей, но в отчете верификатора CTS они будут отмечены как PASS . Требование MANDATED тестов также распространяется на обновленные устройства. Это требование о прохождении всех MANDATED тестов на обновленных устройствах привело к задержке в преобразовании тестов MANDATED поскольку старые устройства также должны пройти эти тесты.
В Android 11 MANDATED тесты запускаются с помощью первого флага уровня API в свойствах телефона. Для устройств, обновляющихся до Android 11, тесты запускаются как NOT_YET_MANDATED tests), что означает, что тест может завершиться неудачей, но быть отмечен как PASS в файле CtsVerifier.apk .
Например:
- В Android 11 проверка
test_channel_saturationMANDATEDдля устройств с первым уровнем API выше 29. - В Android 10 проверка
test_channel_saturationMANDATEDдля всех устройств.
Проверка освещения сцены
В Android 11 проверка освещения сцены осуществляется путем анализа яркости в углах сцены. Все сцены, созданные вручную, проверяются на освещение, а сцены, созданные на планшетах, проверяются для камер RFoV в тестовом стенде RFoV и камер WFoV в тестовом стенде WFoV. Если уровень освещения недостаточен, выдается ошибка, и тестирование завершается неудачей.
Изменение названия сцены
В Android 10 сцена 1 составляет большинство тестов и значительную часть общего времени тестирования. Если какой-либо тест в сцене 1 не проходит, всю сцену необходимо запустить заново. По задумке, повторный запуск всей сцены уменьшает вероятность успешного прохождения тестов, находящихся на грани допустимого. В Android 11 время повторного запуска сокращается за счет разделения сцены 1 на две сцены: scene1_1 и scene1_2.
В таблице ниже показано время тестирования задней камеры Pixel 4 в различных условиях. Количество тестов распределено таким образом, чтобы уравнять время тестирования, а не количество тестов.
Кроме того, проведена очистка названий. Сцена 2 разделена буквами, а сцена 1 — цифрами. Номенклатура для различных расширений следующая:
- Сцены с одной и той же диаграммой, но разными тестами:
*_1,2,3 - Сцены с разными диаграммами, но одинаковыми тестами:
*_a,b,c
| Сцена | Количество тестов | Время работы Pixel 4 (мин:сек) |
|---|---|---|
| 0 | 11 | 1:12 |
| 1_1 | 22 | 5:12 |
| 1_2 | 13 | 5:20 |
| 2_а | 5 | 3:22 |
| 2_б | 1 | 0:24 |
| 2_c | 1 | 0:24 |
| 3 | 6 | 2:04 |
| 4 | 2 | 2:46 |
Тестовые изменения
Тесты обновлены для использования первого уровня API.
В Android 11 тесты в следующей таблице обновлены и используют флаг первого уровня API. Все эти тесты используют первый уровень API 29, за исключением теста test_tonemap_curve , который использует первый уровень API 30.
| Сцена | Название теста | Первый уровень API | Описание |
|---|---|---|---|
| 0 | test_tonemap_curve | 30 | Убедитесь, что конвейер обработки данных обеспечивает корректный вывод цвета с использованием линейной тоновой карты и идеального входного изображения (зависит от параметра test_test_patterns ). |
| 1 | test_ae_precapture_trigger | 29 | Проверьте работу конечного автомата AE при использовании триггера предварительного захвата. Убедитесь, что при отключенном AE триггер предварительного захвата не оказывает никакого эффекта. |
test_channel_saturation | 29 | Чтобы устранить оттенок в перенасыщенных областях, убедитесь, что насыщенность каналов RGB установлена на схожие значения. | |
| 2_a/b/c | test_num_faces | 29 | Увеличьте возрастное разнообразие в сценах с лицами. |
Тесты с изменениями
Тесты, представленные в таблице ниже, обновлены в Android 11. Изменения описаны в столбце «Описание изменений» .
| Сцена | Название теста | Первый уровень API | Описание изменений |
|---|---|---|---|
| 1 | test_burst_sameness_manual | 30 | Снизьте допустимый уровень до 2%. |
| 4 | test_aspect_ratio_and_crop | 30 | Измените настройки для работы на ОГРАНИЧЕННОМ количестве устройств. |
test_multi_camera_alignment | 30 | Если многокамерная съемка не поддерживается, переключайтесь между камерами по отдельности. Переработайте логику выбора камер с учетом трех- и четырехкамерных систем и пропускайте монохромные, только глубинные и ИК-камеры. |
Новые тесты
Тесты, представленные в таблице ниже, включены в Android 11. В таблице приведено краткое описание тестов, а подробные описания — в следующих разделах.
| Сцена | Название теста | Первый уровень API | Описание |
|---|---|---|---|
| 0 | test_vibration_restrictions | 30 | Убедитесь, что оповещения и вибрация не активируются во время съемки изображений. |
| 2_а | test_jpeg_quality | 30 | Проверьте, снижают ли таблицы квантования степень сжатия для повышения качества JPEG-изображений. |
| 2_d/2_e | test_num_faces | 30 | Увеличьте разнообразие возрастных особенностей лиц. |
| 2_е | test_continuous_picture | 30 | Убедитесь, что 3A устанавливается в значение android.control.afAvailableModes = CONTINUOUS_PICTURE. |
| изменять | test_scene_change | 31 | android.control.afSceneChange применяется при смене сцены. |
| 6 | test_zoom | 30 | Проверьте значение android.control.zoomRatioRange . |
scene0/test_vibration_restriction
Для этого теста не требуется определенная обстановка, но тестируемое устройство (DUT) должно быть размещено или установлено на твердой поверхности. Это включает в себя установку на тестовые корпуса ITS-in-a-box.
Утверждения
- Отсутствие вибраций во время работы камеры
scene2_a/test_jpeg_quality
Метод
Различные участки файла JPEG определяются 2-байтовыми маркерами. Для получения дополнительной информации см. раздел JPEG .
Тест извлекает матрицы квантования из JPEG-изображения. Маркером для матриц квантования в JPEG-изображении является последовательность [255, 219]. Когда маркер найден, следующие два элемента списка указывают размер. Маркер размера DQT в JPEG обычно равен [0, 132] = 256*0+132 = 132, что соответствует размеру данных DQT в JPEG-изображении. Встроенные данные имеют вид: [255, 219, 0, 132, 0 (маркер яркости), матрица яркости 8x8, 1 (маркер цветности), матрица цветности 8x8].
Значения 0 для маркера яркостной матрицы и 1 для маркера цветности кажутся одинаковыми для ряда устройств, включая телефоны, которые разделяют две матрицы на отдельные секции DQT в файле JPEG. Яркостные матрицы, как правило, имеют большее разнообразие значений по сравнению с цветными матрицами, поскольку человеческий глаз более чувствителен к яркости, чем к цветности, и изображения JPEG это учитывают.
Ниже приведены примеры извлеченных матриц яркости и цветности для коэффициентов качества 85 и 25, полученных с помощью задней камеры Pixel 4 при съемке сцены 2_a на тестовом стенде ITS. Значения матриц существенно увеличиваются (что указывает на усиление сжатия) при более низком значении качества. Эти матрицы выводятся скриптом только в том случае, если установлен флаг debug=True . Обратите внимание на большее различие в значениях матриц яркости по сравнению с матрицами цветности.
luma matrix (quality = 85) chroma matrix (quality = 85)
[[ 5 3 4 4 4 3 5 4] [[ 5 5 5 7 6 7 14 8]
[ 4 4 5 5 5 6 7 12] [ 8 14 30 20 17 20 30 30]
[ 8 7 7 7 7 15 11 11] [30 30 30 30 30 30 30 30]
[ 9 12 17 15 18 18 17 15] [30 30 30 30 30 30 30 30]
[17 17 19 22 28 23 19 20] [30 30 30 30 30 30 30 30]
[26 21 17 17 24 33 24 26] [30 30 30 30 30 30 30 30]
[29 29 31 31 31 19 23 34] [30 30 30 30 30 30 30 30]
[36 34 30 36 28 30 31 30]] [30 30 30 30 30 30 30 30]]
luma matrix (quality = 25) chroma matrix (quality = 25)
[[ 32 22 24 28 24 20 32 28] [[ 34 36 36 48 42 48 94 52]
[ 26 28 36 34 32 38 48 80] [ 52 94 198 132 112 132 198 198]
[ 52 48 44 44 48 98 70 74] [198 198 198 198 198 198 198 198]
[ 58 80 116 102 122 120 114 102] [198 198 198 198 198 198 198 198]
[112 110 128 144 184 156 128 136] [198 198 198 198 198 198 198 198]
[174 138 110 112 160 218 162 174] [198 198 198 198 198 198 198 198]
[190 196 206 208 206 124 154 226] [198 198 198 198 198 198 198 198]
[242 224 200 240 184 202 206 198]] [198 198 198 198 198 198 198 198]]
На рисунке 3 показаны средние значения матрицы для задней камеры Pixel 4 в зависимости от качества JPEG. С повышением качества JPEG уровень сжатия (среднее значение матрицы DQT для яркости/цветности) снижается.
![]()
Рисунок 3. Средние значения матрицы DQT яркости/цветности задней камеры Pixel 4 в зависимости от качества JPEG.
Утверждения
- Для [25, 45, 65, 86] +20 в качестве означает снижение средних значений матрицы квантования на 20%.
- Полезные нагрузки матрицы DQT представляют собой квадратные числа.
На рисунке 4 показан пример телефона, который не проходит тест. Обратите внимание, что для изображений очень низкого качества ( jpeg.quality < 50 ) не наблюдается увеличения степени сжатия в матрице квантования.

Рисунок 4. Пример неудачного теста.
scene2_d/e test_num_faces
Для повышения разнообразия лиц в проверках алгоритма распознавания добавлены две новые сцены. После многократного тестирования на нескольких камерах ожидается, что наиболее сложным окажется лицо в самой левой сцене 2_d. В частности, на модели присутствуют и шляпа, и борода, что является новшеством в сценах с лицами. Новые сцены показаны на рисунках 5 и 6.

Рисунок 5. scene2_d

Рисунок 6. scene2_e
Утверждения
-
num_faces == 3
scene2_e/test_continuous_picture
Метод
Тест test_continuous_picture использует scene2_e, но его можно включить для любой из сцен с лицами. В этом тесте захватывается 50 кадров с разрешением VGA, при этом запрос на захват сначала устанавливает android.control.afMode = 4 (CONTINUOUS_PICTURE) .
Ожидается, что система 3A стабилизируется по завершении захвата 50 кадров.
Утверждения
- В конце захвата сигнал 3A находится в сходящемся состоянии.
scene_change/test_scene_change
Метод
Включен новый тест, проверяющий, активируется ли флаг android.control.afSceneChange при смене сцены. Смена сцены осуществляется путем отображения на планшете сцены с лицом, а затем включения и выключения планшета для создания смены сцены. Сцена повторно использует scene2_e, но находится в отдельной сцене из-за необходимости управления планшетом.
Кроме того, для ручного тестирования смену сцены можно осуществить взмахом руки перед камерой.
На рисунке 7 представлена временная диаграмма теста. Время между выключением экрана и захватом изображения корректируется на основе результатов событий из предыдущих захватов.

Рисунок 7. Диаграмма синхронизации для test_scene_change
Условия смены:
- Если происходит смена сцены и
afSceneChange == 1, тест возвращаетPASS. - Если происходит смена сцены и
afSceneChange == 0, смена сцены сдвигается на 5 кадров раньше, чтобы дать больше времени для срабатыванияafSceneChange. - Если смена сцены не происходит и
afSceneChange == 1, тест возвращаетFAIL. - Если смена сцены отсутствует и
afSceneChange == 0, то смена сцены происходит на 30 кадров раньше, чтобы в момент захвата кадра отобразилась смена сцены.
Утверждения
- Переключение экрана (сцены).
- Флаг
afSceneChangeнаходится в диапазоне [0, 1]. - Если смена сцены отсутствует, алгоритм 3A сходится (функционально идентичен алгоритму
test_continuous_picture). - Если
afSceneChange == 1, яркость в сцене должна измениться. -
PASSза шесть попыток, время скорректировано на основе предыдущих результатов.
scene6/test_zoom
Метод
Для проверки android.control.zoomRatioRange требуется новая сцена, поскольку в существующих сценах либо отсутствует достаточно мелкий объект для увеличения (сцены [1, 2, 4]), либо в сцене много объектов, которые трудно идентифицировать, что усложняет извлечение признаков (сцена 3).
На рисунке 8 показана новая сцена с регулярным расположением кругов. Расположение кругов ослабляет требования к центрированию тестируемого устройства/диаграммы и позволяет кругу всегда находиться вблизи центра захваченного изображения. В этой сцене массив из 9x5 кругов с черной рамкой покрывает весь планшет. Один круг заменен квадратом в правом верхнем углу для обозначения ориентации. Размеры кругов имеют площадь около 7500 пикселей ( radius=50pixels ) для датчика 4000x3000, захватываемого с полем зрения (FoV) около 80 градусов.

Рисунок 8. Сцена test_zoom

Рисунок 9. Изображения Pixel 4 cam[0] zoom = [1, 3.33, 5.67, 8] с найденным кругом
На рисунке 9 показаны снимки, полученные с помощью задней камеры Pixel 4 при увеличении зума от 1 до 8x в четыре этапа. Этот набор изображений был получен без особой тщательности в центрировании, за исключением использования тестового отверстия телефона с двумя отверстиями для тестирования как передней, так и задней камер. Ожидается смещение относительно центра, которое наблюдается, поскольку тестовый планшет немного смещен влево от центра. Кроме того, тестовая таблица, по-видимому, достаточна для тестирования с коэффициентами увеличения более 8x.
Поиск кругов
Тест включает метод find_circle() , использующий findContours , который находит все контуры и сужает область поиска до нужных окружностей, проверяя следующее:
- Площадь контура должна превышать 10 пикселей.
- Контуры должны иметь
NUM_PTS >= 15. - Контуры должны иметь черные центры.
- Контуры должны напоминать круг, то есть их площадь должна быть близка к площади контура, равной π*r².
Испытательный полигон
android.control.zoomRatioRange разделен на 10 шагов.
- [1, 7] тесты [1, 1.67, 2.33, 3, 3.67, 4.33, 5, 5.67, 6.33, 7]
Масштабирование останавливается, если найденный круг касается границ изображения. Проверяется, достигнут ли достаточный уровень масштабирования в ходе теста (10x).
Утверждения
- При каждом уровне масштабирования обнаруживается как минимум один круг.
- Проверяется значение 10x или максимальное значение параметра
android.control.zoomRatioRange. - Радиус круга изменяется в зависимости от масштабирования (RTOL на 10% выше ожидаемого).
- Смещение центра окружности относительно центра масштабируется при увеличении масштаба (RTOL 10% от ожидаемого).
- Достигнут достаточный уровень масштабирования (2x).
Расширенное ОГРАНИЧЕННОЕ тестирование камер
В Android 11 тесты, представленные в следующей таблице, проверяют камеры LIMITED . В дополнение к новым тестам , тест scene4/test_aspect_ratio_and_crop обновлен, чтобы обеспечить тестирование устройств с LIMITED , имеющих первый уровень API 30 или выше.
| Сцена | Название теста |
|---|---|
| 0 | test_vibration_restrictions |
| 2_а | test_jpeg_quality |
| 2_d/2_e | test_num_faces |
| 4 | test_aspect_ratio_and_crop |
| 6 | test_zoom |
На рисунке 10 показано кольцо декодера секретных тестов ITS в Android 11. Кольцо декодера показывает, какие параметры тестирования определяют доступность отдельных тестов. Для удобства просмотра параметры имеют цветовую кодировку. Основные параметры тестирования:
-
MANUAL_SENSOR -
READ_3A*требуетсяMANUAL SENSOR -
COMPUTE_TARGET_EXPOSURES*требуетсяMANUAL SENSOR -
PER_FRAME_CONTROL -
RAW -
SENSORS*REALTIME -
MULTI_CAMERA
Параметры MANUAL SENSOR , READ_3A , COMPUTE_TARGET_EXPOSURES и PER_FRAME_CONTROL регулируют большинство тестов. Кроме того, тесты, включенные для устройств LIMITED устройств, выделены светло-зеленым цветом.

Рисунок 10. Скрытое кольцо дешифратора Android 11.