Ứng dụng phương pháp nhận diện biển số xe để tự động hóa hoạt động trích xuất, thống kê, phân loại, phân tích thông tin số lượng xe dựa trên nền tảng trí tuệ nhân tạo từ đó xác định vị t
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
TRỊNH THỊ HOÀNG OANH
ỨNG DỤNG DEEP LEARNING ĐỂ NHẬN DIỆN BIỂN SỐ XE
RA VÀO TRONG MỘT TÒA NHÀ
LUẬN VĂN THẠC SĨ
HỆ THỐNG THÔNG TIN
Đà Nẵng - Năm 2023
Trang 2ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
TRỊNH THỊ HOÀNG OANH
ỨNG DỤNG DEEP LEARNING ĐỂ NHẬN DIỆN BIỂN SỐ XE
RA VÀO TRONG MỘT TÒA NHÀ
Chuyên ngành: Hệ thống thông tin
Trang 7MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT iii
ABSTRACT iv
MỤC LỤC v
DANH MỤC CÁC TỪ VIẾT TẮT vii
DANH MỤC BẢNG viii
DANH MỤC HÌNH ẢNH ix
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ đề tài 2
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Ý nghĩa thực tiễn của đề tài 2
6 Kết quả đạt được 3
7 Cấu trúc của luận văn 3
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 Các khái niệm chung 4
1.2 Bài toán nhận dạng biển số xe 5
1.2.1 Khái niệm nhận dạng biển số xe 5
1.2.2 Lịch sử hình thành và phát triển 5
1.2.3 Cách thức hoạt động của hệ thống 6
1.2.4 Phân loại các ứng dụng nhận dạng biển số xe 6
1.2.5 Một số đặc điểm để nhận dạng biển số xe tại Việt Nam 6
1.3 Kỹ thuật học sâu để nhận dạng và phân loại đối tượng 9
1.3.1 Kỹ thuật mạng nơ-ron tích chập (CNN) 9
1.3.2 Một số kỹ thuật tìm kiếm xác định vị trí vật thể trong ảnh sử dụng mạng CNN 12
1.4 Phương pháp nhận dạng ký tự trong biển số xe 23
1.4.1 Phương pháp hình thái học (morphology) 23
1.4.2 Phương pháp mạng nơron (neuron network) 23
1.4.3 Phương pháp so khớp mẫu 23
1.5 Kết chương 1 23
CHƯƠNG 2 GIẢI PHÁP NHẬN DẠNG BIỂN SỐ XE 24
2.1 Sử dụng công nghệ YOLOv4 áp dụng cho bài toán 24
2.1.1 Cấu trúc nhận diện vật thể của YOLOv4 24
Trang 82.1.2 Backbone 25
2.1.3 Neck 27
2.1.4 Head 29
2.1.5 Quy trình phát hiện, nhận dạng biển số xe 30
2.2 Sử dụng phương pháp nhận dạng ký tự quang học áp dụng cho bài toán 30
2.2.1 Lịch sử 30
2.2.2 Cấu trúc của Tesseract 31
2.2.3 Xác định dòng và từ 32
2.3 Kết chương 2 34
CHƯƠNG 3 THỰC NGHIỆM NHẬN DẠNG BIỂN SỐ XE 35
3.1 Bài toán nhận dạng biển số xe 35
3.2 Xây dựng chương trình thực nghiệm 35
3.2.1 Cài đặt chương trình chạy 35
3.2.2 Chuẩn bị dữ liệu 36
3.2.3 Huấn luyện model trên Colab 39
3.3 Kết quả đạt được 49
3.4 Kết chương 3 50
KẾT LUẬN VÀ KIẾN NGHỊ 51
DANH MỤC TÀI LIỆU THAM KHẢO 52
Trang 9DANH MỤC CÁC TỪ VIẾT TẮT
AI Artificial Intelligence ANPR Automatic Number Plate Recognition CNN Convolutional Neural Network
CSDL Cơ sở dữ liệu FPN Feature Pyramid Network KNN K-Nearest Neighbor OCR Optical Character Recognition PAN Path Aggregation Network SPP Spatial Pyramid Pooling SSD Single Shot MultiBox Detector
THPT Trung học phổ thông YOLO You only look once
Trang 10DANH MỤC BẢNG
Số hiệu
Trang 111.3 Mô tả quá trình nhận diện vật thể qua các lớp tích chập 10
1.8 Output sau khi thực hiện Graph Based Image Segmentation 14
1.11 Phát hiện, định vị và phân loại nhiều đối tượng 15
1.17 Mô hình so sánh hiệu suất giữa YOLOv4 và các bộ phát hiện đối
2.1
So sánh tốc độ xử lý và độ chính xác của YOLOv4 với các công
nghệ khác trong cùng tập dữ liệu MS COCO Có thể thấy so với
YOLOv3 với cùng một FPS (Frame per Second) YOLOv4 cho độ
chính xác (AP) cao hơn hẳn
24
2.3 Sự khác biệt giữa mạng DenseNet và mạng CSPDenseNet 25 2.4 Quá trình lấy Batch-Norm, ReLU, tích chập với filter 3x3 của 1 lớp 26
2.5 Quá trình ghép chồng lớp tích chập phía trước vào lớp tích chập phía
Trang 122.13 Quy trình các bước triển khai mô hình thực hiện: 30
3.4 Hình ảnh dữ liệu đã được gán nhãn và lưu trong tập tin obj.zip 38
3.7 Thay đổi thông tin trong chức năng ―Runtime‖ của Notebook 40 3.8 Cập nhật giá trị thanh ―GPU‖ trong Notebook settings 41
3.12 Thực hiện gắn kết ổ đĩa Google Colab và Google Drive 42 3.13 Thực hiện tải mã nguồn darknet để huấn luyện YOLOv4 43 3.14 Mã nguồn darknet được tải và lưu thành công trên Google Drive 43
3.16 Tạo file chứa tên class đối tượng muốn huấn luyện 44
3.18 Hai file train.txt và val.txt được tạo ra trong thư mục data 45
Trang 13Số hiệu
3.25 Các file weights đƣợc sinh ra khi huấn luyện mô hình YOLOv4 47
Trang 14MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay, nền kinh tế phát triển cùng với các bước tiến vượt bậc trong công nghệ thì nhu cầu bảo vệ tài sản của con người cũng ngày một tăng cao Vì vậy việc đỗ, đậu
xe và bảo vệ phương tiện một cách an toàn, nhanh chóng cũng là một trong những vấn
đề bức thiết Bên cạnh đó, với sự mở rộng đa dạng các phương tiện giao thông như xe máy, xe mô tô, xe ô tô… khiến cho việc đỗ xe cũng trở nên quá tải và khó kiểm soát Một trong những địa điểm có nhiều xe ra vào có thể kể đến như chung cư, siêu thị, bệnh viện hay thiết thực nhất phải kể đến trường học, một nơi có lượng lớn xe ra vào thường xuyên và khó theo dõi
Do đó vấn đề đặt ra cho các chủ quản lý toà nhà chung cư, siêu thị hay trường học là làm thế nào để bãi đỗ xe của mình hoạt động hiệu quả nhất; trong đó bao gồm việc kiểm soát ra vào, bảo mật thông tin tài sản, và thời gian ký gửi nhanh chóng Công nghệ phát triển, đã có nhiều phát minh tiên tiến trong việc gửi xe, soát vé nhưng tình trạng quá tải, khó kiểm soát vẫn thường xuyên xảy ra
Chắc chắn một điều rằng, sử dụng các thiết bị công nghệ thay thế cho sức lao động con người là điều hết sức thông minh và khoa học Nhưng việc sử dụng công nghệ sao cho hiệu quả nhất trong quản lý vẫn là một bài toán nan giải trong thời điểm hiện nay Cụ thể hơn ở môi trường giáo dục, hàng ngày có thể kể đến hàng nghìn phương tiện ra vào, làm thế nào để người soát vé/bảo vệ có thể thuận tiện nhất trong quá trình quản lý phương tiện của học sinh, sinh viên hoặc giáo viên?
Bên cạnh đó, các bãi giữ xe thường chia làm nhiều khu vực tuỳ theo loại phương tiện khác nhau, hệ thống giữ xe hiện nay vẫn chưa có chức năng tìm kiếm khu vực còn trống Điều này dẫn đến hiện trạng ùn tắc kéo dài, đặc biệt là vào các giờ cao điểm, khiến cho người quản lý mất khá nhiều thời gian để xác định thông tin xe cũng như vị trí đậu đỗ, tìm kiếm phương tiện khi quên khu vực để xe ban đầu Có thể nói, bài toán đặt ra phù hợp với xu hướng tiến bộ bây giờ là làm thế nào để phương tiện đậu đỗ một cách nhanh chóng, đúng vị trí và khoa học Ngoài ra, một vấn cần phải bàn đến đó là chức năng hỗ trợ quản lý nhà xe, bao gồm việc xác minh tài sản của chủ sở hữu thông qua biển số xe và thời gian ra vào toàn nhà… vẫn chưa được thực thi có hiệu quả Từ
đó, dẫn đến tình trạng mất khá nhiều thời gian để xác minh tài sản như kiểm tra camera, đối chiếu các giấy tờ liên quan như giấy tờ xe, chứng minh nhân dân, Vậy, làm thế nào để hỗ trợ chủ sở hữu có thể tìm kiếm phương tiện của mình một cách nhanh chóng trong bãi đỗ xe?
Chính vì những lí do đó tôi chọn để tài ―Ứng dụng Deep Learning để nhận diện biển số xe ra vào trong một tòa nhà” làm luận văn tốt nghiệp của mình
Trang 152 Mục tiêu và nhiệm vụ đề tài
2.1 Mục tiêu
- Đề xuất giải pháp nhận diện biển số xe ra vào tòa nhà
- Xây dựng cơ sở dữ liệu phục vụ cho việc nhận diện biển số xe
- Tìm hiểu bài toán nhận diện biển số xe, nghiên cứu các phương pháp nhận
diện biển số xe, lựa chọn phương pháp cho bài toán nhận diện và ứng dụng thực tế
2.2 Nhiệm vụ
- Tìm hiểu về Machine Learning, Deep Learning
- Tìm hiểu bộ thư viện cài đặt cho mô hình Deep Learning
- Tìm hiểu về dữ liệu thực tế (Cụ thể bài toán thực tế)
- Sử dụng công cụ nhận diện để đánh nhãn xe
- Huấn luyện và xây dựng chương trình thử nghiệm bài toán ứng dụng
- Xây dựng hệ thống nhận diện biển số xe bằng công nghệ Yolo và thư viện
Tesseract
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
- Các phương pháp của Deep Learning trong nhận dạng biển số xe
- Lý thuyết về mạng nơron và deep learning
- Tìm hiểu về nhận diện biển số xe bằng công nghệ Yolo
- Công cụ Pycharm, Colab, các thư viện OpenCV, …
3.2 Phạm vi nghiên cứu
- Hình ảnh biển số xe trong các bãi đỗ xe ở các tòa nhà, trường THPT Thái
Phiên
- Nghiên cứu các phương pháp nhận diện biển số xe
4 Phương pháp nghiên cứu
Về phương pháp nghiên cứu, tôi sử dụng hai phương pháp chính là nghiên cứu lý thuyết và nghiên cứu thực nghiệm
4.1 Phương pháp lý thuyết
Thu thập, chọn lọc, phân loại, ghi chú và nghiên cứu các tài liệu (sách, bài báo, luận văn, trang web) có liên quan đến Deep Learning, các bài toán Deep Learning trong nhận diện biển số xe ra vào trong một tòa nhà, trường học
4.2 Phương pháp thực nghiệm
- Thu thập dữ liệu mẫu
- Huấn luyện dữ liệu
- Cài đặt, thử nghiệm, đánh giá kết quả
5 Ý nghĩa thực tiễn của đề tài
Trang 16Kết quả nghiên cứu của đề tài góp phần mở rộng lĩnh vực ứng dụng phương pháp nhận diện biển số xe tại các bãi đậu xe, hoặc phát triển dò tìm biển số xe đưa ra vị trí
để xe của khách hàng, kiểm soát các phương tiện, …
6 Kết quả đạt được
6.1 Lý thuyết
- Hiểu được các phương pháp nhận diện biển số xe
- Khái quát về xử lý ảnh, cách phát hiện vùng chứa biển số xe
- Bài toán nhận dạng ký tự
6.2 Thực tiễn
Xây dựng chương trình Demo nhận dạng biển số xe từ hình ảnh
Ứng dụng phương pháp nhận diện biển số xe để tự động hóa hoạt động trích xuất, thống kê, phân loại, phân tích thông tin số lượng xe dựa trên nền tảng trí tuệ nhân tạo từ đó xác định vị trí đậu/đỗ và tìm kiếm phương tiện một cách nhanh chóng
7 Cấu trúc của luận văn
Ngoài phần mở đầu và kết luận, cấu trúc nội dung của luận văn bao gồm 3 chương:
Chương 1: Cơ sở lý thuyết
Chương này nghiên cứu tổng quan về bài toán nhận diện biển số xe, các hướng tiếp cận giải quyết bài toán, các kỹ thuật áp dụng cho phát hiện và nhận diện đối tượng
Chương 2: Giải pháp nhận diện biển số xe khi ra vào tòa nhà
Giới thiệu về công nghệ Yolo và phương pháp nhận diện ký tự quang học sử dụng mã nguồn mở Tesseract Kết hợp hai phương pháp này để áp dụng cho bài toán phát hiện, nhận dạng biển số xe ra vào tòa nhà, trường học
Chương 3: Thực nghiệm, đánh giá
Tác giả đã xây dựng bộ dữ liệu thử nghiệm, xây dựng mô hình nhận diện biển số
xe, huấn luyện đánh giá kết quả đạt được
Trang 17CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Các khái niệm chung
Xử lý ảnh: Xử lý ảnh là phương pháp chuyển đổi hình ảnh sang dạng số và thực
hiện một số hoạt động trên đó để nâng cao chất lượng hình ảnh hoặc trích xuất một số thông tin hữu ích từ hình ảnh đó [15]
Trí tuệ nhân tạo (AI): Có thể được định nghĩa như một ngành của khoa học
máy tính liên quan đến việc tự động hóa các hành vi thông minh, tạo ra được một cổ máy có thể bắt chước hành vi và tư duy của con người [3] [15]
Học máy (Marchine Learing): Học máy là một ứng dụng trí tuệ nhân tạo cung
cấp cho hệ thống khả năng tự động học hỏi và cải thiện hiệu suất, độ chính xác dựa trên những kinh nghiệm từ dữ liệu đầu vào, tập trung vào việc phát triển phần mềm, chương trình máy tính có thể truy cập vào dữ liệu và tận dụng nguồn dữ liệu đó để tự học
Học sâu (Deep Learing): là một chức năng của trí tuệ nhân tạo, bắt chước hoạt
động của bộ não con người cho việc sử dụng Một bước tiến dài của Machine Learning, cho phép máy có thể tự đào tạo chính mình Hãy suy nghĩ về nó như là một loại machine learning với "mạng thần kinh - neural networks" sâu có thể xử lý dữ liệu theo cách tương tự như một bộ não con người có thể thực hiện Điểm khác biệt chính ở đây là con người sẽ không phải dạy cho một chương trình deep learning cách để biết một con mèo trông như thế nào, mà chỉ cần cung cấp cho nó đủ hình ảnh cần thiết về loài mèo, và nó sẽ tự mình hình dung, tự học [15]
Hình 1.1: Mối quan hệ giữa trí tuệ nhân tạo, Machine Learning,
Deep Learning [15]
Trang 181.2 Bài toán nhận dạng biển số xe
1.2.1 Khái niệm nhận dạng biển số xe
Hệ thống nhận dạng biển số xe là hệ thống có khả năng phân tích hình ảnh và xác định vùng chứa biển số trên xe, thông qua video, thiết bị ghi hình và hình ảnh Sau cùng là xác định các thông tin như: chủ sở hữu xe, theo đời xe với tốc độ chậm, …
1.2.2 Lịch sử hình thành và phát triển
ANPR được phát minh vào năm 1976 tại Chi nhánh Phát triển Khoa học Cảnh sát
ở Anh Các hệ thống nguyên mẫu đã hoạt động vào năm 1979 và các hợp đồng đã được trao để sản xuất các hệ thống công nghiệp, đầu tiên là tại EMI Electronics, và sau
đó là tại Hệ thống nhận dạng máy tính (CRS, hiện là một phần của Jenoptik) trong Wokingham, Vương quốc Anh Hệ thống thử nghiệm ban đầu đã được triển khai trên Đường A1 và tại Đường hầm Dartford Vụ bắt giữ đầu tiên do phát hiện một chiếc
xe bị đánh cắp được thực hiện vào năm 1981 Tuy nhiên, ANPR đã không được sử dụng rộng rãi cho đến khi những phát triển mới về phần mềm rẻ hơn và dễ sử dụng hơn được tiên phong trong suốt những năm 1990 Việc thu thập dữ liệu ANPR để sử dụng trong tương lai (I E., trong việc giải quyết các tội phạm chưa được xác định khi đó) đã được ghi lại vào đầu những năm 2000 Trường hợp đầu tiên được ghi nhận về ANPR được sử dụng để giải quyết một vụ giết người xảy ra vào tháng 11 năm 2005, trong Bradford, Vương quốc Anh, nơi ANPR đóng một vai trò quan trọng trong việc xác định vị trí và sau đó kết tội những kẻ giết người Sharon Beshenivsky
Hệ thống nhận dạng biển số xe tại Malaysia của Choo Kar Soon (2002), sử dụng phương pháp phân loại KNN để phát hiện các ký tự trên biển số Kết quả thử nghiệm cho thấy phương pháp đề xuất có thể đạt được tỷ lệ phát hiện 98% và tỷ lệ nhận dạng
là 95% trên các hình ảnh tĩnh và chuỗi video [7]
Hệ thống nhận dạng biển số xe Ấn Độ của Chirag N Paunwala (2010), sử dụng phương pháp xác định vùng quan tâm bằng cách thực hiện một chuỗi phân đoạn theo hướng và xử lý hình thái Luôn luôn là bước đầu tiên là tăng cường độ tương phản, được thực hiện bằng cách sử dụng chức năng sigmoid Trong các bước tiếp theo, phân tích thành phần được kết nối theo sau bằng các kỹ thuật lọc khác nhau như phân tích tỷ
lệ khung hình và kỹ thuật lọc tương thích với tấm được sử dụng để tìm biển số chính xác Phương pháp đề xuất được thử nghiệm trên cơ sở dữ liệu lớn bao gồm 750 hình ảnh được chụp trong các điều kiện khác nhau Thuật toán có thể phát hiện biển số xe trong 742 hình ảnh với tỷ lệ thành công là 99,2% [8]
Nghiên cứu về nhận diện vật thể bằng công nghệ YOLO: Yolo được Redmon và Farhadi phát triển vào năm 2015, trong thời gian học tiến sĩ YOLO (―You only look once‖) là một công nghệ nhận diện phổ biến nhờ độ chính xác cao trong thời gian thực, đạt đến 45 khung hình trên giây
Trang 191.2.3 Cách thức hoạt động của hệ thống
Hệ thống ALPR gồm phần cứng là camera và phần mềm là có chức năng nhận dạng biển số xe từ ảnh chụp camera Camera thu nhận đặt tại vị trí cố định sao cho phần mềm có thể quét hình ảnh một cách rõ ràng Ảnh được đưa vào phần mềm để nhận dạng chính xác biển số xe sau đó dùng thuật toán OCR (Optical Character Recognition) để lấy từng ký tự và chuyển đổi thành định dạng chữ hoặc số như dạng text
Không có một hệ thống ALPR nào có thể nhận dạng chính xác 100%, một số yếu
tổ ảnh hưởng đến dộ chính xác như:
- Độ phân giải của ảnh kém hoặc ảnh bị mờ
- Điều kiện ánh sáng yếu, bị phản chiếu hoặc che bóng
- Các đối tượng có dạng tương tự như biển số xe ngoại cảnh
- Sự khác nhau về cấu trúc biển số xe ở mỗi nước
1.2.4 Phân loại các ứ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 qua các thiết bị thu hình Nguồn hình ảnh cho ứng dụng có rất nhiều Phát triển hình ảnh trực tiêp thu nhận từ Camera [2]
Có rất nhiều cách thức khác nhau để 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 làm hai loại
Loại 2: Không giới hạn vùng nhìn
Đầu vào: Ảnh đầu vào thu được từ các 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ể tổng hợp thêm các đối tượng như người, cây, đường phố, miễn là vùng biển số phải đủ để có thể thực hiện nhận dạng cá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 nên có thể thu ảnh
từ thiết bị ghi hình như camera, máy ảnh Sau đó dò tìm trong ảnh để xác định vùng chứa biển số xe Thực hiện tách vùng và nhận dạng Cuối cùng nhận kết quả truyền đi hoặc lưu trữ
Úng dụng: Vì không phụ thuộc vào hình ảnh thu được nên được ứng dụng tại nhiều nơi như những nói điều tiết giao thông, vị trí giao thông nhạy cảm…
1.2.5 Một số đặc điểm để nhận dạng biển số xe tại Việt Nam
Trang 20Theo Thông tư 58/2020/TT-BCA, biển số xe dân sự trên cả nước hiện bắt đầu từ số
11 đến 99 Địa phương có nhiều biển số xe nhất là Tp Hồ Chí Minh, có 11 biển số: 41
và từ 50 đến 59; tiếp là thủ đô Hà Nội, có 06 biển số: 29 - 33 và 40; sau đó là Hải Phòng và Đồng Nai, đều có 02 biển số xe
- Về màu sắc: [17]
+ Biển số nền màu xanh, chữ và số màu trắng, sêri biển số sử dụng lần lượt một trong các chữ cái sau: A, B, C, D, E, F, G, H, K, L, M cấp cho xe của các cơ quan của Đảng; Văn phòng Chủ tịch nước; Văn phòng Quốc hội và các cơ quan của Quốc hội; Văn phòng Đoàn đại biểu Quốc hội, Hội đồng nhân dân các cấp; các Ban chỉ đạo Trung ương; Công an nhân dân, Tòa án nhân dân, Viện kiểm sát nhân dân; các bộ, cơ quan ngang bộ, cơ quan thuộc Chính phủ; Ủy ban An toàn giao thông quốc gia; Ủy ban nhân dân các cấp và các cơ quan chuyên môn thuộc Ủy ban nhân dân cấp tỉnh, cấp huyện; tổ chức chính trị - xã hội (Mặt trận Tổ quốc Việt Nam, Công đoàn Việt Nam, Đoàn thanh
Trang 21niên Cộng sản Hồ Chí Minh, Hội liên hiệp phụ nữ Việt Nam, Hội cựu chiến binh Việt Nam, Hội nông dân Việt Nam); đơn vị sự nghiệp công lập, trừ Trung tâm đào tạo, sát hạch lái xe công lập; Ban quản lý dự án có chức năng quản lý nhà nước
+ Biển số nền màu xanh, chữ và số màu trắng có ký hiệu ―CD‖ cấp cho xe máy chuyên dùng của lực lượng Công an nhân dân sử dụng vào mục đích an ninh
+ Biển số nền màu trắng, chữ và số màu đen, sêri biển số sử dụng lần lượt một trong 20 chữ cái sau đây: A, B, C, D, E, F, G, H, K, L, M, N, P, S, T, U, V, X, Y, Z cấp cho xe của doanh nghiệp, Ban quản lý dự án thuộc doanh nghiệp, các tổ chức xã hội, xã hội - nghề nghiệp, xe của đơn vị sự nghiệp ngoài công lập, xe của Trung tâm đào tạo sát hạch lái xe công lập, xe của cá nhân
+ Biển số nền màu vàng, chữ và số màu đỏ, có ký hiệu địa phương đăng ký và hai chữ cái viết tắt của khu kinh tế - thương mại đặc biệt cấp cho xe của khu kinh tế - thương mại đặc biệt hoặc khu kinh tế cửa khẩu quốc tế theo quy định của Chính phủ + Một số trường hợp có ký hiệu sêri riêng: KT, LD, DA, R, T, MK, MĐ, TĐ, HC
- Tiêu chuẩn về kích thước [17]
+ Biển số ôtô:
Chiều cao: 110mm Chiều rộng: 470 mm (Biển dài)
Chiều cao: 200mm Chiều rộng: 280 mm (Biển vuông)
+ Biển xe máy: Chiều cao: 140 mm Chiều rộng 190 mm
+ Tỉ lệ chiều cao/ chiều rộng
+ 0.18 < Chiều cao/ Chiều rộng < 0.3 (Biển số dài)
+ 0.6 < Chiều cao/ Chiều rộng < 0.85 (Biển số 2 hàng)
Từ các đặc điểm này ta có thể xác định được vùng có khả năng là biển số theo ràng buộc về kích thước
ký tự thường không lớn hơn 20% chiều cao của mỗi ký tự
Từ những phân tích nhận dạng biển số xe, ta có phương pháp thực hiện của chương trình nhận dạng như sau:
Bước 1: Ảnh đầu vào là ảnh màu BGR, sử dụng các thuật toán xử lý ảnh
Bước 2: Tìm các contour trên ảnh xe
Bước 3: Lọc các contour theo kích thước của từng kí tự
Bước 4: Xử lý đầu ra để lấy vùng biển số
Bước 5: Tách ký tự vừa tìm được trên vùng biển số
Bước 6: Đưa tập ký tự đã tách vào mạng nơ ron để nhận dạng
Bước 7: Hiển thị kết quả lên giao diện chương trình
Trang 221.3 Kỹ thuật học sâu để nhận dạng và phân loại đối tượng
1.3.1 Kỹ thuật mạng nơ-ron tích chập (CNN) [1] [2]
Convolutional Neural Network (CNN) hay còn được gọi là mạng Nơ-ron tích
chập là một trong những mô hình của Deep Learning Tác dụng của thuật toán này chính là tạo ra những hệ thống thông minh, có sự phản ứng với độ chính xác cao Ví
dụ như Facebook, Google, đã đưa vào sản phẩm của mình chức năng nhận diện khuôn mặt,… Ứng dụng cơ bản nhất của thuật toán này là phân lớp, tức là phân biệt hoặc là cái này hoặc là cái kia, tức là khi đưa hình ảnh vào máy tính, nó sẽ là các điểm ảnh hai chiều và điều CNN thực hiện đó là khi các điểm ảnh thanh đổi thì máy tính vẫn biết được đó là hình ảnh gì
CNNs được chia thành 3 chiều: rộng, cao, sâu Các Nơ- ron trong mạng không liên kết hoàn toàn với toàn bộ Nơ-ron kế đến mà chỉ liên kết tới một vùng nhỏ Cuối cùng, một tầng đầu ra được tối giản thành vec-tơ của giá trị xác suất
CNNs gồm 2 thành phần:
- Phần tầng ẩn hay phần rút trích đặc trưng: Trong phần này, mạng sẽ tiến hành tính toán hàng loạt phép tích chập (Convolutional layer) và phép hợp nhất (pooling) để phát hiện các đặc trưng
- Phần phân lớp: Tại phần này, một số lớp các liên kết đầy đủ (Fully Connected) sẽ đóng vai trò như một bộ phân lớp các đặc trưng đã rút trích trước đó Tầng này sẽ đưa ra xác suất của một đối tượng trong hình
Hình 1.2: Cấu trúc của CNN Nguồn www.mathworks.com
Lớp tích chập (Convolutional Layer)
Đây là phép tính quan trọng trong CNN Ta thực hiện phép tích chập bằng cách trượt kernel/filter theo kiểu dữ liệu đầu vào Tại mỗi vị trí, ta tiến hành phép nhân ma trận và tính tổng để đưa vào feature map Feature map này chính là một ma trận 3 chiều, trong đó bao gồm những con số (parameter)
Ở lớp đầu tiên, khối tích chập dùng để phát hiện cạnh thẳng đứng và cạnh nằm ngang, cạnh nghiêng Ở các lớp tiếp theo, khối tích chập sẽ nhận diện các đường cong, đường gấp khúc Càng sử dụng nhiều lớp tích chập thì càng phát hiện được những đặc trưng phức tạp hơn, có thể là các vật thể như con mèo, bông hoa, bánh xe
Trang 23Hình 1.3: Mô tả quá trình nhận diện vật thể qua các lớp tích chập [18]
Tại khối tích chập, các thông số được sử dụng bao gồm:
Stride (S) : Số pixel bạn dịch chuyển ở mỗi lần trượt
Padding (P): quy định bộ đệm của bộ lọc hay chính là phần màu xám được thêm vào ảnh Tăng thêm một số hàng và cột ( thường có giá trị bằng 0) để tránh việc giảm kích thước ở output cũng như để lấy thông tin ở các pixel ngoài cùng Có 2 loại padding là ―valid‖ tức là padding =0 và ―same‖ tức là padding để kích thước ngõ ra bằng kích thước ngõ vào
Trang 24Hình 1.4: Minh họa lớp tích chập [18]
#filters (nc) : Số filter được sử dụng ở mỗi layers
f : kích thước của mỗi filter là f *f
Có 2 loại pooling: max pooling lấy giá trị lớn nhất trong một pooling window và average pooling lấy giá trị trung bình trong một pooling window
Pooling hoạt động gần giống convolution, ở max pooling cửa sổ trượt qua từng giá trị của ma trận dữ liệu đầu vào, chọn ra giá trị lớn nhất nằm trong cửa sổ trượt
Trang 25Hình 1.5: Max pooling [18]
Lớp kết nối đầy đủ (Fully Connected Layer)
Sau khi ảnh được truyền qua nhiều lớp tích chập và lớp tổng hợp thì model đã học được tương đối các đặc điểm của ảnh (ví dụ bánh xe, khung xe,…) thì tensor của output cuối cùng, kích thước H* W* D sẽ được chuyển về 1 vector kích thước (H * W* D)
Hình 1.6 Phép flatten đưa tensor về thành 1 vector [19]
Sau đó, mỗi điểm của vector sẽ được liên kết với toàn bộ output của mode giống như một lớp của mạng Neural Network Lớp kết nối đầy đủ cuối của mạng có nhiệm vụ phân loại theo yêu cầu của bài toán
1.3.2 Một số kỹ thuật tìm kiếm xác định vị trí vật thể trong ảnh sử dụng mạng CNN [5, 9]
1.3.2.1 Region Convolutional Neural Network Proposals (R-CNN)
Mô hình CNN được áp dụng cho bài toán phân loại ảnh, cụ thể là các ảnh input của bài toán phân loại chỉ bao gồm 1 đối tượng cụ thể như chữ số, loài hoa, đồ vật hay con người Tuy nhiên, ảnh trong cuộc sống bình thường thì không chỉ chứa 1 đối tượng mà thường bao gồm rất nhiều các đối tượng, nên vị trí của từng đối tượng trong ảnh cần được xem xét
Vấn đề phát hiện đối tượng thông qua vị trí của đối tượng trong ảnh bao gồm 2 bài toán:
- Xác định các bounding box (hình chữ nhật) quanh đối tượng
- Với mỗi bounding box, cần phân loại đối tượng với độ chính xác
Việc lựa chọn có bao nhiêu loại đối tượng thì phụ thuộc vào bài toán cần giải quyết Vì không biết trước có bao nhiêu đối tượng trong ảnh, nên mô hình CNN không
Trang 26thiết kế được output layer hiệu quả Mô hình R-CNN (regional convolutional neural network) là giải pháp cho vấn đề này
Hình 1.7: Xác định vị trí nhiều đối tượng trong ảnh [20]
1.3.2.2 Region with Convolutional Neural Network feature (R-CNN)
R-CNN là thuật toán dò tìm vị trí của vật thể trong ảnh Có đầu ra là hình hộp cùng với vật thể bên trong hộp
Ý tưởng thuật toán như sau:
Bước 1: Dùng Selective Search algorithm để lấy ra khoảng 2000 bounding box trong input mà có khả năng chứa đối tượng
Bước 2: Với mỗi bounding box xác định xem là đối tượng nào
Selective Search algorithm
Input là ảnh màu, output là khoảng 2000 region proposals có khả năng chứa các đối tượng Mỗi đối tượng trong ảnh chứa nhiều hơn một màu và các đối tượng có thể
bị một phần bởi một hoặc nhiều đối tượng nên không thể xác định được, do đó các region proposal thường nhóm các vùng với nhau Các màu được nhóm lại với nhau dựa vào sự tương đồng màu sắc, hướng gradient, kích thước… Cuối cùng các region proposal được xác định dựa trên các nhóm vùng màu
Trang 27Hình 1.8: Output sau khi thực hiện Graph Based Image Segmentation [21]
Việc sử dụng mạng huấn luyện sẵn để Feed-forward các region proposals, sẽ tốn nhiều thời gian và quá cồng kềnh vì mỗi ảnh thuật toán selective search sẽ cho ra hàng nghìn region proposals
Do selective search cho ra hàng nghin region proposals nên có nhiều region proposals không chứa đối tượng nào Vì vậy ta phải thêm lớp background
Hình 1.9: Các bước của thuật toán R-CNN [20]
Sau đó các region proposals được resize về cùng kích thước và thực hiện transfer learning với feature extractor, sau đó các extracted feature được cho vào thuật toán SVM để phân loại ảnh
Vì với mỗi ảnh ta cần phân loại các class cho 2000 region proposals nên thời gian train rất lâu Quá trình huấn luyện xảy ra trên nhiều phase Mô hình mạng làm việc chậm so với thời gian thực
1.3.2.3 You Only Look Once (YOLO)
Yolo (You only look once) là công nghệ phát hiện đối tượng sử dụng các tính được học sâu thông qua mạng nơ-ron tích chập nhằm phát hiện đối tượng
Phương pháp chính dựa trên một mạng neural network duy nhất được huấn luyện dạng end-to-end model Mô hình lấy input là một bức ảnh và dự đoán các bounding box và nhãn lớp cho mỗi bounding box Do không sử dụng region proposal nên kỹ thuật này có độ chính xác thấp hơn (ví dụ: nhiều lỗi định vị vật thể - localization error hơn), mặc dù hoạt động ở tốc độ 45 fps (khung hình / giây) và tối đa 155 fps cho phiên bản tối ưu hóa tốc độ Tốc độ này còn nhanh hơn cả tốc độ khung hình của máy quay phim thông thường chỉ vào khoảng 24 fps
Mô hình hoạt động bằng cách trước tiên phân chia hình ảnh đầu vào thành một lưới các ô (grid of cells) S x S, trong đó mỗi grid cell (tức 1 ô bất kì nằm trong lưới ô)
dự đoán các bounding boxes được xác định dựa trên tọa độ x, y (thông thường là tọa
độ tâm, một số phiên bản là tọa độ góc trên cùng bên trái) và chiều rộng (width) và chiều cao (height) và độ tin cậy (confidence) về khả năng chứa vật thể bên trong Ngoài ra các dự đoán nhãn cũng được thực hiện trên mỗi một bonding box
Trang 28Hình 1.10: Khung ranh giới xác định đối tượng chim [22]
Giải thuật YOLO phát hiện, định vị và phân loại đối tượng diễn ra trong 1 lần duy nhất Do vậy, được áp dụng để phát hiện đối tượng thời gian thực
Hình 1.11: Phát hiện, định vị và phân loại nhiều đối tượng [23]
Hiện tại YOLO đang hỗ trợ 2 đầu vào chính là 416 416 và 608 608 Mỗi một đầu vào sẽ có một thiết kế các lớp riêng phù hợp với hình dạng (shape) của đầu vào Sau khi đi qua các lớp tích chập thì hình dạng giảm dần theo cấp số nhân là 2 Cuối cùng chú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 đầu vào 416
416 thì feature map có các kích thước là 13 13, 26 26 và 52 52 Và khi đầu vào
là 608 608 sẽ tạo ra feature map 19 19, 38 38, 72 72
* Đầu ra (output) của YOLO là một véc tơ sẽ bao gồm các thành phần:
𝑦 𝑇 = [𝜌0 ,( , 𝑦, 𝑤, ℎ), (p1, p2,…, pc)]
Trong đó
• 𝜌0 là xác suất dự báo vật thể xuất hiện trong bounding box
• ( , 𝑦, 𝑤, ℎ ) 𝑏𝑜𝑢𝑛𝑑𝑖𝑛𝑔 𝑏𝑜 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
• 〈(p1, p2,…, pc)𝑠𝑐𝑜 𝑒𝑠 𝑜𝑓 𝑐 𝑐 𝑎𝑠𝑠𝑒𝑠 là véc tơ phân phối xác suất dự báo của các classes
Trang 29Việc hiểu đầu ra rất quan trọng để có thề cấu hình tham số chuẩn xác khi huấn luyện model qua các open source như darknet Như vậy đầu ra sẽ được xác định theo
số lượng classes theo công thức (n_class + 5)
Nếu huấn luyện 80 classes thì sẽ có đầu ra là 85 Trường hợp áp dụng 3 anchors/cell thì số lượng tham số đầu ra sẽ là: (n_class + 5) 3 = 85 3 = 255
Hình 1.12: Kiến trúc một output của model YOLO [23]
Hình ảnh gốc là một feature map kích thước 1313 Trên mỗi một ô của feature map chúng ta lựa chọn ra 3 anchor box với kích thước khác nhau lần lượt là Box 1, Box 2, Box 3 sao cho tâm của các anchor box trùng với ô Khi đó đầu ra của YOLO là một véc tơ kết hợp của 3 bounding box Các thuộc tính của một bounding box được
mô tả như dòng cuối cùng trong hình
* 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 đối tượng 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ỏ
Trang 30Hình 1.13: Các feature map của mạng YOLO [23]
Các feature map của mạng YOLO với hình dạng đầu vào là 416 416, đầu ra là
3 feature map có kích thước lần lượt là 13 13, 26 26 và 52 52 Trên mỗi một ô 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 feature map 3 anchor box)
Đồng thời trên một feature map hình vuông S S, mô hình YOLO sinh ra một số lượng anchor box là: S S 3 Như vậy số lượng anchor box trên một bức ảnh sẽ là:
(13 13 + 26 26 + 52 52) 3 = 10647 (anchor box) Đâ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 box
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 để lưu được
10647 bounding box 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ễ bị đầy bộ nhớ Gói darknet của YOLO đã chia nhỏ một batch thành các subdivisions cho vừa với RAM
- Thời gian xử lý của một bước 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 các bước 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 bước là có thể thu được nghiệm 58 tạm chấp nhận được Các mô hình có nhiều classes hơn có thể tăng số lượng các bước theo cấp số nhân
* Anchor box: Để 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 hồi quy 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
Trang 31xác định anchor box mà có IoU (intersection over union) với bounding box thực tế là cao nhất
Hình 1.14: Xác định anchor box cho một vật thể [14]
Từ Cell i ta xác định được 3 anchor box viền xanh như trong hình Cả 3 anchor box 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 bounding box thực tế 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 ô trên feature map mà chứa điểm giữa của vật thể Chẳng hạn như hình chú chó trong sẽ được phân
về cho ô màu đỏ vì điểm điểm giữa của ảnh chú chó rơi vào đúng ô này Từ ô ta sẽ xác định các anchor box bao quanh hình ảnh chú chó
Như vậy khi xác định một vật thể sẽ cần xác định 2 thành phần gắn liền với nó là (ô, anchor box) Không chỉ riêng mình ô hoặc chỉ mình anchor box
* Hàm loss function: Hàm loss function của YOLO chia thành 2 phần:
𝐿 𝑜𝑐 (localization loss) đo lường sai số của bounding box và 𝐿𝑐 𝑠 (confidence loss) đo lường sai số của phân phối xác suất các classes
Trang 32𝑝 i(c): Xác suất có điều kiện dự đoán
𝐿 𝑜𝑐 là hàm mất mát của bounding box dự báo so với thực tế
𝐿𝑐 𝑠 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 ô 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 ô
Ngoài ra để điều chỉnh hàm loss function trong trường hợp dự đoán sai bounding box ta thông qua hệ số điều chỉnh 𝛌coord và muốn giảm nhẹ hàm mất mát trong trường hợp ô không chứa vật thể bằng hệ số điều chỉnh 𝛌noobj
* Dự báo bounding box: Để dự báo bounding box cho một vật thể chúng ta dựa trên một phép biến đổi từ anchor box và ô
YOLO dự đoán bounding box sao cho nó sẽ không lệch khỏi vị trí trung tâm quá nhiều Nếu bounding box dự đoán có thể đặt vào bất kỳ phần nào của hình ảnh, như trong mạng regional proposal network, việc huấn luyện mô hình có thể trở nên không
ổn định
Cho một anchor box có kích thước (Pw, Ph) tại cell nằm trên feature map với góc trên cùng bên trái của nó là (cx, cy), mô hình dự đoán 4 tham số (tx, ty, tw, th) trong đó 2 tham số đầu là độ lệch (offset) so với góc trên cùng bên trái của cell và 2 tham số sau
là tỷ lệ so với anchor box Và các tham số này sẽ giúp xác định bounding box dự đoán
b có tâm (bx, by) và kích thước (bw, bh) thông qua hàm sigmoid và hàm exponential như các công thức bên dưới:
Trang 33Công thức ước lượng bounding box từ anchor box Hình chữ nhật nét đứt bên ngoài là anchor box có kích thước là (Pw, Ph) Tọa độ của một bounding box sẽ được xác định dựa trên đồng thời cả anchor box và cell mà nó thuộc về Điều này giúp kiểm soát vị trí của bounding box dự đoán đâu đó quanh vị trí của ô và bounding box mà không vượt quá xa ra bên ngoài giới hạn này
* Non-max suppression:
Do công nghệ YOLO dự báo ra rất nhiều bounding box trên một bức ảnh nên đối với những cell có vị trí gần nhau, khả năng các khung hình bị overlap là rất cao Trong trường hợp đó YOLO sẽ cần đến non-max suppression để giảm bớt số lượng các khung hình được sinh ra một cách đáng kể
+ Bước 2: Đối với các bounding box giao nhau, non-max suppression sẽ lựa chọn
ra một bounding box có xác xuất chứa vật thể là lớn nhất Sau đó tính toán chỉ số giao thoa IoU với các bounding box còn lại
Nếu chỉ số này lớn hơn ngưỡng threshold thì điều đó chứng tỏ 2 bounding box đang chồng lên nhau rất cao Chúng ta sẽ xóa các bounding box có xác xuất thấp hơn
và giữ lại bounding box có xác xuất cao nhất Cuối cùng, thu được một bounding box duy nhất cho một vật thể
Áp dụng công nghệ yolo cho bài toán phát hiện và phân loại đối tượng
Bước 1: Thu nhận hình ảnh biển số xe và thực hiện tiền xử lý dữ liệu đầu vào Bước 2: Sử dụng công nghệ YOLO đã huấn luyện (Deep learning) để phát hiện
và trả kết quả gồm hộp giới hạn và đối tượng xuất hiện
Bước 3: Thực hiện hậu xử lý để loại bỏ đối tượng chồng chéo
Trang 34Các phiên bản của mô hình Yolo
Phiên bản đầu tiên YOLOv1 là phiên bản đầu tiên của YOLO do các tác giả Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi đề xuất đã tạo ra sự khác biệt lớn về tốc độ so với các nghiên cứu trước đây, sử dụng kiến trúc Darknet được đào tạo trên tập ảnh YOLOv1 có những hạn chế như:
- Không tìm thấy các đối tượng nhỏ
- Batch Normalization: giảm sự thay đổi giá trị unit trong hidden layer, do đó sẽ cải thiện được tính ổn định của neural network
- Higher Resolution Classifier: Kích thước đầu vào trong YOLOv2 được tăng từ 224*224 lên 448*448 dẫn đến độ chính xác trung bình lên đến 4%
- Anchor boxes: dự đoán bounding box và được thiết kế cho tập dữ liệu đã cho sử dụng phân cụm K-means clustering
- Fine-Grained Features: YOLOv2 chia ảnh thành 13*13 grid cells, do đó có thể phát hiện được những object nhỏ hơn, đồng thời cũng hiệu quả với các object lớn
- Multi-Scale Training: YOLOv1 có điểm yếu là phát hiện các đối tượng với các kích cỡ đầu vào khác nhau Điều này được giải quyết bằng YOLOv2, nó được train với kích thước ảnh ngẫu nhiên trong khoảng 320*320 đến 608*608
- Darknet 19: YOLOv2 sử dụng Darknet 19 với 19 convolutional layers, 5 max pooling layers và 1 softmax layer
Phiên bản thứ 3 của YOLO là YOLOv3: tại phiên bản này đối tượng được phát hiện, phân loại chính xác và được xử lý thời gian thực
- Bounding Box Predictions: cung cấp score mỗi bounding boxes sử dụng hồi quy logistic regression để dự đoán điểm
- Class Predictions: sử dụng logistic classifiers cho mọi class thay vì softmax
- Feature Pyramid Networks (FPN): đưa ra dự đoán tương tự FPN trong đó 3 dự đoán được thực hiện cho mọi vị trí hình ảnh đầu vào và các đặc tính được trích xuất từ mỗi dự đoán
- Darknet-53: YOLOv3 sử dụng Darknet 53 với 53 convolutional layers bao gồm chủ yếu các bộ lọc 3x3 và 1x1 với các kết nối tắt
Phiên bản thứ 4 là YOLOv4 được công bố vào ngày 23 tháng 04 năm 2020 trên bài báo có tiêu đề là ―YOLOv4: Optimal Speed And Accuracy of Object Detection‖,
Trang 35do nhóm các tác giả Alexey Bochkovskiy, Chien-Yao Wang, Hong Yuan Mark Liao xây dựng, có nhiều cải tiến đặc biệt giúp tăng độ chính xác và tốc độ hơn đối với YOLOv3
Hình 1.17: Mô hình so sánh hiệu suất giữa YOLOv4 và các bộ phát hiện đối tượng
Ngoài ra, công nghệ YOLOv4 còn được sử dụng để cải thiện khả năng phát hiện chính xác và hiệu quả các mục tiêu hàng hải của tên lửa chống hạm Bằng cách sử dụng mạng YOLOv4 để phát hiện đối tượng trên tập dữ liệu mục tiêu tàu biển tự chế, nhằm xác minh độ chính xác và tốc độ nhận dạng tàu biển Kết quả thực nghiệm cho thấy mạng YOLOv4 có thể đạt được kết quả phát hiện tốt hơn đối với một hoặc nhiều mục tiêu trong ảnh và có hiệu suất vượt trội trong việc phát hiện các mục tiêu nhỏ và khuất Thực hiện phát hiện vật thể theo thời gian thực, YOLOv4 có thể phát hiện nhanh chóng và chính xác mục tiêu tàu trong cảnh được biến đổi So với các phương pháp phát hiện mục tiêu trên tàu biển truyền thống, YOLOv4 có thể tránh ảnh hưởng của phông nền, ánh sáng, bị che khuất tốt hơn YOLOv4 cung cấp kỹ thuật tốt cho việc lựa chọn mục tiêu tốt cho tên lửa chống hạm
Thêm vào đó, còn có một ứng dụng phát hiện hoa trực tiếp bằng điện thoại di động thông minh có sử dụng mô hình YOLOv4 cho phép phát hiện một cách ngay lập tức và chính xác thông tin của một loài hoa cũng vừa được đưa vào thực nghiệm gần đây
Trang 36Tất cả những ứng dụng nêu trên là minh chứng cho tính ưu việt của mô hình YOLOv4
1.4 Phương pháp nhận dạng ký tự trong biển số xe
1.4.1 Phương pháp hình thái học (morphology)
- Ý tưởng: Phương pháp nhận dạng dựa trên đặc điểm hình thái đặc biệt giữa các
ký tự để phân biệt ký tự với nhau Thực hiện trên cơ sở xây dựng cây nhị phân tối ưu của các đặc điểm hình thái từ ma trận đặc tính và tập ký tự thu được
- Ưu điểm: Phù hợp với tập ký tự nhận dạng nhỏ
- Nhược điểm: Phụ thuộc lớn vào việc xây ma trận đặc tính
1.4.2 Phương pháp mạng nơron (neuron network)
- Ý tưởng: Phương pháp nhận dạng dựa trên sự tái tạo bằng kỹ thuật những chức năng của hệ thần kinh con người với vô số các nơron được liên kết truyền thông với nhau qua mạng Nó có khả năng học từ kinh nghiệm hay từ một tập mẫu Việc huấn luyện cho mạng học là một vòng lặp duyệt qua lần lượt các ký tự ảnh giúp mạng nơron nhớ và nhận dạng các ký tự ảnh này
- Ưu điểm: Không tốn thời gian cho thủ tục tiền xử lý, làm mảnh ký tự, trích trọn đặc trưng Chỉ cần cung cấp một tập mẫu vào ra của dữ liệu mới cho pha huấn luyện là
có thể bổ xung vào ―bộ nhớ mạng‖ những kiểu dữ liệu mới mà không ảnh hưởng đến cấu trúc chương trình ban đầu
- Nhược điểm: Phụ thuộc vào tập huấn luyện và việc chọn số lượng nơron đầu vào
1.4.3 Phương pháp so khớp mẫu
- Ý tưởng: Kỹ thuật nhằm phân loại đối tượng dựa vào mức độ tương tự giữa những đối tượng xem xét với mẫu (template hay sample) cho trước Quá trình khớp mẫu sẽ được tiến hành bằng cách quét hình mẫu lần lượt từ trái sang phải, từ trên xuống dưới sao cho tâm của nó di chuyển qua tất cả các vị trí có thể trong hình được xem xét để nhận ra đối tượng trên hình khớp với mẫu
- Ưu điểm: Phù hợp với các mẫu thường được dùng là các hình chỉ định các đối tượng đơn giản
- Nhược điểm: phương pháp chỉ có thể được áp dụng khi đối tượng cần nhận dạng có độ sai lệch không quá lớn so với mẫu, không thể thu được kết quả trong trường hợp đối tượng là mẫu đã bị co giản tỉ lệ hoặc xoay, đổi chiều
1.5 Kết chương 1
Chương 1 đã tổng quan đầy đủ về bài toán nhận dạng biển số xe
Rất nhiều bài toán nhận dạng sử dụng Deep Learning, vì có thể giải quyết các bài toán với số lượng lớn các biến, tham số kích thước đầu vào với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống, xây dựng những hệ thống thông minh với độ chính xác cao
Trang 37CHƯƠNG 2 GIẢI PHÁP NHẬN DẠNG BIỂN SỐ XE
2.1 Sử dụng công nghệ YOLOv4 áp dụng cho bài toán
Để thực hiện phát hiện và nhận diện biển số xe, tôi lựa chọn công nghệ YOLOv4
là công nghệ YOLO mới nhất do Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao công bố vào 23/04/2020
Công nghệ YOLOv4 về cơ bản cũng thừa kế các phương pháp cơ bản của các YOLO, tuy nhiên YOLOv4 á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à tăng độ chính xác
Hình 2.1: So sánh tốc độ xử lý và độ chính xác của YOLOv4 với các công nghệ khác trong cùng tập dữ liệu MS COCO [11] Có thể thấy so với YOLOv3 với cùng một FPS
(Frame per Second) YOLOv4 cho độ chính xác (AP) cao hơn hẳn
2.1.1 Cấu trúc nhận diện vật thể của YOLOv4
Cấu trúc nhận diện vật thể của YOLOv4 thường có 3 phần:
- 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, Mô hình học chuyển được áp dụng trong YOLOv4 là CSP Darknet53
- 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
Trang 38bottom-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) Các mô hình được dùng trong quá trình Neck của YOLOv4 là SPP, PAN
Hình 2.2: Cấu trúc nhận diện vật thể của YOLOv4[6]
2.1.2 Backbone
Với backbone, YOLOv4 áp dụng mô hình CSPDarkNet53 vì theo tác giả mô hình có độ chính xác trong việc phát hiện vật thể cao hơn so với các mô hình ResNet thông thường, và tăng khả năng phân loại nhờ vào hàm Mish CSP-Net về cơ bản cũng tương tự như mô hình DenseNet nhưng có một số khác biệt CSP(Cross-stage-partial-connection) chia thông tin thành 2 phần bằng nhau, một phần được đưa thẳng vào lớp chuyển kế tiếp (Transition block), phần còn lại được đưa vào dense block (được nhắc đến ở phần sau) trước khi đưa vào lớp chuyển kế tiếp Chính nhờ phần đưa vào dense block giúp giữ thông tin của các lớp phía trước, và phần đưa thẳng vào Transition block giúp giảm số tham số cần tính toán
(a) DenseNet (b) CSPDenseNet
Hình 2.3: Sự khác biệt giữa mạng DenseNet và mạng CSPDenseNet
DenseNet là một trong những mô hình mạng mới nhất cho kỹ thuật nhận diện vật thể được công bố vào năm 2016 DenseNet gồm 2 khối, trong đó khối chính là Dense Block và 1 khối chuyển Dense Block là một kĩ thuật mở rộng của skip-connection Dense Block giúp mô hình trở nên phức tạp hơn làm tăng khả năng học của mô hình,
từ đó tăng độ chính xác mà lại giảm được 1 nửa số tham số so với mô hình ResNet
Part 2
Dense Block
Transition
Transition
Dense Block
Transition
Part 1
Trang 39trước đó Tương tự như ResNet, DenseNet cũng giúp giảm overfitting hay vanishing gradient
Lớp tích chập đầu tiên được đưa vào DenseNet sẽ thực hiện Normalization, ReLU và lấy tích chập với 1 filter có kích thước 3x3 để lấy được lớp tích chập thứ 2 (Hình 2.3) Lớp tích chập thứ 2 này sẽ tiếp tục thực hiện ghép chồng (concatenate) với lớp tích chập thứ 1, đây cũng là điểm mới của DenseNet so với ResNet khi ResNet sẽ chỉ lấy element-wise, sẽ làm giảm đáng kể số tham số phải học
Batch-so với ResNet Quá trình trên tiếp tục lặp lại với lớp tích chập thứ 2, thứ 3, (Hình 2.4) Kết thúc quá trình, lớp tích chập cuối cùng sẽ được đưa vào lớp chuyển để thực hiện lấy tích chập hoặc max-pooling và lại đưa vào một Dense Block mới.(Hình 2.5)
Hình 2.4: Quá trình lấy Batch-Norm, ReLU, tích chập với filter 3x3 của 1 lớp [12]
Hình 2.5: Quá trình ghép chồng lớp tích chập phía trước vào lớp tích chập phía sau [12]
Hình 2.6: Mô hình DenseNet với 3 khối Dense Block và các lớp chuyển chèn giữa [12]
Trang 40Mô hình Darknet-53 gồm 53 tầng tích chập đã được giới thiệu trong YOLOv3
Hình 2.7: Mô hình tích chập Darknet-53 gồm 53 tầng tích chập [23]
2.1.3 Neck
Quá trình backbone, khi đi đáy lên đỉnh (bottom-up stream) giúp việc xác định vị trí của vật thể nhanh và chính xác, tuy nhiên khi đi qua quá trình trên việc các feature map càng ngày càng thu nhỏ, độ phân giải giảm xuống làm cho một số các vật thể nhỏ qua đó cũng bị biến mất làm mất mát thông tin Để khắc phục điều đó trước khi đẩy về head để nhận dạng, Neck thường thực hiện một quá trình ngược lại (top-down stream) tạo ra các reconstruction map để khôi phục lại một số thông tin bị mất trong quá trình bottom-up stream Nhưng một số thông tin đã bị mất khi khôi phục bằng quá trình top-down cũng không còn hiển thị lại nữa, do đó mạng FPN (Feature Pyramid Network),
sẽ tái tạo lại các thông tin bị mất nhờ các kết nối skip-connection giữa các feature mác được lấy tích chập 1x1 và reconstruction map tạo ra các feature map mới giàu thông tin giúp việc phát hiện và phân loại vật thể đạt độ chính xác cao hơn
Hình 2.8: Mô hình FPN [13]