v4.7.0

v4.7.0 — це масштабний випуск, орієнтований на NPU та ROMFS, побудований на Qt Creator 14.0.2. Він вводить робочий процес ROM-файлової системи на пристрої з інтегрованими компіляторами моделей ARM Ethos-U (Vela) та ST Edge AI, додає заводське програмування на основі STM32CubeProgrammer для OpenMV N6, а також включає мікропрограму OpenMV 4.7.0 для всіх плат. Зверніть увагу, що оновлення будь-якої камери з мікропрограми, старішої за 4.7.0, тепер примусово виконує очищення файлової системи FAT та скидання ROMFS, що призводить до видалення файлів, збережених у внутрішній флеш-пам’яті пристрою; дивіться розділ Критичні зміни нижче.

Основні можливості

  • Робочий процес ROM File System дозволяє створювати, редагувати, прошивати та скидати файлову систему тільки для читання на пристрої, щоб моделі МН можна було зберігати на камері; інтегровано з завантажувачами DFU, IMX, Bossac, Picotool та Arduino-DFU. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)

  • Компілятори моделей ARM Ethos-U Vela та ST Edge AI тепер інтегровано, тому моделі .tflite/.onnx автоматично компілюються для NPU при завантаженні на плати з Ethos-U55 (OpenMV AE3) або Neural-ART (OpenMV N6). (411f708ea, 3064411ad)

  • STM32CubeProgrammer тепер включено до комплекту для заводського програмування завантажувача OpenMV N6 (STM32N657) через файл FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)

  • У браузері Model Zoo з’явився прапорець «Фільтрувати моделі за типом плати», що керується новою таблицею models/index.csv і приховує моделі, несумісні з підключеною платою. (80adb2079)

  • Вирівнювання ROMFS за розширенням: редактор зображень ROMFS тепер сортує файли в алфавітному порядку та упаковує їх з правилами байтового вирівнювання з settings.json (наприклад, моделі .tflite вирівнюються до 16 байт). (e87b2bf06)

  • Вбудована мікропрограма оновлена до 4.7.0 для всіх плат OpenMV та Arduino. (6d04b1b50, d0bbb1fe7, d7d3120b3)

Нові функції

  • Підменю ROM File System (New / Open / Edit ROMFS on OpenMV Cam / Reset ROMFS on OpenMV Cam) замінює стару окрему дію Edit ROM File System. (0bc275a0a, 958f732b5)

  • Браузер Open Model Zoo зі збереженням стану вибраної моделі та попереднім переглядом при зміні вибору, включаючи вбудовані бібліотеки моделей STMicroelectronics, Qualcomm, DeGirum, Edge Impulse та Google. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)

  • Пункт меню Convert Model for NPU у Machine Vision Tools компілює модель TensorFlow Lite (.tflite) або ONNX (.onnx) для прискорювача NPU плати (Vela для Ethos-U .tflite, ST Edge AI для N6 Neural-ART .tflite/.onnx) та зберігає конвертовану модель на диск або камеру. (3913f5b8b)

  • Інструмент Copy/Convert Python File копіює скрипт Python на камеру або диск та за необхідності крос-компілює його до байт-коду MicroPython .mpy за допомогою mpy-cross; він розташований у новому підменю MicroPython Tools у Tools. (e9d7fa143, 47188c0e3)

  • До серійного термінала OpenMV та панелі виводу General Messages додано кнопки-перемикачі Wrap Text; обидва переносять виведення по словах та зберігають налаштування між сесіями. (8c052845a, 51d3e1ad6)

  • Крос-компіляція mpy-cross ROMFS з прапорцями архітектури для кожної плати (armv7emsp/armv7emdp) дозволяє заморожувати скрипти MicroPython у зображення ROMFS. (8c71548df)

  • Діалог завантажувача мікропрограми тепер приймає файли ROMFS *.img разом з *.bin та *.dfu, перевіряє розширення для кожного завантажувача та вимикає прапорець Reset ROMFS file system при завантаженні файлу *.img. (79f348b36)

  • Оновлення з версій, старших за 4.7.0, тепер примусово встановлюють прапорці очищення FAT та скидання/оновлення ROMFS та попереджають, що оновлення потребує очищення файлової системи FAT. (f6f3355b0)

