v4.4.3¶
v4.4.3 представляет плату OpenMV RT1060 (NXP i.MX RT1060), значительно расширенный API записи MJPEG, новые методы обработки изображений ISP (автобаланс белого, матрица цветокоррекции, гамма) и MicroPython 1.20. Имена плат Arduino были изменены, а значения по умолчанию для MJPEG сместились — ознакомьтесь с критическими изменениями ниже.
Основные изменения¶
OpenMV RT1060 — новая плата NXP i.MX RT1060 (и ревизия REV2).
Расширенный API MJPEG —
write(),count,is_closed,sync(), именованные аргументы ROI/палитры/альфа, а также финализатор.Новые методы ISP —
image.awb(),image.ccm(),image.gamma().MicroPython обновлён до 1.20.0.
Критическое изменение: цели сборки для плат Arduino были переименованы, а качество MJPEG по умолчанию изменилось — см. критические изменения.
Новые возможности¶
OpenMV RT1060 — полный порт NXP i.MX RT1060 (драйверы датчика, GPIO, I2C, SPI) и конфигурация платы, а также поддержка ревизии платы RT1060 REV2 и
machine.RTCс будильником/пробуждением на порте i.MX RT.MJPEG — новый метод
Mjpeg.write()(с именованными аргументамиroi,rgb_channel,alpha,color_palette,alpha_palette,hint), а такжеcount,is_closed,sync()и финализатор__del__, и псевдонимы конструктораMJPEG/Mjpeg/mjpeg.Методы обработки изображений ISP —
image.awb([max])(автобаланс белого),image.ccm(matrix)(матрица цветокоррекции 3x3 / 4x3) иimage.gamma(gamma, contrast, brightness).AprilTag — новые атрибуты центроида с плавающей точкой
cxf/cyf(cx/cyпо-прежнему возвращают округлённые целые числа).ML —
tf.regression()теперь принимает ulab ndarray и поддерживает двумерные входные тензоры (одномерные по-прежнему поддерживаются); в встроенных библиотекахlibtfбыли включены дополнительные операции TensorFlow Lite.
Прочие изменения и улучшения¶
MicroPython обновлён до 1.20.0; ulab обновлён до 6.0.12.
image.gamma/gamma_corrпереработаны как метод ISP и расширены для поддержки изображений Bayer и YUV (не только изменяемых изображений).Платы STM32 (Portenta H7, Nicla Vision) перешли на драйвер WiFi cyw43 с открытым исходным кодом.
Библиотека
rtspстала переносимой (используетrandom/timeвместоpyb);urequestsтеперь всегда закрывает свой сокет.
Исправления ошибок¶
Камера и датчики:
Исправлены тактовая частота OV767x (CLKRC) на Arduino Nano 33 BLE Sense, обработка обхода CLKRC / предделителя на OV7670 и перепутанные линии данных D0/D1 на Arduino Nicla Vision / ML kit (порт nrf).
Система и USB:
Исправлена обработка коротких USB-пакетов в режиме отладки TinyUSB (более надёжные передачи между IDE/хостом).
Исправлены полярность мигающего светодиода на OpenMV RT1060 и определение SD-карты при включении питания.
Поддержка оборудования и плат¶
OpenMV RT1060 — новая плата NXP i.MX RT1060, а также ревизия REV2.
STM32 — Portenta H7 / Nicla Vision переведены на драйвер WiFi cyw43 с открытым исходным кодом.
Критические изменения API¶
Видимые пользователю изменения API между v4.4.2 и v4.4.3. Область: C-модули Python в modules/ и библиотеки Python в scripts/libraries/.
Каждое изменение помечено степенью его влияния:
behavior — тот же API, другие результаты; перепроверьте настроенные скрипты.
tooling — затрагивает именование/прошивку плат, а не Python API.
Изменения сгруппированы по влиянию в этом порядке. Каждый хеш коммита ведёт на его diff на GitHub.
Значения по умолчанию MJPEG и обработка ошибок (behavior)¶
Код записи MJPEG был переработан. Значение JPEG quality по умолчанию для add_frame() / write() было повышено с 50 до 90 (записи по умолчанию стали больше и качественнее), недопустимое значение качества теперь вызывает ValueError, операции с закрытым файлом теперь вызывают OSError, а методы записи теперь возвращают объект Mjpeg. Скрипты, зависевшие от прежнего качества по умолчанию или прежнего поведения при ошибках, следует перепроверить.
Коммит: 3fc55ad31
Цели сборки плат Arduino переименованы (tooling)¶
Цели сборки плат Arduino были переименованы в соответствии с обновлённым соглашением об именовании, и все манифесты плат (наборы замороженных модулей) были обновлены. Это не изменяет Python API, но имена файлов прошивки/плат, используемые для сборки или прошивки плат Arduino, изменились — обновите свой инструментарий соответствующим образом.
Контрольный список миграции¶
Для чистого переноса на v4.4.3: перепроверьте записи MJPEG на новое качество по умолчанию и поведение при ошибках (изменение MJPEG) и обновите инструментарий сборки/прошивки для переименованных целей плат Arduino (переименование плат). Все остальные скрипты работают без изменений.