1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà

80 16 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Tác giả Trịnh Thị Hoàng Oanh
Người hướng dẫn TS. Vũ Thị Trà
Trường học Đại Học Đà Nẵng
Chuyên ngành Hệ thống thông tin
Thể loại Luận văn thạc sĩ
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 80
Dung lượng 10,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ứ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 7

MỤ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 8

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

DANH 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 10

DANH MỤC BẢNG

Số hiệu

Trang 11

1.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 12

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

Số hiệu

3.25 Các file weights đƣợc sinh ra khi huấn luyện mô hình YOLOv4 47

Trang 14

MỞ ĐẦ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 15

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

Kế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 17

CHƯƠ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 18

1.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 19

1.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 20

Theo 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 21

niê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 22

1.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 23

Hì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 24

Hì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 25

Hì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 26

thiế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 27

Hì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 28

Hì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 29

Việ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 1313 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 30

Hì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 31

xá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 33

Cô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 34

Cá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 35

do 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 36

Tấ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 37

CHƯƠ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 38

bottom-up và quá trình top-down (do có một số thông tin quá nhỏ khi đi qua quá trình bottom-up bị mất mát nên quá trình top-down không tái tạo lại được) 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 39

trướ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 40

Mô 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]

Ngày đăng: 25/10/2023, 11:09

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] Bùi Xuân Toại, Trương Gia Việt (Biên dịch) (2000), Trí tuệ nhân tạo, Các cấu trúc và chiến lược giải quyết vấn đề - NXB Thống kê, (Phần I) Sách, tạp chí
Tiêu đề: Trí tuệ nhân tạo, Các cấu trúc và chiến lược giải quyết vấn đề
Tác giả: Bùi Xuân Toại, Trương Gia Việt (Biên dịch)
Nhà XB: NXB Thống kê
Năm: 2000
[9] Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi (2016), "You Only Look Once: Unified, Real-Time Object Detection", University of Washington, Allen Institute for AI, Facebook AI Research Sách, tạp chí
Tiêu đề: You Only Look Once: Unified, Real-Time Object Detection
Tác giả: Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi
Năm: 2016
[20] RUN FASTER RCNN USING TENSORFLOW DETECTION API. URL : https://data-sci.info/2017/06/27/run-faster-rcnn-tensorflow-detection-api Sách, tạp chí
Tiêu đề: RUN FASTER RCNN USING TENSORFLOW DETECTION API
[21] Selective Search for Object Detection (C++ / Python). URL : https://www.learnopencv. com/selective-search-for-object-detection-cpp-python Sách, tạp chí
Tiêu đề: Selective Search for Object Detection (C++ / Python)
[18] https ://viblo.asia/p/deep-learning-tim-hieu-ve-mang-tich-chap-cnn-maGK73bOKj2 Link
[27] Find and draw Contours - OpenCV 3.4 with python 3. https://www.youtube.com/watch?v=_aTC-Rc4Io0 Link
[1] Viên Thanh Nhã, Tiếp Sỹ Minh Phụng, Phạm Thành Công, Nguyễn Thanh Tùng, Lê Đình Phú Cường (2022), ―Mạng nơ-ron tích chập (CNN) và mạng VGG16 trên hệ thống nhận dạng biển số xe thời gian thực‖ Khác
[2] Đặng Thị Mỹ Nhàn, Khoa học máy tính tại Trường Đại học Bách khoa Đà Nẵng (2019), Ứng dụng Deep Learning để đếm số lượng xe ôtô trong nội thành Đà Nẵng Khác
[4] Trần Thanh Phước, Công nghệ Thông tin – Trường ĐHCN Thực phẩm TP. HCM (2014), rút trích văn bản từ tập tin hình ảnh với Tesseract Khác
[6] Alexey Bachkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao (2020), ―YOLOv4: Optimal Speed and Accuracy of Object Detection‖, Institute of Information science Academia Sinica Khác
[7] Choo Kar Soon, Kueh Chiung Lin, Chung Ying Jeng and Shahrel A. Suandi (2012), ―Malaysian Car Number Plate Detection and Recognition System‖ Khác
[8] Chirag N. Paunwala &amp; Suprava Patnaik (2010). ―A Novel Multiple License Plate Extraction Techniquefor Complex Background in Indian Traffic Conditions‖, Sarvajanik College of Engineering and Technology Khác
[10] Joseph Redmon, Ali Farhadi (2018), ―YOLOv3: An incremental Improvement‖, University of Washington Khác
[11] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, Jiaya Jia (2018), ―Path Aggregation Network for Instance Segmentation‖, The Chinese University of Hong Kong, Peking University, SenseTime Research, YouTu Lab, Tencent Khác
[12] Sik-Ho Tsang (2018), ―Review: DenseNet - Dense Convolution Network (Image Classification)‖, towardsdatascience.com Khác
[13] Tsung-Yi Lin, Piotr Dollár, Ross Girshick, Kaiming He, Bharath Hariharan, Serge Belongie (2017), ―Feature Pyramid Networks for Object Detection‖, Facebook AI Research (FAIR), Cornell University and Cornell Tech Khác

HÌNH ẢNH LIÊN QUAN

Hình ảnh  Tên hình ảnh  Trang - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
nh ảnh Tên hình ảnh Trang (Trang 13)
Hình 1.1: Mối quan hệ giữa trí tuệ nhân tạo, Machine Learning, - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 1.1 Mối quan hệ giữa trí tuệ nhân tạo, Machine Learning, (Trang 17)
Hì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] - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hì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] (Trang 23)
Hình 1.7: Xác định vị trí nhiều đối tượng trong ảnh [20] - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 1.7 Xác định vị trí nhiều đối tượng trong ảnh [20] (Trang 26)
Hình 1.10: Khung ranh giới xác định đối tượng chim [22] - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 1.10 Khung ranh giới xác định đối tượng chim [22] (Trang 28)
Hình 1.16: Non-max suppression [23] - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 1.16 Non-max suppression [23] (Trang 33)
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] - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
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 39)
Hình 2.9: Mô hình YOLO-SPP [11] - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 2.9 Mô hình YOLO-SPP [11] (Trang 41)
Hình 2.18: Ví dụ về cắt các ký tự bị dính - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 2.18 Ví dụ về cắt các ký tự bị dính (Trang 46)
Hình 3.4: Hình ảnh dữ liệu đã được gán nhãn và lưu trong tập tin obj.zip - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 3.4 Hình ảnh dữ liệu đã được gán nhãn và lưu trong tập tin obj.zip (Trang 51)
Hình 3.9: Kiểm tra cấu hình GPU trên Google Colab - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 3.9 Kiểm tra cấu hình GPU trên Google Colab (Trang 54)
Hình 3.25: Các file weights được sinh ra khi huấn luyện mô hình YOLOv4 - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 3.25 Các file weights được sinh ra khi huấn luyện mô hình YOLOv4 (Trang 60)
Hình 3.26: Theo dõi quá trình huấn luyện - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 3.26 Theo dõi quá trình huấn luyện (Trang 60)
Hình 3.28. Kết quả thu được - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 3.28. Kết quả thu được (Trang 61)
Hình 3.29. Kết quả đạt được - Ứng dụng deep learning để nhận diện biển số xe ra vào trong một tòa nhà
Hình 3.29. Kết quả đạt được (Trang 62)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w