Tự build mạng lưới đơn giản nhận diện biển báo giao thông

842

Người viết: Quy Nguyen

Như tiêu đề, hôm nay mình sẽ hướng dẫn các bạn xây dựng một mạng CNN đơn giản để nhận diện biển báo giao thông. Với tập dữ liệu gồm tất cả 42 biển báo giao thông với các điều kiện khác nhau như thiếu sáng, biển báo bị nghiêng, ảnh chụp mờ…

Bước 1: Cách tiếp cận bài toán

Bài toán yêu cầu đầu vào là 1 ảnh chụp được từ biển báo giao thông và đầu ra là tên tương ứng của biển báo, với số lượng biển báo giao thông là cố định và đây là bài toán phân biệt nên chúng ta sẽ coi đây là bài toán phân loại ảnh, với số lớp cần phân loại chính là số lượng loại biển báo giao thông cần xác định. Vì hình ảnh các biển báo rất khác nhau và có thể dễ dàng phân biệt bằng mắt thường nên dữ liệu phân lớp khá đơn giản và ít sự nhập nhằng. Vì thế chúng ta sẽ cần một mô hình deep learning đơn giản là có thể xử lý được việc này.

Import thư viện

Bước 2: Chuẩn bị dữ liệu.

Đầu tiên bạn vào đây để tải về bộ dữ liệu gồm các biển báo đã được đánh nhãn và lưu các thông tin trong file csv. Đây là bộ dữ liệu biển báo giao thông của Đức, gồm 42 loại biển báo khác nhau. Bạn tải về và giải nén ra thư mục của project

Bạn đổi lại biến path theo đường dẫn trên máy bạn

  Máy học - Machine Learning và một vài hạn chế.
  Machine Learning góp phần cải thiện chiến lược Digital Marketing của bạn như thế nào?

Bước 3: Tiền xử lý và phân chia dữ liệu

Như các bài thông thường, chúng ta sẽ tiến hành chia tập dữ liệu ảnh thành tập train và tập validation

Với các label chúng ta sẽ chuyển sang dạng One-hot encoding để xử lý

Bước 4: Định nghĩa mô hình

Bước 5: Training thuật toán

Complie mô hình

Khởi tạo đồ thị kết quả mô hình

Training

Tiến hành chạy file code

Sau khi thực hiện xong, chúng ta sẽ đánh giá lại mô hình bằng kết quả quá trình training:

Bước 6: Đánh giá mô hình bằng tập test

Sau khi qua trình training thành công, chúng ta sẽ đánh giá lại bằng tập test

Tính toán độ chính xác:

Kết quả đạt được là 95.5%, vậy là mô hình khá chính xác rồi.

Lưu mô hình

Sau khi tiến hành traininig lại mô hình nhiều lần chúng ta sẽ thu được một mô hình tốt nhất và sử dụng nó để deploy lên hệ thống thực. Việc này được thực hiện như sau:

Source code

Các bạn có thể tham khảo source code của bài viết tại đây

Cảm ơn các bạn đã theo dõi bài viết hẹn gặp lại trong những bài viết tiếp theo.

Đừng bỏ lỡ những bài viết hay về Machine Learning:

Xem thêm việc làm Machine Learning hot nhất trên TopDev

TopDev via viblo

  Tổng hợp nguồn học Machine Learning tốt nhất
  Máy học - Machine Learning và một vài hạn chế.