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 позволяет создавать, редактировать, прошивать и сбрасывать доступную только для чтения файловую систему на устройстве, чтобы ML-модели можно было хранить на камере; интегрирован с загрузчиками 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 (New / Open / Edit ROMFS on OpenMV Cam / Reset ROMFS on OpenMV Cam) заменяет старое единое действие Edit ROM File System. (0bc275a0a, 958f732b5)

  • Откройте браузер 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)

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

  • Кросс-компиляция ROMFS через mpy-cross с флагами архитектуры для каждой платы (armv7emsp/armv7emdp) позволяет замораживать скрипты MicroPython в образы ROMFS. (8c71548df)

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

  • Обновления с версии до 4.7.0 теперь принудительно включают флажки стирания FAT и сброса/обновления ROMFS и предупреждают, что обновление требует стирания файловой системы FAT. (f6f3355b0)

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

  • Реорганизован встроенный model zoo 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) во встроенный model zoo, а также добавлено действие View/Edit в контекстное меню редактора ROMFS. (80adb2079)

  • Очищены ссылки в model zoo: добавлена модель 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 теперь сообщает понятную ошибку «not supported on this platform» вместо тихого сбоя, а перетаскивание модели в model zoo больше не требует наличия 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 Flash теперь Erase 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 и model zoo для обеспечения различных временных меток создания. (9bf7e1d9e, d968a6e46)

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

  • Исправлено восстановление развёрнутых папок и выбранной модели в браузере model zoo при повторном открытии, и диалог переключён на выделение в куче во избежание проблем с временем жизни 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)

  • ROMFS OpenMV N6: увеличен с 16 МБ до 24 МБ, образ romfs перемещён в DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)

  • ROMFS OpenMV AE3: увеличен с 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) для N6 Neural-ART NPU. (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 и PDF-руководство пользователя v1.104.0) для плат на базе 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)

  • Удалён встроенный model zoo 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 (прошивка, model zoo, документация) теперь устанавливаются в общий каталог данных приложения для всех пользователей вместо пути к ресурсам отдельного пользователя, а манифест версий перемещён из QSettings в файл OpenMVIDE.json, хранящийся на уровень выше папки общих ресурсов (с обратносовместимым зеркалированием в QSettings). Повторная загрузка ресурсов запускается при первом запуске после обновления. (be308ace2, 7c7dddb87)