v4.5.9¶
v4.5.9 забезпечує потокове передавання сирого попереднього перегляду для плат без апаратного JPEG-кодера, апаратне кадрування датчика для звільнення більшого обсягу RAM, прискорене декодування Баєра за допомогою Helium та пакет виправлень для камери/USB-налагодження. Також змінено API результатів AprilTag та набір сімей AprilTag за замовчуванням — ознайомтеся з несумісними змінами нижче.
Основні зміни¶
Потокове передавання сирого попереднього перегляду — плати без апаратного JPEG-кодера тепер можуть надсилати до IDE/хоста зменшені сирі кадри замість невдалого попереднього перегляду.
Апаратне кадрування датчика — встановлення меншого розміру кадру тепер зменшує пам’ять на буфер і звільняє RAM для
fb_alloc().Прискорене декодування Баєра — перетворення Bayer→RGB/відтінки сірого тепер прискорено за допомогою Helium-SIMD на платах Cortex-M55.
Несумісна зміна: об’єкт результату AprilTag змінився на доступ через атрибути, а набір сімей AprilTag за замовчуванням було скорочено (дивіться зміни AprilTag та зміну сімей AprilTag).
Нові можливості¶
Потокове передавання сирого попереднього перегляду — плати без апаратного JPEG-кодера можуть обходити JPEG і передавати до IDE/хоста зменшені сирі кадри (обмежені ~60 КБ), тому живий перегляд на цих платах працює.
Інші зміни та покращення¶
Апаратне кадрування тепер увімкнено на всіх платах STM32/NXP (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). При встановленні розміру або вікна кадру пам’ять на буфер зменшується до обрізаного розміру, звільняючи більше RAM для
fb_alloc().Прискорене декодування Баєра — перетворення Bayer→RGB565/відтінки сірого тепер прискорено засобами ARM Helium/MVE SIMD на платах Cortex-M55 (наприклад, RT1060) зі спільним шляхом SIMD JPEG-кодера.
Швидше IDE налагодження — налагоджувач тепер, де можливо, передає дані безпосередньо зі стека USB, уникаючи зайвого копіювання.
Оновлено підмодуль MicroPython — плати можуть змінювати розмір CDC-буфера TinyUSB, а також виправлення GC та правил збирання.
Виправлення помилок¶
Камера та датчики:
Виправлено шаблон Bayer/CFA OV7725 (GBRG → BGGR), що усунуло некоректний колірний вивід при декодуванні Баєра на камерах OV7725; OV7725 тепер повідомляє піксельний формат Bayer, а датчики лише з Bayer тепер повідомляють глибину джерела 1 байт на піксель.
Виправлено розрахунок розміру кадрового буфера для raw/Bayer.
Машинне навчання:
TensorFlow Lite Micro тепер використовує вільну пам’ять купини GC при визначенні розміру тимчасової арени тензорів, запобігаючи помилкам виділення при завантаженні моделі на платах з обмеженою пам’яттю кадрового буфера.
Хост / IDE:
Виправлено обробку CDC-буфера USB-налагодження на платах TinyUSB для надійнішої пропускної здатності послідовного/налагоджувального каналу.
tools/pyopenmv: виправлено порядок байтів RGB565, додано аргументscale, а інструмент кадрового буфера тепер повідомляє розмір/формат зображення.
Підтримка апаратного забезпечення та плат¶
OV7725 тепер повідомляє піксельний формат Bayer (правильна обробка raw/CFA).
Апаратне кадрування увімкнено для всього діапазону плат STM32/NXP.
Несумісні зміни API¶
Видимі для користувача несумісні зміни API між v4.5.8 та v4.5.9. Область охоплення: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.
Кожна зміна позначена за рівнем впливу:
minor — вузький API; стосується лише скриптів, що його використовували.
behavior — той самий API, інші результати; перевірте налаштовані скрипти.
Зміни згруповані за рівнем впливу у такому порядку. Якщо вам потрібно лише перенести код, перейдіть до контрольного списку міграції наприкінці. Кожен хеш коміту веде до його diff на GitHub.
Об’єкти результатів AprilTag та set_buffers (minor)¶
Результати AprilTag з find_apriltags() тепер надають дані через атрибути замість методів — використовуйте tag.cx, tag.cy, tag.rotation, tag.family, tag.corners замість tag.cx(), tag.family() тощо. Додано нові аксесори name (рядок назви сім’ї) та cxf / cyf з точністю float.
Окремо змінилося автоматичне налаштування відеобуфера: set_buffers замінює auto_adjust — передайте -1 для використання до трьох буферів розміром кадру (або стількох, скільки вміщується) та 1 для використання всього кадрового буфера. Розмір буфера тепер враховує кількість біт на піксель, тому для форматів 1 bpp можна виділити більше буферів.
ble_advertising та RPC через мережу вилучено (minor)¶
Допоміжна бібліотека ble_advertising та приклад ble_temperature.py вилучені — використовуйте aioble (надається приклад температури на aioble). Класи мережевих master/slave RPC вилучено з rpc.py.
Сім’ї AprilTag вимкнено за замовчуванням (behavior)¶
Сім’ї AprilTag тепер вибираються індивідуально під час компіляції, а невикористовувані вимкнені за замовчуванням. На стандартних платах find_apriltags() тепер виявляє лише сім’ю TAG36H11, якщо мікропрограма не зібрана з іншими увімкненими сім’ями. Скрипти, що покладаються на інші сім’ї (TAG16H5, TAG25H9, …) у стандартній збірці, тихо припинять їх виявляти.
Коміт: effe12f2c
Контрольний список міграції¶
Для чистого переходу на v4.5.9 зазвичай потрібно виконати такі дії:
Змінити доступ до результатів AprilTag з викликів методів на атрибути (
tag.cx()→tag.cx) та замінитиauto_adjustнаset_buffers(зміни AprilTag / буфера).Замінити
ble_advertisingнаaiobleта відмовитися від використання мережевих master/slave RPC (видалення).Якщо ви використовуєте сім’ї AprilTag, відмінні від
TAG36H11, у стандартній збірці, зверніть увагу, що вони більше не виявляються за замовчуванням (зміна сімей AprilTag).