Trong thời kỳ bùng nổ công nghệ hiện nay, công nghệ phát triển nhanh, hiện đại và đã được áp dụng sâu, rộng và làm cải thiện đáng kể đời sống xã hội. Khoa học và công nghệ trên thế giới phát triển như vũ bão, tạo ra những bước tiến nhảy vọt trong các lĩnh vực điện tử - viễn thông, tin học và công nghệ thông tin. Đặc biệt là sự bùng nổ của công nghệ thông tin nói chung và AI nói riêng, các giải pháp AI đã đã và đang trở thành một phần thiết yếu của ngành công nghệ, giúp giải quyết nhiều vấn đề thách thức trong học máy, công nghệ phần mềm và nghiên cứu vận hành. Đến nay các mô hình học máy hay học sâu đang được áp dụng cực kì rộng rãi và phổ biến trong các ngành chủ chốt của quốc gia như an ninh – quốc phòng, giao thông, giáo dục, y tế, … đánh dấu mốc quan trọng cho sự phát triển mạnh mẽ của thời kì 4.0. Cùng với đó, trong quá trình công nghiệp hóa hiện đại hóa hiện nay thì việc xây dựng lên các đường cao tốc ngày càng nhiều nhằm đáp ứng nhu cầu vận tải, định hướng phát triển kinh tế – xã hội của đất nước và nhu cầu đi lại của người dân. Theo Bộ Giao thông Vận tải, hiện nay mạng lưới đường cao tốc Việt Nam đã được quy hoạch gồm 22 tuyến với tổng quãng đường khoảng 1.163km, quy định tốc độ của xe ô tô cho phép trên đường cao tốc là 60 - 120km/h. Vấn đề đặt ra là cách nhận diện thông tin của từng ô tô tham gia giao thông trên đường cao tốc hoặc vi phạm quy định đã được đề ra. Đây là một trong những yếu tố có tính chất quyết định trong việc đảm bảo an toàn giao thông và lưu trữ, báo cáo thống kê lượng xe trên cao tốc. Do đó cần phải có một hệ thông nhận diện tự động, cung cấp thông tin đầy đủ, chính xác và thống nhất. Hiện nay, số lượng trung bình các phương tiện lưu thông trên các tuyến đường cao tốc tại Việt Nam đã lên đến hàng chục nghìn lượt xe hàng ngày. Việc áp dụng hệ thống AI vào công tác quản lý thông tin các phương tiện sẽ giúp cho ban quản trị tránh được sai sót, thuận tiện hơn thay vì sử dụng các phương pháp thủ công thì có thể sử dụng các phương pháp thông minh hơn, không những tốn ít thời gian và chi phí quản lý hơn mà còn rất dễ để vận hành.
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI
XÂY DỰNG MÔ HÌNH NHẬN DIỆN BIỂN SỐ XE Ô TÔ TRÊN
ĐƯỜNG CAO TỐC
Giảng viên hướng dẫn : PGS.TS Nguyễn Văn Long
Sinh viên thực hiện : Nguyễn Viết Dũng
Trang 2KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI
XÂY DỰNG MÔ HÌNH NHẬN DIỆN BIỂN SỐ XE Ô TÔ TRÊN
ĐƯỜNG CAO TỐC
Giảng viên hướng dẫn : PGS.TS Nguyễn Văn Long
Sinh viên thực hiện : Nguyễn Viết Dũng
Trang 3Cuối cùng, em xin gửi lời cảm ơn đến tất cả người thân, bạn bè, những người đã luôn động viên, ủng hộ và tạo điều kiện cho em trong thời gian hoàn thành đồ án Mặc dù em đã cố gắng rất nhiều nhưng cũng không tránh khỏi thiếu sót và hạn chế trong quá trình thực hiện Em rất mong nhận được sự thông cảm và chỉ bảo cũng như những đóng góp chân thành của các thầy cô và bạn bè để bài đồ án được tốt hơn
Em xin chân thành cảm ơn!
Hà Nội, Ngày 20 tháng 05 năm 2023
Sinh viên thực hiện
Nguyễn Viết Dũng
Trang 4MỤC LỤC
LỜI CẢM ƠN 1
MỤC LỤC 2
DANH MỤC CÁC TỪ VIẾT TẮT 4
DANH MỤC BẢNG BIỂU 5
DANH MỤC HÌNH ẢNH 6
MỞ ĐẦU 8
CHƯƠNG 1 TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG 10
1.1 Ngôn ngữ Python 10
1.2.Docker 11
1.2.1 Tổng quan về Docker 11
1.2.2 Lợi ích 11
1.3 Pytorch Framework 11
1.3.1 Tổng quan về Pytorch 11
1.3.2 Lợi ích 12
1.4 Phát hiện đối tượng 12
1.4.1 Phát hiện đối tượng dựa trên đặc trưng truyền thống 12
1.4.2 Phát hiện đối tượng dựa trên học sâu 13
1.5 Tăng cường độ phân giải 14
1.5.1 Tăng độ phân giải đơn hình ảnh 15
1.5.2 Tăng độ phân giải đa hình ảnh 15
1.6 Nhận dạng ký tự quang học 16
CHƯƠNG 2 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 17
2.1 Quy trình tổng quát 17
2.2 Phát hiện biển số xe với YOLOX 19
2.2.1 Giới thiệu về YOLOX 19
Trang 52.2.2 Cải tiến và lợi ích của YOLOX 19
2.3 Tăng cường độ phân giải với SwinIR 22
2.3.1 Giới thiệu về SwinIR 22
2.3.2 Cấu trúc của SwinIR 22
2.4 Nhận diện ký tự trên biển số xe với PaddleOCR 26
2.4.1 Giới thiệu về PaddleOCR 26
2.4.2 Cấu trúc của PP-OCR 26
2.4.3 Cấu trúc của PP-OCRv3 28
CHƯƠNG 3 THỰC NGHIỆM VÀ KẾT QUẢ 33
3.1 Môi trường huấn luyện và triển khai 33
3.2 Phát hiện biển số xe 33
3.2.1 Dữ liệu và quá trình huấn luyện 33
3.2.2 Kết quả dự đoán 34
3.3 Tăng độ phân giải cho biển số xe 35
3.3.1 Dữ liệu và quá trình huấn luyện 35
3.3.2 Kết quả dự đoán 38
3.4 Nhận diện ký tự trên biển số xe 38
3.4.1 Dữ liệu và quá trình huấn luyện 38
3.4.2 Kết quả dự đoán 40
3.5 Kết quả 41
KẾT LUẬN 46
TÀI LIỆU THAM KHẢO 47
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
1 AI Artificial Intelligence Trí tuệ nhân tạo
2 API Application Programming Interface Giao diện lập trình ứng dụng
3 CNN Convolutional Neural Network Mạng nơ-ron tích chập
4 FPS Frames per second Số khung hình trên 1 giây
5 GFLOPS Giga Floating Point Operations Per
Second
Tính toán thập phân trong 1 giây
6 OCR Optical Character Recognition Nhận dạng ký tự quang học
9 SVM Support Vector Machine Máy vec-tơ hỗ trợ
Trang 7DANH MỤC BẢNG BIỂU
Bảng 3.1 Thông số huấn luyện mô hình YOLOX-Nano 34
Bảng 3.2 Thông số huấn luyện mô hình SwinIR bản nhẹ 37
Bảng 3.3 Thông số huấn luyện mô hình en_PP-OCRv3_rec_slim 39
Bảng 3.3 Độ chính xác của hệ thống trên tập kiểm tra 44
Bảng 3.4 Tốc độ xử lý trung bình của hệ thống 45
Trang 8DANH MỤC HÌNH ẢNH
Hình 1.1 Quy trình phương pháp phát hiện đối tượng dựa trên tính năng 12
Hình 1.2 Phát hiện đối tượng hai giai đoạn 13
Hình 1.3 Phát hiện đối tượng một giai đoạn 14
Hình 1.4 Quy trình chung của thuật toán OCR 16
Hình 2.1 Quy trình tổng quát của hệ thống nhận diện biển số xe 17
Hình 2.2 Xác định ROI (vùng sáng) trong ảnh 18
Hình 2.3 Minh họa đầu gộp và đầu tách [8] 19
Hình 2.4 So sánh quá trình huấn luyện của đầu gộp và đầu tách [8] 20
Hình 2.5 Đơn tích cực (trái) và đa tích cực (phải) 21
Hình 2.6 Cấu trúc của SwinIR cho việc khôi phục hình ảnh 22
Hình 2.7 Quy trình của mô hình PP-OCR và PP-OCRv2 [5] 27
Hình 2.8 Quy trình của mô hình PP-OCRv3 [6] 28
Hình 2.9 CML và quá trình huấn luyện phát hiện văn bản trong PP-OCRv3 [6] 30
Hình 2.11 Sơ đồ nguyên lý của DML trong PP-OCRv3 [6] 31
Hình 2.12 Sơ đồ nguyên lý của RSE-FPN trong PP-OCRv3 [6] 31
Hình 3.1 Ảnh xe ô tô có gắn biển số xe trong tập dữ liệu phát hiện biển số xe 33
Hình 3.2 Dữ liệu nhiễu trong tập dữ liệu phát hiện biển số xe 34
Hình 3.3 Kết quả phát hiện biển số xe với YOLOX-Nano 34
Hình 3.4 Quy định về biển số xe mới tại Việt Nam áp dụng từ 01/08/2020 [2] 35
Hình 3.5 Thông tin quy định trên biển số xe ô tô Việt Nam [2] 36
Hình 3.6 Ảnh biển số xe sau khi sinh 37
Hình 3.7 Biển số xe độ phân giải thấp (trái) và độ phân giải cao (phải) 37
Hình 3.8 Kết quả tăng cường độ phân giải với SwinIR 38
Hình 3.9 Một số hình ảnh trong tập dữ liệu huấn luyện mô hình nhận dạng ký tự 39
Hình 3.10 Kết quả nhận diện ký tự với PP-OCRv3 40
Trang 9Hình 3.11 Kết quả xử lý theo từng quy trình của hệ thống 41 Hình 3.12 Một vài kết quả nhận diện biển số xe của hệ thống 42 Hình 3.13 So sánh kết quả giữa hệ thống có áp dụng bước tăng cường độ phân giải
ảnh (dưới) và không sử dụng (trên) trên cùng một khung hình 43
Hình 3.14 Kết quả nhận diện chưa chính xác 44
Trang 10MỞ ĐẦU
Trong thời kỳ bùng nổ công nghệ hiện nay, công nghệ phát triển nhanh, hiện đại
và đã được áp dụng sâu, rộng và làm cải thiện đáng kể đời sống xã hội Khoa học và công nghệ trên thế giới phát triển như vũ bão, tạo ra những bước tiến nhảy vọt trong các lĩnh vực điện tử - viễn thông, tin học và công nghệ thông tin Đặc biệt là sự bùng
nổ của công nghệ thông tin nói chung và AI nói riêng, các giải pháp AI đã đã và đang trở thành một phần thiết yếu của ngành công nghệ, giúp giải quyết nhiều vấn đề thách thức trong học máy, công nghệ phần mềm và nghiên cứu vận hành Đến nay các mô hình học máy hay học sâu đang được áp dụng cực kì rộng rãi và phổ biến trong các ngành chủ chốt của quốc gia như an ninh – quốc phòng, giao thông, giáo dục, y tế, … đánh dấu mốc quan trọng cho sự phát triển mạnh mẽ của thời kì 4.0
Cùng với đó, trong quá trình công nghiệp hóa hiện đại hóa hiện nay thì việc xây dựng lên các đường cao tốc ngày càng nhiều nhằm đáp ứng nhu cầu vận tải, định hướng phát triển kinh tế – xã hội của đất nước và nhu cầu đi lại của người dân Theo
Bộ Giao thông Vận tải, hiện nay mạng lưới đường cao tốc Việt Nam đã được quy hoạch gồm 22 tuyến với tổng quãng đường khoảng 1.163km, quy định tốc độ của xe
ô tô cho phép trên đường cao tốc là 60 - 120km/h Vấn đề đặt ra là cách nhận diện thông tin của từng ô tô tham gia giao thông trên đường cao tốc hoặc vi phạm quy định
đã được đề ra Đây là một trong những yếu tố có tính chất quyết định trong việc đảm bảo an toàn giao thông và lưu trữ, báo cáo thống kê lượng xe trên cao tốc Do đó cần phải có một hệ thông nhận diện tự động, cung cấp thông tin đầy đủ, chính xác và thống nhất
Hiện nay, số lượng trung bình các phương tiện lưu thông trên các tuyến đường cao tốc tại Việt Nam đã lên đến hàng chục nghìn lượt xe hàng ngày Việc áp dụng hệ thống AI vào công tác quản lý thông tin các phương tiện sẽ giúp cho ban quản trị tránh được sai sót, thuận tiện hơn thay vì sử dụng các phương pháp thủ công thì có thể sử dụng các phương pháp thông minh hơn, không những tốn ít thời gian và chi phí quản
lý hơn mà còn rất dễ để vận hành
Nhận thức được lợi ích của việc áp dụng giải pháp AI và những khó khăn trong công tác quản lý ô tô trên đường cao tốc khiến việc tìm kiếm thông tin chậm trễ…, em lựa chọn đề tài này vì muốn áp dụng những kiến thức, những công nghệ mới vào việc xây dựng hệ thống dựa trên các thuật toán AI và xử lý ảnh nhằm trợ giúp ban quản trị quản lý thông tin phương tiện tham gia giao thông trên đường cao tốc tốt hơn
Trang 11Mục tiêu chính khi phân tích, thiết kế và áp dụng các thuật toán, mô hình để hoàn thành hệ thống nhận diện biển số xe trên đường cao tốc đảm bảo đáp ứng các yêu cầu thiết yếu sau:
• Độ chính xác cao
• Tốc độ nhận diện nhanh
• Tối ưu hóa về kích thước lẫn tốc độ xử lý khi nhúng xuống thiết bị nhỏ
Vì những lý do và mục tiêu nêu trên, em đã đề xuất nhận dạng biển số xe tự động
từ camera giám sát trên đường cao tốc dựa trên phương pháp phát hiện biển số xe và nhận dạng ký tự quang học (OCR) Hệ thống cho phép phát hiện biển kiểm soát của các phương tiện tham gia giao thông trên đường cao tốc và ghi nhận thông tin trên biển
số xe để tiếp tục lưu trữ hoặc đối chiếu tự động thông qua cơ sở dữ liệu hệ thống bao gồm các quản lý hậu cần khác Hệ thống được đề xuất có thể giảm thời gian xử lý, tăng độ chính xác của việc trích xuất thông tin vùng chứa và cho phép sử dụng quản lý
dữ liệu hiệu quả
Việc đánh giá hiệu năng của hệ thống trên tập dữ liệu mẫu về biển số xe Việt Nam cho ra tổng thời gian xử lý mỗi ảnh trung bình khoảng 0.08 giây tương đương 12 FPS
Phạm vi của đề tài là một hệ thống bao gồm nhiều mô hình AI có thể nhúng vào các camera giám sát trên đường cao tốc đặt ở độ cao dưới 5m có chức năng nhận diện biển số xe của phương tiện đang dừng hoặc di chuyển trên đường cao tốc tại Việt Nam, phục vụ ban quản trị quản lý và tìm kiếm thông tin về phương tiện trong các trường hợp cần thiết như xử phạt, cảnh báo,… Dựa trên những kiến thức thu được từ những môn học trong quá trình học tập tại trường và tham khảo thêm một số tài liệu bên ngoài để bổ sung thêm kiến thức nhằm hoàn thiện dự án tốt hơn, đáp ứng được mục tiêu dự án
Trang 12CHƯƠNG 1 TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG
1.1 Ngôn ngữ Python
Python là ngôn ngữ lập trình máy tính bậc cao, mã nguồn mở và đa nền tảng Nó được phát triển vào cuối những năm 1980 bởi Guido van Rossum tại Viện Nghiên cứu Quốc gia về Toán học và Khoa học Máy tính ở Hà Lan với tư cách là người kế thừa ngôn ngữ ABC có khả năng xử lý và giao tiếp ngoại lệ Python thường được sử dụng
để phát triển trang web và phần mềm, tự động hóa tác vụ, phân tích dữ liệu và trực quan hóa dữ liệu
Python đã trở thành một yếu tố chính trong khoa học dữ liệu, cho phép các nhà phân tích dữ liệu và các chuyên gia khác sử dụng ngôn ngữ này để thực hiện các phép tính thống kê phức tạp, tạo trực quan hóa dữ liệu, xây dựng thuật toán học máy, thao tác và phân tích dữ liệu cũng như hoàn thành các nhiệm vụ khác liên quan đến dữ liệu Python có nhiều lựa chọn thư viện và framework, đây là một trong những lợi thế lớn nhất của Python Thư viện Python rất đa dạng được sử dụng cho mọi thứ từ trực quan hóa dữ liệu, học máy, khoa học dữ liệu, xử lý ngôn ngữ tự nhiên và phân tích dữ liệu phức tạp
Các ứng dụng của python:
• Làm web: với 2 framework phổ biến của python là Django và Flask
• Tool tự động hóa: các ứng dụng như từ điển, thu thập dữ liệu từ website, công cụ giúp tự động hóa công việc
• Khoa học máy tính: Rất nhiều các thư viện hỗ trợ mạnh mẽ như: OpenCV cho xử lý ảnh và machine learning, Scipy và Numpys cho lĩnh vực toán học, đại số tuyến tính, Pandas cho việc phân tích dữ liệu, …
• Lĩnh vực IoT: ứng dụng cho nền tảng nhúng, đồng thời cũng được lựa chọn cho việc xử lý dữ liệu lớn
• Làm game: Pygame là một bộ module Python được thiết kế để viết game cho cả máy tính và các thiết bị di động
Trang 131.2 Docker
1.2.1 Tổng quan về Docker
Việc cài đặt và triển khai một ứng dụng hoặc hệ thống lên một hoặc nhiều máy chủ rất vất vả từ việc phải cài đặt các công cụ, môi trường cần cho ứng dụng đến việc chạy được ứng dụng chưa kể việc không đồng nhất giữa các môi trường, phiên bản trên nhiều máy chủ khác nhau Chính vì lý do đó Docker được ra đời để giải quyết vấn
đề này
Docker là một nền tảng để cung cấp cách để xây dựng, triển khai và khởi chạy ứng dụng dễ dàng hơn bằng cách sử dụng các containers (trên nền tảng ảo hóa) Nó cho phép tạo các môi trường độc lập, tách biệt để khởi chạy và phát triển ứng dụng Môi trường này được gọi là container Khi cần triển khai lên bất kỳ máy chủ nào chỉ cần khởi động container của Docker thì ứng dụng sẽ được khởi chạy ngay lập tức
1.2.2 Lợi ích
Docker có một vài lợi ích khiến nó được sử dụng rộng rãi hiện nay:
• Khởi động và dừng Docker chỉ trong vài giây
• Có thể khởi chạy container trên bất kì hệ thống nào
• Container có thể xây dựng và loại bỏ nhanh hơn máy ảo chỉ với vài câu lệnh
• Dễ dàng thiết lập môi trường làm việc Chỉ cần cấu hình 1 lần duy nhất và không bao giờ phải cài đặt lại các thư viện phụ thuộc
• Xóa mà không ảnh hưởng đến các phần khác
1.3 Pytorch Framework
1.3.1 Tổng quan về Pytorch
PyTorch là một dạng framework học sâu với mã nguồn mở, được phát triển bởi nhóm nghiên cứu của Facebook Phiên bản đầu tiên của PyTorch được phát hành vào tháng 10 năm 2016 Pytorch được viết dựa trên Python và thư viện Torch nên nó rất dễ
để làm quen và sử dụng
Tính năng chính của Pytorch:
• Tính toán dựa vào Tensor (một cấu trúc dữ liệu tương tự như mảng, ma trận), có thể sử dụng với sức mạnh của GPU để tối ưu tốc độ tính toán
• Tự động tính toán đạo hàm khi triển khai/xây dựng/huấn luyện các mô hình CNN
Trang 141.3.2 Lợi ích
Một vài lợi ích vượt trội của Pytorch:
• Có khả năng debug mô hình cực kì dễ dàng
• Dễ dàng cấu hình toàn bộ framework và các thư viện chỉ với 1 câu lệnh
• Hỗ trợ tốt vẽ biểu đồ hiển thị trạng thái, kết quả
• Kết hợp được cả API cấp cao và cấp thấp
1.4 Phát hiện đối tượng
1.4.1 Phát hiện đối tượng dựa trên đặc trưng truyền thống
Hình 1.1 Quy trình phương pháp phát hiện đối tượng dựa trên tính năng
Phát hiện đối tượng [9] nhằm mục đích xác định vị trí của đối tượng trong một hình ảnh nhất định và phân loại từng đối tượng để tham chiếu mã lớp Phát hiện đối tượng dựa trên tính năng truyền thống có thể được chia thành ba giai đoạn: lựa chọn vùng thông tin, trích xuất đặc trưng và phân loại/hồi quy
Giai đoạn 1 Lựa chọn vùng thông tin: Một hình ảnh nhất định có các đối tượng khác nhau xuất hiện ở bất kỳ vị trí nào với tỷ lệ khung hình hoặc kích thước không giống nhau, vì vậy chúng ta cần quét toàn bộ hình ảnh bằng cửa sổ trượt nhiều tỷ lệ Phương pháp này có thể tìm ra tất cả các vị trí có thể có trong hình ảnh, dẫn đến việc tính toán tốn kém và tạo ra quá nhiều cửa sổ dư thừa Tuy nhiên, có thể khắc phục nếu
áp dụng một số mẫu cửa sổ trượt cố định, có thể tạo ra các vùng không đạt tiêu chuẩn Giai đoạn 2 Trích xuất đặc trưng: Một ảnh có thể có nhiều đối tượng nên chúng
ta cần trích đặc trưng trực quan đối tượng để nhận dạng các đối tượng khác nhau Điều
đó cung cấp một đại diện ngữ nghĩa và mạnh mẽ Tuy nhiên, do điều kiện chiếu sáng, phông nền và sự đa dạng về hình thức, rất khó để xử lý bộ mô tả tính năng để mô tả hoàn hảo tất cả các loại đối tượng
Trang 15Giai đoạn 3 Phân loại/Hồi quy: Để nhận ra một đối tượng cụ thể, chúng ta phải
sử dụng một bộ phân loại để phân biệt đối tượng mục tiêu với tất cả các danh mục khác và làm cho các biểu diễn có nhiều thông tin và ngữ nghĩa hơn để nhận dạng trực quan Trong số các thuật toán học máy, bao gồm Máy vectơ hỗ trợ [3] (SVM), AdaBoost [18] hoặc Mô hình dựa trên bộ phận biến dạng (DPM) là những lựa chọn tốt
1.4.2 Phát hiện đối tượng dựa trên học sâu
Với sự ra đời và phát triển của kiến trúc CNN và học sâu, điều đó đã trở nên thuận tiện và dễ dàng hơn để lấp đầy những khoảng trống hiện có trong các thuật toán phát hiện đối tượng truyền thống Với khả năng sẵn có của dữ liệu và kiến trúc 'sâu hơn' của mạng lưới thần kinh, ngày càng nhiều tính năng phức tạp được học tự động Các phương pháp đào tạo mở rộng giúp tìm hiểu các biểu diễn đối tượng nhiều thông tin hơn, loại bỏ vấn đề tìm hiểu các tính năng trên mỗi đối tượng theo cách thủ công
Về cách tiếp cận mô hình hóa, phát hiện đối tượng có thể được phân thành hai loại chính là: một giai đoạn và hai giai đoạn
• Thuật toán phát hiện đối tượng hai giai đoạn điển hình như RCNN, RCNN, Faster-RCNN, Đầu tiên, với hình ảnh đầu vào, mô-đun sẽ xác định các ROI với nhiệm vụ trích xuất đặc trưng của các vùng trên ảnh có khả năng chứa đối tượng rồi cắt ra khỏi ảnh Sau đó, khi đã thu được các ROI, mô-đun
Fast-sẽ thực hiện tiếp việc phân loại đối tượng và xác định vị trí nhờ vào việc chia làm 2 nhánh tại phần cuối của mô hình (Phân loại/Hồi quy)
Hình 1.2 Phát hiện đối tượng hai giai đoạn
Trang 16• Phát hiện đối tượng một giai đoạn có một số mô hình điển hình như: Single Shot Detection (SSD), Yolo, RestinaNet Điều đó coi nội địa hóa đối tượng là một vấn đề hồi quy (với bốn tọa độ: x, y, w, h) và dựa vào các hộp xác định trước Các mô hình này thường nhanh hơn và được sử dụng phổ biến trong các bài toán phát hiện đối tượng theo thời gian thực, nhưng 'độ chính xác' của mô hình thường kém hơn so với phát hiện đối tượng hai giai đoạn Tuy nhiên, một
số mô hình một giai đoạn vẫn vượt trội so với mô hình hai giai đoạn như RestNet
Hình 1.3 Phát hiện đối tượng một giai đoạn
1.5 Tăng cường độ phân giải
Để tránh sự mất mát đặc trưng của vật thể nhỏ do kích thước của chúng trong quá trình trích chọn đặc trưng của mô hình, một hướng tiếp cận đơn giản có thể nghĩ đến là tăng chất lượng ảnh lên cao hơn Tăng độ phân giải là một lĩnh vực nghiên cứu trong thị giác máy tính và xử lý hình ảnh, nhằm tạo ra hình ảnh có độ phân giải cao từ các hình ảnh có độ phân giải thấp Mục tiêu của phương pháp này là tái tạo các chi tiết và thông tin bị mất trong quá trình giảm kích thước hình ảnh
Phương pháp tăng độ phân giải có nhiều ứng dụng trong thực tế, bao gồm phục hồi hình ảnh, nâng cao chất lượng hình ảnh, và tăng cường khả năng nhận dạng đối tượng trong hình ảnh
Việc gia tăng kích thước thường có 2 dạng chính: tăng độ phân giải đơn hình ảnh (SISR) và tăng độ phân giải đa hình ảnh (MISR)
Ngoài ra, các phương pháp tăng độ phân giải dựa trên mạng sinh đối nghịch (GAN) [7] đã trở thành xu hướng phát triển GAN được sử dụng để học cách tạo ra hình ảnh có độ phân giải cao mà không thể phân biệt được với hình ảnh thực tế
Trang 171.5.1 Tăng độ phân giải đơn hình ảnh
Các phương pháp SISR nhằm tạo ra một hình ảnh có độ phân giải cao từ một hình ảnh đơn có độ phân giải thấp Một số phương pháp phổ biến bao gồm:
• Phương pháp tăng kích thước: Các phương pháp này sử dụng kỹ thuật nội suy như nội suy bicubic hoặc nội suy Lanczos để tăng kích thước hình ảnh Chúng cải thiện độ phân giải nhưng có thể không khôi phục các chi tiết tần số cao một cách hiệu quả
• Phương pháp dựa trên học tập: Các phương pháp này sử dụng các kỹ thuật học sâu, thường sử dụng CNN Chúng học cách ánh xạ giữa các miền hình ảnh có
độ phân giải thấp và cao để tạo ra hình ảnh có độ phân giải cao
1.5.2 Tăng độ phân giải đa hình ảnh
Các phương pháp MISR sử dụng nhiều hình ảnh độ phân giải thấp của cùng một cảnh để tạo ra một hình ảnh có độ phân giải cao Bằng cách tận dụng thông tin bổ sung
từ nhiều hình ảnh, các phương pháp này có thể đạt được kết quả tốt hơn so với SISR Các kỹ thuật phổ biến bao gồm:
• Kết hợp hình ảnh: Các phương pháp này kết hợp thông tin từ nhiều hình ảnh
có độ phân giải thấp để tạo ra một hình ảnh có độ phân giải cao Các kỹ thuật như trung bình, trung bình có trọng số hoặc bộ lọc dẫn có thể được sử dụng
• Phương pháp dựa trên các mảnh ảnh nhỏ: Các phương pháp này tận dụng sự trùng lặp giữa nhiều hình ảnh có độ phân giải thấp và thực hiện ghép lẫn kết hợp mảnh ảnh để tạo ra hình ảnh có độ phân giải cao
Trang 181.6 Nhận dạng ký tự quang học
Trong những năm gần đây, OCR được biết đến như một trong những nhiệm vụ quan trọng của thị giác máy tính, để nhận dạng văn bản được in hoặc viết từ tài liệu được quét hoặc tệp hình ảnh, sau đó chuyển đổi văn bản thành dạng máy có thể đọc được để sử dụng cho xử lý dữ liệu như chỉnh sửa hoặc đang tìm kiếm Có nhiều cách tiếp cận đã được đề xuất trong vài năm trước, nhưng OCR vẫn được coi là thách thức trong thực tế
Hình 1.4 Quy trình chung của thuật toán OCR
Đầu tiên, ảnh đầu vào sẽ được xử lý qua một số bước như khử nhiễu, chuẩn hóa ánh sáng, Sau giai đoạn Tiền xử lý, phân đoạn được sử dụng để chia toàn bộ hình ảnh thành các phần con để xử lý tiếp Các vùng được phân đoạn được phân loại thành một trong ba loại: Phân đoạn cấp độ dòng, Phân đoạn cấp độ từ và Phân đoạn cấp độ
ký tự Trong trích xuất đặc trưng, trích xuất một số đặc trưng độc đáo của các thành phần con được phân đoạn thu được từ giai đoạn trước Giai đoạn phân loại là giai đoạn
ra quyết định của một hệ thống OCR Nó sử dụng các đặc trưng được trích xuất trong giai đoạn trích xuất đặc trưng để xác định đoạn văn bản (có thể sử dụng các thuật toán như SVM để phân loại) Các lỗi có thể xảy ra nhất trong hệ thống do dự đoán sai trong giai đoạn phân loại, do trích xuất đặc trưng kém hoặc nhiễu trong ảnh Do đó, để cải thiện hiệu suất của OCR, có thể thực hiện bước xử lý hậu kỳ tùy chọn sau giai đoạn phân loại
Trang 19CHƯƠNG 2 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
2.1 Quy trình tổng quát
Hình 2.1 Quy trình tổng quát của hệ thống nhận diện biển số xe
Sơ đồ quy trình của hệ thống nhận diện biển số xe được minh họa trong Hình
2.1 Hệ thống gồm 3 mô hình chính: Mô hình phát hiện biển số xe, mô hình tăng
cường độ phân giải và mô hình nhận diện ký tự
Đầu tiên, ảnh đầu vào đi qua mô hình phát hiện biển số, kết quả trả ra của mô hình sẽ là tọa độ các hộp bao quanh Tuy nhiên, do camera chuyên dụng trên đường cao tốc có góc quay khá cao và rộng nên nếu xử lý toàn bộ biển số được phát hiện trong cùng một khung hình HD+ (1440 x 720) hoặc FullHD (1920 x 1080) sẽ rất mất thời gian và có thể dẫn đến sai lệch kết quả đối với vài biển số ở xa (cuối khung hình)
Vì vậy, để tối ưu tốc độ chạy cũng như độ chính xác của hệ thống cần định nghĩa 1 ROI trong khung hình mà nếu biển số được phát hiện trong ROI đó sẽ được cắt ra theo các tọa độ của hộp bao quanh và đến các bước xử lý tiếp theo, đối với các trường hợp biển số nằm ngoài ROI sẽ bỏ qua và loại bỏ ra khỏi toàn bộ quy trình của hệ thống
Trang 20Hình 2.2 Xác định ROI (vùng sáng) trong ảnh
Thông thường biển số xe được cắt ra khỏi ảnh từ camera trên đường cao tốc có kích thước khá nhỏ, trung bình 75x15 pixels đối với biển số dài và 65x30 pixels đối với biển số ngắn nên khó có thể nhận diện được toàn bộ kí tự có trên biển số xe Vì vậy, việc áp dụng phương pháp tăng cường độ phân giải của ảnh là hết sức cần thiết, phương pháp này có tác dụng giống với chính tên gọi của nó là làm tăng độ phân giải của ảnh nhưng không làm vỡ và nhòe các đặc trưng có trong ảnh như khi phóng to kích thước ảnh bình thường Điều này hỗ trợ rất tốt cho việc nhận dạng ký tự ở bước sau
Tiếp theo, hình ảnh sau khi được tăng cường độ phân giải sẽ làm ảnh đầu vào cho
mô hình nhận dạng ký tự, quá trình này chuyển đổi hình ảnh ký tự, văn bản thành định dạng ký tự, văn bản mà máy có thể đọc được và cho đầu ra là một hoặc nhiều các chuỗi ký tự
Cuối cùng, kết hợp tất cả kết quả thu được ở các bước trên và một vài kỹ thuật xử
lý, hiển thị ảnh để đưa ra kết quả cuối cùng của toàn bộ quy trình một cách trực quan nhất
Trang 212.2 Phát hiện biển số xe với YOLOX
2.2.1 Giới thiệu về YOLOX
YOLOX là một thành viên thuộc họ hàng YOLO – một mô hình phát hiện đối tượng một giai đoạn nên nó có toàn bộ những ưu điểm của loại mô hình này YOLOX được phát triển và ra mắt vào năm 2021, nó có những thay đổi đáng kể khi mà không còn sử dụng mỏ neo và đầu gộp giống với những thế hệ YOLO tiền nhiệm nhưng mang lại hiệu quả khá ấn tượng
YOLOX được xây dựng trên cơ sở của YOLOv3 [10] và Darknet53 Cụ thể thì YOLOX áp dụng kiến trúc xương sống của Darknet53 và các lớp YOLOv3-SPP [10]
2.2.2 Cải tiến và lợi ích của YOLOX
Đầu tách
Đầu tiên cần phân biệt được giữa đầu gộp và đầu tách Mỗi đầu của YOLO sẽ làm hai nhiệm vụ là phân loại và hồi quy Đầu gộp xử lý hai nhiệm vụ này trên cùng một nhánh, đầu tách xử lý trên hai hoặc nhiều nhánh khác nhau
Hình 2.3 Minh họa đầu gộp và đầu tách [8]
Một vấn đề với đầu gộp là sự xung đột giữa nhiệm vụ phân loại và nhiệm vụ hồi quy, vấn đề này làm ảnh hưởng đến độ chính xác của mô hình nói chung Đó là lý do
mà hầu hết các mô hình phát hiện đối tượng, dù là một bước hay hai bước đều sử dụng đầu tách Về mặt kiến trúc, họ nhà YOLO đã phát triển nhiều xương sống và tháp đặc trưng Tuy nhiên, từ trước đến nay họ nhà YOLO luôn sử dụng đầu gộp YOLOX thì lại là một ngoại lệ
Trang 22Hình 2.4 So sánh quá trình huấn luyện của đầu gộp và đầu tách [8]
Với kết quả so sánh như trên đã chỉ ra rằng, việc gộp đầu sẽ làm giảm hiệu năng của bộ phát hiện và thay thế đầu gộp giúp tăng tốc độ hội tụ của mô hình Việc tách đầu được thực hiện cùng với việc thay thế một lớp 1×1 conv thành bốn lớp 1×1 conv
và bốn lớp 3×3 conv như minh hoạ trong Hình 2.3
Tăng cường dữ liệu mạnh
Sử dụng Mosaic và MixUp để tăng hiệu năng của YOLOX Những kỹ thuật này không phải là mới và đã được áp dụng vào bài toán phát hiện vật thể từ lâu Sau khi áp dụng kỹ thuật tăng cường dữ liệu mạnh, việc huấn luyện trước trên tập dữ liệu ImageNet [11] không mang lại lợi ích nữa nên cần huấn luyện mô hình từ đầu
Mỏ neo tự do
Kỹ thuật sử dụng mỏ neo được áp dụng từ YOLOv2 đến YOLOR Kỹ thuật này yêu cầu quá trình xác định những mỏ neo tối ưu cho việc huấn luyện (bằng cách phân cụm, tiến hoá) Những mỏ neo này phụ thuộc vào miền của dữ liệu và thiếu tính tổng quát Hơn nữa, cơ chế sử dụng mỏ neo tăng độ phức tạp của đầu phát hiện cũng như số lượng dự đoán mỗi ảnh Việc không sử dụng mỏ neo làm giảm số lượng siêu tham số cần phải tinh chỉnh, giảm độ phức tạp của đầu phát hiện và loại bỏ những vấn đề liên quan (phân cụm mỏ neo )
Việc chuyển YOLO sang mỏ neo tự do khá đơn giản Mỗi đầu dự đoán, thay vì
dự đoán cho ba mỏ neo thì chỉ cần dự đoán một lần và dự đoán trực tiếp các giá trị chiều cao và chiều rộng của vật thể Ví dụ, như đối với tập COCO thì đầu ra của mỗi đầu của YOLOX sẽ có chiều (trong trường hợp gộp đầu) là H×W×85 (thay vì
Trang 23H×W×255) Những thay đổi này sẽ giảm số lượng tham số và GFLOPs của máy phát hiện làm tăng tốc độ của mô hình nhưng bất ngờ là nó cũng làm tăng độ chính xác
Đa tích cực
Hình 2.5 Đơn tích cực (trái) và đa tích cực (phải)
Việc chỉ có một ô tích cực cho một vật thể sẽ làm giảm độ chính xác của mô hình Những ô khác, nếu có thể đảm nhận tốt việc phát hiện vật thể sẽ làm giảm sự mất cân bằng giữa số lượng ô tích cực/tiêu cực trong quá trình huấn luyện Với kỹ thuật
này, tác giả gán vùng trung tâm 3×3 thành tích cực như minh hoạ trên hình 2.5 Việc
sử dụng kỹ thuật này làm tăng đáng kể độ chính xác của mô hình
SimOTA
Phương pháp đa tích cực như trên để gán nhãn làm tăng đáng kể độ chính xác Tuy nhiên, một phương pháp gán nhãn tốt cần phải có bốn yếu tố:
• Thứ nhất, nhận thức về mất mát/chất lượng
• Thứ hai, trung tâm trước
• Thứ ba, linh hoạt số lượng ô tích cực cho từng đối tượng
• Thứ tư, có cái nhìn toàn cục
Phương pháp OTA [12] thỏa mãn cả 4 yếu tố này Việc sử dụng OTA cải thiện rất nhiều độ chính xác của mô hình được huấn luyện Tuy nhiên, do phương pháp OTA làm tăng 25% thời gian huấn luyện, là tương đối lớn nếu chạy 300 lần huấn luyện Do đó sử dụng phiên bản đơn giản hơn của nó là SimOTA để thu được một kết quả gần giống như vậy
SimOTA đầu tiên tính mức độ phù hợp của từng cặp dự đoán - nhãn, được biểu diễn bởi chi phí (cost) Chi phí giữa nhãn 𝑔𝑖và dự đoán 𝑝𝑖 được tính như sau:
𝑐𝑖𝑗 = 𝐿𝑐𝑙𝑠𝑖𝑗 + 𝐿𝑟𝑒𝑔𝑖𝑗
Trang 24Trong đó là hệ số cân bằng, 𝐿𝑐𝑙𝑠𝑖𝑗 và 𝐿𝑟𝑒𝑔𝑖𝑗 là giá trị mất mát phân loại và mất mát hồi quy giữa nhãn 𝑔𝑖 và dự đoán 𝑝𝑖 Sau đó, với mỗi nhãn 𝑔𝑖, chúng ta chọn top k dự đoán 𝑝𝑖 có giá trị mất mát ít nhất trong một vùng trung tâm cố định (ví dụ là vùng 3×3), những ô này được chọn làm những ô tích cực Những ô còn lại là ô tiêu cực Giá trị k là khác nhau với các vật thể khác nhau
2.3 Tăng cường độ phân giải với SwinIR
2.3.1 Giới thiệu về SwinIR
SwinIR là một mô hình CNN làm tăng cường độ phân giải của ảnh dựa trên Biến đổi Swin (Swin Transformer) được ra mắt vào năm 2021 Các thử nghiệm mở rộng của nó cho thấy rằng SwinIR đạt được hiệu suất cao nhất trên 3 tác vụ khôi phục hình ảnh: siêu phân giải hình ảnh (bao gồm siêu phân giải hình ảnh cổ điển, trọng lượng nhẹ
và thế giới thực), khử nhiễu hình ảnh (bao gồm khử nhiễu hình ảnh thang độ xám và màu) và giảm tạo tác nén JPEG Kết quả thử nghiệm cũng chứng minh rằng SwinIR vượt trội hơn so với các phương pháp tái tạo hình ảnh khác trong các tác vụ khác nhau tới 0,14∼0,45dB, trong khi tổng số tham số của mô hình có thể giảm tới 67%
2.3.2 Cấu trúc của SwinIR
SwinIR bao gồm ba mô-đun chính: trích xuất tính năng nông, trích xuất đặc trưng sâu và mô-đun tái tạo hình ảnh chất lượng cao SwinIR sử dụng các mô-đun trích xuất đặc trưng giống nhau cho tất cả các tác vụ khôi phục, nhưng sử dụng các mô-đun tái tạo khác nhau cho các tác vụ khác nhau
Hình 2.6 Cấu trúc của SwinIR cho việc khôi phục hình ảnh
Trang 25Trích xuất đặc trưng nông và sâu (Shallow and deep feature extraction)
Cho đầu vào là một ảnh chất lượng thấp 𝐼𝐿𝑄 ∈ 𝑅𝐻×𝑊×𝐶𝑖𝑛 (H, W và 𝐶𝑖𝑛 lần lượt là chiều cao, chiều rộng và số kênh của ảnh), sử dụng lớp tích chập 3×3 𝐻𝑆𝐹(·) để trích xuất đặc trưng nông 𝐹0 ∈ 𝑅𝐻×𝑊×𝐶:
𝐹0 = 𝐻𝑆𝐹(𝐼𝐿𝑄) Trong đó C là số kênh tính năng Lớp tích chập xử lý hình ảnh sớm tốt, dẫn đến tối ưu hóa ổn định hơn và kết quả tốt hơn Nó cũng cung cấp một cách đơn giản để ánh
xạ không gian hình ảnh đầu vào sang không gian đặc trưng có chiều cao hơn Sau đó, trích xuất đặc trưng sâu 𝐹𝐷𝐹 ∈ 𝑅𝐻×𝑊×𝐶 từ 𝐹0:
𝐹𝐷𝐹 = 𝐻𝐷𝐹(𝐹0) Trong đó 𝐻𝐷𝐹 (·) là mô-đun trích xuất đặc trưng sâu và nó chứa K khối Biến đổi quay ngược (RSTB) còn lại và lớp tích chập 3×3 Cụ thể hơn, các đặc trưng trung gian F1, F2, , FK và đặc trưng sâu đầu ra 𝐹𝐷𝐹 được trích xuất từng khối dưới dạng:
𝐹𝑖 = 𝐻𝑅𝑆𝑇𝐵𝑖(𝐹𝑖−1), 𝑖 = 1, 2, … , 𝐾,
𝐹𝐷𝐹 = 𝐻𝐶𝑂𝑁𝑉(𝐹𝐾) Trong đó 𝐻𝑅𝑆𝑇𝐵𝑖(·) biểu thị RSTB thứ i và 𝐻𝐶𝑂𝑁𝑉 là lớp chập cuối cùng Việc sử dụng một lớp tích chập ở cuối quá trình trích xuất đặc trưng có thể mang lại xu hướng quy nạp của hoạt động tích chập vào mạng dựa trên Máy biến đổi và tạo nền tảng tốt hơn cho việc tổng hợp các đặc trưng sâu và thấp sau này
Tái tạo hình ảnh (Image reconstruction)
Tái tạo hình ảnh chất lượng cao 𝐼𝑅𝐻𝑄 từ hình ảnh SR bằng cách tổng hợp các đặc điểm nông và sâu như:
𝐼𝑅𝐻𝑄 = 𝐻𝑅𝐸𝐶(𝐹0+ 𝐹𝐷𝐹) Trong đó 𝐻𝑅𝐸𝐶(·) là chức năng của mô-đun tái tạo Đặc trưng nông chủ yếu chứa tần số thấp, trong khi đặc trưng sâu tập trung vào việc khôi phục tần số cao bị mất Với kết nối bỏ qua dài, SwinIR có thể truyền trực tiếp thông tin tần số thấp đến mô-đun tái tạo, điều này có thể giúp mô-đun trích xuất đặc trưng sâu tập trung vào thông tin tần số cao và ổn định đào tạo Để triển khai mô-đun tái tạo sử dụng lớp tích chập pixel phụ để lấy mẫu đối tượng
Đối với các tác vụ không cần giảm mẫu, chẳng hạn như khử nhiễu hình ảnh và giảm tạo tác nén JPEG, một lớp tích chập duy nhất được sử dụng để tái tạo Ngoài ra, SwinIR còn sử dụng phương pháp học thặng dư để tái tạo lại phần dư giữa LQ và ảnh
HQ thay vì ảnh HQ Điều này được xây dựng theo công thức: