Phần mềm tầm nhìn dựa trên sự kiện xử lý những gì?

Camera sự kiện sẽ báo cáo những thay đổi về độ sáng thay vì cung cấp khung hình video thông thường ở mọi khoảng thời gian. Sự kiện được giải mã thường xác định một pixel, một cực và một dấu thời gian. Ứng dụng của bạn phải bảo toàn ý nghĩa của các trường đó thông qua việc thu thập, lọc, ghi và suy luận. các so sánh dựa trên sự kiện và dựa trên khung giải thích khi nào mô hình dữ liệu đó hữu ích.

Phân biệt ba định dạng trong thiết kế: cảm biến hoặc mã hóa truyền tải, biểu diễn sự kiện được giải mã được sử dụng bởi phần mềm và biểu diễn được truyền cho thuật toán. Một tệp chứa các gói cảm biến thô, một loạt các sự kiện được giải mã và hình ảnh tích lũy phục vụ các mục đích khác nhau. Việc chuyển đổi giữa chúng có thể thay đổi việc sử dụng bộ nhớ, chi phí xử lý và thông tin về thời gian có sẵn ở phía sau.

đại diệnHữu ích choCâu hỏi tích hợp
Gói thô hoặc bản ghi của nhà cung cấpTái tạo hành vi thu thập và giải mãBộ giải mã được triển khai có thể đọc bản sửa đổi định dạng và thiết bị chính xác này không?
Sự kiện được giải mãLọc, phân tích thời gian và thuật toán gốc sự kiệnĐơn vị dấu thời gian, miền đồng hồ và quy ước tọa độ là gì?
Bề mặt thời gian hoặc tensor dạng voxelCác thuật toán cần biểu diễn thời gian có cấu trúcNhững cài đặt lịch sử, tạo thùng và chuẩn hóa nào phải được sao chép?
Hình ảnh sự kiện tích lũyTrực quan hóa hoặc giai đoạn xử lý dựa trên hình ảnh tương thíchCửa sổ tích lũy gây ra bao nhiêu độ trễ và mất thông tin?

Cách đánh giá camera sự kiện SDK

Bắt đầu với cảm biến, chương trình cơ sở máy ảnh và nền tảng máy chủ chính xác. Bản trình diễn trên máy tính để bàn không thiết lập hỗ trợ cho hình ảnh Linux được nhúng, bộ xử lý ARM hoặc giấy phép sản xuất của bạn. Hãy hỏi nhà cung cấp về các hệ điều hành được hỗ trợ, kiến ​​trúc CPU, điều kiện phân phối lại và các yêu cầu về giao diện camera. Xác minh ứng dụng trên nền tảng dự định trước khi chuyển giao bo mạch nền cho mô-đun điện toán.

  • Mua lại: phát hiện thiết bị, cấu hình, giải mã và báo cáo lỗi.
  • Thời gian: nguồn gốc dấu thời gian, xử lý di chuột qua, kích hoạt bên ngoài và căn chỉnh nhiều thiết bị.
  • Khả năng tái tạo: bản ghi, xuất cấu hình và phiên bản phần mềm được xác định.
  • Triển khai: hoạt động không đầu, các tệp nhị phân được hỗ trợ, hành vi khởi động lại và các điều khoản cấp phép.
  • Khả năng quan sát: số lượng sự kiện, độ sâu hàng đợi, dữ liệu bị mất và việc sử dụng tài nguyên máy chủ.

Xây dựng một quy trình có ranh giới thời gian rõ ràng

Có đượcGiải mã và bảo toàn thời gian cảm biến
chuẩn bịLọc, đồng bộ hóa và tạo cửa sổ
Quyết địnhTheo dõi hoặc suy luận, sau đó đánh dấu thời gian đầu ra

Giữ việc thu thập tách biệt khỏi việc trực quan hóa, ghi đĩa và suy luận mô hình tốn kém. Nếu không, người tiêu dùng chậm có thể trì hoãn dữ liệu mới trước khi thuật toán bắt đầu. Xác định hàng đợi có giới hạn và chính sách quá tải rõ ràng. Việc loại bỏ cửa sổ cũ nhất, giảm vùng quan tâm và dừng khi có lỗi sẽ gây ra những hậu quả khác nhau; chọn hành vi phù hợp với ứng dụng và ghi lại khi nó xảy ra.

Sử dụng dấu thời gian của cảm biến để mô tả thời điểm quan sát xảy ra và đồng hồ máy chủ đơn điệu để đo thời lượng xử lý. Việc trừ dấu thời gian khỏi các đồng hồ không liên quan không tạo ra độ trễ hợp lệ từ đầu đến cuối. Nếu máy ảnh phải được kết hợp với IMU hoặc máy ảnh thông thường, hãy thiết lập mối quan hệ đồng hồ và quy trình hiệu chỉnh được mô tả trong phần của chúng tôi. hướng dẫn đồng bộ hóa cảm biến tổng hợp.

Một ví dụ kiểm tra ghi âm nhỏ

Ví dụ Python sau đây đếm các sự kiện được giải mã trong bản ghi được hỗ trợ và báo cáo khoảng thời gian của chúng. Nó sử dụng tài liệu Metavision streaming API và yêu cầu cài đặt và ghi SDK tương thích. Đây là một ví dụ kiểm tra, không phải là điểm chuẩn hoặc máy dò của máy ảnh ALVEXIS.

import argparse
from metavision_sdk_stream import Camera, CameraStreamSlicer

parser = argparse.ArgumentParser()
parser.add_argument("recording")
args = parser.parse_args()
source = Camera.from_file(args.recording)
count, first_us, last_us = 0, None, None

