v4.5.3¶
v4.5.3 là một bản phát hành lớn: tính năng lấy nét tự động OV5640, vẽ đường kẻ có khử răng cưa, bộ giải mã JPEG phần cứng được tích hợp chính thức, cải tiến đáng kể năng lực cho i.MX RT (RT1060), và nhiều bản sửa lỗi camera/ISP. Một số phương thức ảnh ít dùng đã bị xóa và một số API ISP/hiển thị đã thay đổi — xem các thay đổi gây phá vỡ bên dưới.
Điểm nổi bật¶
Lấy nét tự động OV5640 — được kích hoạt trên OpenMV 4 / 4 Plus / RT1060 (
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS)), kèm theo ví dụ minh họa.draw_line()có khử răng cưa và bộ giải mã JPEG phần cứng STM32 được tích hợp chính thức (giải nén JPEG nhanh hơn).OpenMV RT1060 đã được bổ sung ulab, các thao tác ISP,
set_framerate()/set_frame_callback(), bộ đệm khung hình lớn hơn nhiều và driver CAN.Phá vỡ:
Image.div()/cartoon()/mul()đã bị xóa và một số API ISP/hiển thị đã thay đổi — xem phần thay đổi gây phá vỡ.
Tính năng mới¶
Lấy nét tự động OV5640 — firmware lấy nét tự động được kích hoạt trên OPENMV4, OPENMV4P và OPENMV RT1060; kích hoạt bằng
sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS). Một ví dụ mới07-Sensor-Control/autofocus.pyđã được thêm vào.Vẽ đường kẻ có khử răng cưa —
draw_line()đã được bổ sung tính năng khử răng cưa.Bộ điều khiển màn hình SPI tùy chỉnh —
SPIDisplaygiờ chấp nhận từ khóacontroller=và cung cấp hookbus_writecho các chuỗi lệnh/khởi tạo tùy chỉnh.Nâng cấp
Image.ccm()— giờ chấp nhận ma trận lồng nhau 3x3 / 4x3 / 3x4 / 4x4 và mảng ulab (với hàng offset tùy chọn theo từng kênh); đã thêm ví dụ hiệu chỉnh màu sắc.Chụp ảnh JPEG trên i.MX RT — hỗ trợ chụp
sensor.JPEGtrên Arduino Portenta/Nicla Vision/Giga, cùng vớiset_framerate()vàset_frame_callback()trên port mimxrt.Xác thực mô hình (ML) TFLite — các mô hình (ML) giờ mang theo mã băm thứ tự toán tử và kích thước tập toán tử.
WiFi — đã thêm các hằng số chế độ bảo mật CYW43; các tập lệnh ví dụ điều khiển board mới cho i.MX RT (Pin/ADC/CAN/I2C/PWM/SPI/UART/...).
Các thay đổi và cải tiến khác¶
MicroPython cập nhật lên 1.22; CMSIS cập nhật lên 5.9.0.
Bộ giải mã JPEG phần cứng STM32 được tích hợp chính thức — giải nén JPEG nhanh hơn trên bộ giải mã tích hợp sẵn trên chip.
Tối ưu hóa
Image.invert()/negate()và các thao tác ảnh nhị phân/toán học (CMSIS intrinsics).Các thư viện
rpcvàvl53l1xđã được làm cho có thể di chuyển được (sử dụngmachine/timethay vìpyb), nên chúng chạy được trên các port không phải STM32.Memcpy bộ đệm khung hình được tăng tốc bằng DMA trên OpenMV H7 / H7 Plus / Pro / Pure Thermal và Arduino Giga / Nicla Vision / Portenta H7; STM32 giờ quét thiết bị I2C một lần mỗi lần quét để khởi động nhanh hơn.
Sửa lỗi¶
Camera và cảm biến:
Đã sửa XCLK camera STM32 về chu kỳ nhiệm vụ 50% đúng và một lỗi khi tần số clock camera được đặt về không; đã sửa lỗi cắt xén+hoán vị Bayer, dịch màu YUV422 và
set_windowing()trên port mimxrt.Đã sửa lỗi dò chip-ID GC2145 và hmirror/vflip trên các giá đỡ được xoay; đã sửa lỗi PAJ6100 trên RT1062 và tràn bộ đệm SPI PixArt PAJ7620/PAW3902.
Xử lý ảnh:
Đã sửa lỗi cắt xén ROI
find_rects(), cắt cụt offset phân sốmorph(), mặc định độ tương phản/độ sángimage.gamma(), offset A/Bget_threshold()trên RGB565, và giải mã JPEG của kích thước không phải bội số của 8.
Hệ thống và thư viện:
machine.LED.value()không có đối số giờ trả về trạng thái LED thay vì xóa nó; đã sửa lỗi deinit SPI SSEL trên bus dùng chung,machine.deepsleep()trên RT1062, crash TF khi thiếu toán tử, và tự kích hoạt NIC WINC1500/ninaw10 khiconnect().
Phần cứng và hỗ trợ board¶
OpenMV RT1060 — đã kích hoạt ulab và các thao tác ISP, bộ đệm khung hình lớn hơn (10M→20M) / fb_alloc (2M→11M), khôi phục driver CAN, thêm heap.
Arduino GIGA — hỗ trợ camera GC2145, với tự động phát hiện GC2145/OV5640 (chúng dùng chung địa chỉ I2C).
i.MX RT — hỗ trợ chụp
sensor.JPEG.
Các thay đổi API gây phá vỡ¶
Các thay đổi API hiển thị với người dùng giữa v4.5.2 và v4.5.3. Phạm vi: C-module Python trong modules/ và thư viện Python trong scripts/libraries/.
Mỗi thay đổi được gắn nhãn theo mức độ ảnh hưởng:
minor — API hẹp; chỉ ảnh hưởng đến các tập lệnh đã 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 mã hash commit liên kết đến diff của nó trên GitHub.
Các phương thức ảnh đã bị xóa (minor)¶
Image.div(), Image.cartoon() (và ví dụ của nó) và Image.mul() đã bị xóa.
API module hiển thị (minor)¶
Fallback tên module udisplay cũ đã bị xóa — module chỉ được đăng ký là display. Các phương thức dsi_write() / dsi_read() chỉ dành cho DSI đã được thay thế bằng bus_write() / bus_read(), giờ có sẵn trên tất cả các bộ điều khiển màn hình.
Thay đổi API MQTT và tf.regression (minor)¶
MQTTClient của thư viện mqtt đã được làm lại: port giờ là bắt buộc, các từ khóa constructor mới ssl_params / callback và đối số timeout trên connect() đã được thêm, các giá trị mặc định cũ ssl= / port=0 đã bị xóa, và check_msg() giờ không chặn. tf.regression() đã được viết lại — chữ ký của nó giờ là regression(model, array) và xử lý các mô hình (ML) 1D/2D/3D và lượng tử hóa (int8).
Thay đổi hành vi ISP / cảm biến (behavior)¶
Image.awb() đã được làm lại — gray-world (mặc định) và white-patch (max=True) giờ được chỉ rõ, và đối số max cùng các đối số gamma / contrast / brightness của Image.gamma() giờ chỉ là keyword (các lệnh gọi theo vị trí phải được cập nhật). Hoán vị ảnh giờ bị vô hiệu hóa cho YUV422 (trước đây tạo ra đầu ra không đúng) và dịch màu YUV422 đã được sửa để khớp với Bayer. Đường dẫn JPEG STM32 giờ đưa ra lỗi khi không khớp kích thước JPEG thay vì tạo ảnh bị hỏng, và chế độ WiFi AP giờ áp dụng chế độ bảo mật mặc định trên các port STM32 và i.MX RT.
Commits: 36d5cecbd, 00500ccde, c1eeaefd6, 333fb2b5f, 55cab8733, c7d40f6af
Danh sách kiểm tra di chuyển¶
Để chuyển đổi sạch sang v4.5.3, công việc thông thường là:
Ngừng sử dụng
Image.div()/cartoon()/mul()(các phương thức đã bị xóa).Import module hiển thị là
displayvà chuyểndsi_write/dsi_readsangbus_write/bus_read(thay đổi API hiển thị).Cập nhật cấu tạo
MQTTClient(portlà bắt buộc;ssl_params/callback) và các lệnh gọitf.regression()bất kỳ (thay đổi API thư viện).Truyền
awb()maxvàgamma()gamma/contrast/brightnessdưới dạng đối số keyword, và kiểm tra lại các giả định về YUV422/hoán vị và bảo mật chế độ AP (thay đổi ISP/cảm biến).