v4.8.1

v4.8.1 được xây dựng trên Qt Creator 14.0.2, tập trung vào giao thức camera OpenMV V2 độ tin cậy cao mới, trình phân tích mã tích hợp (Code Profiler), và quy trình lưu giữ camera được gắn kết thay vì ngắt kết nối. Firmware và bộ ví dụ đi kèm được cập nhật lên 4.8.1. Không có thay đổi phá vỡ API scripting, nhưng hành vi lưu không còn ngắt kết nối và việc loại bỏ một số cờ serial khi khởi động là những thay đổi quy trình làm việc có thể nhận thấy.

Điểm nổi bật

  • OpenMV Protocol V2 là một ngăn xếp camera độ tin cậy cao mới (OMVCamera/OMVTransport/OMVDebug) với CRC32, cơ chế đánh số thứ tự, ACK/NAK, truyền lại, sự kiện và phân mảnh. Giao thức được tự động đàm phán khi kết nối và điều khiển quá trình reset, boot, streaming, thực thi tập lệnh và thống kê.

  • Code Profiler là một cửa sổ mới (Window > Show Code Profiler) thăm dò các bản ghi phân tích theo hàm từ camera và hiển thị số lần gọi, thời gian min/max/tổng/trung bình (μs), chu kỳ trung bình, phần trăm và bộ đếm sự kiện trong một bảng có thể sắp xếp.

  • Lưu tại chỗ không còn ngắt kết nối ổ đĩa camera nữa; IDE bây giờ ghi main.py và xả bộ đệm volume ra đĩa để thiết bị vẫn được gắn kết.

  • Phát hiện đa cảm biến báo cáo mọi camera trên bảng, hiển thị trên thanh trạng thái dưới dạng Sensors: X, Y với cảm biến chính được liệt kê đầu tiên.

  • Dynamic Frame Reading tính toán lại độ phân giải streaming thô phù hợp nhất theo định dạng điểm ảnh và tự động cấu hình lại luồng.

  • Firmware và ví dụ đi kèm được cập nhật lên 4.8.1 trên tất cả các bảng, bổ sung các ví dụ mới về camera sự kiện GenX320, TensorFlow ML, Alif OLED và màn hình LCD/Touch-LCD.

Tính năng mới

  • Đã thêm giao thức truyền thông OpenMV V2: một lớp vận chuyển và giao dịch đầy đủ với CRC32, cơ chế đánh số thứ tự, ACK/NAK, truyền lại, sự kiện và phân mảnh, cùng với lớp OMVCamera được tự động đàm phán khi kết nối và tích hợp vào trình điều khiển serial (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).

  • Đã thêm cửa sổ Code Profiler (Window > Show Code Profiler), thăm dò các bản ghi phân tích theo hàm và hiển thị số lần gọi, thời gian min/max/tổng/trung bình (μs), chu kỳ trung bình, phần trăm và bộ đếm sự kiện, phân giải địa chỉ thành ký hiệu thông qua trình phân tích ELF ELFIO đi kèm (019d3cd2c, 57cd9e1cc).

  • Đã thêm hộp thoại Debug Protocol Settings hiển thị thông tin System Info, Host Stats và Device Stats trực tiếp, làm mới mỗi giây, cho phép cấu hình tốc độ thăm dò theo kênh cùng với điều khiển thăm dò kết hợp và tách riêng (5220a6125, 0da2f79d0).

  • Đã thêm phát hiện đa cảm biến: một bảng có nhiều hơn một camera sẽ báo cáo tất cả chúng trên thanh trạng thái dưới dạng Sensors: X, Y, cảm biến chính được hiển thị đầu tiên (cebc79ce7).

  • Đã thêm Dynamic Frame Reading (mặc định bật), tính toán lại độ phân giải streaming thô phù hợp nhất theo định dạng điểm ảnh (BINARY, GRAY, RGB565, ARGB8, JPEG, PNG) và tự động cấu hình lại luồng (75c073bdb, 0da2f79d0).

  • Đã thêm giải mã bộ đệm khung hình cho các định dạng điểm ảnh thô BINARY (mono 1-bpp) và ARGB8 (alpha 32-bit) để các loại ảnh đó hiển thị được trong trình xem (dabb82062).

  • Trên Windows, Connect giờ đây quét các thiết bị USB được hệ điều hành đánh dấu là có sự cố và cảnh báo với danh sách các thiết bị lỗi có thể chặn kết nối (1a5beb081, 1b59cd78e).

  • Đã thêm chỉ báo đăng ký trên thanh trạng thái: nút Registered màu xanh lá hoặc Unregistered màu san hô cho camera đang kết nối, có thể nhấp để đăng ký bảng (a8c98a4b9).

  • Trình xem bộ đệm khung hình hiện có thể hiển thị thông báo văn bản căn giữa được gửi từ tập lệnh đang chạy thông qua mã thoát FB_MESSAGE mới thay vì một ảnh (530048201).

  • Đã thêm các mục model-zoo mới: mô hình ước lượng độ sâu ST FastDepth (224/256/320), mô hình dáng đầu người ST head-landmarks, các mô hình bàn tay palm-detection và hand-landmarks, và mô hình phát hiện khuôn mặt chính diện BlazeFace (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).

  • Đã thêm tập lệnh tự kiểm tra dành riêng cho bản dựng nhà máy (camera, IMU, ToF, WiFi, LAN) được đóng gói sẵn và tự động mở khi khởi động trong biến thể IDE dành cho nhà máy (0db7fbbb0); phần kiểm tra LAN của RT1060 hiện đang bị vô hiệu hóa (48370d022).