for batch in CameraStreamSlicer(source.move()):
    events = batch.events
    if events.size:
        start = int(events["t"][0])
        end = int(events["t"][-1])
        first_us = start if first_us is None else min(first_us, start)
        last_us = end if last_us is None else max(last_us, end)
        count += int(events.size)

span_s = 0.0 if first_us is None else (last_us - first_us) / 1_000_000
print({"events": count, "event_timestamp_span_s": span_s})

Khoảng thời gian bao gồm sự kiện được quan sát từ đầu đến cuối; nó không đo thời lượng tệp, độ trễ thu thập hoặc thông lượng xử lý. Khoảng thời gian trống và việc đặt lại đồng hồ cần được xử lý riêng trong quá trình sản xuất. Giữ cấu hình thiết bị và ghi siêu dữ liệu cùng với tệp để kỹ sư thứ hai có thể tái tạo bản dịch.

Xác thực các cảnh yên tĩnh, cảnh bận rộn và phục hồi lỗi

Kiểm tra một cảnh đứng yên, chuyển động tiêu biểu và một cảnh đòi hỏi có chủ đích. Nhấp nháy, rung máy và chuyển động có kết cấu có thể tạo ra tỷ lệ sự kiện rất khác nhau. Ghi lại cả hành vi điển hình và trường hợp xấu nhất mà bạn quan sát được. Lặp lại với bộ lưu trữ và liên lạc đang hoạt động vì những khối lượng công việc đó cạnh tranh về thời gian của bộ nhớ và CPU.

kiểm traGhi lạiQuyết định nó hỗ trợ
Phát lại bản ghi tương tựCấu hình, sự khác biệt đầu ra và thời gian xử lýMột thay đổi phần mềm có thể được đánh giá một cách có thể lặp lại được không?
Tăng hoạt động của cảnhĐộ sâu hàng đợi, mất sự kiện và tuổi đầu raHệ thống có còn sử dụng được khi tải cao điểm không?
Thay đổi cửa sổ xử lýĐộ chính xác của ứng dụng và độ trễ từ cảm biến đến đầu raSự cân bằng thời gian/chi tiết nào phù hợp với yêu cầu?
Ngắt kết nối và kết nối lại thiết bịThời gian khôi phục, đặt lại đồng hồ và ghi liên tụcDịch vụ đã triển khai có thể phục hồi theo dự đoán được không?

Khi thuật toán sử dụng mạng nơron, hãy kiểm tra tensor kết quả và các toán tử được hỗ trợ trước khi chọn bộ tăng tốc. Camera sự kiện không tự động yêu cầu NPU và NPU không tự động chấp nhận luồng sự kiện. của chúng tôi Hướng dẫn kiến trúc FPGA, NPU và MPU tách biệt các dịch vụ thu thập, tiền xử lý, suy luận và ứng dụng.

Câu hỏi trước khi chọn ngăn xếp phần mềm

Tôi có thể sử dụng mô hình thị giác máy tính bình thường không?

Chỉ sau khi xác định biểu diễn đầu vào tương thích và xác thực hành vi của nó. Việc tích lũy các sự kiện vào hình ảnh có thể cho phép sử dụng lại giai đoạn xử lý hình ảnh nhưng thay đổi cách phân phối dữ liệu và thêm cửa sổ thời gian. Đánh giá ứng dụng hoàn chỉnh trên dữ liệu đại diện.

Bản demo máy tính xách tay đang hoạt động có chứng minh khả năng tương thích được nhúng không?

Không. Xác nhận kiến trúc CPU, hệ điều hành, giao diện cảm biến, trình điều khiển, giấy phép SDK và việc sử dụng tài nguyên bền vững của nền tảng mục tiêu thực tế.

Tôi nên gửi gì cho một cuộc thảo luận về tích hợp?

Gửi tham chiếu camera hoặc cảm biến, ghi mẫu, đầu ra dự kiến, độ trễ chấp nhận được, nền tảng máy chủ, giao diện và môi trường triển khai. Những đầu vào này làm cho cuộc thảo luận đủ cụ thể để xác định những rủi ro tích hợp đầu tiên.

Tầm nhìn thần kinh trong một đường ống thị giác máy tính

Camera sự kiện thường được thảo luận dưới góc nhìn thần kinh vì đầu ra của chúng ghi lại những thay đổi ở từng pixel thay vì một chuỗi hình ảnh hoàn chỉnh cố định. Việc biểu diễn dữ liệu đó không tự động cung cấp khả năng phát hiện đối tượng hoặc kết quả mạng thần kinh. Phần mềm vẫn cần có nhiệm vụ xác định, thuật toán tương thích và tiêu chí chấp nhận có thể đo lường được.

Khi tích hợp với các công cụ thị giác máy tính định hướng khung, luồng sự kiện có thể được chuyển đổi thành hình ảnh cửa sổ thời gian hoặc dạng biểu diễn khác. Giữ lại dấu thời gian ban đầu nếu tác vụ phụ thuộc vào thông tin thời gian chính xác. Đánh giá quy trình chuyển đổi và xử lý hoàn chỉnh; chỉ một hình ảnh được tái tạo hấp dẫn thôi thì không xác định được độ chính xác hoặc độ trễ của ứng dụng cuối cùng.

Lập kế hoạch thời gian trước khi kết hợp cảm biến

Tài liệu tham khảo kỹ thuật

Ví dụ về nhà cung cấp mô tả hệ sinh thái được hỗ trợ của riêng họ. Xác nhận tính tương thích và cấp phép cho thiết bị đã chọn và hoạt động triển khai.

Lập kế hoạch tích hợp camera sự kiện của bạn.