v5.1.0#
v5.1.0 là bản phát hành tính năng. Khung dưới bộ đệm khung hình phát triển từ một biểu đồ tần suất thành một bộ chế độ xem trực tiếp -- Thông tin bo mạch, Bộ nhớ, Thống kê, và chế độ xem Kênh mới biến các giá trị mà tập lệnh công bố thành widget, đồ thị, phổ và bản đồ độ sâu rồi ghi chúng ra tệp -- bộ đệm khung hình có bộ chọn nguồn cho các camera nhiều cảm biến, IDE học cách tải kho lưu trữ của bên thứ ba gồm bo mạch, firmware, ví dụ, mô hình và sơ khai, và bản ghi video chuyển sang H.264. Các bo mạch và cảm biến mới được hỗ trợ, bộ công cụ firmware được củng cố qua một đợt kiểm toán đầy đủ mọi thay đổi kể từ v5.0.0, và một số hành vi được mang sang từ OpenMV Studio. Bản này được xây dựng trên Qt Creator 14.0.2 và đi kèm firmware v5.0.1.
Điểm nổi bật#
Các chế độ xem của khung -- thanh tiêu đề của khung biểu đồ tần suất có thêm một bộ chọn chuyển khung giữa các chế độ xem Biểu đồ tần suất, Thông tin bo mạch (phần cứng, phiên bản và khả năng của camera đã kết nối), Bộ nhớ (đồ thị trực tiếp của heap MicroPython và mọi vùng UMA, có theo dõi đỉnh), Thống kê (bộ đếm gói, lỗi và sự kiện theo từng kênh của giao thức gỡ lỗi) và Kênh.
Chế độ xem Kênh -- một tập lệnh có thể công bố các kênh dữ liệu và điều khiển có tên qua giao thức gỡ lỗi, và IDE hiển thị chúng trực tiếp: nhãn, công tắc, thanh trượt, ô số, nút radio, ô nhập văn bản, bộ chọn, nút nhấn và khối văn bản ghi ngược về camera; đồ thị dạng sóng với kéo, thu phóng, điểm đánh dấu, kích hoạt, lịch sử và bộ phân tích phổ; và bản đồ độ sâu với các bảng màu riêng của camera, ba bộ lọc co giãn và ánh xạ tông màu. Bất kỳ đồ thị hay bản đồ nào cũng ghi được ra tệp CSV, WAV, NumPy hoặc Edge Impulse JSON và CBOR -- kể cả Ghi tất cả cho cả một kênh -- để thu thập dữ liệu huấn luyện. Các giá trị cuối cùng vẫn ở trên màn hình khi tập lệnh dừng.
Bộ chọn nguồn bộ đệm khung hình -- các camera có nhiều hơn một cảm biến ảnh hiển thị một bộ chọn trên thanh tiêu đề của bộ đệm khung hình để chọn cảm biến nào truyền phát đến IDE (hoặc tắt truyền phát), nút bật/tắt JPG trở thành bộ chọn chế độ truyền phát JPG / RAW, và tiêu đề của khung nêu định dạng mà mỗi khung hình đã đến.
Kho lưu trữ của bên thứ ba -- nhà cung cấp có thể xuất bản một kho lưu trữ gồm bo mạch, firmware (kênh phát hành và kênh phát triển), ví dụ, mô hình học máy và sơ khai
.pyi; IDE cài đặt nó từ một URL hoặc từ thư mục mà trình cài đặt đã thả vào, hợp nhất nó với nội dung riêng của mình, luôn cập nhật nó và cho phép bạn sắp xếp các nhà cung cấp theo mức ưu tiên. Được quản lý từ Preferences → OpenMV → Third Party Repositories.Phần cứng mới -- bo mạch OpenMV N6 Classic (bao gồm trình điều khiển bootloader, quy tắc udev và mục khôi phục ROM-DFU của nó) và các cảm biến FLIR Lepton 3.1R và UW.
Bản ghi H.264 -- bộ ghi bộ đệm khung hình và bộ chuyển đổi video nay mã hóa H.264 thay vì MPEG-4 Part 2, với khoảng khung hình chính cố định để các bản ghi tua sạch sẽ và tốc độ khung hình được làm tròn về số nguyên.
Các bản sửa lỗi sau kiểm toán -- mọi commit kể từ v5.0.0 đã được rà soát hai lần để tìm hồi quy, đặc biệt chú ý đến các đường dẫn firmware, bootloader và ROMFS; các lỗi tìm thấy được sửa trong bản phát hành này (xem các bản sửa lỗi).
Tính năng mới#
Các chế độ xem Thông tin bo mạch, Bộ nhớ và Thống kê trong khung biểu đồ tần suất, với kiểu dáng tràn viền trong cả chủ đề tối và sáng và văn bản có thể chọn được (cdea506655b, 7629a588db9, e21bd94a395, b55dcc412f6, fc744920011, e7dc3bf0092, 448e21db0bd).
Chế độ xem Kênh -- bộ từ vựng điều khiển đầy đủ (nhãn, công tắc, thanh trượt, ô số, radio, ô nhập văn bản, chọn, nút nhấn, văn bản), đồ thị dạng sóng với bộ phân tích phổ (cửa sổ Hann, Hamming, Blackman và chữ nhật, lấy trung bình, giữ đỉnh, tần số log), kích hoạt theo sườn lên và sườn xuống, điểm đánh dấu, lịch sử và xuất đồ thị; bản đồ độ sâu với các bảng màu Depth, Rainbow, Ironbow và Event, co giãn nearest / bilinear / bicubic, ánh xạ tông màu Dải của tập lệnh / Dải tự động / Cân bằng, nút tạm dừng, đọc giá trị khi di chuột, phần đầu với dải đã khai báo và min / max / trung bình của khung hình, và Lưu hình ảnh; ghi ra CSV, WAV, NumPy và Edge Impulse JSON / CBOR với nhãn Edge Impulse tùy chọn, chia phần cho các lần ghi dài, và Ghi tất cả; khoảng thời gian Channel Polling trong tùy chọn giao thức (5b4f31a6b3a, d1252a24f14, bfd7fd72f94, d1c2ab02a5f, 4808b8ffe26, dfc323b4ec7, 61c077df9a5, 8c2cd6cf1f1, 1534225fcee).
Bộ chọn nguồn bộ đệm khung hình và hiển thị định dạng -- chọn cảm biến truyền phát trên các camera nhiều cảm biến, hoặc Tắt; định dạng khung hình nhận được hiển thị trong tiêu đề của khung; nút bật/tắt JPG nay là bộ chọn Chế độ JPG / Chế độ RAW (e76284bde9e, c2baff8d60c, afece31cb6a, 76448d7b9dd).
Kho lưu trữ của bên thứ ba -- các kho lưu trữ firmware dựa trên tệp được hợp nhất với danh sách bo mạch tích hợp, cập nhật qua mạng với một trang Preferences, một kênh firmware phát triển cho mỗi nhà cung cấp, mức ưu tiên nhà cung cấp do người dùng kiểm soát, ví dụ của nhà cung cấp được hợp nhất vào File → Examples, mô hình của nhà cung cấp được hợp nhất vào Model Zoo, sơ khai
.pyitùy chỉnh được cấp cho hoàn thành mã, cảnh báo ghi đè khi nhà cung cấp che khuất nội dung tích hợp, và kiểm tra giấy phép cho bo mạch của nhà cung cấp (21a63a74949, b5512efe949, b15afdac479, 1fe693f0b61, ae11ffeffc4, cf47a37ba65, 100bdeb530b, 252924901f7, c75a81f2a4a, 3e7f077a738, 5c5aa3e657c, e3f36adbdcb, b04da8ee888).Loại bỏ chú thích trước khi Chạy -- các chú thích được xóa khỏi tập lệnh trước khi gửi đến camera, tiết kiệm RAM của camera với các tập lệnh nhiều chú thích; các dòng được giữ nguyên, nên số dòng trong traceback vẫn khớp với trình soạn thảo (677546ee033).
Đánh dấu lỗi ngay trong dòng -- khi một tập lệnh chết vì ngoại lệ, trình soạn thảo đánh dấu dòng gây lỗi bằng màu đỏ với văn bản lỗi bên cạnh; dấu này xóa đi khi bạn chỉnh sửa tệp, chạy lại hoặc ngắt kết nối (677546ee033).
Kéo và thả vào trình chỉnh sửa ROMFS -- các tệp thả từ màn hình nền đi qua cùng quá trình biên dịch tập lệnh và chuyển đổi mô hình như Add File, vào thư mục mà chúng được thả lên (677546ee033).
Cải tiến trình soạn thảo, terminal và giao diện#
Biểu đồ tần suất được tính từ RGB 8-bit đầy đủ thay vì các bảng RGB565 của camera, với bảng màu đồ thị dùng chung, phần tô pha trộn alpha và các đường lưới mờ hơn (238e099373e, f126e8f34c0, cebbf0c9e2c).
Các chế độ xem khung bị ẩn không làm việc -- biểu đồ tần suất bỏ qua việc tính toán và vẽ lại khi một chế độ xem khác đang hiển thị hoặc khung bị thu gọn, và bắt kịp khi được hiển thị lại; các lần vẽ lại kích thước bằng không được bỏ qua (c8730df8399).
Các tập lệnh ví dụ mở ra với một dòng trống sau các lệnh import, và các ví dụ đi kèm được định dạng lại theo cùng cách (1f88f617ec5, 87c8f7d41c7).
Hoàn thành mã hiển thị các tên riêng tư -- máy chủ ngôn ngữ nhúng không còn lọc các thành viên có tiền tố
_, vốn được các mô-đun của camera sử dụng (23ab5b38bb3).macOS -- các hộp nhóm điều khiển giao thức trong tùy chọn không còn chật chội, các khung hiển thị mục được bảo vệ khỏi sự cố trợ năng Cocoa, người dùng Apple Silicon được cảnh báo về cài đặt bảo mật "Allow accessories to connect", và người dùng RT1062 được cảnh báo khi Input Monitoring chưa được cấp (cập nhật firmware cần nó); cả hai cảnh báo được hiển thị sau khi kết nối (7d7b69367bf, 69fe7ffc913, 742cb4d8c0b, 8890eb77834, 89646292e8d).
Phím tắt ở chế độ viewer -- các phím tắt lạc chỗ làm hỏng chế độ viewer (và cả IDE thông thường) đã bị vô hiệu hóa, và chế độ viewer không còn lưu các phím tắt đã xóa của nó vào cài đặt của IDE đầy đủ (251b422f642, 0d153671c1d).
Cảm biến chưa biết được đặt tên theo id chip trên thanh trạng thái để có thể nhận diện và thêm vào bảng cảm biến (df561775b54).
Firmware, bo mạch và công cụ#
Hỗ trợ OpenMV N6 Classic: mục bo mạch, trình điều khiển DFU Windows và mã trình cài đặt, quy tắc udev Linux (4ff4a1f239d, bdd6c96ef47, 25fcdc13c6a, 7730b699f60).
Hỗ trợ cảm biến FLIR Lepton 3.1R và UW (12c03024f3c).
Bàn giao bootloader IMX -- một bộ bắt được kích hoạt sẵn chiếm lấy bootloader của RT1062 ngay khi nó liệt kê, thay thế vòng lặp khởi chạy theo từng lần thăm dò vốn có thể bỏ lỡ cửa sổ một giây trên máy chủ đang bận (3d8b63c6859).
Các tệp zip firmware -- Load Custom Firmware chấp nhận các gói chỉ có romfs và các gói không có ROMFS, và firmware tùy chỉnh hoặc phát triển được chuẩn bị sẵn cho các bo mạch IMX đã ở chế độ bootloader (b6f16f54c1a, 94d5fd5c30e).
Thư mục chuẩn bị riêng cho firmware phát triển / tùy chỉnh, ảnh của trình chỉnh sửa ROMFS và tệp tạm của công cụ video, để các tệp cũ từ tiến trình khác không bao giờ bị nạp hay chuyển đổi nhầm (939154501af, a288fe712e7, 5c8c717adec).
Video H.264 -- các bản ghi và chuyển đổi mã hóa H.264 với khoảng khung hình chính cố định; tốc độ khung hình ghi được gần một số nguyên sẽ được làm tròn về số đó để trình phát báo 30 FPS thay vì 29.97 (6ad1968341d, d62c110e155, bab488a54fe).
Tổng kiểm tra tệp zip tài nguyên -- bản cập nhật tài nguyên của IDE được xác minh với mã SHA-256 công bố cùng phiên bản (677546ee033).
User-Agent trung thực trên các yêu cầu đến máy chủ của OpenMV (c4279c0213e).
Sửa lỗi#
Hai lượt rà soát mọi thay đổi kể từ v5.0.0 đã tìm thấy và sửa các lỗi sau (ccea3b17d01, 71826200611):
Các đường dẫn firmware và bootloader -- Load Custom Firmware với tệp zip lên một bo mạch đã ở chế độ bootloader lại nạp bản dựng phát hành; đường dẫn khôi phục Alif nay từ chối bản dựng tùy chỉnh thay vì nạp bản phát hành; một N6 Classic bị hỏng được sửa bằng bootloader và firmware N6 thường; một thư mục gốc tài nguyên bên thứ ba cũ có thể dẫn một bo mạch tích hợp bị hỏng đến các tệp của nhà cung cấp; bộ bắt IMX có thể tiếp tục nạp sau khi nó bị sập, bỏ qua Cancel trong khi chờ flashloader, và để cổng nối tiếp mở sau khi hủy trong lúc kích hoạt; bootloader của N6 Classic không có quy tắc udev; các mã thoát được chấp nhận của trình cài đặt trình điều khiển Windows có lỗi đánh máy.
Trình chỉnh sửa ROMFS -- Cancel trong khi đọc ROMFS báo "Failed to unpack ROMFS!" và chờ mười giây một camera vẫn đang ở bootloader; Cancel trong khi ghi kết thúc âm thầm với một ROMFS có thể chưa hoàn chỉnh; lỗi dfu-util trong khi ghi được báo là thành công; Cancel trong hộp thoại tiếp theo hủy bỏ mọi chỉnh sửa; Auto Reconnect có thể kết nối bên dưới trình chỉnh sửa đang mở; Edit ROMFS khi đang kết nối ngắt kết nối và kết nối lại trước một cách không cần thiết; các thư mục tạm của bộ chuyển đổi bị rò rỉ. Sau một thao tác bị hủy, bootloader nay được yêu cầu rời DFU để camera tự quay lại.
Kho lưu trữ của bên thứ ba -- các mục trong tệp zip được xác thực trước khi giải nén (không duyệt đường dẫn hay liên kết tượng trưng), việc cài đặt từng phần và cài đặt lại giữ bản sao cũ cho đến khi bản mới sẵn sàng, một bo mạch nhà cung cấp bị từ chối không còn kéo theo bo mạch tích hợp mà nó chồng lấn, mặt nạ PID bị thiếu không khớp với gì lúc chạy, và các hàng chỉ mục ví dụ / mô hình cơ sở không còn bắt nhầm các tệp cùng tên của nhà cung cấp.
Bộ đệm khung hình và cảm biến -- cảm biến sự kiện GENX320 (id chip trên
0x80000000) đã vô hiệu hóa bộ đệm khung hình; lựa chọn cảm biến đã lưu không tồn tại qua lần khởi động lại; tùy chọn "disable frame buffer" cũ không được di chuyển; lệnh nguồn luồng được chặn theo phiên bản giao thức; chỉ số nét bị đóng băng khi trang biểu đồ tần suất bị ẩn; định dạng khung hình còn lưu lại trong tiêu đề sau khi ngắt kết nối.Luồng kết nối -- các cảnh báo trên macOS có thể nuốt mất nút "Yes" của lời nhắc nâng cấp firmware; Model Zoo luôn mở ở trạng thái thu gọn mà không khôi phục lựa chọn; phương án dự phòng một ổ đĩa cho ổ đĩa của camera không thể đạt tới khi camera đã được cắm hơn mười giây.
Chế độ xem Kênh và bộ ghi -- các kích thước khung hình độc hại có thể làm tràn các kiểm tra kích thước; các bộ ghi Edge Impulse cấp phát lại ở mỗi khối và nay được giới hạn ở 64 MB mỗi phần; một lược đồ có dấu phân cách trong tên có thể lập chỉ mục vượt quá danh sách bản ghi; các bản ghi trùng lặp làm mồ côi một bộ ghi đang chạy; các lần ghi bị bỏ qua khi chế độ xem bị đóng băng; danh sách kênh nay được làm mới khi có sự kiện hủy đăng ký và khởi động lại mềm.
Video -- chiều rộng lẻ do người dùng nhập làm hỏng mã hóa H.264 trên các bản dựng libx264; các lần chuyển đổi
.binbị hủy hoặc thất bại để lại các khung hình mà lần chạy tiếp theo gộp vào.Giao thức -- thao tác xả bộ đọc chạy trước khi phát hiện giao thức được giới hạn (issue #336) (77cd13af76f); việc liên kết ổ đĩa của camera không còn thua cuộc đua với các ổ đĩa khác (9877480c304).
Một cảnh báo
-Wdeprecated-copytrong lớp bọc thông tin cổng nối tiếp (abcfaa8af5e).
Bản địa hóa#
Toàn bộ 37 danh mục dịch đã được cập nhật cho các chế độ xem của khung, chế độ xem Kênh và bản đồ độ sâu của nó, và mọi chuỗi mới trong bản phát hành này (1b71f243733, dc13c23ed81, a7debafdafa, 173a57422f7).
Hỗ trợ nền tảng và công cụ#
Nền tảng Qt Creator: 14.0.2.
Phiên bản OpenMV IDE được nâng lên 5.1.0.
Firmware đi kèm: v5.0.1 (xem nhật ký thay đổi firmware).
Bo mạch và cảm biến mới: OpenMV N6 Classic; FLIR Lepton 3.1R và UW.
Thay đổi gây gián đoạn#
Không có với các dự án hiện có. Nút bật/tắt JPG trên thanh tiêu đề của bộ đệm khung hình nay là bộ chọn Chế độ JPG / Chế độ RAW, và cài đặt "disable frame buffer" cũ của nó được di chuyển vào mục Tắt của bộ chọn nguồn mới. Các chú thích được loại bỏ khỏi tập lệnh trước khi chạy; một tập lệnh dựa vào việc đọc văn bản nguồn của chính nó lúc chạy thì không nên làm vậy.