Phát hiện các mẫu hình tròn trong dữ liệu đám mây điểm


10

Đối với một số thuật toán xây dựng lại khối lượng mà tôi đang làm việc, tôi cần phát hiện một số mẫu hình tròn tùy ý trong dữ liệu điểm 3d (đến từ thiết bị LIDAR). Các mô hình có thể được định hướng tùy ý trong không gian, và được giả định là nằm (mặc dù không hoàn hảo) trong các mặt phẳng 2d mỏng. Dưới đây là một ví dụ với hai vòng tròn trong cùng một mặt phẳng (mặc dù hãy nhớ rằng đây là không gian 3d):

nhập mô tả hình ảnh ở đây

Tôi đã thử nhiều cách tiếp cận .. cách đơn giản nhất (nhưng cách tốt nhất cho đến nay) là phân cụm dựa trên các tập hợp khác nhau của biểu đồ lân cận gần nhất. Điều này hoạt động hợp lý tốt khi các mô hình cách xa nhau, nhưng ít hơn với các vòng tròn như trong ví dụ, thực sự gần nhau.

Tôi đã thử phương tiện K, nhưng nó không hoạt động tốt: Tôi nghi ngờ cách sắp xếp điểm tròn có thể không phù hợp với nó. Thêm vào đó tôi có thêm một vấn đề là không biết trước giá trị của K.

Tôi đã thử các cách tiếp cận phức tạp hơn, dựa trên việc phát hiện các chu kỳ trong biểu đồ lân cận gần nhất, nhưng những gì tôi nhận được là quá mong manh hoặc tốn kém về mặt tính toán.

Tôi cũng đã đọc về rất nhiều chủ đề liên quan (Hough Transform, v.v.) nhưng dường như không có gì để áp dụng hoàn hảo trong bối cảnh cụ thể này. Bất kỳ ý tưởng hoặc cảm hứng sẽ được đánh giá cao.


Một câu hỏi đơn giản hơn: làm thế nào bạn sẽ phát hiện ra các phân đoạn dòng trong dữ liệu hai chiều?
charles.y.zheng

".. giống như những người trong các ví dụ"? Ví dụ nào? Bạn có thể thêm một liên kết?
vào

Biến đổi Hough là sự lựa chọn rõ ràng. Nó nên hoạt động tốt.
whuber

Tôi chỉ có đủ danh tiếng trong khi thêm ví dụ hình ảnh mà tôi đang đề cập đến.
cjauvin

3
Đây không phải là một vấn đề cụm. Trong thống kê, "cụm" bao gồm các tập hợp các đối tượng gần nhau hơn so với các đối tượng khác. Sự gần gũi không nắm bắt được tính tuần hoàn: đó là lý do tại sao cả K-nghĩa và bất kỳ thuật toán phân cụm nào khác đều không hoạt động. Vì lý do này, câu hỏi này có lẽ phù hợp hơn trong việc xử lý hình ảnh hoặc các trang web GIS, nơi bạn có thể tìm thấy một số chuyên gia về vấn đề này.
whuber

Câu trả lời:


9

Một biến đổi Hough tổng quát là chính xác những gì bạn muốn. Khó khăn là làm điều đó một cách hiệu quả, bởi vì không gian của các vòng tròn trong 3D có sáu chiều (ba cho tâm, hai để định hướng mặt phẳng, một cho bán kính). Điều này dường như loại trừ một tính toán trực tiếp.

Một khả năng là lén theo dõi kết quả thông qua một chuỗi các biến đổi Hough đơn giản hơn. Chẳng hạn, bạn có thể bắt đầu với biến đổi Hough (thông thường) để phát hiện các tập hợp con phẳng: chúng chỉ yêu cầu lưới 3D để tính toán. Đối với mỗi tập hợp con phẳng được phát hiện, hãy cắt các điểm ban đầu dọc theo mặt phẳng đó và thực hiện một phép biến đổi Hough tổng quát để phát hiện vòng tròn. Điều này sẽ hoạt động tốt với điều kiện hình ảnh gốc không có nhiều điểm đồng phẳng (trừ những điểm được hình thành bởi các vòng tròn) có thể nhấn chìm tín hiệu do các vòng tròn tạo ra.

Nếu kích thước vòng tròn có giới hạn trên được xác định trước, bạn có thể có khả năng tiết kiệm rất nhiều tính toán: thay vì nhìn vào tất cả các cặp hoặc ba điểm trong ảnh gốc, bạn có thể tập trung vào các cặp hoặc ba trong một vùng lân cận của mỗi điểm.


Tôi sẽ thử kết hợp tất cả các cách tiếp cận được đề xuất: cụm đầu tiên chỉ dựa trên khoảng cách, như áp phích ban đầu đã thảo luận, sẽ cung cấp cho bạn các cụm có thể bao gồm nhiều vòng tròn. Sau đó sử dụng Hough để phát hiện các tập hợp con phẳng trong mỗi cụm. Sau đó, trong mỗi tập hợp con phẳng lại sử dụng Hough để tìm các vòng tròn. Nếu bước cuối cùng này tốn kém, bạn có thể thực hiện đoản mạch hiệu quả: thử một vài bộ ba, đoán một vòng tròn và xem liệu một phần đáng kể các điểm trong tập hợp con của bạn có nằm rất gần với vòng tròn đó không. Nếu vậy, ghi lại vòng tròn đó và loại bỏ tất cả những điểm đó, sau đó tiếp tục.
Erik P.

3
Ý tưởng thứ hai này được gọi là RANSAC và có thể được sử dụng bởi chính nó, đặc biệt nếu số lượng vòng tròn trên mỗi hình ảnh là nhỏ.
SheldonCooper

Cảm ơn các ý tưởng chiếu sáng! Biến đổi Hough nhiều bước đối với tôi là giải pháp mạnh mẽ và tổng quát nhất, nhưng RANSAC thực sự có vẻ dễ thực hiện hơn, và có thể là vừa đủ trong bối cảnh của tôi. Một vấn đề tôi nhanh chóng nhận thấy với nó là trường hợp bạn có các mẫu có kích thước không cân đối, rõ ràng là sai lệch việc lấy mẫu đối với các vật thể lớn hơn. Bạn có suy nghĩ gì về vấn đề này không?
cjauvin

Khi bạn phát hiện vòng tròn lớn hơn, hãy xóa tất cả các điểm thuộc về nó khỏi lấy mẫu.
SheldonCooper

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.