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 в общий каталог ресурсов и предварительного прогрева pycacheblhostдля 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)