v4.5.9¶
v4.5.9 mang lại streaming preview thô cho board không có bộ mã hóa JPEG phần cứng, cắt xén cảm biến phần cứng để giải phóng RAM nhiều hơn, debayering được tăng tốc Helium nhanh hơn và một loạt sửa lỗi camera/USB-debug. Nó cũng thay đổi API kết quả AprilTag và bộ gia đình AprilTag mặc định, vì vậy hãy đọc các thay đổi gây phá vỡ tương thích bên dưới.
Highlights¶
Streaming preview thô — board không có bộ mã hóa JPEG phần cứng hiện có thể gửi các khung hình thô thu nhỏ tới IDE/host thay vì không thể preview.
Cắt xén cảm biến phần cứng — đặt kích thước khung hình nhỏ hơn hiện giảm bộ nhớ mỗi bộ đệm và giải phóng RAM cho
fb_alloc().Debayering nhanh hơn — chuyển đổi Bayer→RGB/thang xám hiện được tăng tốc Helium-SIMD trên board Cortex-M55.
Phá vỡ tương thích: đối tượng kết quả AprilTag đã thay đổi sang truy cập thuộc tính và bộ gia đình AprilTag mặc định đã được giảm (xem thay đổi AprilTag và thay đổi gia đình AprilTag).
New features¶
Streaming preview thô — board không có bộ mã hóa JPEG phần cứng có thể bỏ qua JPEG và stream các khung hình thô thu nhỏ (giới hạn ~60 KB) tới IDE/host, do đó live preview hoạt động trên các board đó.
Other changes and improvements¶
Cắt xén phần cứng hiện được bật trên tất cả board STM32/NXP (Giga, Nicla Vision, Portenta H7, OpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). Khi kích thước khung hình hoặc cửa sổ được đặt, bộ nhớ mỗi bộ đệm giảm xuống kích thước đã cắt xén, giải phóng RAM nhiều hơn cho
fb_alloc().Debayering nhanh hơn — chuyển đổi Bayer→RGB565/thang xám hiện được tăng tốc ARM Helium/MVE SIMD trên board Cortex-M55 (ví dụ: RT1060), với đường dẫn bộ mã hóa JPEG SIMD dùng chung.
Debug IDE nhanh hơn — trình debug hiện truyền dữ liệu trực tiếp từ USB stack khi có thể, tránh một bản sao thừa.
Submodule MicroPython được cập nhật — board có thể thay đổi kích thước bộ đệm CDC TinyUSB, cùng với sửa lỗi GC và build-rule.
Bug fixes¶
Camera và cảm biến:
Đã sửa mẫu Bayer/CFA của OV7725 (GBRG → BGGR), sửa đầu ra màu sắc debayered trên camera OV7725; OV7725 hiện báo cáo định dạng điểm ảnh Bayer, và các cảm biến chỉ-Bayer hiện báo cáo độ sâu nguồn 1-byte-mỗi-điểm-ảnh.
Đã sửa lỗi tính toán kích thước framebuffer thô/Bayer.
Học máy:
TensorFlow Lite Micro hiện sử dụng bộ nhớ trống của GC heap khi kích thước arena tensor tạm thời, ngăn lỗi phân bổ khi tải mô hình (ML) trên board có bộ nhớ frame-buffer hạn chế.
Host / IDE:
Đã sửa lỗi xử lý bộ đệm CDC USB-debug trên board TinyUSB để thông lượng serial/debug đáng tin cậy hơn.
tools/pyopenmv: đã sửa thứ tự byte RGB565, thêm đối sốscalevà công cụ frame-buffer hiện báo cáo kích thước/định dạng ảnh.
Hardware and board support¶
OV7725 hiện báo cáo định dạng điểm ảnh Bayer (xử lý thô/CFA đúng).
Cắt xén phần cứng được bật trên toàn bộ dải board STM32/NXP.
Breaking API changes¶
Các thay đổi API hiển thị với người dùng giữa v4.5.8 và v4.5.9. Phạm vi: các C-module Python trong modules/ và thư viện Python trong scripts/libraries/.
Mỗi thay đổi được gắn nhãn mức độ ảnh hưởng:
minor — API hẹp; chỉ ảnh hưởng đến các tập lệnh sử dụng nó.
behavior — cùng API, kết quả khác; kiểm tra lại các tập lệnh đã tinh chỉnh.
Các thay đổi được nhóm theo mức độ ảnh hưởng theo thứ tự đó. Nếu bạn chỉ muốn chuyển đổi code, hãy chuyển đến danh sách kiểm tra di chuyển ở cuối. Mỗi hash commit liên kết đến diff của nó trên GitHub.
Đối tượng kết quả AprilTag và set_buffers (minor)¶
Kết quả AprilTag từ find_apriltags() hiện hiển thị dữ liệu dưới dạng thuộc tính thay vì phương thức — sử dụng tag.cx, tag.cy, tag.rotation, tag.family, tag.corners thay vì tag.cx(), tag.family(), v.v. Các accessor mới name (chuỗi tên gia đình) và float-precision cxf / cyf đã được thêm.
Riêng biệt, cấu hình bộ đệm video tự động đã thay đổi: set_buffers thay thế auto_adjust — truyền -1 để sử dụng tối đa ba bộ đệm có kích thước khung hình (hoặc nhiều nhất có thể) và 1 để sử dụng toàn bộ bộ đệm khung hình. Kích thước bộ đệm hiện nhận thức về bit-mỗi-điểm-ảnh, vì vậy có thể phân bổ nhiều bộ đệm hơn cho định dạng 1 bpp.
ble_advertising và RPC-over-network đã bị loại bỏ (minor)¶
Thư viện helper ble_advertising và ví dụ ble_temperature.py đã bị loại bỏ — hãy sử dụng aioble thay thế (một ví dụ nhiệt độ aioble được cung cấp). Các lớp master/slave network RPC đã bị loại bỏ khỏi rpc.py.
Các gia đình AprilTag bị tắt theo mặc định (behavior)¶
Các gia đình AprilTag hiện có thể chọn riêng lẻ lúc biên dịch, và các gia đình không sử dụng bị tắt theo mặc định. Trên board tiêu chuẩn, find_apriltags() hiện chỉ phát hiện gia đình TAG36H11 trừ khi firmware được biên dịch lại với các gia đình khác được bật. Các tập lệnh dựa vào các gia đình khác (TAG16H5, TAG25H9, ...) trên bản dựng tiêu chuẩn sẽ âm thầm ngừng phát hiện chúng.
Commit: effe12f2c
Migration checklist¶
Để chuyển đổi sạch sang v4.5.9, công việc điển hình là:
Thay đổi truy cập kết quả AprilTag từ lời gọi phương thức sang thuộc tính (
tag.cx()→tag.cx), và chuyểnauto_adjustsangset_buffers(thay đổi AprilTag / buffer).Thay thế
ble_advertisingbằngaioblevà bỏ bất kỳ sử dụng master/slave network RPC nào (các loại bỏ).Nếu bạn sử dụng các gia đình AprilTag khác ngoài
TAG36H11trên bản dựng tiêu chuẩn, hãy lưu ý chúng không còn được phát hiện theo mặc định (thay đổi gia đình AprilTag).