Phân tích và thiết kế

Một phần của tài liệu nghiên cứu thư viện opencv ứng dụng trong việc nhận dạng biển báo giao thông (Trang 55 - 58)

CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU

3.1. Phân tích và thiết kế

3.1.1. Đặc trưng của biển báo

Vì tính phức tạm của các biển báo, trong phạm vi của bài toán chỉ nhận dạng biển báo cấm biển báo nguy hiểm và biển báo hiệu lệnh.

Dựa vào đặc điểm nhận dạng của các biển báo, nhận thấy điểm chung giữa các biển báo là có viền đỏ hoặc xanh lam. Đây là một đặc trưng quan trọng vì nó được dùng để phát hiện biển báo và định vị vị trí của nó trong hình ảnh.

Một số biển báo không thuộc đặc điểm chung đó sẽ được bỏ qua.

3.1.2. Quy trình phát hiện và nhận dạng biển báo

Việc phát hiện và nhận dạng biển báo trong video có thể được đơn giản hoá bằng việc phát hiện và nhận dạng biển báo trong một hình ảnh, vì bản chất của video là sự kết hợp của nhiều hình ảnh lại với nhau.

Để phát hiện và nhận dạng được biển báo thì cần phải phân tích, xử lý và trích xuất các thông tin cần thiết trong hình ảnh để phát hiện được có “sự xuất hiện” của biển báo, sau đó mới tiến hành nhận dạng biển báo đó từ tập dữ liệu chứa các thông tin về biển báo.

Do các biển báo giao thông là đối tượng biết trước, không đổi – là tập tất cả các biển báo có được vẽ bằng các phần mềm. Do đó, tôi đề xuất sử dụng phương pháp:

• Phát hiện vùng biển báo dựa trên viền của biển báo cáo màu đỏ hoặc xanh dương

• Nhận dạng biển báo dựa trên giải thuật so khớp bằng cách:

◦ Tìm các keypoints và trích xuất các keypoint descriptors của vùng biển báo được phát hiện ở bước trên (query) và của tập dữ liệu biển báo mẫu (train)

◦ Lần lượt so khớp query với train và chọn kết quả có số lượng keypoints khớp nhiều nhất

Hình 3.1: Một số biển báo có hình thù cá biệt

3.1.3. Yếu tố ảnh hưởng đến màu sắc

Ở bước phát hiện biển báo dựa trên màu sắc, dùng phương pháp threshold áp dụng ngưỡng cho 2 dãy màu gồm màu đỏ và xanh dương.

Không gian màu BGR (Blue Green Red)

Mặc định các hình ảnh màu được đọc bởi OpenCV được thể hiện ở không gian màu BGR.

Các hình ảnh được chụp, video được quay có thể ở các điều kiện ánh sáng khác khác nhau là yếu tố khó khăn cho việc trích xuất các đặc trưng, vì ở điều kiện ánh sáng (luminance) khác nhau, một màu có thể biến đổi thành màu khác ở chế độ màu này, ánh sáng ảnh hưởng bởi cường độ (intensity) của điểm ảnh, được chia sẽ với 3 kênh màu:

Intensiy=11%B+59%G+30%R Do đó rất khó để trích xuất biển báo ở chế độ màu này.

Không gian màu HSV (Hue – Saturation – Value)

Với không gian màu này Hue giữ giá trị của màu sắc (giá trị từ 0 đến 360); Saturation giữ giá trị của độ kinh khiết hay bảo hoà của Hue (giá trị từ 0 đến 100), giá trị càng lớn thì Hue càng đậm và Value giữ giá trị độ sáng của hình ảnh (giá trị từ 0 đến 100), giá trị càng lớn thì Hue càng sáng.

Hình 3.2: Quy trình phát hiện và nhận dạng biển báo Video/

Camera

Phát hiện biển báo

Nhận dạng biển báo

Biển báo đã nhận dạng

Biển báo mẫu Vùng biển báo

So khớp Hình ảnh

Hình 3.3: Không gian màu HSV

Saturation

Hue

Value

3.1.4. Phát hiện biển báo

Từ lý do trên sau khi đọc xong hình ảnh, chuyển ảnh từ không gian màu BRG sang không gian màu HSV để không bị ảnh hưởng bởi anh sáng, với chế độ màu HSV toàn bộ cường độ sáng (intensity/luminance) được chuyển về kênh V, từ đó chỉ cần xử lý ở 2 kênh màu còn lại là H và S mà không cần quan tâm đến V.

HSV trên OpenCV cài đặt khác so với các phần mềm sửa ảnh: Hue có giá trị từ 0 – 179 (mã hoá 7-bit), Saturation có giá trị từ 0 – 255 (mã hoá 8-bit) và Value có giá trị từ 0 – 255 (mã hoá 8-bit).

Dựa vào hình trên, giá trị màu:

• Màu đỏ thuộc khoảng: 0 <= Hue <= 10 và 170 <= Hue <= 180

• Màu xanh dương thuộc khoảng: 100 <= Hue <= 130

Threshold (áp dụng ngưỡng) với 2 khoảng màu đỏ và xanh lam để xác định được viền của biển báo.

Để xác định để xác định biên của biển báo, áp dụng phương pháp tìm Contours để cho ra tập các candidates (vùng ảnh có khả năng là biển báo).

3.1.5. Nhận dạng biển báo

Sau khi có tập contours mỗi contours là một vùng biển báo (sign candidates), tách từng candidates và loại bỏ những candidates có diện tích nhỏ sau đó đem đi nhận dạng:

• Tìm keypoints và descriptors của từng candidates biển báo

• Tìm keypoints và descriptor của train images

• Tiến hành so khớp với từng ảnh trong tập train, tìm ảnh có số lượng keypoints match nhiều nhất, loại bỏ các ảnh có số lượng match ít (threshold apply)

Hình 3.4: Giá trị Hue của OpenCV

0 30 60 90 120 150 180

Hình 3.5: Quy trình phát hiện biển báo

Hình ảnh HSV

Tìm contours

Vùng phát hiện biển báo Áp dụng ngưỡng

vùng màu đỏ

Áp dụng ngưỡng màu xanh dương

Phát hiện biển báo

Canny edges

Loại bỏ kết quả sai

Một phần của tài liệu nghiên cứu thư viện opencv ứng dụng trong việc nhận dạng biển báo giao thông (Trang 55 - 58)

Tải bản đầy đủ (PDF)

(65 trang)