Chương 1 - TỔNG QUAN 1.1 Tình hình nghiên cứu trong và ngoài nước 1.1 Công trình nước ngoài có liên quan Hiện nay, trên thế giới đã công bố nhiều công trình nghiên cứu về nhận dạng biển báo giao thông sử dụng thị giác máy tính. Các công trình này sử dụng các phương pháp, kỹ thuật xử lý ảnh và các thuật toán nhận dạng biển báo giao thông.1 Phát hiện biển báo giao thông. Hình ảnh được trích xuất từ tài liệu tham khảo “Automatic recognition of sign-boards using myrio” (2018) 1.2 Công trình trong nước có liên quan Gần đây, việc nhận dạng biển báo giao thông có nhiều công trình nghiên cứu của các trường đại học ở Việt Nam đã được công bố và đăng trên nhiều tạp chí khác nhau, điển hình như các công trình sau: - Phát hiện và nhận dạng biển báo giao thông đường bộ sử dụng đặc trưng HOG và mạng nơron nhân tạo (2015), Trương Quốc Bảo, Trương Hùng Chen và Trương Quốc Định, Tạp chí Khoa Công nghệ, Trường Đại học Cần Thơ, xem hình 1.2 Ảnh màu RGB (trái) và ảnh trắng đen sau khi xử lý (phải). - Trong bài này sử dụng kỹ thuật xử lý ảnh, thuật toán máy học để phát hiện nhận dạng biển giao thông.2 Mục tiêu của đề tài Xây dựng chương trình trên máy tính bằng ngôn ngữ Python chạy trên Google Colab của Google Research, để nhận dạng các biển báo giao thông đường bộ trên tỉnh lộ Đồng Nai.
Image Input Detection Thông báo Hình 1.3 Sơ đồ khối tổng quát.3 Đối tượng nghiên cứu Đối tượng nghiên cứu của đề tài là nhận dạng bốn nhóm biển báo giao thông đường bộ đặt ở hai bên đường và thông báo cho người điều khiển. Bốn nhóm này gồm: biển báo cấm, biển hiệu lệnh, biển chỉ dẫn, biển báo nguy hiểm và cảnh báo, xem phụ lục 1. (b) Biển hiệu lệnh. 4 (c) Biển chỉ dẫn.
(d) Biển báo nguy hiểm và cảnh báo.4 Một số biển báo giao thông đường bộ được lấy từ website: baogiaothong.4 Phương pháp nghiên cứu Đề thực hiện việc nhận dạng các biển báo giao thông trên tuyến đường bộ, hướng thực hiện của luận văn được đề xuất các bước như sau: - Nghiên cứu lý thuyết về xử lý ảnh, tham khảo các phương pháp từ các công trình nghiên cứu đã công bố. - Chọn giải pháp pháp nhận dạng các biển báo giao thông. - Thu thập ảnh từ camera, viết chương trình xử lý ảnh nhận biển báo giao thông. - Chạy thực nghiệm và đánh giá kết quả.5 Tổng quan về nhận dạng các biển báo giao thông Nhu cầu nhận dạng biển báo giao thông bằng thị giác máy tính là rất cần thiết cho cho người điều khiển phương tiện giao thông, đó là một chức năng rất quan trọng, nó quyết định sự an toàn cho phương tiện và những người đi cùng phương tiện đó.
Hiệu quả của việc nhận dạng biển báo giao thông phụ thuộc vào các yếu tố sau: - Chất lượng các biển báo giao thông: màu sắc và đường nét rõ ràng, có bị che bởi cây xanh cũng như các vật thể quanh đó. - Ánh sáng: ban ngày, ban đêm. - Thời tiết như: mưa, sương mù.5 Minh họa nhận dạng biển báo giao thông. Hình ảnh được tham khảo từ website: https://makeml.app/road-signs-detection-tutorial Việc sử dụng thị giác máy tính để phát hiện các biển báo giao thông cũng như các đối tượng khác là một giải pháp được sử dụng rộng rãi trên toàn thế giới.
Phương pháp này ứng dụng các kỹ thuật xử lý ảnh và các thuật toán máy học để tìm các đối tượng trong các hình ảnh. Bên cạnh đó, việc phát hiện đối tượng dựa trên thị giác máy tính là một vấn đề khó bởi vì hệ thống phải giải quyết với sự thay đổi về điều kiện tạo ảnh như: sự thay đổi về các điều kiện ánh sáng và thời tiết, cũng như sự thay đổi cảnh quan môi trường quanh đối tượng cần nhận diện.6 Các biển báo giao thông trên đường bị ảnh hưởng bởi các điều kiện ánh sáng cũng như thời tiết. Hình ảnh được tham khảo từ website: https://www.net/figure/Challenges-in-traffic-sign-detection-and- traffic-light-detection-a-Illumination_fig22_333077580 6 Chương 2 - CƠ BẢN VỀ XỬ LÝ ẢNH SỐ VÀ NHẬN DẠNG 2.1 Giới thiệu Công nghệ số hiện đại cho phép thao tác với những tín hiệu nhiều chiều bằng những hệ thống, từ đơn giản như các mạch điện tử, đến phức tạp như những máy tính song song cao cấp. Mục đích của việc thao tác này có thể chia thành ba nhóm: - Xử lý ảnh (Image processing): ảnh vào => ảnh ra, bao gồm: nén ảnh (Compression), giảm nhiễu (Noise reduction), nâng cao tương phản (Contrast enhancement), lọc (Filtering), biến đổi afin (Affine tranformation), khôi phục (Restoration) .1 Minh họa về xử lý ảnh.
Ảnh bên phải là kết quả từ thao tác điều chỉnh độ sáng và độ tương phản của ảnh bên trái. - Phân tích ảnh: ảnh vào => số liệu đo đạc ra.2 Minh họa về phân tích ảnh. Hình bên phải là kết quả từ thuật toán phát hiện đối tượng, rồi trả về số lượng đối tượng được phát hiện trong ảnh bên trái. - Hiểu ảnh hay thị giác máy: ảnh vào => thông tin mô tả ra.
Theo như hình 2.2, khi thị giác máy hoạt động sẽ phân biệt được trong các đối tượng phát hiện, đối tượng nào là người và đối tượng nào là chim. Thị giác máy bao gồm xử lý ảnh và phân tích ảnh, bao gồm: theo vết (Tracking), phát hiện (Detection), phân loại 7 (Classification) và nhận dạng (Recognition), phân vùng ngữ nghĩa (Semantic segmentation) Nếu chúng ta thực sự muốn định nghĩa thị giác máy, trước tiên chúng ta phải làm rõ tầm nhìn là gì. Tầm nhìn là giác quan của con người cung cấp hầu hết thông tin mà con người có để xử lý. Các ước tính sơ bộ nói rằng tốc độ dữ liệu để xem liên tục là khoảng 10 megabit / giây.
Rõ ràng là lượng dữ liệu khổng lồ này không thể được xử lý trong thời gian thực, mà nó phải được lọc bởi vỏ não thị giác. Thị giác máy là các ứng dụng cấp cao gần với khả năng nhìn của con người (như quan sát khi lái xe); nhưng khả năng của con người để được công nhận sẽ không đạt được bằng thị giác máy về độ tin cậy, tốc độ và độ chính xác.1 Ảnh số, điểm ảnh và cách mô tả Về toán học, ảnh số (digital image) được mô tả dưới dạng một ma trận hình chữ nhật gồm x dòng và y cột, mỗi phần tử của ma trận xem như một điểm ảnh (pixel) có độ sáng từ 0 đến 255, còn được gọi là “ma trận hình ảnh”, được biểu diễn như sau: 𝐼 = [𝑠(𝑥, 𝑦)] Nếu ảnh màu xám thì mỗi điểm ảnh s(x,y) có giá trị thuộc tập G = {0, 1,. Giá trị 0 tương ứng với màu đen và giá trị 255 tương ứng màu trắng. Ảnh như vậy gọi là “ảnh xám 8 bit”.
0 tương ứng màu đen và 255 tương ứng màu trắng Hình 2.3 Cách biểu diễn hình ảnh dưới dạng ma trận chữ nhật. 8 Nếu ảnh màu được tạo ra từ hệ ba màu: đỏ (Red), lục (Green), lam (Blue) hay hệ màu RGB thì mỗi điểm ảnh s(x,y,n) sẽ có ba giá trị màu tương ứng với độ sáng từ 0 đến 255. Lúc này, ma trận hình ảnh được biểu diễn như sau: 𝐼 = [𝑠(𝑥, 𝑦, 𝑛)] Trong đó: n chỉ lớp màu, chẳng hạn: khi n = 0 thì tương ứng lớp màu đỏ, n =1 tương ứng lớp màu lục, n = 2 tương ứng lớp màu lam. Do đó, xem điểm ảnh là một véc-tơ ba dòng ứng với ba lớp màu như sau: 𝑔0 𝑠⃗(𝑥, 𝑦) = (𝑔1 ) 𝑔2 Trong đó: 𝑔0, 𝑔1, 𝑔2 có giá trị thuộc tập G = {0, 1,.
Độ sáng của điểm ảnh (x,y) cho lớp lam … cho lớp lục … cho lớp xanh đỏ lớp lam (2) lớp lục (1) lớp đỏ (0) Hình 2.4 Ảnh màu hệ RGB được biểu diễn bằng ba ma trận chữ nhật.2 Ghi nhận ảnh Nếu ảnh số được mô tả dưới dạng một ma trận hình chữ nhật thì ảnh được ghi lại bởi một ma trận cảm biến cũng có cấu trúc của một ma trận hình chữ nhật, rõ ràng đây là một giải pháp tốt. 9 Ma trận cảm biến hình ảnh Màn hình hiển thị hình ảnh Chuyển ảnh ghi bởi cảm biến lên màn hình Hình 2.5 Ảnh được ghi nhận bởi các cảm biến ảnh được sắp xếp theo cấu trúc của ma trận chữ nhật, rồi thể hiện ảnh cũng theo một ma trận chữ nhật.3 Canny Edge detector 2.1 Giới thiệu Canny Edge detector là một bộ dò cạnh Canny, sử dụng nhiều thuật toán để phát hiện một loạt các cạnh trong ảnh, được phát triển bởi John F. - Phát hiện cạnh với tỷ lệ lỗi thấp, tương ứng với việc tối đa hóa tỷ lệ tín hiệu trên nhiễu (Signal-to-Noise Ratio hay SNR), nhận dạng chính xác càng nhiều cạnh hiển thị trong ảnh càng tốt. - Định vị cạnh với độ chính xác cao, có nghĩa là các cạnh được phát hiện càng gần các cạnh thực càng tốt.
Các điểm trên cạnh được phát hiện nên khoanh vùng chính xác ở tâm của cạnh. - Số cạnh phát hiện được phản hồi chính xác, một cạnh thực trong ảnh chỉ nên đánh dấu một lần và nhiễu hình ảnh không được tạo ra các cạnh giả.2 Giải thuật năm bước dò cạnh Canny Bước 1 - Làm trơn ảnh: ảnh được loại bỏ nhiễu bằng bộ lọc “Gaussian blur”. Bước 2 - Tính gradient: các biên trên ảnh được đánh dấu nơi gradient của ảnh có cường độ lớn. Bước 3 - Triệt tiêu không cực đại (Non-maximum): chỉ có cực đại địa phương được đánh dấu là biên.
10 Bước 4 - Ngưỡng đôi (Double thresholding): biên tiềm năng được xác định bởi ngưỡng. Bước 5 - Dò biên bằng hiện tượng trễ (Hysteresis): biên cuối cùng được xác định bằng cách triệt tiêu tất cả các biên mà không kết nối với một biên rõ nét và chắc chắn.6 Ảnh từ trái sang phải: (a) Ảnh gốc (b) Ảnh sau khi thực hiện bước 1 (c) Sau bước 2 (d) Sau bước 3 (f) Sau bước 4 (e) Sau bước 5.7 Áp dụng thuật toán phát hiện biên Canny để xác định đường biên của biển báo giao thông.4 Sliding window Cửa sổ trượt (sliding window) là kỹ thuật mà ta dùng một cửa sổ (window hay một tên gọi khác là “kernel”) để trượt qua mỗi điểm ảnh trên ảnh. Tại mỗi điểm ảnh trong cửa sổ trượt trong quá trình trượt, áp dụng phép biến đổi giữa các điểm ảnh trên cửa sổ trượt và các điểm ảnh tương ứng trên vùng ảnh mà cửa sổ trượt đi qua. Kích thước ảnh đầu ra sau khi áp dụng kỹ thuật cửa sổ trượt phụ thuộc vào: - Window size (kernel size): kích thước cửa sổ.
- Padding: số điểm ảnh mở rộng thêm vào ảnh đầu vào. - Stride: khoảng cách trượt. 11 - Dilation: khoảng cách của mỗi điểm ảnh trong cửa sổ.