Tải bản đầy đủ (.pdf) (50 trang)

Báo cáo phân tích xây dựng mô hình nhận diện biển số xe Ô tô trên Đường cao tốc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.68 MB, 50 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>KHOA CÔNG NGHỆ THÔNG TIN </b>

: Công nghệ thông tin 4 : 60

<b>Hà Nội – 2023 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>KHOA CÔNG NGHỆ THÔNG TIN </b>

: Công nghệ thông tin 4 : 60

<b>Hà Nội – 2023 </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Cuố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

<i>Sinh viên thực hiện </i>

Nguyễn Viết Dũng

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

2.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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>DANH MỤC CÁC TỪ VIẾT TẮT </b>

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 tố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ợ

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>DANH MỤC BẢNG BIỂU </b>

<b>Bảng 3.1. Thơng số huấn luyện mơ hình YOLOX-Nano. ... 34</b>

<b>Bảng 3.2. Thơng số huấn luyện mơ hình SwinIR bản nhẹ. ... 37</b>

<b>Bảng 3.3. Thông số huấn luyện mô hình en_PP-OCRv3_rec_slim. ... 39</b>

<b>Bảng 3.3. Độ chính xác của hệ thống trên tập kiểm tra. ... 44</b>

<b>Bảng 3.4. Tốc độ xử lý trung bình của hệ thống. ... 45</b>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>DANH MỤC HÌNH ẢNH </b>

<b>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</b>

<b>Hình 1.2. Phát hiện đối tượng hai giai đoạn. ... 13</b>

<b>Hình 1.3. Phát hiện đối tượng một giai đoạn. ... 14</b>

<b>Hình 1.4. Quy trình chung của thuật tốn OCR. ... 16</b>

<b>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</b>

<b>Hình 2.2. Xác định ROI (vùng sáng) trong ảnh. ... 18</b>

<b>Hình 2.3. Minh họa đầu gộp và đầu tách. [8] ... 19</b>

<b>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</b>

<b>Hình 2.5. Đơn tích cực (trái) và đa tích cực (phải). ... 21</b>

<b>Hình 2.6. Cấu trúc của SwinIR cho việc khơi phục hình ảnh. ... 22</b>

<b>Hình 2.7. Quy trình của mơ hình PP-OCR và PP-OCRv2. [5] ... 27</b>

<b>Hình 2.8. Quy trình của mơ hình PP-OCRv3. [6] ... 28</b>

<b>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</b>

<b>Hình 2.11. Sơ đồ nguyên lý của DML trong PP-OCRv3. [6] ... 31</b>

<b>Hình 2.12. Sơ đồ nguyên lý của RSE-FPN trong PP-OCRv3. [6] ... 31</b>

<b>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</b>

<b>Hình 3.2. Dữ liệu nhiễu trong tập dữ liệu phát hiện biển số xe. ... 34</b>

<b>Hình 3.3. Kết quả phát hiện biển số xe với YOLOX-Nano. ... 34</b>

<b>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</b>

<b>Hình 3.5. Thơng tin quy định trên biển số xe ô tô Việt Nam. [2] ... 36</b>

<b>Hình 3.6. Ảnh biển số xe sau khi sinh. ... 37</b>

<b>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</b>

<b>Hình 3.8. Kết quả tăng cường độ phân giải với SwinIR. ... 38</b>

<b>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</b>

<b>Hình 3.10. Kết quả nhận diện ký tự với PP-OCRv3. ... 40</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Hình 3.11. Kết quả xử lý theo từng quy trình của hệ thống. ... 41Hình 3.12. Một vài kết quả nhận diện biển số xe của hệ thống. ... 42Hì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 </b>

ảnh (dưới) và không sử dụng (trên) trên cùng một khung hình. ... 43

<b>Hình 3.14. Kết quả nhận diện chưa chính xác. ... 44</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>MỞ ĐẦU</b>

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 q 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 tồ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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Mục tiêu chính khi phân tích, thiết kế và áp dụng các thuật tố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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>CHƯƠNG 1. TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG</b>

<b>1.1. Ngơn ngữ Python </b>

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ề Tố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 tố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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>1.2. Docker </b>

<b>1.2.1. Tổng quan về Docker </b>

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.

<b>1.2.2. Lợi ích </b>

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.

<b>1.3. Pytorch Framework </b>

<b>1.3.1. Tổng quan về Pytorch </b>

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 tố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 tốn. • Tự động tính tốn đạo hàm khi triển khai/xây dựng/huấn luyện các mơ

hình CNN.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>1.3.2. Lợi ích </b>

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 tồ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.

<b>1.4. Phát hiện đối tượng </b>

<b>1.4.1. Phát hiện đối tượng dựa trên đặc trưng truyền thống </b>

<b>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. </b>

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 qt tồ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 tố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ả hồn hảo tất cả các loại đối tượng.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Giai đ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.

<b>1.4.2. Phát hiện đối tượng dựa trên học sâu </b>

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 tố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 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).

<b>Fast-Hình 1.2. Phát hiện đối tượng hai giai đoạn. </b>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="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.

<b>Hình 1.3. Phát hiện đối tượng một giai đoạn. </b>

<b>1.5. Tăng cường độ phân giải </b>

Để 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 q 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).

Ngồ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ế.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>1.5.1. Tăng độ phân giải đơn hình ảnh </b>

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.

<b>1.5.2. Tăng độ phân giải đa hình ảnh </b>

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.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>1.6. Nhận dạng ký tự quang học </b>

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ế.

<b>Hình 1.4. Quy trình chung của thuật toán OCR. </b>

