Huy Bui
910
26-03-2023
Trong thời đại công nghệ thông tin hiện nay, việc sử dụng máy học để nhận diện biển số xe trở nên phổ biến và được sử dụng rộng rãi trong nhiều lĩnh vực. Chủ đề này thu hút sự quan tâm của nhiều người, đặc biệt là những người thích sử dụng công nghệ tiên tiến để giúp cuộc sống trở nên thông minh và thuận tiện hơn.
Máy tính sử dụng công nghệ làm cơ sở để có thể phân tích và xử lý giá trị của biển số xe. Bằng cách sử dụng các thuật toán học máy, hệ thống sẽ nhận biết được biển số xe và giúp phân tích các thiết lập và tính năng của mỗi biển số xe. Các nguồn dữ liệu được cung cấp bởi các bảng số đã được tổ chức trước đó cho việc cung cấp dữ liệu để phân tích và xác định.
Để model có thể xử lý nhanh nhất nên mình chọn model Yolo Tiny v3 nhanh hơn rất nhiều so với YoloV3.
Đầu tiên ta sẽ chuyển màu ảnh từ BGR sang HSV. Ở một số lời giải khác cho bài toán này, thường thấy sử dụng màu GRAY thay cho HSV vì độ chính xác không cao vì HSV biểu diễn một màu dựa trên 3 số liệu:
Khi muốn sử dụng một ngưỡng độ sáng của từng pixel để lọc ra các kí tự, thì với HSV ta dễ dàng dùng riêng rẽ giá trị độ sáng (V) còn với màu GRAY ta không thể làm việc đó vì nó biểu diễn màu dựa trên chung một giá trị.
Sau đó ta sử dụng thuật toán AI adaptive threshold để làm nổi bật những phần mà ta muốn lấy(màu đen adaptive threshold sử dụng những cửa sổ nhỏ đi từ trái sang phải, trên xuống dưới và nó sẽ lấy những giá trị pixel nào lớn hơn giá trị trung bình (threshold) với một giá trị offset mà ta điều chỉnh. Khác với các kiểu threshold truyền thống áp dụng ngưỡng cho toàn bộ ảnh, adaptive threshold áp dụng cho từng vùng nhỏ nhờ đó hoạt động tốt hơn với điều kiện ánh sáng kém. Sau đó lấy những giá trị nào lớn hơn ngưỡng.
Và sau đây là kết quả:
Để tách từng kí tự ra khỏi biển số xe, ta sử dụng thuật toán AI Connected components analysis. Thuật toán này có ý tưởng đơn giản là nó sẽ kết nối tất cả pixel nào có cùng giá trị thành một khối và gắn cho nó một cái nhãn(label). Nhờ đó tất cả các pixel của cùng một kí tự do có cùng giá trị sẽ được kết nối và được tách ra khỏi biển số xe. Tuy nhiên để tiện xử lý thì mình convert toàn bộ màu trắng thành đen và ngược lại. Đồng thời cũng làm mờ ảnh để loại những nhiễu tròn vì có thể nó làm kí tự gắn liền với những bộ phận không mong muốn và thuật toán Connected components analysis (CCA) sẽ bị ảnh hưởng.
Sau khi thực hiện CCA, chúng ta thu được một dãy các giá trị labels bao gồm các kí tự, các nhiễu không mong muốn(khung biển số xe, dấu gạch ngang, dấu chấm, …) và background(có label = 0 theo mặc định của hàm label ).
Ở Việt Nam, trên biển số xe chấp nhận 31 ký tự bao gồm cả chữ và chữ số(0-9). Tuy nhiên, ở kết quả bước 2 mặc dù ta đã sử dụng ngưỡng để loại bỏ nhiễu nhưng vẫn có một số nhiễu vẫn lọt qua vì nó có kích thước hình dáng đủ tiêu chuẩn như kí tự thường. Do có số lượng ít nên ở bước này mình thêm một class là background để dùng model CNN phân loại đâu là ký tự đâu là nhiễu. Vậy tổng các class cần phân loại là 32.
Sau đó mình xây dựng một model CNN đơn giản để tiến hành trích xuất đặc trưng và phân loại. Tùy độ phức tạp của dữ liệu mà chúng ta có thể thay đổi. Cuối cùng ta sử dụng một layer flatten và một activation softmax để phân loại. 32 ở đây hính là số class ta đề cập bên trên.
Ở bước cuối cùng này, ta sử dụng tọa độ (x, y) trên mỗi kí tự ta đã đề cập ở bước 3. Nếu biển số xe gồm một dòng thì tọa độ y (trục dọc)giữa các kí tự thu được sẽ nhỏ hơn một ngưỡng. Còn nếu biển hai dòng thì tọa độ y giữa các kí tự sẽ lớn hơn ngưỡng. Sau đó ta sử dụng giá trị x để xác định thứ tự trước sau sắp xếp các kí tự từ trái qua phải từ trên xuống dưới.
Project nhận diện biển số xe này có thể hoạt động trên cả biển một dòng hoặc hai dòng. Thậm chí đôi khi biển số xe bị che khuất một chút vẫn đọc được:
Với sự phát triển của công nghệ, bài toán nhận diện biển số xe đã được giải quyết một cách nhanh chóng và chính xác hơn bao giờ hết. Quản lý giao thông, tăng tính an toàn và nâng cao chất lượng đời sống của con người là mục tiêu chính của việc giải quyết bài toán này. Tuy nhiên, các phương pháp nhận diện còn có thể được cải tiến hơn để đảm bảo tính hiệu quả và độ chính xác trong các điều kiện khác nhau.