Інші зміни та покращення

  • Перероблено вбудований зоопарк моделей Qualcomm у теки за типами завдань (image_classification, object_detection, pose_estimation, semantic_segmentation, depth_estimation), видалено непідтримувані великі моделі (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2), додано resnet18 та densenet_121 (з ширшою сумісністю плат), а також facemap_3dmm та FFNet_40S (лише для AE3/N6). (300ce2fc2)

  • Додано нового постачальника моделей Edge Impulse (модель виявлення обличчя FOMO) та нові моделі Google (micro_speech, mnist_lstm, person_detection) до вбудованого зоопарку моделей, а також дію View/Edit до контекстного меню редактора ROMFS. (80adb2079)

  • Впорядковано посилання зоопарку моделей: додано модель Qualcomm face_attrib_net (AE3/N6), видалено неробочий запис YOLO-NAS та виправлено фільтри сумісності плат для кількох моделей виявлення об’єктів STMicroelectronics. (fd639bda0)

  • Додано більше міток моделей, змінено конфігурацію прискорювача NPU однієї моделі з stai на stedgeai та розширено фільтр сумісності плат st_yolo_x (тепер також OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 та NICLA_VISION на додаток до AE3/N6). (1515631ce)

  • Додавання моделі .tflite до ROMFS тепер пропускає компіляцію Vela/Ethos-U, якщо модель вже скомпільована для Ethos-U (вона просто копіюється), а дія у діалозі перейменована з Add Model на Model Zoo. (9c0b178fa)

  • Компіляція ST Edge AI пропускає конвертацію для моделей, що вже мають формат NBIN. (3064411ad)

  • Діалог компілятора Vela аналізує заявлене використання SRAM моделлю порівняно з налаштованим розміром купи кожної плати та показує відсоток із попередженнями/помилками, коли модель перевищує 90% або 100% доступної купи. (7140fc2aa)

  • Компілятор Vela тепер виводить зрозумілу помилку «не підтримується на цій платформі» замість тихого збою, а перетягування моделі до зоопарку моделей більше не вимагає наявності Vela. (c736dd54d, 0ad7fd705)

  • Компілятор Vela Ethos-U тепер запускається через вбудоване середовище Python (python -m ethosu.vela) замість окремого виконуваного файлу. (52f9b8820)

  • Діалоги тривалої компіляції моделей ST Edge AI та Vela тепер показують повідомлення «This command takes a while to execute. Please be patient.». (fc9ac2ab5)

  • Відкриття прикладів або нових скриптів для датчиків PAG7936 (N6/AE3) та PS5520 тепер автоматично збільшує sensor.set_framesize(QVGA) до VGA для датчиків з більшою роздільною здатністю. (dfc27dd25)

  • Додано автоматичне виправлення прикладних скриптів для теплових камер FLIR Boson 320/640, PixArt PAG7920/PAJ6100, FROGEYE2020 та подієвої камери Prophesee GENX320. (1f54ad01b)

  • Завантажувані ресурси IDE (мікропрограма/моделі/документація) тепер встановлюються до спільної директорії даних програми для всіх користувачів через новий API ICore::allUsersResourcePath(), а маніфест версії ресурсів зберігається у файлі OpenMVIDE.json на один рівень вище папки ресурсів для всіх користувачів. (be308ace2, 7c7dddb87)

  • Під час оновлення системного пакету мікропрограми Alif IDE тепер пропонує користувачу вимкнути та увімкнути (відключити та підключити знову) камеру перед продовженням. (162d128f9, 756611696)

  • Перероблено процес завантаження завантажувача/мікропрограми Alif (Ensemble) для сумісності з ROMFS: він генерує App TOC після запису завантажувача, копіює образи bin/sign до підпапки images/ та прошиває firmware_pad.toc. (f623c9231)

  • Спрощено відображувані назви плат у селекторі мікропрограм шляхом видалення надлишкових суфіксів з назвою чіпа у дужках та тегів «Legacy» (наприклад, «OpenMV Cam H7 (STM32H743)» стає «OpenMV Cam H7»). (334b04dbd)

  • Перейменовано дві дії меню «Tools» для ясності: Run Bootloader (Load Firmware) тепер називається Load Custom Firmware, а Erase Onboard Data FlashErase Internal FAT File System (у діалозі підтвердження тепер згадується внутрішня файлова система FAT камери). (0bc275a0a)

  • Відновлено комбінації клавіш Ctrl+Shift+L (Load Custom Firmware) та Ctrl+Shift+E (Erase Internal FAT File System), а пункт Preferences повернено до меню Edit. (dabb6f7d9, b5daf59a6)

  • Вимкнено автоматичне визначення компілятора C/C++ та набору інструментів при запуску, оскільки IDE орієнтовано на MicroPython. (f42fcc8f2)

  • Додано логотип партнера Alif Semiconductor (світла/темна версія) до розділу партнерів діалогу About. (4878781bb)

  • Зчитування мікропрограми підключеної плати тепер може очищати застарілі дані послідовного порту перед виконанням команди, що підвищує надійність запитів мікропрограми/версії. (c15a46f5b)

  • Покращено надійність підключення ROMFS шляхом примусового перепідключення/оновлення при операціях читання, запису та скидання ROMFS. (f9bc83007)