Đầ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 tố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.

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>CHƯƠNG 2. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG </b>

<b>2.1. Quy trình tổng quát </b>

<b>Hình 2.1. Quy trình tổng quát của hệ thống nhận diện biển số xe. </b>

<b>Sơ đồ quy trình của hệ thống nhận diện biển số xe được minh họa trong Hình </b>

<b>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 </b>

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 tồn bộ quy trình của hệ thống.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Hình 2.2. Xác định ROI (vùng sáng) trong ảnh. </b>

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 tồ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.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>2.2. Phát hiện biển số xe với YOLOX </b>

<b>2.2.1. Giới thiệu về YOLOX </b>

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ó tồ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].

<b>2.2.2. Cải tiến và lợi ích của YOLOX </b>

<b>Đầu tách </b>

Đầ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.

<b>Hình 2.3. Minh họa đầu gộp và đầu tách. [8] </b>

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 ln sử dụng đầu gộp. YOLOX thì lại là một ngoại lệ.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>Hình 2.4. So sánh quá trình huấn luyện của đầu gộp và đầu tách. [8] </b>

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

<b>và bốn lớp 3×3 conv như minh hoạ trong Hình 2.3. </b>

<b>Tăng cường dữ liệu mạnh </b>

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.

<b>Mỏ neo tự do </b>

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ự đố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ự đố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ì

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

H×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.

<b>Đa tích cực </b>

<b>Hình 2.5. Đơn tích cực (trái) và đa tích cực (phải). </b>

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

<b>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 </b>

sử dụng kỹ thuật này làm tăng đáng kể độ chính xác của mơ hình.

<b>SimOTA </b>

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 tồ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 𝑔<sub>𝑖</sub>và dự đốn 𝑝<sub>𝑖</sub> được tính như sau:

𝑐<sub>𝑖𝑗</sub> = 𝐿<sup>𝑐𝑙𝑠</sup><sub>𝑖𝑗</sub> + 𝐿<sup>𝑟𝑒𝑔</sup><sub>𝑖𝑗</sub>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

Trong đó  là hệ số cân bằng, 𝐿<sup>𝑐𝑙𝑠</sup><sub>𝑖𝑗</sub> và 𝐿<sup>𝑟𝑒𝑔</sup><sub>𝑖𝑗</sub> là giá trị mất mát phân loại và mất mát hồi quy giữa nhãn 𝑔<sub>𝑖</sub> và dự đoán 𝑝<sub>𝑖</sub>. Sau đó, với mỗi nhãn 𝑔<sub>𝑖</sub>, chúng ta chọn top k dự đốn 𝑝<sub>𝑖</sub> 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.

<b>2.3. Tăng cường độ phân giải với SwinIR </b>

<b>2.3.1. Giới thiệu về SwinIR </b>

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%.

<b>2.3.2. Cấu trúc của SwinIR </b>

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.

<b>Hình 2.6. Cấu trúc của SwinIR cho việc khơi phục hình ảnh. </b>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>Trích xuất đặc trưng nông và sâu (Shallow and deep feature extraction) </b>

Cho đầu vào là một ảnh chất lượng thấp 𝐼<sub>𝐿𝑄</sub> ∈ 𝑅<sup>𝐻×𝑊×𝐶</sup><small>𝑖𝑛</small> (H, W và 𝐶<sub>𝑖𝑛</sub> 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 𝐻<sub>𝑆𝐹</sub>(·) để trích xuất đặc trưng nơng 𝐹<sub>0</sub> ∈ 𝑅<sup>𝐻×𝑊×𝐶</sup>:

𝐹<sub>0</sub> = 𝐻<sub>𝑆𝐹</sub>(𝐼<sub>𝐿𝑄</sub>)

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 𝐹<sub>𝐷𝐹</sub> ∈ 𝑅<sup>𝐻×𝑊×𝐶</sup> từ 𝐹<sub>0</sub>:

𝐹<sub>𝐷𝐹</sub> = 𝐻<sub>𝐷𝐹</sub>(𝐹<sub>0</sub>)

Trong đó 𝐻<sub>𝐷𝐹</sub> (·) 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 𝐹<sub>𝐷𝐹</sub> được trích xuất từng khối dưới dạng:

𝐹<sub>𝑖</sub> = 𝐻<sub>𝑅𝑆𝑇𝐵</sub><sub>𝑖</sub>(𝐹<sub>𝑖−1</sub>), 𝑖 = 1, 2, … , 𝐾, 𝐹<sub>𝐷𝐹</sub> = 𝐻<sub>𝐶𝑂𝑁𝑉</sub>(𝐹<sub>𝐾</sub>)

Trong đó 𝐻<sub>𝑅𝑆𝑇𝐵</sub><sub>𝑖</sub>(·) biểu thị RSTB thứ i và 𝐻<sub>𝐶𝑂𝑁𝑉</sub> là lớp chập cuối cùng. Việc sử dụng một lớp tích chập ở cuối q 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.

<b>Tái tạo hình ảnh (Image reconstruction) </b>

Tái tạo hình ảnh chất lượng cao 𝐼<sub>𝑅𝐻𝑄</sub> từ hình ảnh SR bằng cách tổng hợp các đặc điểm nông và sâu như:

𝐼<sub>𝑅𝐻𝑄</sub> = 𝐻<sub>𝑅𝐸𝐶</sub>(𝐹<sub>0</sub>+ 𝐹<sub>𝐷𝐹</sub>)

Trong đó 𝐻<sub>𝑅𝐸𝐶</sub>(·) 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. Ngồ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:

</div>

×