Hệ thống phân tích, nhận dạng biển báo giao thông trên thiết bị di động
Bạn đang xem tài liệu "Hệ thống phân tích, nhận dạng biển báo giao thông trên thiết bị di động", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- he_thong_phan_tich_nhan_dang_bien_bao_giao_thong_tren_thiet.pdf
Nội dung text: Hệ thống phân tích, nhận dạng biển báo giao thông trên thiết bị di động
- HỆ THỐNG PHÂN TÍCH, NHẬN DẠNG BIỂN BÁO GIAO THÔNG TRÊN THIẾT BỊ DI ĐỘNG Lầu Sẹc Dần, Phạm Quốc Quân, Nguyễn Đức Thy Tuấn Khoa Công nghệ Thông tin, trường Đại học Công nghệ TP.Hồ Chí Minh, HUTECH TÓM TẮT Hiện nay nhiều tai nạn giao thông xảy ra khi người điều khiển phương tiện đi vào làn đường cấm vì không hiểu ý nghĩa biển báo giao thông trên các đoạn đường. Người tham gia giao thông vẫn chưa nắm rõ hết các biển báo. Trong khi đó, nhiều người nước ngoài điều khiển các phương tiện nhưng cũng chưa nắm rõ các ý nghĩa của biển báo giao thông. Để giải quyết vấn đề trên, đề tài mong muốn giúp mọi người có thể hiểu ý nghĩa các biển báo giao thông một cách dễ dàng và giúp nhiều trẻ em có thể học các biển báo thông qua phương pháp nhận dạng hình ảnh. Đề tài sử dụng máy học trong thư viện Tensorflow để phân tích và nhận dạng các biển báo giao thông. Mô hình nhận dạng được huấn luyện trên nền tảng đám mây, nhờ vậy chúng tôi đã xây dựng một ứng dụng di động có khả năng áp dụng vào thực tế. Kết quả thực nghiệm ứng dụng cho thấy khả năng nhận dạng thành công biển báo giao thông. Hiệu suất nhận dạng của ứng dụng vẫn còn một số hạn chế, nhưng có thể cải tiến và trở nên tốt hơn trong tương lai gần khi bổ sung thêm dữ liệu huấn luyện. Từ khóa: Biển báo, Máy học, Nhận dạng, Phân tích, Tensorflow. 1. MỞ ĐẦU Hầu như trên các tuyến đường đều có biển báo giao thông để chỉ dẫn cũng như giữ an toàn cho người tham gia giao thông, vì vậy biển báo có tầm quan trọng khá cao không thể thiếu trên các tuyến đường, nó còn giúp người điều khiển giao thông (cảnh sát giao thông) dễ dàng quản lý và xử phạt thích hợp với hành vi sai trái, vi phạm luật lệ giao thông. Hiện nay không chỉ trong nước mà cả ngoài nước cũng có rất nhiều biển báo giao thông. Do đó, chúng tôi quyết định tìm hiểu, phân tích, thu thập dữ liệu và huấn liệu các tập dữ liệu để triển khai chủ đề "Hệ thống phân tích nhận dạng biển báo giao thông trên thiết bị di động" để giúp người điều khiển giao thông biết tên gọi và ý nghĩa của biển báo, từ đó giúp người điều khiển giao thông chấp hành đúng với các quy tắc của biển báo, giúp cảnh báo và giữ an toàn cho người điều khiển giao thông, tránh những trường hợp đáng tiếc cho người lái xe lưu thông. TensorFlow là một thư viện phần mềm nguồn mở dành cho máy học trong nhiều loại hình tác vụ nhận thức và hiểu ngôn ngữ [1]. Thư viện này hiện đang được sử dụng cho cả nghiên cứu lẫn sản xuất các sản phẩm như: Nhận dạng giọng nói, hình ảnh. Để làm được điều này thì Google Brain đã sử dụng bộ lọc Canny để tìm các biên ảnh. Đó là sự kết hợp của các bước khác nhau để tìm và tối ưu đường biên, cho ra đường biên mảnh và chính xác. 1.1 Tìm biên ảnh dựa trên bộ lọc Canny Quá trình tìm biên bằng phương pháp Canny có thể được thực hiện theo bốn bước: Bƣớc 1: Loại bỏ nhiễu trong hình ảnh Đó là loại nhiễu trong hình ảnh, làm cho hình ảnh mờ đi bằng cách nhân hình ảnh với bộ lọc Gause, chẳng hạn như bộ lọc G5 5x5 với hệ số của σ = 1,4 250
- [ ] Bƣớc 2: Tính giá trị độ dốc trong ảnh Vì đường biên trong ảnh là nơi tách biệt giữa các đối tượng khác nhau, độ dốc của nó sẽ thay đổi mạnh mẽ nhất. Để tính toán độ dốc trong hình ảnh, chúng ta có thể sử dụng bộ lọc Sobel hoặc hợp nhất trực tiếp ma trận hình ảnh với mặt nạ theo hướng x và y. Sau đó, chúng tôi tính toán độ lớn của độ dốc trong hình ảnh.: √ ( ) Trong đó, Gx Gy là đạo hàm theo hướng x, y của pixel đang xem xét. Góc sẽ được làm tròn theo hướng dọc, ngang và chéo, nghĩa là nó sẽ được làm tròn để nhận các giá trị 0, 45, 90 và 135 độ. Bƣớc 3: Xóa các giá trị không được tối đa hóa Bước này sẽ tìm các pixel có khả năng là biên ảnh nhất bằng cách loại bỏ các giá trị không được tối đa hóa trong bước để tìm gradient hình ảnh ở trên. Chúng ta thấy rằng, với giá trị của góc ở trên, đường biên của đối tượng có thể đi theo bốn hướng. Bƣớc 4: Chọn đường biên của đối tượng trong ảnh Theo đó, bộ lọc Canny sẽ sử dụng ngưỡng trên và ngưỡng dưới, nếu độ dốc tại một điểm trong ảnh có giá trị lớn hơn ngưỡng trên, thì chúng tôi xác nhận rằng đó là điểm biên trong ảnh, nếu giá trị này nhỏ hơn ngưỡng dưới, thì đó không phải là điểm biên. Hình 1: Ảnh xám Hình 2: Biên ảnh sau khi lọc với bộ lọc Canny 1.2 Hình nhị phân, nhị phân hóa với ngƣỡng động Ảnh nhị phân là ảnh trong đó giá trị của mỗi pixel chỉ được biểu thị bằng hai giá trị 0 hoặc 255 tương ứng với màu đen hoặc trắng. Nhị phân hóa là quá trình biến hình ảnh màu xám thành hình ảnh nhị phân. Ảnh xám sẽ được chuyển thành ảnh nhị phân theo công thức 1.3. 1.3 Công thức ( ) ( ) { ( ) Ghi chú: g(x, y) là giá trị cường độ ánh sáng của một pixel ở vị trí (x, y). T là ngưỡng nhị phân. 251
- 1.4 Hình ảnh Hình 3: Hình xám Hình 4: Hình nhị phân Ta có thể thấy như hình 3 là một hình xám chưa qua quá trình nhị phân hóa. Hình 4 thể hiện hình ảnh sau khi đã nhị phân hóa hình 3 với ngưỡng nhị phân(T) là 100. 2. GIẢI PHÁP ĐỀ XUẤT Để giải quyết cho vấn đề này, chúng tôi muốn mang đến một sản phẩm để giúp người dân dễ dàng tham gia giao thông hơn mà không lo ngại về vấn đề biển báo. Sản phẩm sẽ giúp người dân có thể hiểu luật một cách rõ ràng và tuân thủ luật giao thông một cách đơn giản, chuẩn xác hơn. Ngoài ra, sản phẩm còn giúp người dùng lưu trữ thông tin biển báo đã nhận dạng, dùng làm bằng chứng trước các trường hợp xảy ra mâu thuẫn khi tham gia giao thông. Hỗ trợ mọi người đi du lịch từ nước này sang nước khác cũng như người nước ngoài vào Việt Nam tham gia giao thông một cách dễ dàng hơn mà không lo ngại về vấn đề luật giao thông của mỗi nước. Với thời đại công nghệ càng hiện đại, sản phẩm cũng có thể giúp trẻ em học biển báo thông qua việc nhận dạng mà không tốn thời gian mua sách vở cũng như học thuộc các biển báo. Áp dụng mô hình đường ống xử lý cho nhận dạng vật thể (Object detection processing pipeline) [4] với Google Colab để đào tạo các mô hình biển báo giao thông và nhận dạng biển báo giao thông bằng camera sau của smartphone với sự hỗ trợ của thư viện TensorFlow [1, 2, 3]. 3. KẾT QUẢ THỰC NGHIỆM Sau khi sưu tầm và nghiên cứu cách thức hoạt động. Biển báo đã được huấn luyện thành công một số tập dữ liệu và áp dụng vào ứng dụng. Sau khi hệ thống phân tích sẽ đưa ra kết luận cho biển báo đó và lưu vào lịch sử, từ đó mà ta có thể xem chi tiết của từng biển báo điều luật cũng như hình thức xử phạt. Sau nhiều lần chạy thử nghiệm và sản phẩm đã có được các kết quả rất khả quan khi tất cả các biển báo (30 biển báo) đều được nhận dạng với độ tin cậy gần như là 100% trong điều kiện chuẩn. 252
- Bảng 1: Thống kê kết quả thực nghiệm THỐNG KÊ KẾT QUẢ THỰC NGHIỆM Số lượng biển báo đã đào tạo 30 Kích thước hình ảnh nhận dạng (Pixel) 120 x 120 đến 7020 x 4960 Số bước(step) trung bình đào tạo cho mỗi 15000 biển báo Số lần test cho mỗi biển báo 10 Tuy nhiên vẫn còn một số hạn chế ở cự ly có thể nhận dạng biển báo, thể hiện một cách tường minh qua biểu đồ sau: Độ chính xác 100.000% 90.000% 80.000% 70.000% 60.000% 50.000% 40.000% 30.000% 20.000% Khoảng 10.000% cách(mét) .000% 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 Biểu đồ 1: Biểu độ thể hiện độ chính xác theo khoảng cách Kết quả thực nghiệm ứng dụng nhận dạng biển báo giao thông. Hình 5: Đang nhận dạng biển báo Hình 6: Kết quả sau khi nhận dạng 253
- Hình 7: Lịch sử biển báo Hinh 8: Chi tiết biển báo 4. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Đề tài đã thành công bước đầu khi hoàn thành được mục tiêu ban đầu là tạo ra được một ứng dụng có khả năng nhận dạng biển báo giao thông. Vì còn liên quan đến chất lượng camera của từng điện thoại và kích thước của hình ảnh nên còn một số vấn đề chưa tốt về mặt hiệu năng như: Khoảng cách, tốc độ, ánh sáng. Trong tương lai gần, chúng tôi sẽ sẽ tiếp tục phát triển và tối ưu hóa vấn đề về khoảng cách vì đây là một điều khá quan trọng trong sản phẩm này. Hoàn thiện các tập dữ liệu để đưa ra sự đa dạng về mặt biển báo cũng như tăng thêm độ chính xác, giải quyết các vấn đề còn tồn đọng ở ứng dụng và sau đó đưa sản phẩm lên nền tảng camera hành trình dành cho các phương tiện giao thông, giúp mọi người tham gia giao thông cũng như trẻ em học biển báo một cách dễ dàng hơn. TÀI LIỆU THAM KHẢO [1] Anukrati Mehta, Jonathan Hui, Juan De Dios Santos (2018) Guide about use Tensorflow object detection API and step train model on cloud. [2] Justin Francis (2017) through all the steps for building a custom object classification model using TensorFlow’s API. [3] Pulkit Sharma, Arun Ponnusamy (2018) use Yolo for detect object and predict from the cell level to the boundary box level. [4] Vijayan K. Asari (2016) Object Detection and Recognition in Complex Environmental Conditions. 254