v3.6.3

v3.6.3 включает TensorFlow на OpenMV 3 / F7, добавляет поддержку моделей uint8/int8/float32, переводит тепловые датчики MLX90640/AMG8833 на аппаратный I2C, добавляет гистограммы разности изображений и смещение для коррекции объектива, а также перерабатывает управление считыванием. Константы-подсказки image были переименованы, а масштабирование draw_image() изменилось — ознакомьтесь с несовместимыми изменениями ниже.

Основные новшества

  • TensorFlow на OpenMV 3 / F7tf включён на камерах на базе F7 с поддержкой моделей uint8/int8/float32.

  • Тепловые датчики — MLX90640 и AMG8833 переведены на аппаратный I2C с новым драйвером MLX90640.

  • Обработка изображений — поддержка разности изображений в get_histogram() и коррекция смещения для lens_corr().

  • draw_image — альфа-палитры в режиме оттенков серого и переработанное управление считыванием.

  • Несовместимое изменение: константы-подсказки image были переименованы, а отрицательное масштабирование draw_image() удалено — см. несовместимые изменения.

Новые возможности

  • TensorFlow — включён tf на OpenMV 3 / F7 и обновлён TensorFlow для поддержки моделей uint8 / int8 / float32.

  • get_histogram() — добавлена возможность разности изображений.

  • lens_corr() — добавлена коррекция смещения.

  • draw_image() — альфа-палитры теперь работают в (не-билинейном) режиме оттенков серого, с билинейно интерполированными альфа-палитрами и центрированием изображения; новый код управления считыванием.

Прочие изменения и улучшения

  • MLX90640 и AMG8833 переведены на аппаратный I2C (новый драйвер MLX90640, аппаратный I2C в конфигурации платы для внешних датчиков, увеличено число повторов считывания MLX), включён режим I2C fast-mode-plus на поддерживающих его камерах, добавлены операции чтения/записи байтов через cambus с таймингами I2C, а применение альфа пропускается, когда оно равно 0, для повышения производительности.

Исправления ошибок

Камера и обработка изображений:

  • Исправлена и ускорена коррекция поворота, исправлена ошибка Bayer-to-YCbCr на левом крае и добавлено исправление краёв в bayer_to_y() / bayer_to_binary().

Инструментарий:

  • Исправлены ошибки Python 2/3 и порядок вызовов get_statistics().

Несовместимые изменения API

Видимые пользователю изменения API между v3.6.2 и v3.6.3. Область: Python-модули на C в modules/ и библиотеки Python в scripts/libraries/.

Каждое изменение помечено степенью влияния:

  • minor — узкий API; затрагивает только скрипты, которые его использовали.

  • behavior — тот же API, другие результаты; перепроверьте настроенные скрипты.

Изменения сгруппированы по влиянию в этом порядке. Если вам нужно просто перенести код, перейдите к контрольному списку миграции в конце. Каждый хеш коммита ссылается на свой diff на GitHub.

Константы-подсказки image переименованы (minor)

Константы-подсказки рисования image были переименованы: image.INTERPOLATE_BILINEARimage.IMAGE_HINT_BILINEAR и image.IMAGE_CENTERimage.IMAGE_HINT_CENTER. Скрипты, передающие старые имена констант в draw_image(), должны использовать новые имена. (Они снова переименованы в image.BILINEAR / image.CENTER в v3.7.0.)

Коммиты: 8f8872537

Отрицательное масштабирование draw_image() удалено (behavior)

image.draw_image() больше не поддерживает отрицательное масштабирование, а точка выборки текстуры перемещена в центр пикселя. Скрипты, полагавшиеся на отрицательное масштабирование для отражения изображения при отрисовке, должны отражать его другим способом, а вывод может сместиться вплоть до половины пикселя по сравнению с прежним.

Коммиты: 7e83dbb92

Контрольный список миграции

Переименуйте image.INTERPOLATE_BILINEAR / image.IMAGE_CENTER в image.IMAGE_HINT_BILINEAR / image.IMAGE_HINT_CENTER (переименование констант-подсказок) и замените любое отрицательное масштабирование draw_image() явным отражением (изменение масштабирования draw_image). Все остальные скрипты работают без изменений.