На этой странице обобщены изменения в Camera Image Test Suite (ITS) в Android 11. Изменения делятся на следующие категории:
- Изменения в оборудовании
- Первые ОБЯЗАТЕЛЬНЫЕ испытания уровня API
- Тестовое освещение проверено
- Изменения названия сцены
- Тестовые изменения и дополнения
- Увеличено ОГРАНИЧЕННОЕ тестирование камеры
Изменения в оборудовании
Android 11 представляет несколько аппаратных изменений для снижения стоимости и повышения доступности. Эти изменения делятся на следующие категории:
- Дополнительный производитель
- Унифицированные методы производства
- Расширенные возможности планшета
- Уменьшенное открытие планшета
- Новый контроллер слияния датчиков
Дополнительный производитель
Rahi Systems имеет квалификацию для производства тестовых корпусов ITS в дополнение к нашему существующему поставщику MYWAY design. Информация о компании для квалифицированных поставщиков следующая:
Рахи Системс Инк.
48303 Fremont Blvd, Fremont CA 94538, США
rahisystems.com/products/android-device-testing-equipment/
androidpartner@rahisystems.com
+1-510-319-3802МОЙ ПУТЬ дизайн
4F., № 163, улица Фу-Ин, район Синьчжуан, город Нью-Тайбэй, Тайвань
twmyway.com
продажи@myway.tw
+886-2-29089060
Унифицированные методы производства
Испытательный корпус rev1 regular field-of-view (RFoV) ITS-in-a-box переработан для использования методов производства, используемых в испытательных корпусах wide field-of-view (WFoV) box и sensor fusion box . Функциональность идентична, и для простоты конструкция упоминается как rev1a . Перепроектирование позволяет производителям иметь на складе один тип пластика для производства всех испытательных корпусов. Кроме того, крепление планшета и держатели ламп переработаны для обработки большего количества планшетов и светодиодных световых полос.
Чтобы загрузить последние описания и механические чертежи, см. RFoV box (rev1a) и WFoV box (rev2.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 box (rev1a) и WFoV box (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
могут быть пройдены, но они занесены в таблицу как PASS
для отчетов верификатора CTS. Требование прохождения тестов MANDATED
также применяется к обновленным устройствам. Это требование к обновленным устройствам проходить все тесты MANDATED
привело к тому, что тесты были отложены до получения MANDATED
, поскольку старые устройства также должны пройти тесты.
В Android 11 тесты MANDATED
ограничиваются первым флагом уровня API из свойств телефона. Для устройств, обновляющихся до Android 11, тесты запускаются как тесты NOT_YET_MANDATED
, что означает, что тест может не пройти, но быть занесен в таблицу как PASS
в CtsVerifier.apk
.
Например:
- В Android 11 тест
test_channel_saturation
являетсяMANDATED
для устройств с первым уровнем API выше 29. - В Android 10 тест
test_channel_saturation
являетсяMANDATED
для всех устройств.
Проверка освещения сцены
В 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_с | 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_а/б/в | 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_д/2_д | 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]. Когда маркер найден, следующие два элемента списка — это размер. Маркер размера JPEG DQT обычно равен [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, снимающей сцену scene2_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. Пример неудачного теста
сцена2_d/e test_num_faces
Добавлены две новые сцены обнаружения лиц для увеличения лицевого разнообразия проверок алгоритма обнаружения лиц. При повторном тестировании ряда камер ожидается, что самым сложным лицом будет самое левое лицо в scene2_d. В частности, на модели есть и шляпа, и борода, что-то новое в сценах с лицами. Новые сцены показаны на рисунках 5 и 6.
Рисунок 5. сцена2_d
Рисунок 6. scene2_e
Утверждает
-
num_faces == 3
сцена2_e/тест_непрерывная_картинка
Метод
Тест test_continuous_picture
использует scene2_e, но его можно включить с любой из сцен лиц. В этом тесте захватывается 50 кадров разрешения VGA с первой настройкой запроса захвата android.control.afMode = 4 (CONTINUOUS_PICTURE)
.
Ожидается, что система 3A стабилизируется к концу захвата 50 кадров.
Утверждает
- 3А находится в конвергентном состоянии в конце захвата.
изменение_сцены/тестовое_изменение_сцены
Метод
Включен новый тест для проверки того, утверждается ли флаг 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
с шести попыток, время изменено на основе предыдущих результатов.
сцена6/тест_зум
Метод
Для тестирования android.control.zoomRatioRange
требуется новая сцена, поскольку в существующих сценах либо нет достаточно мелких объектов для увеличения (сцены [1, 2, 4]), либо в сцене много объектов, которые нелегко идентифицировать, что затрудняет извлечение объектов (сцена 3).
На рисунке 8 показана новая сцена с обычным массивом кругов. Массив кругов ослабляет требования к центрированию DUT/диаграммы и позволяет иметь круг всегда около центра захваченного изображения. В этой сцене массив из 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
. - Контуры должны иметь черные центры.
- Контуры должны напоминать круг, то есть их площадь должна быть близка к площади контура pi*r2.
Диапазон испытаний
android.control.zoomRatioRange
делится на 10 шагов.
- [1, 7] тесты [1, 1.67, 2.33, 3, 3.67, 4.33, 5, 5.67, 6.33, 7]
Масштабирование останавливается, если найденный круг касается границ изображения. В тесте есть проверка, чтобы убедиться, что достигнут достаточный уровень масштабирования (10x).
Утверждает
- При каждом значении масштабирования отображается как минимум один круг.
- Проверяется 10-кратное или максимальное значение
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_д/2_д | test_num_faces |
4 | test_aspect_ratio_and_crop |
6 | test_zoom |
На рисунке 10 показано секретное кольцо декодера Android 11 ITS. Секретное кольцо декодера показывает, какие тестовые настройки используются для отдельных тестов. Для простоты просмотра стробирование имеет цветовую кодировку. Основные элементы стробирования:
-
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