Làm thế nào để trích xuất các biển báo giao thông từ một bức ảnh?


15

Tôi có thể sử dụng những kỹ thuật phân tích hình ảnh nào để trích xuất các biển báo giao thông từ một hình ảnh như hình dưới đây?

Ảnh bên ngoài của một bên đường đô thị

Biên tập:

Sau khi khuếch tán bất đẳng hướng: Nền mà tôi không muốn bị xóa đi một chút

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

Sau khi giãn nở:

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

Ngưỡng sau khuếch tán: Không thể tìm ra ngưỡng tốt nhất cho mục đích này

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

Tuy nhiên tôi không thể tìm ra làm thế nào để loại bỏ nền?

Chỉnh sửa: tôi chỉ muốn những phần này của hình ảnh của tôi

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

Lấy hình ảnh đầu vào khác:

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

Áp dụng lọc trung bình và phát hiện cạnh:

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

Sau khi lọc mũ dưới:

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

Làm thế nào để tôi cô lập các dấu hiệu đường xin vui lòng giúp đỡ?


Đối với tôi, "tín hiệu giao thông" có nghĩa là một thiết bị sáng lên jowersymbol.com/images/traffic-signal-sign-6.png , không phải là một dấu hiệu. Bạn có nghĩa là chỉ dấu hiệu?
endolith

Có chỉ các dấu hiệu
vini

Cách tiếp cận nào bạn đã cố gắng cho mình?
Maurits

Có tôi có mẫu
vini

Đã chỉnh sửa @maur viêm
vini

Câu trả lời:


17

Bạn đã thử một cái gì đó đơn giản như tương quan?

( CHỈNH SỬA ). Ý tưởng đằng sau sự tương quan là sử dụng một mẫu (trong trường hợp của bạn là mẫu biển báo đường được đào tạo) và so sánh nó với mọi vị trí trong hình ảnh thử nghiệm. Hoạt động so sánh tôi đã sử dụng để tạo các hình ảnh dưới đây được gọi là tương quan chéo được chuẩn hóa . Nói một cách đơn giản, bạn chuẩn hóa (mean = 0, độ lệch chuẩn = 1) các pixel trong mẫu và phần hình ảnh bạn muốn khớp, nhân chúng theo pixel và tính giá trị trung bình của các sản phẩm. Bằng cách này, bạn sẽ có được "điểm số phù hợp", tức là thước đo độ tương tự giữa mẫu và hình ảnh thử nghiệm ở mọi vị trí trong hình ảnh thử nghiệm. Vị trí có kết quả phù hợp nhất (tương quan cao nhất) là ứng cử viên có thể nhất cho vị trí của biển báo đường bộ. (Trên thực tế, tôi đã sử dụng hàm MathicalaCorrelationDistance để tạo hình ảnh bên dưới, là 1 - (tương quan chuẩn hóa). Vì vậy, điểm tối nhất trong hình ảnh trận đấu tương ứng với điểm phù hợp nhất).

Tôi không có bất kỳ mẫu nào khác, vì vậy tôi đơn giản cắt dấu hiệu từ hình ảnh thứ hai bạn đã đăng:

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

Mặc dù mẫu được xoay nhẹ, nhưng tương quan chéo vẫn có thể sử dụng được

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

và trận đấu tốt nhất được tìm thấy ở đúng vị trí:

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

(Tất nhiên, bạn cần nhiều phiên bản thu nhỏ của từng mẫu để phát hiện các dấu hiệu ở mọi kích thước)


1
@nikie: Bạn có thể giải thích quy trình bạn đã sử dụng không?
smokris

Vâng, điều đó sẽ giúp nhiều hơn một chút. Ý tưởng có vẻ tốt
vini

@vini Nếu bạn có các mẫu và bạn đang cố gắng tìm các phiên bản của nó trong hình ảnh của mình, thì tương quan chéo là cách tiếp cận tự nhiên nhất và nên là một trong những cách tiếp cận đầu tiên bạn thử. Đây là một câu trả lời ở đây (mã Mathicala) và một câu trả lời khác về SO (mã MATLAB) nơi tôi sử dụng phương pháp này.
Lorem Ipsum

7

Trong thời gian học thạc sĩ, dự án mà người giám sát của tôi đã tham gia để phát hiện và nhận ra tất cả các loại tín hiệu giao thông khác nhau trong một chuỗi video (ví dụ: phát hiện đường, phát hiện đường trung tâm, nhưng cũng phát hiện và nhận biết biển báo giao thông ). Các khung hình video mà chúng tôi đang thực hiện theo nhiều cách tương tự như hình ảnh ví dụ của bạn.

Mặc dù cá nhân tôi đã không làm việc với các biển báo giao thông, tôi nghĩ rằng kết quả tốt nhất đã đạt được bằng cách sử dụng Thuật toán Viola-Jones (giấy) . Nói tóm lại, đây là một thuật toán sử dụng một loạt các phân loại yếu (với độ chính xác chỉ cao hơn một chút so với thuật toán ngẫu nhiên) để xây dựng một trình phân loại mạnh, mạnh mẽ ngay cả trong các nhiệm vụ khó khăn.

Dự án được gọi là MASTIF (Lập bản đồ và đánh giá tình trạng cơ sở hạ tầng giao thông) và đã thực hiện một số công việc thực sự tốt. Trang xuất bản của dự án có thể thực sự hữu ích vì nó cung cấp liên kết đến tất cả các bài báo được xuất bản liên quan đến dự án. Chỉ để cung cấp cho bạn một ý tưởng, hãy để tôi độc thân một số ấn phẩm (theo thứ tự thời gian):

Một lần nữa, cá nhân tôi không làm việc trên biển báo giao thông, nhưng tôi nghĩ bạn có thể tìm thấy nhiều tài liệu hữu ích ở đây. Ngoài ra, tôi cũng đề nghị đi qua các tài liệu tham khảo được trích dẫn trong các bài báo vì chúng cũng có thể giúp đỡ.


6

Vâng, googling road way signs detectioncung cấp cho bạn rất nhiều bài báo hay về chủ đề này.

Một số sử dụng phân đoạn màu do màu xanh đặc biệt, xanh lá cây, đỏ, vv

Một số áp dụng làm mịn Gaussian trước, sau đó phát hiện cạnh và tìm đường viền để trích xuất bảng hiệu.

Hãy thử theo hai liên kết sau: Liên kết 1 , Liên kết 2


Thật không may, liên kết đã chết
CharlesB

Trên thực tế cả hai liên kết làm việc cho tôi.
Abid Rahman K

@CharlesB: Các liên kết được cập nhật :)
Anoop KP

5

Tôi chắc chắn không phải là chuyên gia ở đây nhưng bạn có thể bắt đầu với phát hiện cạnh (chẳng hạn như canny), sau đó chuyển đổi hough để phát hiện các vòng tròn, hình chữ nhật, hình vuông hoặc hình tam giác (dựa trên dấu hiệu ou muốn phát hiện), sau đó bạn có thể thực hiện mẫu khớp hoặc biểu đồ khớp, nếu màu sắc đủ khác biệt (qua các ứng cử viên được trả về bởi biến đổi hough).

Bước đầu tiên (phát hiện các ứng cử viên sử dụng biến đổi hough) là bước khó hơn. Tôi có thể nghĩ ra nhiều cách để cố gắng phát hiện xem ứng cử viên đó có phải là dấu hiệu hay không. Đây là một vấn đề thú vị. Thích giải quyết nó :)

Nhân tiện, tôi chắc chắn bạn có thể tìm thấy những bài báo nghiên cứu hay có liên quan cao

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.