Các thay đổi và cải tiến khác

  • Lưu tại chỗ: việc lưu tập lệnh không còn ngắt kết nối ổ đĩa camera nữa; IDE ghi main.py và xả bộ đệm volume ra đĩa (FlushFileBuffers trên Windows, syncfs trên Linux, sync_volume_np/F_FULLFSYNC trên macOS) để thiết bị vẫn được gắn kết (1614c572f, 6928b51ea, 35ed53967).

  • Các thao tác thanh công cụ được nhấp khi camera đang bận (vô hiệu hóa bộ đệm khung hình, nén JPEG, lưu tập lệnh, cấu hình cài đặt) nay được xếp hàng đợi và tự động chạy khi thiết bị rảnh thay vì hiển thị hộp thoại lỗi Bận (f4315f0a4).

  • Trình xem bộ đệm khung hình giờ mặc định chế độ fit-in-view để ảnh tự co giãn theo cửa sổ khi khởi động, và ngăn đầu ra terminal serial hiện được hiển thị mặc định khi khởi động (f3ce4dc75).

  • Các tệp mô hình đã biên dịch có phần mở rộng .lite nay được nhận dạng ở mọi nơi: lọc và hiển thị trong trình duyệt model-zoo, căn chỉnh ROMFS firmware, và các trình biên dịch Vela/STEdge AI giờ xuất ra tệp .lite (f3ce4dc75).

  • Hộp thoại biên dịch mô hình STEdge AI (N6) hiện phân tích và báo cáo phần trăm sử dụng NPU RAM và hyperRAM, đồng thời sao chép đầu ra mạng đã di chuyển vào tệp khớp với phần mở rộng của mô hình (f3ce4dc75).

  • Trình duyệt model-zoo giờ hiển thị cột Kích thước tệp và kéo giãn cột tên để vừa vặn, thay vì ẩn kích thước (f3ce4dc75).

  • Mẫu tập lệnh mới được cập nhật theo API mô-đun csi mới và mặc định kích thước khung hình VGA, và ví dụ Hello World đi kèm được chuyển từ QVGA sang kích thước khung hình VGA (f3ce4dc75).

  • Hộp thoại Convert Video được viết lại để sử dụng hộp thoại tải dùng chung với đầu ra màu sắc, thông báo thành công/thất bại, nút OK để đóng và thông báo lỗi rõ ràng khi FFMPEG không khả dụng trên nền tảng (f56efc7be).

  • Trình xem bộ đệm khung hình hiện hiển thị cảnh báo nhấp nháy khi ảnh JPEG/PNG quá lớn để lưu vào bộ đệm và gửi, thông qua mã thoát FB_BUFFER_ERROR mới (fda826126).

  • Chế độ vào DFU bootloader giờ buộc bootloader ở lại trên firmware giao thức V2, với tính năng phát hiện phiên bản cho phép quay về reset thông thường trên các bootloader cũ hơn (<1.0.2) có thể bị treo khi bị bắt buộc (975857221).

  • Đã đổi tên và tổ chức lại các thư mục mô hình phát hiện đối tượng ST (st_yolo_lc_v1 thành yolo_lc, tiny_yolo_v2 thành yolo_v2, các mô hình người yolov8n thành các tệp có tên theo kích thước đơn giản) và xóa các biến thể int8 tiny_yolo_v2 kích thước lớn (34240cc3c).

  • Thời gian serial giờ được điều chỉnh thông qua các khóa ghi đè protocol trong settings.json firmware (overrideReadTimeout, overrideReadStallTimeout, overridePerCommandWait, và các khóa V2 overrideCRC/overrideSEQ/overrideACK) thay vì các cờ dòng lệnh khi khởi động (019d8bf1d).

  • Đặt giới hạn độ dài dòng cho language-server Python là 120 cột cho flake8 và pycodestyle để các dòng dài không còn bị gắn cờ theo mặc định 79 (dabb82062).

  • Giảm bộ mô hình machine learning đi kèm bằng cách chuyển bộ sưu tập mô hình Qualcomm và google/mobilenet_v1 vào models_unused để thu nhỏ gói cài đặt (c44ddba20).

