2011-11-09 32 views
6

Tôi đang cố gắng lấy vị trí của một đối tượng nhất định trong một hình ảnh được chụp bằng máy ảnh. Mẫu phù hợp sẽ không làm trong trường hợp này, bởi vì tôi cần một giải pháp bất biến quy mô/xoay.Sử dụng các điểm chính để tính toán các điểm tương đồng của đối tượng

Vì vậy, tôi hiện đang sử dụng thuật toán FAST từ OpenCV để phát hiện các điểm chính trong hình ảnh của tôi, có vẻ như hoạt động tốt.

Nhưng điều tiếp theo là gì? Tôi có một 'mẫu hình ảnh' của đối tượng mà tôi muốn phát hiện. Tôi có thể tưởng tượng rằng tôi phải phát hiện các điểm chính của hình ảnh mẫu này, và sau đó so sánh nó với cách hiển thị hình ảnh được chụp bằng máy ảnh. Đây có phải là những gì tôi phải làm tiếp theo và nếu có, tôi có thể sử dụng những chức năng nào cho điều đó? (Tôi đang sử dụng OpenCV)

Hoặc có cách nào khác để thực hiện việc này không?

Vậy làm cách nào tôi có thể sử dụng các điểm chính để phát hiện một đối tượng nhất định trong hình ảnh của mình?

+1

Bạn có thể xem 3 hướng dẫn cuối cùng từ trang này, có thể chúng có thể được sử dụng cho bạn: http://opencv.itseez.com/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html – Adrian

+0

@AdrianPopovici Cảm ơn, tôi đã thử "Feature2D + Homography để tìm một đối tượng đã biết", nó hoạt động tuyệt vời. Nhược điểm là nó cực kỳ chậm chạp. Nhưng đó có lẽ là vì tôi đang ở trên một chiếc iphone. Tôi sẽ thử cái cuối cùng để xem nó có nhanh hơn không. Cảm ơn anyway, bạn chỉ cho tôi đi đúng hướng! – w00

Trả lời

6

Bạn đang sử dụng NHANH để phát hiện keypoint, đó là OK.

Bây giờ, bước tiếp theo là sử dụng Trình mô tả trình mô tả. Bộ giải mã mô tả là gì? Là một thuật toán tạo ra một mô tả của một điểm quan trọng mà làm cho điểm này nhận ra bởi một trận đấu matcher. Các bộ mô tả nổi tiếng là SIFT, FREAK ...

Sau khi bạn tìm thấy các bộ mô tả trong hình ảnh mẫu và trong hình ảnh truy vấn, bạn sẽ cần một trình phù hợp. Người đấu giá sẽ cho bạn biết các mô tả nào giống nhau.

Lưu ý rằng SIFT yêu cầu trình so khớp dựa trên euclide (FLANN), nhưng FREAK hoặc các bộ mô tả nhị phân khác yêu cầu trình kết hợp dựa trên khoảng cách hấp dẫn.

1

Hãy thử các tính năng ORB thay thế. Chúng được thiết kế để nhanh hơn. Ngoài ra, hãy xem CARD descriptors.

+0

Tôi đã cố gắng triển khai phương pháp ORB nhưng ứng dụng gặp sự cố mỗi khi tôi thử. Nó cứ rơi khi tôi cố gắng làm một trận đấu. - Brute Force phương pháp: http: //pastebin.com/BvnFQgcY --- flannBased: http://pastebin.com/1RrCv0QL - Bất kỳ ý tưởng những gì vấn đề có thể được? – w00

1

Có lẽ bạn có thể thử SIFT mô tả keypoint

VLfeat

Rob Hess

điều thứ hai là opencv dựa.

Các vấn đề liên quan