Виправлення помилок

  • Виправлено діалоги збереження моделей/скриптів та додавання файлів/моделей до ROMFS, щоб використовувати простий суфікс файлу замість повного суфікса, що запобігає спотворенню розширень при перейменуванні файлів з крапками в назвах. (52c6820d2)

  • Виправлено переповнення індикатора виконання DFU при великих передачах шляхом обчислення відсотка з 64-бітною арифметикою. (4b91ff2ba)

  • Виправлено прошивку старих мікропрограм/завантажувачів OpenMV шляхом захисту кроків очищення та програмування флеш-пам’яті від невалідних (невід’ємних) діапазонів секторів та виведення явної помилки замість збою, а також виправлено захист доступу до ROMFS під час оновлення старої мікропрограми. (ae2cc15b4, 235dbdb10)

  • Виправлено визначення плати за послідовним портом: інверсний фільтр серійних номерів тепер застосовується лише під час перевірки порту (не під час підключення), а також додано інверсні фільтри для плати i.MX для виключення серійних номерів у режимі завантажувача. (ae2cc15b4)

  • Виправлено збереження типу плати, щоб раніше збережений маппінг плати більше не перезаписувався при ручному виборі типу плати. (c42d36001)

  • Відновлення завантажувача тепер правильно перетворює відображувану назву прихованої плати на рядок архітектури, щоб перепідключення/відновлення мікропрограми відповідало правильній платі. (a1de7a09c)

  • Визначення плати тепер порівнює рядки архітектури плати без урахування регістру. (7a2e0e93f)

  • Виправлено помилку монтування диска пристрою при швидкому відключенні/підключенні шляхом збереження потоку сканування дисків та повторних спроб сканування дисків до трьох разів, а також забезпечено надійне виконання сканування дисків у потоці сканування. (455dbe967, 58c0e5456)

  • Виправлено помилку запуску компілятора моделей (ST Edge AI та Vela) на Intel Mac шляхом дозволу використання шляху до ARM64-інструменту при роботі під Rosetta. (32e309e86)

  • Виправлено проблеми кешу інструментів Python та мовного сервера шляхом перенаправлення всіх вбудованих __pycache__ Python до спільної директорії ресурсів та попереднього прогріву кешу pycache blhost для i.MX перед обмеженим за часом підключенням до завантажувача, щоб прошивка більше не завершувалась з тайм-аутом. (f64f3330f)

  • Виправлено шлях до заголовків MicroPython, що використовується мовним сервером Python (для автодоповнення), для визначення з шляху ресурсів усіх користувачів, а також покращено пошук шляху ресурсів усіх користувачів у випадку, коли фільтрація за іменем користувача нічого не знаходить. (5f2648565, fc1938818)

  • Виправлено непрацюючі посилання на документацію ST Edge AI у діалозі параметрів компілятора шляхом перетворення локальних шляхів до файлів на правильні URL-адреси file://. (3ac136444)

  • Виправлено автоматичне відступання у редакторі Python, щоб рядки більше не відступалися неправильно після рядка, що закінчується двокрапкою (електричний рядок), наприклад після заголовків if/for/def. (6555f44ba)

  • Виправлено вирівнювання записів директорій ROMFS, щоб зміщення папок враховували розмір запису імені директорії, а також збільшено затримку між файлами при розпакуванні/створенні файлів ROMFS та зоопарку моделей для забезпечення різних часових міток створення. (9bf7e1d9e, d968a6e46)

  • Виправлено переповнення цілих чисел у конвертері mean-to-depthwise-conv оптимізатора графів Vela шляхом обчислення множника виведення у 64-бітному форматі, а також виправлено базове ім’я, що використовується у заголовку/виведенні діалогу компілятора Vela. (d217a46e9, 8376490eb)

  • Виправлено відновлення розгорнутих папок та вибраної моделі у браузері зоопарку моделей при повторному відкритті, а також переключено діалог на виділення купи для уникнення проблем з часом життя GUI. (84a63ef4c)

  • Виправлено шлях збереження Model Zoo, щоб запам’ятована директорія зберігалася як папка, а не як повне ім’я файлу. (be877f7af)

  • Збережено застарілий шлях до ресурсів користувача замість його видалення при запуску, що уникає помилки «close any programs viewing OpenMV IDE data» при блокуванні старої папки. (775656775)

  • Виправлено скрипти встановлення драйверів Windows та файли catalog/inf, щоб драйвери OpenMV DFU, dfuse, FTDI, Arduino, pybcdc та VCR встановлювалися надійно та правильно повідомляли коди успіху, посилено скрипти встановлення DFU-драйверів dfuse/vcr та повторно підписано вбудовані каталоги драйверів OpenMV DFU. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)

  • Виправлено встановлювач Linux для встановлення pyusb через пакет дистрибутива python3-usb та додавання build-essential замість запуску pip install pyusb, а також для визначення ОС через /etc/os-release. (c471ddc42, 4014a0ba5)

  • Встановлювач Windows тепер вмикає підтримку довгих шляхів, щоб глибоко вкладені файли ST Edge AI встановлювалися коректно. (0b3ca6945)

