v4.7.0¶
v4.7.0 là một bản phát hành lớn tập trung vào NPU và ROMFS, được xây dựng trên nền Qt Creator 14.0.2. Bản phát hành này giới thiệu quy trình làm việc với hệ thống tệp ROM trên thiết bị, tích hợp trình biên dịch mô hình ARM Ethos-U (Vela) và ST Edge AI, bổ sung tính năng lập trình nhà máy dựa trên STM32CubeProgrammer cho OpenMV N6, và đóng gói firmware OpenMV 4.7.0 cho tất cả các bo mạch. Lưu ý rằng việc nâng cấp bất kỳ camera nào từ firmware trước 4.7.0 sẽ buộc xóa hệ thống tệp FAT và đặt lại ROMFS, làm mất các tệp lưu trên bộ nhớ flash nội bộ của thiết bị; xem phần Thay đổi không tương thích bên dưới.
Điểm nổi bật¶
Quy trình làm việc với ROM File System cho phép bạn tạo, chỉnh sửa, nạp và đặt lại hệ thống tệp chỉ đọc trên thiết bị để lưu trữ các mô hình ML trên camera, tích hợp qua các bootloader DFU, IMX, Bossac, Picotool và Arduino-DFU. (efcc52fd8, f2cbcc802, a7e52424a, 60b05326d, 7140fc2aa)
Các trình biên dịch mô hình ARM Ethos-U Vela và ST Edge AI đã được tích hợp, cho phép các mô hình
.tflite/.onnxtự động được biên dịch sang NPU khi tải lên bo mạch Ethos-U55 (OpenMV AE3) hoặc Neural-ART (OpenMV N6). (411f708ea, 3064411ad)STM32CubeProgrammer hiện được đóng gói sẵn để cho phép lập trình nhà máy bootloader OpenMV N6 (STM32N657) thông qua tệp
FlashLayout.tsv. (334b04dbd, 54fea4d57, 28cc94a6e)Trình duyệt Model Zoo có thêm hộp kiểm "Lọc mô hình theo loại bo mạch" được điều khiển bởi bảng
models/index.csvmới, ẩn các mô hình không tương thích với bo mạch đang kết nối. (80adb2079)Căn chỉnh ROMFS theo từng phần mở rộng: trình soạn thảo ảnh ROMFS nay sắp xếp các tệp theo thứ tự bảng chữ cái và đóng gói chúng theo quy tắc căn chỉnh byte từ
settings.json(ví dụ: mô hình.tfliteđược căn chỉnh theo 16 byte). (e87b2bf06)Firmware đóng gói đã được cập nhật lên 4.7.0 cho tất cả các bo mạch OpenMV và Arduino. (6d04b1b50, d0bbb1fe7, d7d3120b3)
Tính năng mới¶
Trình đơn con ROM File System (
New/Open/Edit ROMFS on OpenMV Cam/Reset ROMFS on OpenMV Cam) thay thế hành độngEdit ROM File Systemđơn lẻ trước đây. (0bc275a0a, 958f732b5)Trình duyệt Open Model Zoo với trạng thái mô hình đã chọn được lưu lại và xem trước khi thay đổi lựa chọn, bao gồm các thư viện mô hình đóng gói sẵn từ STMicroelectronics, Qualcomm, DeGirum, Edge Impulse và Google. (58033c5df, 2a1fb071a, 48c5b96fe, c0959833c)
Mục Convert Model for NPU trong trình đơn
Machine Vision Toolsbiên dịch mô hình TensorFlow Lite (.tflite) hoặc ONNX (.onnx) cho bộ tăng tốc NPU của bo mạch (Vela cho Ethos-U.tflite, ST Edge AI cho N6 Neural-ART.tflite/.onnx) và lưu mô hình đã chuyển đổi ra đĩa hoặc camera. (3913f5b8b)Công cụ Copy/Convert Python File sao chép một tập lệnh Python vào camera hoặc đĩa và tùy chọn biên dịch chéo sang bytecode MicroPython
.mpythông quampy-cross; công cụ này nằm trong trình đơn conMicroPython Toolsmới thuộcTools. (e9d7fa143, 47188c0e3)Các nút bật/tắt Wrap Text đã được thêm vào terminal serial OpenMV và ngăn đầu ra
General Messages; cả hai đều xuống dòng tự động và lưu cài đặt qua các phiên. (8c052845a, 51d3e1ad6)Biên dịch chéo mpy-cross cho ROMFS với các cờ kiến trúc theo từng bo mạch (
armv7emsp/armv7emdp) cho phép đóng băng các tập lệnh MicroPython vào ảnh ROMFS. (8c71548df)Hộp thoại bootloader firmware nay chấp nhận các tệp ROMFS
*.imgbên cạnh*.binvà*.dfu, xác thực phần mở rộng theo từng loại bootloader, và vô hiệu hóa hộp kiểmReset ROMFS file systemhiện có khi tải tệp*.img. (79f348b36)Khi nâng cấp từ trước 4.7.0, các hộp kiểm xóa FAT và đặt lại/cập nhật ROMFS sẽ bị bật bắt buộc và hiển thị cảnh báo rằng việc nâng cấp yêu cầu xóa hệ thống tệp FAT. (f6f3355b0)
Các thay đổi và cải tiến khác¶
Tổ chức lại vườn mô hình Qualcomm đóng gói sẵn thành các thư mục theo tác vụ (
image_classification,object_detection,pose_estimation,semantic_segmentation,depth_estimation), loại bỏ các mô hình lớn không được hỗ trợ (YOLOv7, YOLOv8, deeplabv3, mobilenet_v2), và thêmresnet18vàdensenet_121(tương thích với nhiều bo mạch hơn), cùngfacemap_3dmmvàFFNet_40S(chỉ dành cho AE3/N6). (300ce2fc2)Thêm nhà cung cấp mô hình Edge Impulse mới (mô hình phát hiện khuôn mặt FOMO) và các mô hình Google mới (
micro_speech,mnist_lstm,person_detection) vào vườn mô hình đóng gói sẵn, và thêm hành độngView/Editvào trình đơn ngữ cảnh của trình soạn thảo ROMFS. (80adb2079)Dọn dẹp các liên kết vườn mô hình: thêm mô hình
face_attrib_netcủa Qualcomm (AE3/N6), xóa mục YOLO-NAS bị lỗi, và sửa bộ lọc tương thích bo mạch cho một số mô hình phát hiện đối tượng của STMicroelectronics. (fd639bda0)Thêm nhiều nhãn mô hình hơn, chuyển cấu hình bộ tăng tốc NPU của một mô hình từ
staisangstedgeai, và mở rộng bộ lọc tương thích bo mạch củast_yolo_x(nay bao gồm thêm OPENMV_RT1060, OPENMV4P, ARDUINO_GIGA, PORTENTA_H7 và NICLA_VISION bên cạnh AE3/N6). (1515631ce)Khi thêm mô hình
.tflitevào ROMFS, việc biên dịch Vela/Ethos-U sẽ bị bỏ qua nếu mô hình đã được biên dịch cho Ethos-U (chỉ sao chép), và hành động trong hộp thoại đã được đổi tên từAdd ModelthànhModel Zoo. (9c0b178fa)Quá trình biên dịch ST Edge AI bỏ qua việc chuyển đổi các mô hình đã ở định dạng
NBIN. (3064411ad)Hộp thoại trình biên dịch Vela phân tích mức sử dụng SRAM được báo cáo của mô hình so với kích thước heap đã cấu hình của từng bo mạch và hiển thị tỷ lệ phần trăm kèm cảnh báo/lỗi khi mô hình vượt quá 90% hoặc 100% heap khả dụng. (7140fc2aa)
Trình biên dịch Vela nay hiển thị lỗi rõ ràng "không được hỗ trợ trên nền tảng này" thay vì thất bại lặng lẽ, và việc kéo thả mô hình vào vườn mô hình không còn yêu cầu Vela phải có mặt. (c736dd54d, 0ad7fd705)
Trình biên dịch Vela Ethos-U nay chạy thông qua môi trường Python nhúng đóng gói sẵn (
python -m ethosu.vela) thay vì một tệp nhị phân độc lập. (52f9b8820)Các hộp thoại biên dịch mô hình ST Edge AI và Vela có thời gian chạy dài nay hiển thị thông báo "Lệnh này mất một lúc để thực thi. Vui lòng chờ đợi.". (fc9ac2ab5)
Khi mở các ví dụ hoặc tập lệnh mới trên cảm biến PAG7936 (N6/AE3) và PS5520, IDE tự động nâng
sensor.set_framesize(QVGA)lênVGAcho các cảm biến có độ phân giải cao hơn. (dfc27dd25)Thêm tính năng tự động sửa tập lệnh ví dụ cho camera nhiệt FLIR Boson 320/640, PixArt PAG7920/PAJ6100, FROGEYE2020 và camera sự kiện Prophesee GENX320. (1f54ad01b)
Các tài nguyên IDE có thể tải xuống (firmware/mô hình/tài liệu) nay được cài đặt vào thư mục dữ liệu ứng dụng dùng chung cho tất cả người dùng thông qua API
ICore::allUsersResourcePath()mới, với tệp kê khai phiên bản tài nguyên được lưu trong tệpOpenMVIDE.jsonmột cấp trên thư mục tài nguyên dùng chung. (be308ace2, 7c7dddb87)Trong quá trình cập nhật firmware gói hệ thống Alif, IDE nay nhắc người dùng khởi động lại nguồn (ngắt kết nối và kết nối lại) camera trước khi tiếp tục. (162d128f9, 756611696)
Cải tổ luồng tải xuống bootloader/firmware Alif (Ensemble) để tương thích ROMFS: tạo App TOC sau khi ghi bootloader, sao chép ảnh bin/sign vào thư mục con
images/, và nạpfirmware_pad.toc. (f623c9231)Đơn giản hóa tên hiển thị bo mạch trong bộ chọn firmware bằng cách bỏ hậu tố chip-trong-ngoặc thừa và nhãn "Legacy" (ví dụ: "OpenMV Cam H7 (STM32H743)" trở thành "OpenMV Cam H7"). (334b04dbd)
Đổi tên hai hành động trong trình đơn Tools để rõ nghĩa hơn:
Run Bootloader (Load Firmware)nay làLoad Custom Firmware, vàErase Onboard Data Flashnay làErase Internal FAT File System(hộp thoại xác nhận nay đề cập đến hệ thống tệp FAT nội bộ của camera). (0bc275a0a)Khôi phục các phím tắt
Ctrl+Shift+L(Load Custom Firmware) vàCtrl+Shift+E(Erase Internal FAT File System), và đưa mụcPreferencestrở lại trình đơnEdit. (dabb6f7d9, b5daf59a6)Vô hiệu hóa tính năng tự động phát hiện trình biên dịch C/C++ và chuỗi công cụ khi khởi động, vì IDE hướng tới MicroPython. (f42fcc8f2)
Thêm logo đối tác Alif Semiconductor (sáng/tối) vào phần đối tác của hộp thoại
About. (4878781bb)Việc đọc firmware của bo mạch đang kết nối nay có thể xóa dữ liệu cổng serial cũ trước khi thực hiện lệnh, cải thiện độ tin cậy của các truy vấn firmware/phiên bản. (c15a46f5b)
Cải thiện độ tin cậy kết nối ROMFS bằng cách buộc kết nối lại/làm mới trong các thao tác đọc, ghi và đặt lại ROMFS. (f9bc83007)
Sửa lỗi¶
Sửa các hộp thoại lưu mô hình/tập lệnh và chức năng thêm tệp/thêm mô hình vào ROMFS để sử dụng hậu tố tệp đơn giản thay vì hậu tố đầy đủ, tránh bị méo phần mở rộng khi đổi tên tệp có dấu chấm trong tên. (52c6820d2)
Sửa lỗi tràn thanh tiến trình DFU khi truyền dữ liệu lớn bằng cách tính tỷ lệ phần trăm với số học 64-bit. (4b91ff2ba)
Sửa lỗi nạp firmware/bootloader OpenMV cũ bằng cách bảo vệ các bước xóa và lập trình flash khỏi phạm vi sector flash không hợp lệ (không dương) và hiển thị lỗi rõ ràng thay vì bị treo, đồng thời sửa lỗi bảo vệ truy cập ROMFS khi nâng cấp firmware cũ. (ae2cc15b4, 235dbdb10)
Sửa lỗi phát hiện bo mạch qua cổng serial để bộ lọc nghịch đảo số serial chỉ được áp dụng trong quá trình xác thực cổng (không phải khi kết nối), và thêm bộ lọc nghịch đảo cho bo mạch i.MX để loại trừ số serial ở chế độ bootloader. (ae2cc15b4)
Sửa lỗi lưu giữ loại bo mạch để ánh xạ bo mạch đã lưu trước đó không còn bị ghi đè khi thực hiện lựa chọn loại bo mạch thủ công. (c42d36001)
Chức năng sửa chữa bootloader nay phân giải tên hiển thị của bo mạch ẩn thành chuỗi kiến trúc để việc kết nối lại/sửa chữa firmware ánh xạ đúng bo mạch. (a1de7a09c)
Tính năng phát hiện bo mạch nay so khớp chuỗi kiến trúc bo mạch không phân biệt chữ hoa/thường. (7a2e0e93f)
Sửa lỗi ổ đĩa thiết bị không mount được khi ngắt kết nối/kết nối lại nhanh bằng cách duy trì luồng quét ổ đĩa và thử lại quét ổ đĩa tối đa ba lần, đồng thời đảm bảo quét ổ đĩa chạy đúng trên luồng quét. (455dbe967, 58c0e5456)
Sửa lỗi trình biên dịch mô hình (ST Edge AI và Vela) không chạy được trên Mac Intel bằng cách cho phép đường dẫn công cụ ARM64 khi chạy dưới Rosetta. (32e309e86)
Sửa các vấn đề bộ nhớ đệm công cụ và máy chủ ngôn ngữ Python bằng cách chuyển toàn bộ
__pycache__của Python đóng gói sẵn vào thư mục tài nguyên dùng chung và khởi động trước bộ nhớ đệm pycache của i.MXblhosttrước khi kết nối bootloader có giới hạn thời gian, để quá trình nạp firmware không bị hết thời gian chờ. (f64f3330f)Sửa đường dẫn header MicroPython được máy chủ ngôn ngữ Python sử dụng (để tự động hoàn thành mã) để phân giải từ đường dẫn tài nguyên dùng chung, và làm cho việc tra cứu đường dẫn tài nguyên dùng chung ổn định hơn khi bộ lọc tên người dùng không tìm thấy kết quả. (5f2648565, fc1938818)
Sửa các liên kết tài liệu ST Edge AI bị hỏng trong hộp thoại tùy chọn trình biên dịch bằng cách chuyển đổi đường dẫn tệp cục bộ thành URL
file://đúng định dạng. (3ac136444)Sửa lỗi tự động thụt lề trong trình soạn thảo Python để các dòng không còn bị thụt lùi sai sau dòng kết thúc bằng dấu hai chấm (electric), ví dụ: sau các tiêu đề
if/for/def. (6555f44ba)Sửa lỗi căn chỉnh bản ghi thư mục ROMFS để độ lệch thư mục tính đến kích thước bản ghi tên thư mục, và tăng độ trễ giữa các tệp khi giải nén/tạo tệp ROMFS và vườn mô hình để đảm bảo có dấu thời gian tạo phân biệt. (9bf7e1d9e, d968a6e46)
Sửa lỗi tràn số nguyên trong quá trình chuyển đổi mean-to-depthwise-conv của bộ tối ưu hóa đồ thị Vela bằng cách tính hệ số nhân đầu ra theo 64-bit, và sửa tên cơ sở được dùng trong tiêu đề/đầu ra hộp thoại trình biên dịch Vela. (d217a46e9, 8376490eb)
Sửa lỗi khôi phục các thư mục đã mở rộng và mô hình đã chọn trong trình duyệt vườn mô hình khi mở lại, và chuyển hộp thoại sang cấp phát heap để tránh các vấn đề về thời gian tồn tại GUI. (84a63ef4c)
Sửa đường dẫn lưu-dưới-dạng của Model Zoo để thư mục được ghi nhớ lưu dưới dạng thư mục thay vì tên tệp đầy đủ. (be877f7af)
Giữ lại đường dẫn tài nguyên người dùng cũ thay vì xóa nó khi khởi động, tránh lỗi "đóng tất cả chương trình đang xem dữ liệu OpenMV IDE" khi thư mục cũ bị khóa. (775656775)
Sửa các tập lệnh cài đặt driver Windows và các tệp catalog/inf để các driver OpenMV DFU, dfuse, FTDI, Arduino, pybcdc và VCR cài đặt đáng tin cậy và báo cáo mã thành công đúng, tăng cường các tập lệnh cài đặt driver DFU dfuse/vcr, và ký lại các catalog driver OpenMV DFU đóng gói sẵn. (48a0a21e3, b7b607250, b4221a884, e4f3bb8f8, 62e869c0b, 583576f2a)
Sửa trình cài đặt Linux để cài đặt
pyusbthông qua góipython3-usbcủa bản phân phối và thêmbuild-essentialthay vì chạypip install pyusb, đồng thời phát hiện hệ điều hành qua/etc/os-release. (c471ddc42, 4014a0ba5)Trình cài đặt Windows nay bật hỗ trợ đường dẫn dài để các tệp ST Edge AI lồng sâu cài đặt đúng cách. (0b3ca6945)
Hỗ trợ nền tảng và công cụ¶
Nền tảng Qt Creator: 14.0.2.
Firmware OpenMV đóng gói sẵn: được cập nhật lên 4.7.0 cho tất cả các bo mạch OpenMV và Arduino (OPENMV2/3/4/4P/PT, RT1060, GIGA, Portenta H7, Nicla Vision, Nano 33 BLE/RP2040, AE3, N6); firmware được xây dựng lại với hỗ trợ ROMFS (
romfs0.img). (6d04b1b50, c44e33d70, a1de7a09c)OpenMV N6 ROMFS: tăng từ 16MB lên 24MB, với ảnh romfs được chuyển sang DFU alt-setting 3. (d0bbb1fe7, d7d3120b3)
OpenMV AE3 ROMFS: tăng từ 16MB lên 24MB, với các quy tắc căn chỉnh 16/32-byte được thêm cho các tệp mô hình
.binđóng gói sẵn trên tất cả các bo mạch. (746da8914)STM32CubeProgrammer (STM32_Programmer_CLI) được đóng gói sẵn cho macOS, Linux và Windows với cơ sở dữ liệu thiết bị STM32 đầy đủ và các bộ tải ngoài cho lập trình nhà máy N6; việc cài đặt đã được rút gọn các tệp bộ tải ngoài và cơ sở dữ liệu per-MCU không sử dụng để giảm kích thước. (334b04dbd, 54fea4d57, 28cc94a6e, 2522c900f)
Trình biên dịch ST Edge AI (stedgeai) 2.1.0 được đóng gói sẵn (Windows) cho NPU Neural-ART của N6. (3064411ad)
Trình biên dịch ARM Ethos-U Vela 4.2.0 (kèm numpy 2.2.4) được đóng gói sẵn cho Linux x86-64, macOS (Apple silicon) và Windows. Gói Windows được thêm lần đầu ở Vela 4.1.0 / numpy 2.2.3 và sau đó được nâng lên phiên bản cuối cùng 4.2.0 / numpy 2.2.4. (f9323a1d6, 5f551a5c5, 6506497c6, bcda7d1f0)
mpy-cross 1.25.0.post2 được đóng gói sẵn (macOS/Windows). (8c71548df, 3ab42d58a)
Alif Security Toolkit: được cập nhật lên v1.104.0 (các tệp nhị phân setools đã ký và Hướng dẫn Người dùng PDF v1.104.0) cho các bo mạch dựa trên Alif Ensemble. (43260719c, 75a58e61b)
Thêm cấu hình NPU OPENMV_AE3 (Alif Ensemble) nhắm mục tiêu các bộ tăng tốc ethos-u55-256 và ethos-u55-128 với cấu hình hệ thống SRAM/MRAM/OSPI RTSS HP/HE. (1f5fc546d, 411f708ea)
Thêm sơ đồ chân cho camera OpenMV N6 và AE3 (cảm biến PAG7936) vào bộ chọn sơ đồ chân, và một ví dụ mới về camera sự kiện thang xám Genx320 minh họa cấu hình bộ lọc chống nhấp nháy. (60184bbc5, 6d04b1b50)
Cập nhật khớp USB PID của Arduino Nicla Vision để nhận biết PID ứng dụng mới (0x055F) bên cạnh PID gốc (0x045F). (91ce4007c)
Cập nhật các tham số nạp firmware bootloader bảo mật NXP/blhost để sử dụng địa chỉ/độ dài FCB rõ ràng và kích thước đĩa MBR, phù hợp với bộ công cụ spsdk mới nhất. (16b66c3e2)
Trình cài đặt Windows nay đóng gói driver bootloader DFU STM32 chuyên dụng và các gói phân phối lại Microsoft Visual C++ 2015+. (cdcd4a5a6, 0cdebfc4c, a02b1f21a)
Xóa vườn mô hình DeGirum YOLOv5/YOLOv8 đóng gói sẵn khỏi IDE. (26710be1c)
Thay đổi không tương thích¶
Các thay đổi quy trình làm việc và hành vi có thể thấy được trong v4.7.0. Không có thay đổi API tập lệnh nào, nhưng hãy lưu ý những điều sau:
Hệ thống tệp FAT bị xóa khi nâng cấp từ trước 4.7.0. Việc nâng cấp bất kỳ OpenMV Cam nào từ firmware trước 4.7.0 nay buộc phải xóa hệ thống tệp FAT và đặt lại/cập nhật ROMFS trong quá trình cập nhật firmware (các hộp kiểm trong hộp thoại bị bật bắt buộc và không thể tắt), vì vậy các tệp người dùng lưu trên bộ nhớ flash nội bộ của thiết bị sẽ bị xóa khi nâng cấp. (f6f3355b0)
Đã xóa firmware UVC và các tệp nhị phân bootloader Portenta H7. Các ảnh firmware webcam UVC dựng sẵn (
uvc.bin/dfu/elf) đã bị xóa cho tất cả các bo mạch, và các tệp nhị phân bootloader Arduino Portenta H7 đã bị xóa khỏi gói; các ảnh dựng sẵn này không còn có thể nạp từ IDE nữa. (c44e33d70)Di chuyển thư mục tài nguyên. Các tài nguyên IDE có thể tải xuống (firmware, vườn mô hình, tài liệu) nay được cài đặt vào thư mục dữ liệu ứng dụng dùng chung cho tất cả người dùng thay vì đường dẫn tài nguyên per-user, và tệp kê khai phiên bản được chuyển từ QSettings sang tệp
OpenMVIDE.jsonlưu một cấp trên thư mục tài nguyên dùng chung (với sao chép QSettings tương thích ngược). Việc tải lại tài nguyên sẽ được kích hoạt lần đầu chạy sau khi nâng cấp. (be308ace2, 7c7dddb87)