iPhone iOS UIImage làm thế nào để phát hiện một con trỏ laze laser chấm chấm trên nguồn cấp dữ liệu máy ảnh?


9

Tôi có một đồ chơi robot được theo dõi và tôi đang điều khiển nó bằng iPhone. Robot xuất ra một nguồn cấp dữ liệu camera trực tiếp có kích thước khung đã biết và tôi đang hiển thị nó trên UIImage.

Tôi đã thêm một con trỏ laser vào robot và cố định nó dọc theo trục của robot. Tôi đang cố gắng phát hiện dấu chấm con trỏ laser trên ảnh và do đó cố gắng tính toán độ gần của vật thể. Nếu chấm laser ở xa trung tâm, tôi biết rằng robot bị kẹt vào tường và cần phải sao lưu.

Làm cách nào để phát hiện một chấm các pixel màu đỏ trắng sáng trên màn hình? Một giải pháp sẽ là lấy mẫu màu của các pixel trong bán kính nhất định của tâm và phát hiện màu sáng của blob. Bất cứ ai có thể đề xuất một thuật toán cho hoạt động này?

Một cách tiếp cận khác là theo dõi vị trí trung bình của dấu chấm trong một vài khung hình cuối cùng, do đó làm giảm bán kính dự đoán. Nếu không có dấu chấm trong một khu vực được xác định trước, khu vực tìm kiếm có thể được mở rộng.

Cuối cùng, tôi muốn có thể dạy robot phát hiện thảm xung quanh nó. Thảm phản chiếu một con trỏ laser theo một cách nhất định và tôi muốn hiểu có bao nhiêu khung hình xung quanh robot có các thuộc tính tương tự. Nếu tôi biết con trỏ laser ở đâu trên màn hình, tôi có thể cắt một hình chữ nhật nhỏ từ hình ảnh đó và so sánh chúng với nhau. Có cách nào hiệu quả để so sánh nhiều hình ảnh nhỏ với nhau để hiểu nếu hình bóng của chúng khớp với nhau không?

Tôi nhận thấy rằng tia laser bị phản xạ khỏi các bề mặt bóng và hướng phản xạ này có thể cho tôi biết điều gì đó về hướng của bề mặt trong không gian, theo quy luật khúc xạ.

Cảm ơn bạn!

Con trỏ Laser đóng

Con trỏ laser 1


1
Bạn có thể bật và tắt con trỏ laser trong một mô hình không? Giống như một khung hình bị tắt, khung hình tiếp theo sẽ bật và bạn trừ đi các khung hình tiếp theo để làm cho nó trở nên rất rõ ràng.
endolith

Đó là một ý tưởng rất tốt! Nhưng tôi không có quyền kiểm soát con trỏ laser, dù bật hay tắt.
Alex Stone

@AlexStone Tôi đang cố gắng để đạt được điều tương tự, sự khác biệt duy nhất là tôi đang cố gắng phát hiện ánh sáng laser trên con ngươi mắt. Bạn có thể giúp tôi với mã ios hoặc bất kỳ mã mẫu nào mà bạn đã kiện với opencv trong việc theo dõi chùm tia laser không? Đánh giá cao sự giúp đỡ của bạn trước, cảm ơn AJ.
AmJa

Câu trả lời:


10

OpenCV có thể biên dịch được cho iOS. Mặc dù nó có thể không hiệu quả nhất nhưng nó cung cấp cho bạn tùy chọn chuyển thuật toán. Tôi đã thực hiện một vấn đề theo dõi đánh dấu tương tự bằng thuật toán ConDensation. Tra cứu theo dõi đánh dấu với OpenCV. Đây là một lĩnh vực nghiên cứu RẤT lớn và thuật toán chính xác mà bạn muốn phụ thuộc hoàn toàn vào ứng dụng của bạn. Nếu tôi nhớ chính xác, có khoảng 3000 kỹ thuật xử lý hình ảnh được báo cáo - để chọn một kỹ thuật tốt là một nghệ thuật thực sự!

Một giải pháp sẽ là lấy mẫu màu của các pixel trong bán kính nhất định của tâm và phát hiện màu sáng của blob. Bất cứ ai có thể đề xuất một thuật toán cho hoạt động này?

Nhân tiện, đây là ý tưởng cơ bản đằng sau cái được gọi là bộ lọc hạt (trong đó Ngưng tụ là một phương pháp). Làm tốt lắm bạn đã tự mình tìm ra ý tưởng cơ bản!

Một cách tiếp cận khác là theo dõi vị trí trung bình của dấu chấm trong một vài khung hình cuối cùng, do đó làm giảm bán kính dự đoán. Nếu không có dấu chấm trong một khu vực được xác định trước, khu vực tìm kiếm có thể được mở rộng.

Điều này được gọi là sự kiên trì của nhà nước và có thể được mô hình hóa theo nhiều cách khác nhau. Thuật toán ngưng tụ sử dụng cách tiếp cận ngẫu nhiên không giống với bộ lọc Kalman cũ đơn giản.

Có cách nào hiệu quả để so sánh nhiều hình ảnh nhỏ với nhau để hiểu nếu hình bóng của chúng khớp với nhau không?

Cái này khó hơn một chút. Bạn có thể thử so khớp mẫu nhưng tôi không biết nó sẽ hoạt động tốt như thế nào trên iOS (tính toán rất nặng và máy ảnh iOS không phù hợp với nó).


Paul, cảm ơn bạn cho một câu trả lời cực kỳ chi tiết! Tôi đã có khung OpenCV và sẽ tìm kiếm các ví dụ về các dự án sử dụng nó.
Alex Stone

Xin chào Paul, Bạn có ý tưởng nào về ứng dụng mẫu để phát hiện laser qua camera iOS bằng openCV không?
AmJa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.