Підтримка платформ та інструментів

  • Базова версія Qt Creator: 14.0.2.

  • Вбудована мікропрограма OpenMV: оновлена до 4.7.0 для всіх плат OpenMV та Arduino (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); мікропрограма перебудована з підтримкою ROMFS (romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)

  • OpenMV N6 ROMFS: збільшено з 16МБ до 24МБ, образ romfs переміщено до DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)

  • OpenMV AE3 ROMFS: збільшено з 16МБ до 24МБ, додано правила вирівнювання 16/32 байт для вбудованих файлів моделей .bin на всіх платах. (746da8914)

  • STM32CubeProgrammer (STM32_Programmer_CLI) включено до комплекту для macOS, Linux та Windows з повною базою даних пристроїв STM32 та зовнішніми завантажувачами для заводського програмування N6; встановлення скорочено шляхом видалення невикористовуваних зовнішніх завантажувачів та файлів баз даних по MCU для зменшення розміру. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)

  • Компілятор ST Edge AI (stedgeai) 2.1.0 включено до комплекту (Windows) для NPU N6 Neural-ART. (3064411ad)

  • Компілятор ARM Ethos-U Vela 4.2.0 (з numpy 2.2.4) включено до комплекту для Linux x86-64, macOS (Apple silicon) та Windows. Пакет для Windows був спочатку доданий у версії Vela 4.1.0 / numpy 2.2.3, а потім оновлений до фінальної 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)

  • mpy-cross 1.25.0.post2 включено до комплекту (macOS/Windows). (8c71548df, 3ab42d58a)

  • Alif Security Toolkit: оновлено до v1.104.0 (підписані виконувані файли setools та посібник користувача v1.104.0 у форматі PDF) для плат на базі Alif Ensemble. (43260719c, 75a58e61b)

  • Додано конфігурації NPU OPENMV_AE3 (Alif Ensemble), орієнтовані на прискорювачі ethos-u55-256 та ethos-u55-128 з конфігураціями системи RTSS HP/HE SRAM/MRAM/OSPI. (1f5fc546d, 411f708ea)

  • Додано схеми розпіновки для камер OpenMV N6 та AE3 (датчик PAG7936) до селектора розпіновки, а також новий приклад події камери Genx320 у відтінках сірого, що демонструє налаштування фільтра анти-мерехтіння. (60184bbc5, 6d04b1b50)

  • Оновлено відповідність USB PID для Arduino Nicla Vision для розпізнавання нового PID програми (0x055F) разом з оригінальним (0x045F). (91ce4007c)

  • Оновлено параметри прошивки захищеного завантажувача NXP/blhost для використання явної адреси/довжини FCB та розміру диска MBR відповідно до останнього інструментарію spsdk. (16b66c3e2)

  • Встановлювач Windows тепер включає спеціальний драйвер завантажувача STM32 DFU та розповсюджувані пакети Microsoft Visual C++ 2015+. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)

  • Видалено вбудований зоопарк моделей DeGirum YOLOv5/YOLOv8 з IDE. (26710be1c)

Критичні зміни

Видимі для користувача зміни робочого процесу та поведінки у v4.7.0. Змін у API скриптування немає, але зверніть увагу на наступне:

  • Файлова система FAT очищується при оновленні з версій, старших за 4.7.0. Оновлення будь-якої OpenMV Cam з мікропрограми, старішої за 4.7.0, тепер примусово очищує файлову систему FAT та скидає/оновлює ROMFS під час оновлення мікропрограми (прапорці у діалозі примусово встановлені та не можуть бути вимкнені), тому файли користувача, збережені у внутрішній флеш-пам’яті пристрою, будуть видалені при оновленні. (f6f3355b0)

  • Видалено мікропрограму UVC та бінарні файли завантажувача Portenta H7. Попередньо зібрані образи мікропрограми UVC (uvc.bin/dfu/elf) видалено для всіх плат, а бінарні файли завантажувача Arduino Portenta H7 видалено з комплекту; ці попередньо зібрані образи більше не можна прошити з IDE. (c44e33d70)

  • Переміщення директорії ресурсів. Завантажувані ресурси IDE (мікропрограма, зоопарк моделей, документація) тепер встановлюються до спільної директорії даних програми для всіх користувачів замість шляху ресурсів конкретного користувача, а маніфест версії переміщено з QSettings до файлу OpenMVIDE.json, що зберігається на один рівень вище папки ресурсів для всіх користувачів (зі зворотньо-сумісним відображенням QSettings). Перезавантаження ресурсів запускається при першому запуску після оновлення. (be308ace2, 7c7dddb87)