v1.2.0¶
v1.2.0 là bản phát hành nền tảng rất lớn, xây dựng hầu hết API xử lý ảnh OpenMV cổ điển: các phương thức vẽ, các phép toán nhị phân / hình thái học, bộ mô tả điểm đặc trưng (FAST / FREAK / LBP), chuyển đổi màu sắc và image.statistics, đọc/ghi file BMP / PPM / JPEG, các module lcd, mjpeg, gif, và nhiệt mlx, camera OV7725, cùng nhiều điều khiển sensor. Một số hành vi cốt lõi của sensor đã thay đổi — hãy đọc các thay đổi phá vỡ bên dưới.
Điểm nổi bật¶
API Vẽ —
draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints().Nhị phân / hình thái học —
binary(),invert(),and/or/xor/...,erode()/dilate()/morph(),negate()/difference().Điểm đặc trưng — bộ mô tả FAST / FREAK / LBP với
match_descriptor()/save_descriptor()/load_descriptor().Hỗ trợ camera OV7725;
image.statistics; đọc/ghi file BMP/PPM/JPEG.Thay đổi phá vỡ: hành vi của
sensor.reset(),sensor.snapshot(), vàsensor.set_pixformat()đã thay đổi — xem các thay đổi phá vỡ.
Tính năng mới¶
Vẽ — thêm
image.draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints()với các đối số từ khóa (màu sắc, độ dày, …).Nhị phân / hình thái học — thêm
image.binary(),invert(),and()/nand()/or()/nor()/xor()/xnor(),erode()/dilate()/morph(),negate()/difference(),pixels(),centroid(),orientation_radians()/orientation_degrees(), vàwidth()/height()/format().Điểm đặc trưng / bộ mô tả — trích xuất điểm đặc trưng FAST qua
find_keypoints(),match_descriptor()thống nhất cùngsave_descriptor()/load_descriptor()cho FREAK / LBP, thêm cascade Haar/LBP phát hiện mặt nghiêng.Màu sắc / thống kê —
image.statisticsvà các hàm chuyển đổi màu sắc (rgb_to_lab/lab_to_rgb/rgb_to_grayscale/grayscale_to_rgb).Đọc/ghi file — tải và lưu BMP / PPM (P2/P3/P5/P6) / JPEG (bao gồm JPEG thang xám và lấy mẫu chroma 4:2:0 / 4:2:2).
Module — module
lcdmới (LCD shield),mjpeg(ghi video),gifmàu sắc (vớiGif.loop()), và module camera nhiệtmlx, mỗi module có kèm tập lệnh ví dụ.Sensor — thêm
sensor.get_id()(+ hằng số PID OV9650/OV2640/OV7725),sensor.set_special_effect()(hằng số SDE_*),sensor.set_image_filter()(FILTER_BW / FILTER_SKIN), kích thước khung hìnhHQVGA, vàimage.set_pixel(x, y, …).WiFi — thêm driver WiFi ATWINC1500 và nền tảng BSP OpenMV 1/2, cùng ví dụ BLE.
Các thay đổi và cải tiến khác¶
Bộ đệm khung hình giờ được nén JPEG trước khi truyền đến OpenMV IDE (băng thông thấp hơn); nén JPEG được thực hiện tại chỗ; H/V zoom OV7725 cho phép co giãn tùy ý; phát hiện khuôn mặt Haar được cải thiện (nhanh hơn) chạy ở QVGA.
Sửa lỗi¶
Xử lý ảnh:
Đã sửa: tính toán integral-image, lỗi hỏng bộ lọc
median(), tính toán centroid, các bộ lọc da / đen trắng RGB trên đầu vào RGB, và đọc/ghi BMP/PPM thang xám nhanh hơn.
Cảm biến và hệ thống:
Đã sửa: bộ định thời
pyb.Servo(Servo giờ hoạt động), độ phân giải HQVGA, độ tin cậy khởi tạo thẻ SD, tái khởi tạo bộ nhớ sau soft-reset, và chạy lại REPL khi không có tập lệnh.
Phần cứng và hỗ trợ board¶
Cảm biến camera OV7725.
LCD shield (module
lcd), camera nhiệtmlx, và nền tảng WiFi ATWINC1500.
Thay đổi phá vỡ API¶
Các thay đổi API hiển thị với người dùng giữa v1.1.0 và v1.2.0. Phạm vi: C-modules Python trong modules/ và thư viện Python trong scripts/libraries/.
Cả ba thay đổi phá vỡ đều là thay đổi behavior đối với các hàm sensor cốt lõi (API giống nhau, hành vi khác nhau) — hãy kiểm tra lại các tập lệnh bị ảnh hưởng. Mỗi hash commit liên kết đến diff trên GitHub. (Phần lớn bản phát hành này là API mới được xây dựng trong phạm vi v1.1→v1.2 và do đó là bổ sung, không phá vỡ.)
sensor.reset() không còn áp dụng cấu hình mặc định (behavior)¶
sensor.reset() không còn áp dụng cấu hình mặc định tích hợp (pixformat / framesize / framerate / gain / contrast / brightness / saturation). Các tập lệnh dựa vào reset() để tạo ra cấu hình mặc định sử dụng được phải gọi tường minh sensor.set_pixformat() và sensor.set_framesize() (và các cài đặt khác) sau reset().
Commits: d1e782df3
sensor.snapshot() phát sinh ngoại lệ khi hết thời gian (behavior)¶
sensor.snapshot() giờ phát sinh RuntimeError("Sensor Timeout!!") khi cảm biến hết thời gian thay vì treo vô thời hạn. Hãy bọc snapshot() trong try / except RuntimeError nếu bạn cần xử lý tình huống hết thời gian.
Commits: e3f41d674
sensor.set_pixformat() phát sinh ngoại lệ với định dạng không được hỗ trợ (behavior)¶
sensor.set_pixformat() giờ phát sinh ngoại lệ khi nhận định dạng điểm ảnh không được hỗ trợ thay vì trả về False. Code kiểm tra giá trị trả về False phải bắt ngoại lệ thay thế.
Commits: e0c5822c2
Danh sách kiểm tra di chuyển¶
Để port sạch sang v1.2.0, công việc điển hình là:
Gọi tường minh
sensor.set_pixformat()/sensor.set_framesize()sausensor.reset()(thay đổi reset).Bọc
sensor.snapshot()trongtry/except RuntimeErrornếu bạn cần xử lý hết thời gian của cảm biến (thay đổi snapshot).Bắt ngoại lệ từ
sensor.set_pixformat()thay vì kiểm traFalse(thay đổi set_pixformat).
Tất cả các tập lệnh khác chạy không thay đổi.