Sửa lỗi

  • Các hộp thoại tiến trình tải firmware và cập nhật tài nguyên đã được làm an toàn khỏi sự cố crash bằng cách sử dụng bảo vệ QPointer để chúng không còn sử dụng hộp thoại đã bị xóa nếu nó đóng trong khi tải (f3ce4dc75).

  • Việc quét ổ đĩa giờ tiếp tục quét lại cho đến khi tìm thấy ổ đĩa USB của camera và xóa các mục ổ đĩa cũ khi ngắt kết nối, loại bỏ hack timer một lần trước đây (a31d41b4e).

  • Một số sửa lỗi kết nối và serial: các cảm biến ẩn (ví dụ SoftCSI) không còn làm rối loại cảm biến được hiển thị, timer giữ kết nối serial Windows ngăn các sự cố stall USB, Start không còn khởi động lại tập lệnh đang chạy, và kênh camera được ngắt kết nối đúng cách khi đóng cổng (a8e467be6).

  • Chế độ xem profiler đã khôi phục chức năng chọn bộ đếm sự kiện PMU theo cột (menu sự kiện có thể chọn) và trạng thái bộ đếm/tiêu đề đã lưu mà trước đó đã bị tạm thời vô hiệu hóa (40c679e90).

Hỗ trợ nền tảng và công cụ

  • Nền tảng Qt Creator: 14.0.2.

  • Firmware đi kèm: cập nhật từ 4.7.0 lên 4.8.1, xây dựng lại firmware cho OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060, và các bảng Arduino GIGA/Nicla Vision/Portenta H7 (2657818ca).

  • Đã sửa lỗi bắt tay phiên bản giao thức trên macOS cho các bảng RT1062 và AE3 bằng cách tách quá trình truyền USB đa lệnh thành các phần có kích thước USBDBG_LEN mà các bảng đó có thể xử lý (6b9d5f842).

  • Đã làm lại gói trình điều khiển Windows đi kèm: thêm các tệp trình điều khiển đã ký .cat/.inf riêng cho từng bảng (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) và chuyển trình điều khiển serial CDC vào thư mục openmvcdc mới với trình cài đặt tự động dựa trên dpinst (439557829, ba3b01bfb).

  • Đã thêm hỗ trợ cho các phiên bản cũ hơn của cảm biến camera MT9V032 bằng cách đăng ký ID cảm biến 0x13110x1312 (cùng với 0x1313 hiện có) dưới dạng MT9V0X2 (eaaa624e3).

Thay đổi phá vỡ

Phiên bản này không có thay đổi phá vỡ API scripting, nhưng có một vài thay đổi quy trình làm việc có thể nhận thấy:

  • Việc lưu tập lệnh không còn ngắt kết nối hoặc tháo gắn ổ đĩa USB của camera nữa. IDE giờ xả bộ đệm volume tại chỗ, vì vậy thiết bị vẫn được gắn kết sau khi lưu.

  • Các cờ serial khi khởi động -override_read_timeout (mặc định 5000 ms), -override_read_stall_timeout (mặc định 1000 ms), và -override_per_command_wait (mặc định 1 ms, 2 ms trên macOS) đã bị xóa; thời gian serial giờ được cấu hình thông qua các khóa ghi đè protocol trong settings.json firmware (019d8bf1d).

  • Các bootloader đi kèm giờ chỉ được cung cấp dưới dạng .bin; các tệp firmware và bootloader .dfu riêng cho từng bảng đã bị xóa.