47 1 2MB
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC ---------------------------------------
VŨ MINH NGUYỆT
VŨ MINH NGUYỆT
TÊN ĐỀ TÀI TÊN ĐỀ TÀI ….
Nhận dạng biển số xe ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: HỆ THỐNG THÔNG TIN QUẢN LÝ
HÀ NỘI-2022 HÀ NỘI – 2022
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 1. Mục đích và nội dung của đồ án: ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… 2. Kết quả đạt được: ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… 3. Ý thức làm việc của sinh viên: ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… Hà Nội, ngày
tháng
năm 2022
Giảng viên hướng dẫn (Ký và ghi rõ họ tên)
MỤC LỤC Contents
MỤC LỤC..............................................................................................................................1 MỞ ĐẦU................................................................................................................................3 LỜI CẢM ƠN.......................................................................................................................4 DANH MỤC HÌNH VẼ.........................................................................................................5 CHƯƠNG I: GIỚI THIỆU VỀ ĐỀ TÀI................................................................................6 1.1
Mục đích nghiên cứu...............................................................................................6
1.2
Đối tượng nghiên cứu..............................................................................................6
1.3
Phạm vi nghiên cứu.................................................................................................6
1.4 Ứng dụng của đề tài.....................................................................................................6 1.4.1 Khái niệm nhận dạng biển số xe...........................................................................6 1.4.2 Ứng dụng...............................................................................................................9 CHƯƠNG II: CƠ SỞ LÝ THUYẾT....................................................................................10 2.1 Học sâu.......................................................................................................................10 2.2 Mạng nơ-ron nhân tạo................................................................................................10 2.2.1 Kiến trúc mạng nơ- ron.......................................................................................10 2.2.2 Các kỹ thuật quan trọng trong mạng nơ-ron.......................................................15 2.3 Mạng nơ-ron tích chập (Convolutional neural network - CNN)................................17 2.3.1 Kiến trúc mạng tích chập....................................................................................18 2.3.2 Mô hình phát hiện đối tượng...............................................................................25 2.4 Phân đoạn và nhận dạng ký tự...................................................................................27 2.4.1 Tổng quan về phân đoạn ký tự........................................................................27 2.4.2 Nhận dạng ký tự................................................................................................27 CHƯƠNG III: MÔ HÌNH ĐỀ XUẤT..............................................................................29 3.1
Mô hình mạng học sâu YOLOv5.......................................................................31
3.1.1
Mô hình mạng học sâu YOLO (You Only Look Once)............................31
3.1.2
Thuật toán YOLOv5....................................................................................40
3.2 Mô hình WPOD........................................................................................................43 3.3 Mô hình đề xuất........................................................................................................47 3.3.1 Phát hiện phương tiện giao thông........................................................................50 3.3.2 Phát hiện và căn chỉnh biển số.............................................................................53 3.3.3 Nhận dạng ký tự...................................................................................................55 CHƯƠNG IV: KẾT LUẬN.................................................................................................58
1
4.1 Kết quả.......................................................................................................................58 4.2 Hạn chế.......................................................................................................................58 4.3 Phương hướng phát triển............................................................................................58 KẾT LUẬN..........................................................................................................................58 TÀI LIỆU THAM KHẢO....................................................................................................59
2
MỞ ĐẦU Hiện nay với sự phát triển kinh tế xã hội đã bùng nổ số lượng phương tiện giao thông. Gây ra những khó khăn trong công tác quản lý, xử lý vi phạm giao thông mà nguồn nhân lực con người khó có thể đảm đương được. Vì vậy vấn đề cần thiết là có một hệ thống quản lý, xử lý vi phạm giao thông tự động. Để xây dựng hệ thống quản lý giao thông tự động thì “Bài toán nhận dạng biển số xe” là tiền đề để xây dựng những mô hình quản lý đó. Tuy nhiên, hiện nay ở Việt Nam nhưng hệ thống quản lý đó chưa nhiều và lĩnh vực nhận dạng còn đang phát triển. Từ những thực tế đó, trong thời gian làm đồ án tốt nghiệp em đã quyết định lựa chọn tìm hiểu về bài toán “nhận dạng” trong đó chú trọng vào việc nhận dạng biển số xe. Để phục vụ cho bước đầu trong hệ thống quản lý phương tiện giao thông tại Việt Nam. Trong điều kiện năng lực và thời gian có hạn, nên báo cáo của em không tránh khỏi những sai sót. Em kính mong thầy cô và các bạn đóng góp những ý kiến để em có thể chỉnh sửa và bổ sung những phần thiếu sót để em hoàn thiện đề tài của mình. Trong báo cáo đồ án tốt nghiệp này em trình bày thành 4 chương như sau: Chương I: Giới thiệu về đề tài Chương II: Cơ sở lý thuyết Chương III: Mô hình đề xuất Chương IV: Kết quả thực nghiệm
3
4
LỜI CẢM ƠN Trong thời gian làm đồ án tốt nghiệp, em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô và bạn bè. Em xin gửi lời cảm ơn chân thành đến thầy Vũ Thành Nam, giảng viên trường Đại học Bách khoa Hà Nội, người đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình em làm đồ án tốt nghiệp này. Em cũng xin chân thành cảm ơn các thầy cô trong trường Đại học Bách khoa Hà Nội nói chung và Viện Toán ứng dụng và Tin học nói riêng đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện cho em hoàn thành đồ án tốt nghiệp này. Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp. Em xin chân thành cảm ơn!! Sinh viên thực hiện Vũ Minh Nguyệt
5
6
DANH MỤC HÌNH VẼ
7
CHƯƠNG I: GIỚI THIỆU VỀ ĐỀ TÀI 1.1 Mục đích nghiên cứu Hệ thống nhận dạng biển số xe là một ứng dụng dựa trên trên kỹ thuật xử lý ảnh số. Mục đích của nhận dạng biển số xe là thực hiện các bước xử lý để từ một ảnh đầu vào, máy tính có thể nhận ra chính xác biển số xe trên ảnh. Nhận dạng biển số xe trở thành một ứng dụng hữu ích, được đưa vào trong những lĩnh vực như: quản lý giao thông, kiểm tra an ninh, thu phí giao thông, trạm gác cổng, quản lý các bãi giữ xe một cách tự động. 1.2 Đối tượng nghiên cứu Đây là một trong những ứng dụng xử lý ảnh nhận được nhiều sự nghiên cứu về cả hai mặt lý thuyết và thực hiện chương trình. Đề tài của em bao gồm các quá trình xử lý: phân vùng biển số, tách các ký tự và nhận biết các ký tự. 1.3 Phạm vi nghiên cứu Việc có nhiều biển số xe với định dạng và độ sáng khác nhau gây khó khăn cho việ nhận dạng và trích xuất biển số từ ảnh chụp nên độ sáng khác nhau làm tăng độ phức tạp trong quá trình nhận dạng. Do thời thực hiện đề tài không cho phép nên các biển số xe bị giới hạn với điều kiện như sau: Biển số xe có chữ đen, có Biển số phải còn nguyên vẹn, không bị tróc sơn hay rỉ sét, không bị che khuất. Hình chụp biển số không bị mờm ký tự biển số còn phân biệt, nhận dạng được bằng trực quan. Không bị nhiễu bởi ánh sáng làm ảnh chụp bị chói. 1.4 Ứng dụng của đề tài 1.4.1 Khái niệm nhận dạng biển số xe
8
Hệ thống nhận dạng biển số xe là hệ hệ thống có khả năng phân tích hình ảnh và xác định biển số trên xe, thông qua video, thiết bị ghi hình và hình ảnh. Sau là xác định thông tin như: chủ sở hữu, … Phân loại ứng dụng nhận dạng biển số xe: Ứng dụng nhận dạng biển số xe là ứng dụng có khả năng phân tích hình ảnh và xác định biển số xe từ các hình ảnh chụp được từ các thiết bị thu hình. Nguồn hình ảnh cho ứng dụng có rất nhiều. Trong báo cáo tốt nghiệp em chỉ dừng lại ở mức xác định biển số xe (cắt các vùng chữ trên biển) từ các hình ảnh. Có nhiều cách thức khác nhau để phân loại các ứng dụng nhận dạng biển số xe. Một trong những cách đơn giản là phân loại ứng dụng nhận dạng biển số xe thông qua mục đích sử dụng. Có thể chia ứng dụng nhận dạng biển số xe thành hai loại sau: Loại 1: Giới hạn vùng nhìn Đầu vào: ảnh thu trực tiếp từ các thiết bị ghi nhận ảnh kỹ thuật số. Ảnh được ghi nhận thường chỉ giới hạn trong vùng có biển số xe. Nguyên lý hoạt động: các phương tiện giao thông phải chạy với một tốc độ đủ chậm để máy ghi nhận hình ảnh có thể thu được ảnh vùng biển số xe. Ứng dụng: những ứng dụng nhận dạng biển số xe loại này thường được dùng tại các trạm kiểm soát, các trạm thu phí, các bãi gửi xe tự động, các trạm các cổng…
9
Hình 1.1 - Hệ thống tự động nhận dạng biển số xe Loại 2: Không giới hạn vùng nhìn Đầu vào: ảnh đầu vào thu được từ thiết bị ghi hình tự động, không phụ thuộc vào góc độ, các đối tượng xung quanh, ảnh không cần bắt buộc chỉ chụp vùng chứa biển số xe, mà có thể là ảnh tổng hợp như chứa thêm các đối tượng như người, cây, đường phố, … miễn là vùng biển số phải đủ rõ để có thể nhận dạng được ký tự trong vùng đó. Nguyên lý hoạt động: do đặc tính không giới hạn vùng nhìn mà ảnh đầu vào có thể thu được từ một thiết bị ghi hình (camera, máy ảnh). Và do đó, công việc đầu tiên là dò tìm trong ảnh, để xác định đúng vùng nào là biển số xe. Sau đó, thực hiện tách vùng và nhận dạng. Cuối cùng tùy thuộc vào mục đích sử dụng mà kết quả nhận dạng được truyền đi hay lưu trữ để phục vụ nhu cầu của người dùng cuối. Ứng dụng: vì không phụ thuộc vào phạm vi hình ảnh thu được nên có thể dùng ứng dụng tại nhiều nơi như tại những điểm điều tiết giao thông, tại các vị trí nhạy cảm của giao thông như ngã ba, ngã tư đường giao nhau. Kiểm soát, phát hiện những hành vi vi phạm an toàn giao thông.
10
1.4.2 Ứng dụng Hệ thống nhận dạng biển số xe được xây dựng nhằm mục đích giám sát, kiểm soát các phương tiện. Dưới đây đề cập đến một số ứng dụng phổ biến đối với hệ thộng nhận dạng biển số xe: - Thu phí giao thông: Lắp đặt hệ thống nhận dạng biển số xe tại các trạm thu phí nhằm hỗ trợ hoặc tự động hóa công tác thu phí. - Kiểm soát xe tại các đường biên giới: Mỗi quốc gia đều có những quy định riêng về biển số xe, để phục vụ công tác quản lý và phát hiện những phương tiện giao thông vượt biên bất hợp pháp. Việc lắp đặt hệ thống nhận dạng biển số xe tại các trạm kiểm soát sẽ góp phần hỗ trợ công tác kiểm tra và an ninh quốc gia. - Các trạm gác cổng: Việc lắp đặt hệ thống sẽ hỗ trợ hoặc tự động hóa công tác mở cổng cho xe ra vào. - Xử lý vi phạm giao thông: Khi lắp đặt hệ thống sẽ hỗ trợ việc xử lý vi phạm giao thông đường bộ và có thể tự động báo lỗi vi phạm.
11
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2.1 Học sâu Học sâu (deep learning) là một nhánh của ngành máy học, dựa trên một tập hợp các thuật toán để cố gắng mô hình dữ liệu để trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều lớp biến đổi phi tuyến để trích tách đặc trưng và chuyển đổi. Mỗi lớp kế tiếp dùng đâu ra của lớp trước làm đầu vào. Các thuật toán này có thể được giám sát hoặc không cần giám sát và các ứng dụng bao gồm các mô hình phân tích (không giám sát) và phân loại (giám sát). Một trong những phương pháp học sâu thành công nhất là mô hình mạng nơron nhân tạo 2.2 Mạng nơ-ron nhân tạo Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng nơron (neural network) là một mô hình xử lý thông tin được xây dựng dựa theo cách thức xử lý thông tin của các hệ nơron sinh học. Trong hơn hai thập kỷ qua nó là lĩnh vực khoa học được nhiều người quan tâm nghiên cứu và ứng dụng rộng rãi. Mạng nơron được tạo nên từ một số lượng lớn các phần tử (gọi là phần tử xử lý hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó. Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơron. 2.2.1 Kiến trúc mạng nơ- ron Mạng Neural Network là sự kết hợp của của các tầng perceptron hay còn được gọi là perceptron đa tầng (multilayer perceptron) Mỗi một mạng Neural Network thường bao gồm 3 kiểu tầng là:
12
Tầng input layer (tầng vào): Tầng này nằm bên trái cùng của mạng, thể hiện cho các đầu vào của mạng.
Tầng output layer (tầng ra): Là tầng bên phải cùng và nó thể hiện cho những đầu ra của mạng.
Tầng hidden layer (tầng ẩn): Tầng này nằm giữa tầng vào và tầng ra nó thể hiện cho quá trình suy luận logic của mạng.
Mỗi một Neural Network chỉ có duy nhất một tầng vào và một tầng ra nhưng lại có rất nhiều tầng ẩn.
Hình Kiến trúc mạng nơ-ron nhân tạo Mặc dù mỗi nơron đơn lẻ có thể thực hiện những chức năng xử lý thông tin nhất định, sức mạnh của tính toán nơron chủ yếu có được nhờ sự kết hợp các nơron trong một kiến trúc thống nhất. Một mạng nơron là một mô hình tính toán được xác định qua các tham số: kiểu nơron (như là các nút nếu ta coi cả mạng nơron là một đồ thị), kiến trúc kết nối (sự tổ chức kết nối giữa các nơron) và thuật toán học (thuật toán dùng để học cho mạng). Về bản chất một mạng nơron có chức năng như là một hàm ánh xạ F: X → Y, trong đó X là không gian trạng thái đầu vào (input state space) và Y là không gian trạng thái đầu ra (output state space) của mạng. Các mạng chỉ đơn giản là làm nhiệm vụ ánh xạ các vectơ đầu vào x ∈ X sang các vec-tơ đầu ra y 13
∈ Y thông qua “bộ lọc” (filter) các trọng số. Tức là y = F(x) = s(W, x), trong đó W là ma trận trọng số liên kết. Hoạt động của mạng thường là các tính toán số thực trên các ma trận. Một nơ-ron bao gồm các liên kết nhận tín hiệu vào bằng số có các trọng số kết nối w tương ứng, một hàm tổng và một hàm truyền còn gọi là hàm kích hoạt để tạo tín hiệu ra dựa trên giá trị hàm tổng và giá trị ngưỡng θ. Liên kết: Mỗi liên kết thứ i sẽ nhận vào giá trị x i có trọng số kết nối w i tương ứng. Trọng số kết nối: Các trọng số kết nối của đường liên kết là yếu tố then chốt của nơ-ron, chúng ta sẽ được xác định tùy theo tập dữ liệu nhờ quá trình huấn luyện. Hàm tổng: Hàm tổng là tổng của tích các trọng số kết nối với các tín hiệu vào trên các liên kết tương ứng: n
s = ∑ wi xi i=1
Với a i là giá trị nhập hoặc giá trị xuất của một nút có cùng kết nối với nút j và trọng số kết nối là w ij. Trong bộ não của con người, các tế bào nơron liên kết với nhau chằng chịt và tạo nên một mạng lưới vô cùng phức tạp, tuy nhiên mạng nơron nhân tạo được chia thành các loại chính sau:
Hình Mạng nơron chỉ có 1 nút và có sự phản hồi
14
Mạng nơron truyền thẳng một lớp (perceptron) là loại mạng chỉ có lớp nơron đầu vào và một lớp nơron đầu ra (thực chất lớp nơron đầu vào không có vai trò xử lý, do đó ta nói mạng chỉ có một lớp). Loại mạng này còn được gọi là mạng perceptron một lớp. Mỗi nơron đầu ra có thể nhận tín hiệu từ các đầu vào x1, x2, …, xm để tạo ra tín hiệu đầu ra tương ứng.
Hình Mạng nơron truyền thẳng 1 lớp (Single-layer feedforward network)
Mạng có phản hồi (feedback network) là mạng mà đầu ra của một nơron có thể trở thành đầu vào của nơron trên cùng một lớp hoặc của lớp trước đó. Mạng feedback có chu trình khép kín gọi là mạng quy hồi (recurrent network).
Hình Mạng nơron hồi quy 1 lớp
15
Mô hình mạng truyền thẳng nhiều lớp: Mô hình mạng nơron được sử dụng rộng rãi nhất là mô hình mạng nhiều tầng truyền thẳng (MLP: Multi Layer Perceptron). Một mạng MLP tổng quát là mạng có n (n ≥ 2) lớp (thông thường lớp đầu vào không được tính đến): trong đó gồm một lớp đầu ra (lớp thứ n) và (n-1) lớp ẩn.
Hình 2. Mạng MLP tổng quát Một số kết quả đã được chứng minh với mạng MLP: -
Bất kì một hàm Boolean nào cũng có thể biểu diễn được bởi một mạng MLP 2 lớp trong đó các nơron sử dụng hàm truyền sigmoid.
- Tất cả các hàm liên tục đều có thể xấp xỉ bởi một mạng MLP 2 lớp sử dụng hàm truyền sigmoid cho các nơron lớp ẩn và hàm truyền tuyến tính cho các nơron lớp ra với sai số nhỏ tùy ý. -
Mọi hàm bất kỳ đều có thể xấp xỉ bởi một mạng MLP 3 lớp sử dụng hàm truyền sigmoid cho các nơron lớp ẩn và hàm truyền tuyến tính cho các nơron lớp ra. Mô hình mạng kết hợp : Trong thực tế, người ta thường kết hợp nhiều
loại mạng để giải quyết các bài toán. Có thể tham khảo mô hình ANN hệ
16
thống chơi cờ vây AlphaGo của Google bao gồm kết hợp 3 mạng ANN. Mạng 1 SL(self learning) có cấu trúc xoắn bao gồm 13 lớp ẩn với tập dữ liệu học có giám sát là hàng triệu nước cờ đã có thu thập từ các ván cờ các kỳ thủ đã chơi, AlphaGo tự học chơi cờ vây bằng tập dữ liệu đã có. Mạng 2 RL(reinforcement learning- học tăng cường) có cấu trúc giống mạng SL nhưng được tối ưu hóa bộ trọng số qua bộ huấn luyện là các ván cờ tự chơi với nhau giữa các máy. Mạng 3 Evalue network dự đoán kết quả trò chơi dựa trên RL,giá trị của vị trí p được định nghĩa như một kỳ vọng phân phối các kết quả phát từ vị trí p đến cuối ván cờ. Cuối cùng, AlphaGo kết hợp mạng trên với thuật toán Monte Carlo Tree Search để đưa ra đánh giá vị trí cuối cùng cho nước đi tiếp theo. 2.2.2 Các kỹ thuật quan trọng trong mạng nơ-ron Hàm kích hoạt trong mạng nơ-ron Hàm kích hoạt mô phỏng tỷ lệ truyền xung qua axon của một nơron thần kinh. Trong một mạng nơron nhân tạo, hàm kích hoạt đóng vai trò là thành phần phi tuyến của đầu ra của các nơron. Nếu không có các hàm kích hoạt phi tuyến, thì mạng nơ-ron dù có nhiều lớp vẫn không hiệu quả như một lớp tuyến tính. Các hàm kích hoạt phổ biến thường gặp là: Sigmoid: Hàm sigmoid nhận đầu vào là một số thực và chuyển thành một giá trị khoảng (0, 1). Đầu vào là số thực âm rất nhỏ sẽ cho đầu ra tiệm cận với 0 và ngược lại, nếu đầu vào là số thực dương lớn thì sẽ cho đầu ra là một số tiệm cận với 1. Tuy nhiên, hiện nay hàm sigmoid rất ít được sử dụng vì có các nhược điểm như bão hòa, gây triệt tiêu gradient. Công thức hàm sigmoid:
17
σ ( x )=
−1 1+ⅇ−x
Tanh: Hàm Tanh cũng nhận đầu vào là số thực và chuyển thành giá trị trong khoảng (−1; 1). Cũng như hàm sigmoid, hàm tanh gây bão hoà ở 2 đầu. Tuy nhiên, do hàm tanh đối xứng qua 0 nên khắc phục được một nhược điểm của sigmoid. Công thức hàm tanh: tan h ( x )=
ⅇ x −ⅇ−x ⅇ x +ⅇ−x
ReLU: Hàm ReLU đang được sử dụng khá nhiều trong những năm gần đây để huấn luyện các mạng nơ-ron. Hàm ReLU đơn giản chỉ là lọc các giá trị nhỏ hơn 0. Nhìn vào công thức trên ta có thể hiểu được cách hoạt động của nó. Hàm ReLU có nhiều ưu điểm vượt trội so với hàm sigmoid và tanh: Tốc độ hội tụ nhanh và tính toán nhanh. Tuy nhiên, hàm ReLU có nhược điểm là các giá trị nhỏ hơn 0 thì khi đi qua hàm ReLU sẽ trở thành 0, hiện tượng này gọi là "Dying ReLU". Cũng có nhiều biến thể của ReLU ra đời để khắc phục nhược điểm đó như Leaky ReLU, ELU, GLU Công thức hàm ReLU: f ( x )=max ( 0 , x )
18
Hình 1.8 Đồ thị một số hàm kích hoạt Dropout Dropout là một thuật ngữ kĩ thuật dùng trong việc tránh mô hình học quá tốt trong quá trình huấn luyện tuy nhiên lại dự đoán kết quả không thực sự khi đem đi thử nghiệm. Kĩ thuật dropout được thực hiện bằng việc bỏ đi ngẫu nhiên các đơn vị liên kết trong mạng nơ-ron với tỉ lệ là p khi đó, chỉ còn lại (1 – p) liên kết ở tầng hiện tại.
Hình - Dropout
2.3 Mạng nơ-ron tích chập (Convolutional neural network - CNN) Mô hình mạng nơron được áp dụng cho nhiều bài toán liên quan đến các tác vụ phân loại, nhận diện, ... Tuy nhiên, trong mô hình này, các nơron ở
19
các lớp liên kết đầy đủ với nhau, điều này làm cho không tốt với dữ liệu đầu vào là ảnh: Với dữ liệu ảnh thường có kích thước khá lớn, ví dụ với một ảnh RGB có kích thước là 224 × 224 × 3, ảnh này sẽ được liên kết đầy đủ với lớp đầu tiên, lớp này sẽ có 1000 nơron, như vậy, tham số cần học sẽ là 224×224×3×1000 tham số. Dù mới có 2 tầng nhưng số lượng tham số lại quá lớn. Việc liên kết tất cả các điểm ảnh là quá dữ thừa, bởi vì sự phụ thuộc của những điểm ảnh xa nhau là không nhiều, mà chủ yếu là sự phụ giữa các điểm ảnh lân cận nó. Từ đó sẽ khiến cho mạng huấn luyện không tốt. Dựa trên tư tưởng này, mạng nơron tích chập ra đời với cấu trúc khác hẳn mạng nơron truyền thẳng. Thay vì toàn bộ ảnh nối trực tiếp với một node thì chỉ có một phần cục bộ trong ảnh nối với một node trong lớp tiếp theo. Dữ liệu hình ảnh ban đầu qua các lớp của mô hình mạng nơron tích chập sẽ học được ra các đặc trưng để tiến hành phân lớp hiệu quả. CNN được sử dụng nhiều trong các bài toán phát hiện các object trong ảnh. 2.3.1 Kiến trúc mạng tích chập Tích chập: là khái niệm trong xử lý tín hiệu số nhằm biến đổi thông tin đầu vào thông qua một phép tích chập với bộ lọc để trả về đầu ra là một tín hiệu mới, giúp làm giảm những đặc trưng mà bộ lọc không quan tâm và chỉ giữ những đặc trưng chính. Mạng nơron tích chập chia sẻ trọng số, khác với mạng nơron nhân tạo nơi có mỗi nơron có trọng số riêng biệt. Việc chia sẻ trọng số làm giảm tổng số tham số. Kiến trúc mạng nơ-ron tích chập là một dạng mạng nơ-ron được cấu thành bởi các lớp sau: 20
Lớp tích chập (Convolution layer) Lớp hàm kích hoạt (Activation layer) Lớp Pooling (Pooling layer) Lớp kết nối đầy đủ (Fully Connected layer)
Hình 2.10 Kiến Trúc mạng nơron tích chập Trong mô hình CNN, các lớp được liên kết với nhau thông qua cơ chế tích chập. Thông qua các phép tích chập, các đặc trưng từ ảnh được chiết xuất và truyền vào các lớp tích chập (layer convolution). Lớp tiếp theo là kết quả của tích chập lớp trước đó, nhờ vậy mà ta có được các kết nối cục bộ, nghĩa là mỗi nơron ở lớp tiếp theo sẽ được sinh ra từ các bộ lọc áp đặt lên một vùng ảnh cục bộ của nơron ở lớp trước đó. Mỗi lớp tích chập sẽ bao gồm nhiều đơn vị mà kết quả ở mỗi đơn vị là một phép biến đổi tích chập từ layer trước đó thông qua phép nhân tích chập với bộ lọc. Mỗi lớp như vậy lại được áp đặt các bộ lọc khác nhau, thông thường có vài trăm đến vài nghìn bộ lọc như vậy. Một số lớp khác như Pooling được dùng để chắt lọc lại các thông tin hữu ích hơn. Trong suốt quá trình huấn luyện, mạng nơron tích chập tự động học được các thông số cho các bộ lọc mà ở đây chúng ta gọi là trọng số W để có thể phân loại một cách tối ưu nhất.
21
Lớp tích chập Đây là lớp quan trọng nhất và cũng là lớp đầu tiên của mô hình mạng nơ–ron tích chập. Lớp này có chức năng chính là phát hiện các đặc trưng có tính không gian hiệu quả. Lớp tích chập nhận đầu vào là một ma trận 3 chiều và một bộ lọc (filters) cần phải học. Bộ lọc này sẽ trượt qua từng vị trí trên bức ảnh để tính tích chập giữa bộ lọc và phân tương ứng trên bức ảnh. Phần tương ứng này trên bức ảnh gọi là receptive field, tức là vùng mà một nơ-ron có thể nhìn thấy và ra quyết định, và ma trận cho ra bởi quá trình này được gọi là bản đồ đặc trưng (feature map).
Hình 2.11 – Phép nhân tích chập Lớp tích chập có chức năng chính là phát hiện đặc trưng cụ thể của ảnh. Những đặc trưng này sẽ bao gồm các cạnh, góc, màu sắc hoặc đặc trưng phức tạp hơn như kết cấu của ảnh. Vì các bộ lọc quét qua toàn bộ bức ảnh, nên những đặc trưng này cho có thể nằm ở vị trí bất kì trong bức ảnh, cho dù ảnh có bị xoay trái/phải thì các đặc trưng này vẫn được phát hiện. Và thông qua quá trình đào tạo, các lớp tích chập sẽ biết phải học gì và lựa chọn đặc trưng nào ứng với bài toán cụ thể.
22
Lớp gộp Lớp gộp (pooling) tương tự như lớp tích chập, lớp này sẽ giảm bớt số lượng tham số khi hình ảnh quá lớn, chịu trách nhiệm để làm giảm chiều kết quả tích chập. Điều này nhằm mục đích để giảm chi phí tính toán cần phải có để xử lý dữ liệu thông qua việc giảm kích thước tính năng đầu vào. Hơn nữa, nó rất hữu ích để trích xuất các đặc trưng cốt lõi, cái thường bất biến trước các phép xoay và phép trượt, do đó làm cho quá trình huấn luyện mô hình hiệu quả hơn. Các toán tử tổng hợp bao gồm một cửa sổ có kích thước cố định được trượt trên tất cả các vùng đầu vào với giá trị sải bước nhất định, tính toán một giá trị đầu ra duy nhất tại mỗi vị trí mà cửa sổ trượt qua. Có hai loại phép gộp: Gộp cực đại (Max Pooling) và Gộp trung bình (Average Pooling). Phép gộp cực đại trả về giá trị lớn nhất từ phần hình ảnh được bao phủ bởi bộ lọc. Trong khi đó, phép gộp trung bình trả về giá trị trung bình của tất cả các giá trị từ phần hình ảnh được bao phủ bởi bộ lọc. Phép gộp cực đại cũng hoạt động như một công cụ khử nhiễu. Nó loại bỏ các nguồn nhiễu và thực hiện khử nhiễu song song với giảm kích thước. Mặt khác, phép gộp trung bình chỉ đơn giản thực hiện giảm kích thước như một cơ chế khử nhiễu. Do đó, chúng ta có thể nói rằng phép gộp cực đại hoạt động tốt hơn rất nhiều so với phép gộp trung bình.
23
Hình Phép max pooling bên trái và average pooling bên phải
Lớp kết nối đầy đủ Giống như trong mạng nơ-ron nhân tạo thông thường các đặc trưng thu được khi dữ liệu đầu vào qua các lớp tích chập hay lợp tổng hợp sẽ được liên kết đầy đủ với các nơ-ron ở các lớp tiếp theo. Nghĩa là, mỗi đặc trưng sẽ được liên kết với tất cả các nơ-ron ở lớp tiếp theo, lớp này thường được xếp ở cuối cùng của các nơ-ron tích chập.
Hình Ví dụ về lớp kết nối đầy đủ
24
Thiết kế của một mạng nơ ron tích chập hai chiều có dạng như sau: INPUT -> [[CONV -> RELU]N -> POOL?]M -> [FC -> RELU]*K -> FC trong đó: INPUT: lớp đầu vào CONV: lớp tích chập RELU: lớp biến đổi thông qua hàm relu để kích hoạt tính phi tuyến POOL: lớp tổng hợp, thông thường là Max pooling hoặc có thể là Average pooling dùng để giảm chiều của ma trận đầu vào. Làm giảm số lượng tham số và tính toán trong mạng. FC: lớp kết nối hoàn toàn, thông thường lớp này nằm ở sau cùng và kết nối với các đơn vị đại diện cho nhóm phân loại. Các ký hiệu []N, []M hoặc []*K ám chỉ cấu trúc bên trong [] có thể lặp lại nhiều lần liên tiếp. M, K là số lần lặp lại. Lớp đứng trước sẽ làm đầu vào cho lớp đứng sau.
25
Như vậy về cơ bản, một mạng nơ ron tích chập có 3 quá trình sau:
Quá trình chiết xuất đặc trưng: thông qua các tích chập giữa ma trận đầu vào với bộ lọc để tạo thành các đơn vị trong một ma trận lớp mới. Quá trình này diễn ra liên tục ở phần đầu mạng và thường sử dụng hàm kích hoạt relu.
Quá trình tổng hợp: các lớp ở sau quá trình chiết xuất đặc trưng sẽ có kích thước lớn do số đơn vị ở các lớp sau thường tăng tiến theo cấp số nhân. Điều đó làm tăng số lượng hệ số và khối lượng tính toán - > cần giảm chiều ma trận hoặc số đơn vị của lớp. Vì mỗi đơn vị là kết quả đại diện của việc áp dụng 1 bộ lọc để tìm ra một đặc trưng cụ thể nên việc giảm đơn vị sẽ không khả thi. Giảm kích thước ma trận thông qua việc tìm ra 1 giá trị đại diện cho mỗi một vùng không gian mà bộ lọc đi qua sẽ không làm thay đổi các đường nét chính của bức ảnh nhưng lại giảm được kích thước của ảnh. Do đó quá trình giảm chiều ma trận được áp dụng, gọi là quá trình tổng hợp.
Quá trình kết nối hoàn toàn: sau khi đã giảm số lượng tham số hợp lý, ma trận cần được làm phẳng thành 1 vector và sử dụng các kết nối hoàn toàn giữa các lớp. Quá trình này diễn ra cuối mạng tích chập và sử dụng hàm kích hoạt relu. Kết nối cuối cùng sẽ dẫn tới các đơn vị là đại
26
diện cho mỗi lớp với hàm kích hoạt softmax nhằm mục đích tính xác suất. 2.3.2 Mô hình phát hiện đối tượng Phát hiện đối tượng (Object Detection) được coi là một trong những lĩnh vực quan trọng nhất trong phát triển của học sâu (Deep Learning) và xử lý hình ảnh (Image Processing). Với sự phát triển mạnh mẽ của học sâu (deep learning) và công nghệ phần cứng trong những năm gần đây, các thuật toán phát hiện đối tượng cũng theo đó mà phát triển mạnh mẽ. Từ xử lí ảnh đơn thuần như: HOG (Histogram of Oriented Gradients), Deformable Part-based Model (DPM), ... đến sử dụng mạng nơ-ron tích chập như: RCNN, YOLO, SSD, …
Kiến trúc hệ thống HOG để phát hiện đối tượng. Nguồn: Neptune.AI
27
Chu trình phát hiện đối tượng với Mạng nơ-ron tích chập dựa trên khu vực (R-CNN)
Hình Quá trình phát triển của mô hình phát hiện vật thể
28
2.4 Phân đoạn và nhận dạng ký tự 2.4.1 Tổng quan về phân đoạn ký tự Kết quả của khối tách biển số là một ảnh màu RBG có chứa biển số xe. Để nhận dạng các ký tự trong biển số, ta tiến hành phân đoạn ký tự trong biển số. Phân đoạn ký tự là việc cắt các ký tự trong biển số xe. Sau khi nhận kết quả của khối tách biển số, khối phân đoạn ký tự bắt đầu tiến hành tách từng ký tự trong biển số. Trước khi phân đoạn ký tự, ảnh của biển số được chuyển thành ảnh nhị phân. Ảnh nhị phân được chuẩn hóa về kích chuẩn, sau đó tiến hành cắt các ký tự. Kết quả của quá trình phân đoạn là một ma trận chứa các ảnh đen trắng của ký tự.
Hình Sơ đồ khối phân đoạn ký tự 2.4.2 Nhận dạng ký tự Sau khi thực hiện phân vùng ta sẽ được số ma trận tương ứng với số ký tự trên hai hàng biển số. Lần lượt từng ma trận ký tự sẽ được đưa vào chương 29
trình nhận dạng. Kết quả cuối cùng sẽ là các ký tự số và chữ, chương trình sẽ hiện thị ký tự này dưới dạng text. Thực chất, quá trình nhận dạng là quá trình đổi ma trận điểm ảnh của các ký tự thành mã ASCII tương ứng với ký tự đó. Để làm được điều này người ta đem so sánh ma trận của ký tự với tất cả các ma trận trong tập mẫu, ma trận mẫu nào có khả năng giống nhiều nhất thì đó chính là ký tự cần tìm. Trong lĩnh vực nhận dạng có hai phương pháp để nhận dạng là phương pháp cổ điển và phương pháp sử dụng mạng noron.
Phương pháp nhận dạng cổ điển: Phương pháp này sẽ có một tập ma trận ký tự mẫu. Phương pháp này khá đơn giản: ma trận ký tự cần nhận dạng khá giống với ma trận ký tự đó trong tập mẫu. Ví dụ, ta nhận dạng các số từ 0 đến 9 thì trong tập mẫu ta sẽ tạo ra các ma trận ký tự từ 0 đến 9. Giả sử ma trận cần nhận dạng là số 1 thì ma trận này nhìn bằng mắt thấy cũng khá giống so với ma trận số 1 trong tập mẫu . Phương pháp này tuy đơn giản nhưng hiệu quả trong trường hợp tập ảnh nhận dạng rõ nét, ít bị nhiễu. Nếu ảnh bị nhiễu thì ma trận đầu vào thay đổi, lúc này tập mẫu sẽ không còn chính xác. Trong một vài trường hợp biển số ban đầu bị nghiêng hoặc lếch, khi ta xoay và chuẩn hóa kích thước thì các ký tự bị nhiễu và khi so sánh với tập mẫu cũng không còn chính xác.
Phương pháp ứng dụng mạng Noron: Cũng như phương pháp cổ điển, ta nhận dạng ký tự nhờ vào vị trí và hàng của ký tự đó trên biển số nhưng ở phương pháp này sẽ khắc phục được các nhược điểm của phương pháp cổ điển làm cho việc nhận dạng trở nên dễ dàng hơn.
30
CHƯƠNG III: MÔ HÌNH ĐỀ XUẤT Phương pháp đề xuất bao gồm 3 bước chính: phát hiện phương tiện, phát hiện khu vực biển số xe và nhận dạng ký tự. Cho một hình ảnh đầu vào, phát hiện các phương tiện. Trong mỗi khu vực phát hiện, mạng WPOD tìm kiếm biển số xe và thực hiện một phép biến đổi affine cho mỗi lần phát hiện, cho phép chỉnh sửa khu vực biển số xe thành một hình chữ nhật giống như chế độ xem trực diện. Và cuối cùng được đưa vào mạng YOLO để nhận dạng ký tự. Như vậy để giải quyết được bài toán nhận diện biển số xe thì ta cần giải quyết ba bài toán con sau: - Bài toán thứ nhất: Phát hiện phương tiện giao thông - Bài toán thứ hai: Phát hiện khu vực biển số xe - Bài toán thứ ba: Nhận dạng ký tự Sơ đồ khối của mô hình đề xuất hệ thống nhận biển số xe
31
32
3.1
Mô hình mạng học sâu YOLOv5 Bảng so sánh tốc độ và độ chính xác của các thuật toán (Faster R-CNN,
R-FCN, SSD, FPN, RetinaNet and YOLOv3)
YOLOV3 cho độ chính xác tương đối tốt, xử lý thời gian thực. YoloV3-spp (spatial pyramid pooling): sử dụng 3 kích cỡ max pool khác nhau cho độ chính xác cao hơn Yolov3. Tuy nhiên hiện nay Yolo đã ra đến phiên bản thứ 5. 3.1.1 Mô hình mạng học sâu YOLO (You Only Look Once) Là mô hình mạng neural tích chập (CNN) dùng cho việc phát hiện, nhận dạng, phân loại đối tượng. YOLO được tạo ra từ việc kết hợp giữa các convolutional layers và connected layers. Trong đó các convolutional layers sẽ trích xuất ra các đặc tính của ảnh, còn full-connectecd layers sẽ dự đoán ra xác suất và tọa độ của đối tượng.
33
Hình 3.3. Sơ đồ kiến trúc mạng YOLO Trong kiến trúc mạng YOLO, thành phần Darknet Architechture được gọi là base network có tác dụng trích suất đặc trưng. Output của base network là một feature map có kích thước 7x7x1024 sẽ được sử dụng làm input cho các Extra layers có tác dụng dự đoán nhãn và tọa độ bounding box của vật thể. Trong YOLO version 3, áp dụng một mạng feature extractor là darknet53 như trong hình 3.3.
34
Hình 3.4 Các layer trong mạng Darknet-53.
Mạng này gồm 53 convolutional layers kết nối liên tiếp, mỗi layer được theo sau bởi một batch normalization và một activation Leaky Relu. Để giảm kích thước của output sau mỗi convolution layer, down sample được sử dụng bằng các filter với kích thước là 2. Mẹo này có tác dụng giảm thiểu số lượng tham số cho mô hình. Các bức ảnh khi được đưa vào mô hình sẽ được scale để về chung một kích thước phù hợp với input shape của mô hình và sau đó được gom lại thành batch đưa vào huấn luyện.
35
Hiện tại YOLO đang hỗ trợ 2 đầu vào chính là 416x416 và 608x608. Mỗi một đầu vào sẽ có một thiết kế các layers riêng phù hợp với shape của input. Sau khi đi qua các layer convolutional thì shape giảm dần theo cấp số nhân là 2. Cuối cùng ta thu được một feature map có kích thước tương đối nhỏ để dự báo vật thể trên từng ô của feature map. Kích thước của feature map sẽ phụ thuộc vào đầu vào. Đối với input 416x416 thì feature map có các kích thước là 13x13, 26x26 và 52x52. Và khi input là 608x608 sẽ tạo ra feature map 19x19, 38x38, 72x72.
Out put của YOLO Output của mô hình YOLO là một véc tơ sẽ bao gồm các thành phần:
Hình3.5 Vector output của mô hình YOLO Trong đó: Ƥ0 là xác suất dự báo vật thể xuất hiện trong bounding box. (tx, ty,tw, th)giúp xác định bounding box. Trong đó tx, ty là tọa độ tâm và tw, th là kích thước rộng, dài của bounding box. (Ƥ1, Ƥ2,..,Ƥc )là véc tơ phân phối xác suất dự báo của các classes.
36
Hình 3.6 Kiến trúc một output của mô hình YOLO Cũng tương tự như SSD, YOLOv3 dự báo trên nhiều feature map. Những feature map ban đầu có kích thước nhỏ giúp dự báo được các object kích thước lớn. Những feature map sau có kích thước lớn hơn trong khi anchor box được giữ cố định kích thước nên sẽ giúp dự báo các vật thể kích thước nhỏ.
37
Hình 3.7 Các output feature maps của mạng YOLOv3 Trên mỗi một cell của các feature map chúng ta sẽ áp dụng 3 anchor box để dự đoán vật thể. Như vậy số lượng các anchor box khác nhau trong một mô hình YOLO sẽ là 9 (3 featue map x 3 anchor box). Đồng thời trên một feature map hình vuông S x S, mô hình YOLOv3 sinh ra một số lượng anchor box là: S x S x 3. Như vậy số lượng anchor boxes trên một bức ảnh sẽ là: ( 13 x 13 + 26 x 26 +52 x 52) x 3 = 10647 ( anchor boxes ) Đây là một số lượng rất lớn và là nguyên nhân khiến quá trình huấn luyện mô hình YOLO vô cùng chậm bởi chúng ta cần dự báo đồng thời nhãn và bounding box trên đồng thời 10647 bounding boxes. Một số lưu ý khi huấn luyện YOLO:
Khi huấn luyện YOLO sẽ cần phải có RAM dung lượng lớn hơn để
save được 10647 bounding boxes như trong kiến trúc này.
Không thể thiết lập các batch_size quá lớn như trong các mô hình
classification vì rất dễ Out of memory. Package darknet của YOLO đã chia nhỏ một batch thành các subdivisions cho vừa với RAM. 38
Thời gian xử lý của một step trên YOLO lâu hơn rất rất nhiều lần so
với các mô hình classification. Do đó nên thiết lập steps giới hạn huấn luyện cho YOLO nhỏ. Đối với các tác vụ nhận diện dưới 5 classes, dưới 5000 steps là có thể thu được nghiệm tạm chấp nhận được.
Anchorbox Để tìm được bounding box cho vật thể, YOLO sẽ cần các anchor box làm cơ sở ước lượng. Những anchor box này sẽ được xác định trước và sẽ bao quanh vật thể một cách tương đối chính xác. Sau này thuật toán regression bounding box sẽ tinh chỉnh lại anchor box để tạo ra bounding box dự đoán cho vật thể. Trong một mô hình YOLO:
Mỗi một vật thể trong hình ảnh huấn luyện được phân bố về một
anchor box. Trong trường hợp có từ 2 anchor boxes trở lên cùng bao quanh vật thể thì ta sẽ xác định anchor box mà có IoU với ground truth bounding box là cao nhất.
39
Hình 3.8 Xác định anchorbox cho một vật thể Từ Cell i ta xác định được 3 anchor boxes viền xanh như trong hình. Cả 3 anchor boxes này đều giao nhau với bounding box của vật thể. Tuy nhiên chỉ anchor box có đường viền dày nhất màu xanh được lựa chọn làm anchor box cho vật thể bởi nó có IoU so với ground truth bounding box là cao nhất. Mỗi một vật thể trong hình ảnh huấn luyện được phân bố về một cell trên feature map mà chứa điểm mid point của vật thể. Chẳng hạn như hình chú chó trong hình 15 sẽ được phân về cho cell màu đỏ vì điểm mid point của ảnh chú chó rơi vào đúng cell này. Từ cell ta sẽ xác định các anchor boxes bao quanh hình ảnh chú chó. Như vậy khi xác định một vật thể ta sẽ cần xác định 2 thành phần gắn liền với nó là (cell, anchor box). Không chỉ riêng mình cell hoặc chỉ mình anchor box. Một số trường hợp 2 vật thể bị trùng mid point, mặc dù rất hiếm khi xảy ra, thuật toán sẽ rất khó xác định được class cho chúng.
40
Hình 3.9 Trường hợp 2 vật thể người và xe trùng mid point và cùng thuộc một cell.
Hàm Loss Function Hàm loss function của YOLO chia thành 2 phần: Lloc (localization loss) đo lường sai số của bounding box và Lcls (confidence loss) đo lường sai số của phân phối xác suất các classes.
41
Hình 3.10 Hàm loss function
Lloc là hàm mất mát của bounding box dự báo so với thực tế.
Lcls là hàm mất mát của phân phối xác suất.
Trong đó tổng đầu tiên là mất mát của dự đoán có vật thể trong cell hay không và tổng thứ 2 là mất mát của phân phối xác suất nếu có vật thể trong cell. 3.1.2 Thuật toán YOLOv5 YOLOv5 là một mô hình Object Detection thuộc họ mô hình YOLO. 3 phiên bản YOLO đầu tiên được phát triển bởi Joseph Redmon. Sau đó, Alexey Bochkovskiy cho ra mắt YOLOv4 với sự cải thiện cả về tốc độ cũng như độ chính xác. Và rồi YOLOv5 được công bố gần đây với những so sánh ban đầu cho thấy độ chính xác tương đương YOLOv4 và có tốc độ nhanh hơn khi thực hiện dự đoán.
42
Cấu trúc YOLOv5 không có nhiều thay đổi quá lớn so với YOLOv4 tuy nhiên YOLOv5 áp dụng một số thuật toán phát hiện vật thể nhanh, tối ưu hóa các phép toán thực hiện song song giúp tăng tốc độ nhận diện và giảm thời gian huấn luyện một cách tối ưu. Hàm IOU (Intersection over union) Là hàm đánh giá độ chính xác của object detector trên tập dữ liệu cụ thể.
Trong đó Area of Overlap là diện tích phần giao nhau giữa predicted bounding box (dự đoán) với grouth-truth bouding (thực tế) box , còn Area of Union là diện tích phần hợp giữa predicted bounding box với grouth-truth bounding box. Những bounding box được đánh nhãn bằng tay trong tập traing set và test set. Nếu IOU > 0.5 thì prediction được đánh giá là tốt.
Cấu trúc nhận diện vật thể của YOLOv5 Cấu trúc nhận diện vật thể của YOLOv5 thường có 3 phần được thể hiện ở hình 3.11
43
Hình 3.11 Cấu trúc nhận diện vật thể của YOLOv5. - Backbone: Backbone là 1 mô hình pre-train của 1 mô hình học chuyển (transfer learning) khác để học các đặc trưng và vị trí của vật thể. Các mô hình học chuyển thường là VGG16, ResNet-50,... - Head: Phần head được sử dụng để tăng khả năng phân biệt đặc trưng để dự đoán class và bounding-box. Ở phần head có thể áp dụng 1 tầng hoặc 2 tầng: + Tầng 1: Dense Prediction, dự đoán trên toàn bộ hình với các mô hình RPN, YOLO, SSD,... + Tầng 2: Sparse Prediction dự đoán với từng mảng được dự đoán có vật thể với các mô hình R-CNN series,.. - Neck: Ở phần giữa Backbone và Head, thường có thêm một phần Neck. Neck thường được dùng để làm giàu thông tin bằng cách kết hợp thông tin giữa quá trình bottom-up và quá trình top-down (do có một số thông tin quá nhỏ khi đi qua quá trình bottom-up bị mất mát nên quá trình top-down không tái tạo lại được).
44
Khác biệt của YOLOv5 với các phiên bản trước của YOLO Vì YOLOv5 được triển khai trong PyTorch ban đầu nên nó được hưởng lợi từ hệ sinh thái PyTorch đã được thiết lập: hỗ trợ đơn giản hơn và triển khai dễ dàng hơn. Hơn nữa, là một khung nghiên cứu được biết đến rộng rãi hơn, việc lặp lại trên YOLOv5 có thể dễ dàng hơn cho cộng đồng nghiên cứu rộng lớn hơn. Điều này cũng làm cho việc triển khai đến các thiết bị di động đơn giản hơn vì mô hình có thể được biên dịch sang ONNX và CoreML một cách dễ dàng. Khả năng đào tạo cũng như khả năng suy luận rất là nhanh, độ chính xác cao. Cuối cùng YOLOv5 có dung lượng nhỏ. Cụ thể, một tệp trọng số cho YOLOv5 là 27 megabyte. Tệp trọng số cho YOLOv4 (với kiến trúc Darknet) là 244 megabyte. YOLOv5 nhỏ hơn gần 90% so với YOLOv4. Điều này có nghĩa là YOLOv5 có thể được triển khai cho các thiết bị nhúng dễ dàng hơn nhiều. 3.2 Mô hình WPOD Vấn đề của các phương pháp object detection được áp dụng vào bài toán phát hiện biển số xe là nó chỉ đưa về kết quả là một vùng chứa biển số xe (vùng này có thể bao gồm cả biển số xe và phần chi tiết của thân xe). Biển số xe về bản chất là vật chất hình chữ nhật và phẳng, được gắn vào xe với mục đích nhận dạng. Tận dụng lợi thế về hình dạng của biển số, đề xuất sử dụng mạng CNN, mạng này học cách phát hiện khu vực biển số trong nhiều dạng biến dạng khác nhau. Những trường hợp trả về cả biển số là những trường hợp biển số được chụp thẳng chính diện với camera ví dụ như ở các bãi gửi xe tự động thì camera sẽ được lắp sao cho camera sẽ hướng thẳng đến vùng có biển số. Tuy nhiên trong một số trường hợp không phải lúc nào biển số xe cũng được chụp ở hướng chính diện. Ví dụ trong trường hợp một chú cảnh sát giao thông với một thiết bị máy quay di động ( hoặc smartphone) dẫn đến góc nhìn
45
tới biển số bị nghiêng gây ảnh hưởng đến việc trích xuất thông tin biển số ở các bước sau. Nhìn hình dưới đây, có thể nhìn thấy ngay là với trường hợp hướng nhìn chính diện (hình trái) thì vùng biển số phát hiện được hầu như không có chi tiết của thân xe, với trường hợp hướng nhìn hơi nghiêng một chút (hình phải) thì vùng biển số đã có rất nhiều các chi tiết thừa ở thân xe
Kết quả detect dùng 2 điểm(top left – bottom right ) trên ảnh với hướng nhìn chính diện và hướng nghiêng khi chụp biển số xe
46
Ảnh gốc
Kết quả khi detect dùng 2 điểm
47
Kết quả khi detect dùng WPOD
YOLO và SSD thực hiện phát hiện và nhận dạng nhiều đối tượng nhanh cùng một lúc, nhưng chúng không tính đến các phép biến đổi không gian, chỉ tạo ra các BB hình chữ nhật cho mỗi lần phát hiện. Ngược lại, STN có thể được được sử dụng để phát hiện các vùng không phải hình chữ nhật, tuy nhiên nó không thể xử lý nhiều phép biến đổi một lúc, chỉ thực hiện một phép biến đổi không gian duy nhất trên toàn bộ đầu vào.
Để khắc phục các nhược điểm nói trên, ta sử dụng mạng WPODNET(Wraped Planer Object Detection Network)- được phát triển và thiết kế dựa trên ý tưởng của YOLO, SSD và STN. Các mạng YOLO và SSD chỉ trả về một hình chữ nhật bao quanh biển số xe mà không quan tâm đến không gian xung quanh biển số xe là như thế nào. Còn WPOD có thể trả về một vùng tứ giác bao quanh biển số xe và đưa biển số về hướng chính diện.
48
Bao gồm 21 lớp convolutional trong đó có 14 lớp nằm trong các khối residual. Tất cả đều dùng filter với kích thước 3x3 và dùng hàm kích hoạt relu ngoại trừ khối Detection. Output features map sẽ bao gồm 8 channels trong đó 2 channels đầu là xác suất có/không có đối tượng, 6 channels sau chứa các giá trị để tạo ra ma trận affine transform. Để tạo ra output features map như vậy thì khối Detection có 2 luồng riêng biệt, luồng thứ nhất để tính xác suất có/không có đối tượng (2 channels đầu) sử dụng softmax, luồng thứ 2 để tính toán các thông số để tạo ra ma trận transform với hàm f(x)=x. Kết quả 2 luồng này sẽ được gộp lại để đưa ra output. 3.3 Mô hình đề xuất Phương pháp đề xuất bao gồm 3 bước chính: phát hiện phương tiện, phát hiện khu vực biển số xe và nhận dạng ký tự. Cho một hình ảnh đầu vào, phát hiện các phương tiện. Trong mỗi khu vực phát hiện, mạng WPOD tìm kiếm biển số xe và thực hiện một phép biến đổi affine cho mỗi lần phát hiện, cho phép chỉnh sửa khu vực biển số xe thành một hình chữ nhật giống như chế độ xem trực diện. Và cuối cùng được đưa vào mạng YOLO để nhận dạng ký tự.
49
Như vậy để giải quyết được bài toán nhận diện biển số xe thì ta cần giải quyết ba bài toán con sau: - Bài toán thứ nhất: Phát hiện phương tiện giao thông - Bài toán thứ hai: Phát hiện khu vực biển số xe - Bài toán thứ ba: Nhận dạng ký tự Sơ đồ khối của mô hình đề xuất hệ thống nhận biển số xe
50
51
Huẩn luyện mô hình Các bước để có thể huấn luyện YOLOv5 trên Custom Dataset: - Chuẩn bị bộ Dataset. - Cài đặt các phần phụ thuộc cần thiết của YOLOv5. - Tải xuống dữ liệu Custom YOLOv5 Object Detection. - Xác định cấu hình và kiến trúc mô hình YOLOv5. - Huấn luyện a custom YOLOv5 Detector. - Đánh giá hiệu suất YOLOv5. - Trực quan hóa dữ liệu huấn luyện YOLOv5. - Chạy YOLOv5 Inference trên hình ảnh thử nghiệm. - Xuất các trọng số YOLOv5 đã lưu để suy luận được kết quả. Việc phát hiện biển số được thực hiện dựa trên mô hình mạng nơ-ron phân lớp hình ảnh. Cấu hình máy sử dụng cho việc đào tạo mô hình Hệ điều hành: Ubuntu 20.04 CPU: Ryzen 2700 GPU: 1070TI 8G Ram: 16GB HDD: 1T
52
3.3.1 Phát hiện phương tiện giao thông Phát hiện phương tiện giao thông là một bài toán thuộc nhóm các bài toán phát hiện đối tượng (một lĩnh vực con của ngành thị giác máy tính) và có nhiều ứng dụng thực tế. Có các phương pháp giải quyết bài toán phát hiện phương tiện sau: các phương pháp dựa vào kỹ thuật trừ nền, các phương pháp dựa vào luồng quang học (optical flow) và các phương pháp dựa vào các mô hình mạng học sâu phát hiện đối tượng như YOLO, SSD, Fast R-CNN,… Ở các phương pháp thuộc hai nhóm đầu có ưu điểm là không cần nhiều dữ liệu huấn luyện hay năng lực xử lý mạnh mẽ của các hệ thống phần cứng, tốc độ nhanh nhưng hạn chế về độ chính xác. Còn các mô hình học sau có điểm chung là cần dữ liệu huấn luyện lớn, các phần cứng triển khai phải có năng lực xử lý mạnh mẽ (các card đồ họa GPU chuyên dụng) và tốc độ thực thị chậm hơn nhưng lại có độ chính xác cao hơn. Vì phương tiện là một trong những đối tượng cơ bản có trong nhiều bộ dữ liệu nhận dạng và phát hiện cổ điển, chẳng hạn như Pascal-Voc, Imaganet và Coco , vậy nên ở đây sẽ không huấn luyện máy học từ đầu, thay vào đó là chọn một mô hình đã biết để thực hiện phát hiện phương tiện dựa trên một số tiêu chí. Mô hình YOLOv5 có khả năng phát hiện các phương tiện giao thông phổ biến trên đường: xe máy, ô tô, xe buýt, xe tải. Mô hình YOLOv5m Vehice Detection
Image size
Precision
Recal
640x640
0.8720
0.8509
53
54
3.3.2 Phát hiện và căn chỉnh biển số Tách biển số Tách biển số là một bước rất quan trọng trong quá trình nhận dạng biển số xe. Quá trình này được chia thành 2 giai đoạn chính: Giai đoạn 1: Xác định vị trí của biển số trong ảnh chụp. Giai đoạn 2: Dùng các giải thuật để cắt biển số xe ra khỏi ảnh và xoay biển số xe về phương ngang. Việc định vị biển số xe dựa vào các tính chất của biển số như: hình dạng, màu sắc của biển số so với nền. Biển số xe có hình chữ nhật với kích thước chiều dài và rộng không thay đổi. Từ đó chúng ta có thể tìm các vùng có hình tứ giác trong hình, tính tỉ lệ giữa hai chiều của hình so với khoảng giá trị cho trước để xem thử vùng đó có chứa biển số hay không. Ngoài ra, định vị biển số còn dựa trên màu sắc của biển số. Hầu hết các biển số xe Việt Nam đều nền trắng, chữ đen. Kết hợp hai tính chất trên, chúng ta xác định được vùng chứa biển số. Sau khi định vị biển số xe, chúng ta tiến hành cắt biển số xe. Biển số xe được cắt theo 2 bước. Bước đầu tiên là cắt vùng rộng hơn vùng chứa biển số. 55
Sau đó tìm góc nghiêng của biển số và thực hiện xoay biển số về phương thẳng đứng. Bước hai là cắt biển số ra khỏi vùng trên. Thực hiện việc cắt biển số qua hai bước như trên làm tăng độ chính xác, biển số được cắt nguyên vẹn, không cắt phạm chữ, trừ trường hợp ảnh bị chói, độ tương phản không đều hoặc bị che khuất thì kết quả của việc tách biển số mới không chính xác. Tìm góc nghiêng và xoay Biển số được chụp với nhiều góc nghiêng khác nhau, do dó ta phải tìm góc nghiêng và xoay về phương thẳng. Đây là việc rất quan trọng vì nếu không quay về phương thẳng thì khi cắt biển số sẽ bị phạm vào biển số.
Biển số sau khi cắt hoàn chỉnh Sau khi cắt được biển số ta tiến hành phân đoạn và nhận dạng ký tự Tập dữ liệu Tập dữ liệu bao gồm các ảnh xe được lấy từ tập CCPD (Chinese City Parking Dataset, ECCV) và tập dữ liệu từ công ty cổ phần tập đoàn ASI Group. Các khu vực biển số được sử dụng mô hình phát hiện biển số để phát hiện và cắt ra làm tập dữ liệu đào tạo mô hình phân loại. Gồm 11781 hình ảnh . Được chia làm 2 phần 70% cho tập huấn luyện và 30% cho tập thử nghiệm.
56
Quá trình huấn luyện gồm 100 epochs, với kích thước đầu vào là 16x640x640x3 tức là 16 ảnh RGB kích thước 640x640 mỗi lần đưa vào mô hình. Kích thước dữ liệu: Gồm 11781 ảnh Mô hình: YOLOv5 Hàm mất mát: Localization loss và Confidence loss Sau qua trình đào tạo thu được mô hình phát hiện biển số xe với độ chính xác lớn hơn 95% trên tập thử nghiệm (3357 ảnh).
Mô hình WPOD
Image size
Precision
Recal
256x256
0.9411
0.9301
57
3.3.3 Nhận dạng ký tự
Việc phát hiện ký tự trên khu vực biển số được thực hiện bằng cách sử dụng mạng YOLOv5 đã sửa đổi.Tuy nhiên tập dữ liệu đào tạo đã được mở rộng đáng kể bằng cách sử dụng dữ liệu tổng hợp và tăng cường để phù hợp với các đặc điểm LP của các khu vực khác nhau. Tập dữ liệu Tập dữ liệu: bao gồm các ảnh chữ số được lấy từ tập SVHN (The Street View House Numbers Dataset) và các ảnh biển số xe từ tập dữ liệu từ công ty cổ phần tập đoàn ASI Group. Gồm 13257 hình ảnh. Được chia làm 2 phần 73% cho tập huấn luyện và 27% cho tập thử nghiệm.
58
Sau quá trình đào tạo thu được mô hình nhận dạng ký tự với độ chính xác lớn hơn 90% trên tập thử nghiệm (3221 ảnh).
Mô hình YOLOv5m Char Detection
Image size
Precision
Recal
320x320
0.9723
0.9508
59
CHƯƠNG IV: KẾT LUẬN Các mô hình đều cho kết quả khá tốt trên tập thử nghiệm, sau khi kết hợp 3 mô hình lại đã cơ bản nhận được biển số xe một cách tương đối chính xác lên đến trên 96% trên điều kiện thời tiết tốt, thuận lợi với tốc độ nhận diện trung bình 1 phương tiện từ 15-2 ms trên GPU RTX 2070. Tuy nhiên vẫn còn một số hạn chế như: Mô hình nhận dạng còn nhầm lần trong một số trường hợp biển số xe bị che khuất. Bộ dữ liệu huấn luyện nhận dạng ký tự chưa đủ lớn nên mô hình còn đọc sai một số chữ cái, số giống nhau hoặc kí tự hiếm gặp trên biển số như: R, LD, G-6. Tuy mô hình đã khá tốt và có thể áp dụng vào thực tế nhưng vẫn cần cải thiện tốc độ, bộ nhớ ram xử dụng bằng cách tối ưu, lượng tử hóa các mô hình học sâu áp dụng trong bài toán. Tăng cường bộ dữ liệu huấn luyện giúp cho mô hình được đào tạo chính xác hơn.
60
TÀI LIỆU THAM KHẢO
61
62