YOLOv8 là một mô hình mạng nơ-ron tích chập được sử dụng phô biến đề phát hiện đối tượng trong ảnh.. Neural networks là thuật toán được dùng trong việc nhận dạng các mẫu và đóng một vai
Trang 1ĐẠI HỌC QUỐC GIA TP.HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN - ĐIỆN TỬ
Trang 2Đặng Thái Dương Tìm hiểu lý thuyết Về machine learning, cach thu thập
data va train model trén yolov8, viết báo cáo
Dương Hoài Thương | Thu thập data và tram model, sửa các lôi xảy ra trong
quá trình tram, thử nghiệm model sau khi train
Đặng Đình Nam Tim hiéu vé machine learning, viet bao cao + slide
Trang 3
Lời cảm ơn GVHD: Nguyễn Khánh Lợi
LớI CAM ƠN
Lời đầu tiên, nhóm chúng em xin chân thành cảm ơn bộ môn Điện tử - viễn thông trường Đại học Bách Khoa đã tạo điêu kiện thuận lợi cho em thực hiện bải tập lớn
Đặc biệt chúng em xin chân thành cảm ơn thầy Nguyễn Khánh Lợi đã rất tận tình hướng dân, chỉ bảo chúng em trong suốt thời gian thực hiện bài tập lớn vừa qua Chúng em cũng xin chân thành cảm ơn tất cả các thầy, các Cô trong trường đã tận tình giảng dạy, trang bị cho chúng em những kiên thức cân thiệt, quý báu đề giúp em thực hiện được bài tập lớn này
Mặc dù chúng em đã có cô găng, nhưng với trình độ còn hạn chế, trong quá trình thực hiện đề tài không tránh khỏi những thiêu sót Chúng em hi vọng sẽ nhận được những ý kiên nhận xét, góp ý của thây về những vân đê triên khai trong bài tập lớn Chúng em xin trân trọng cảm ơn!
Tp Hồ Chi Minh, ngay 16 tháng 1Ì năm 2023
Trang 4TOM TAT BÀI TẬP LỚN
Bài tập lớn này trình bày về Machine Learning hay còn gọi là máy học và ứng dụng máy học trong lĩnh vực cụ thể Nhóm chúng em quyết định sẽ làm về một ứng dụng của máy học trong nhiều lĩnh vực như giao thông và logictics,
đó là phát hiện và nhận diện biên số xe Với mục đích giám sát cũng như thuận tiện cho việc truy xuất và tìm ra biển số xe nhanh chóng khi có sự Cố Xảy ra Nên nhận diện biên số xe là phần không thể thiếu trong hệ thống giám sát
xe Ứng dụng của nó đã được triên khai rộng rãi trong cuộc Sống thường ngày
như bãi đỗ xe thông minh, hệ thông thu tiền không dừng tại các tuyến đường cao
Trang 5
MỤC LỤC
le 8/8 PP 1Ẽ.5 4 2 TÓM TÁT BÀI TẬP LỚN 222522221 12123 1 2211121211111 11211111211111 12111111111 Errve 2
09509222255 3 1.9.0 5
3.1 Các phương pháp nhận diện biển số xe trong thực tế - 55-555 se552 15
3.2 Phương pháp nhận diện biến số xe trong đề tài 5S cc sec sreserrrrree 15
4 THU THẬP VÀ XỬ LÍ DỮ LIỆỆU 2222252 S22 S223 23 121121211215 EEEervre 16
4.2 Tiền xử lí dữ liệu (Data preproceSSinQ) 2 25s 222 xen rrereeg 16 4.3 Huấn luyện mô hình (Model training) - 5+ 5S Set 2xexexexesrrrrxrrsrsee 18
5 KET QUA THUC HIEN VA ĐÁNH GIÁ .- ¿5222222222 s2 zxsrrxererrsrree 22
5.1 _ Kết quả quá trình huấn luyện mô hình 2 2252522252 eEvEE£t+vzxzxrxeresecee 22
5.2 _ Kết quả quá trình thực nghiệm . - +5: 52252 S222 2E xxx xeEeEErxsxsrsrererrsrree 24
Trang 68 TÀI LIỆU THAM KHAO
Trang 7Bài tập lớn môn học GVHD: Nguyễn Khánh Lợi
1 GIỚI THIỆU
1.1 Tông quan
-_ Lý do chọn để tài:
Với mỗi một dân tộc, để kinh tế phát triển thì sự phát triển về khoa học, kỹ thuật
là sự cần thiết và đặc biệt quan trọng Với sự phát triển mạnh mẽ của kinh tế như hiên nay, giao thông đang là một bài toán khó đòi hỏi nhiều ngành, nhiều cấp phải quan tâm, và tìm ra hướng giải quyết Hiện nay, việc sai phạm đang còn diễn ra rất nhiều trên các tuyến đường, nhưng rất khó đề có thể truy bắt và xử phạt Để làm giảm bớt khó khăn cho việc cũng như làm cho việc lưu thông trên các tuyến đường được nghiêm túc và an toàn, thì việc áp dụng các công nghệ tiên tiến trong các thiết bị giám sát là đặc biệt quan trọng
Trong lĩnh vực khoa học máy tinh, Convolutional Neural Networks (CNNs) được sử dụng phố biến dé giải quyết các vấn đề như phân loại ảnh, nhận dạng khuôn mặt, xử lý ngôn ngữ tự nhiên, v.v
YOLOv8 là một mô hình mạng nơ-ron tích chập được sử dụng phô biến đề phát hiện đối tượng trong ảnh Trong nghiên cứu này, chúng em sẽ sử dụng YOLOv§ dé phát hiện và nhận diện biển số xe Kết quả nghiên cứu có thể đóng góp vào việc giải quyết vẫn để sai phạm khi tham gia giao thông và bảo vệ giao thông, đồng thời cải thiện chât lượng cuộc sông của cộng dong
-_ Mục tiếu:
e - Vận dụng được những kiến thức cơ bản về huần luyện mạng nơ-ron
e_ Xây dựng được một mô hình có khả năng huấn luyện tập dữ liệu phát hiện
và nhận biên số xe khác nhau
e Phát hiện và nhận diện được tất cả biên số xe trong tập dữ liệu.
Trang 81.2 Nhiệm vụ đề tài
-_ Nội đưng tìm hiểU:
e Nội dung 1: Tìm hiểu nguyên lý, lý thuyét cia Machine Learning va CNN (Convolutional Neural Networks)
e Nội dung 2: Tìm hiểu nguyên lý, lý thuyết về cách hoạt động của mô hình
YOLO noi chung và YOLOv§ nói riêng
e Nội dung 3: Thu thập dữ liệu và huấn luyện trên YOLOv8
-_ Phương pháp nghiên cứU:
Tham khảo thêm từ những Group học tập trên mạng xã hội, trang web học tập,
những video hướng dẫn trên Youtube
Khảo sát một số model huấn luyện săn trên mạng internet, khảo sát các thiết bị
giám sát thông minh hiện hành đề chọn lựa phương án thiết kế sau này
Trang 9Bài tập lớn môn học GVHD: Nguyễn Khánh Lợi
Machine learning còn là một thành phần quan trọng của lĩnh vực khoa học dữ liệu đang phát triển Thông qua việc sử dụng các phương pháp thống kê, các thuật toán được đào tạo để đưa ra các phân loại hoặc dự đoán và khám phá những thông tin chỉ tiết từ chính các dự án khai thác đữ liệu
Thông qua các thông tin chi tiết có được để thúc đây việc đưa ra quyết định đối với các ứng dụng và doanh nghiệp, tác động mạnh đến các chỉ số tăng trưởng Khi đữ liệu lớn tiếp tục nhu cầu mở rộng và phát triển đòi hỏi nhu cầu tuyển dụng các nhà khoa học đữ liệu sẽ tăng lên Họ sẽ được yêu cầu giúp xác định các câu hỏi kinh doanh có liên quan nhất và đữ liệu để trả lời chúng
Bài toán của machine learning thuong được chia làm hai loại là dự đoán (prediction) va phân loại (classifieation) Các bài toán dự đoán thường là giá nhà, giá
xe, v.v, còn các bài toán phân loại thường là nhận diện chữ viết tay, đồ vật, v.v
Các thuật toán phố biến của machine learning:
« Neural networks: Mô phỏng cách thức hoạt động của bộ não con người, Với
một số lượng không lỗ các nút xử lý được liên kết Neural networks là thuật toán được
dùng trong việc nhận dạng các mẫu và đóng một vai trò quan trọng trong các ứng dụng bao gồm dịch ngôn ngữ tự nhiên, nhận dạng hình ảnh, nhận dạng giọng nói và tao hinh anh
- Linear regression: Thuat toan nay duoc sử dụng đề dự đoán các giá trị số, dựa
trên môi quan hệ tuyến tính giữa các giá trị khác nhau
« Logistic regression: Thuật toán giúp đưa ra dự đoán cho các biến phản hồi phân
loại, chăng hạn như câu trả lời “có/không” cho các câu hỏi Nó có thể được sử dụng
Trang 10cho các ứng dụng như phân loại thư rác và kiểm soát chất lượng trên dây chuyên sản
xuất
« Clustering: Các thuật toán phân cụm có thể xác định các mẫu trong dữ liệu dé
nó có thê được nhóm lại Máy tính có thê giúp các nhà khoa học dữ liệu băng cách xác định sự khác biệt giữa các mục đữ liệu mà con người đã bỏ qua
« Decision trees: Là thuật toán được sử dụng để dự đoán giá trị số (hồi quy) và
phân loại dữ liệu Decision trees sử dụng một chuỗi phân nhánh của các quyết định
được liên kết có thể được biểu diễn bằng sơ đồ cây Một trong những ưu điểm của decision trees la ching dễ xác thực và kiểm tra, không giống thuật toán Neural
networks
« Random forests: Trong một khu rừng ngẫu nhiên, thuật toán máy học dự đoán
một giá trị hoặc danh mục băng cách kết hợp các kết quả từ một số cây quyết định
2.2 CNN
Convolutional Neural Network (CNNs — Mang no-ron tich chap) la mot trong những mô hình Deep Learning tiên tiễn Nó giúp cho chúng ta xây dựng được những
hệ thông thông minh với độ chính xác cao như hiện nay
Mang CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các
hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong cac node Mỗi một lớp sau khi thông qua các hàm kích hoạt Sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo
Mỗi một lớp sau khi thông qua các hàm kích hoạt Sẽ tạo ra các thông tin trừU tượng hơn cho các lớp tiếp theo Trong mô hình mạng truyền ngược (feedforward neural network) thì mỗi neural đầu vào (input node) cho mỗi neural đầu ra trong các
lớp tiếp theo
Mô hình này gọi là mạng kết nói đầy đủ (fully connected layer) hay mạng toàn
ven (affine layer) Con trong mé hình CNNs thì ngược lại Các layer liên kết được với nhau thông qua cơ chế convolution
Layer tiép theo là kết quả convolution từ layer trước đó, nhờ Vậy mà ta có được
các kết nỗi cục bộ Như vậy mỗi neuron ở lớp kế tiếp sinh ra từ kết quả của filter áp
đặt lên một vùng ảnh cục bộ của neuron trước đó
Trang 11Bài tập lớn môn học GVHD: Nguyễn Khánh Lợi Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trăm hàng nghìn ñlter như vậy và kết hợp kết quả của chúng lại Ngoài ra có một số layer khác nhu pooling/subsampling layer ding dé chat loc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu)
Trong quá trình huấn luyện mạng (traning) CNN tự động học các giá trị qua các lớp filter dựa vào cách thức mà bạn thực hiện Ví dụ trong tác vụ phân lớp ảnh, CNNs
sẽ cô gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel >
edges > shapes > facial > high-level features Layer cuối cùng được dùng đề phân lớp anh
Pooling layer sẽ cho bạn tính bất biến đối với phép dịch chuyền (translation), phép quay (rotation) và phép co giãn (scaling) Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter
Đó là lý do tại sao CNNs cho ra mô hình với độ chính xác rất cao Cũng giống như cách con người nhận biết các vật thê trong tự nhiên
Trang 122.3 Mô hình chung YOLO
YOLO (you only look onee) là thuật toán object detectlon nên mục tiêu của mô hình không chỉ là dự báo nhãn cho vật thể như các bài toán classification mà nó còn
xác định location của vật thể Do đó YOLO có thể phát hiện được nhiều vật thế có
nhãn khác nhau trong một bức ảnh thay vì chỉ phân loại duy nhát một nhãn cho một
bức ảnh
Thuật toán YOLO lây hình ảnh làm đầu vào, sau đó sử dụng mạng nơ-ron tích chập sâu đơn giản để phát hiện các đối tượng trong ảnh Kiến trúc của mô hình CNN tạo thành xương song của YOLO được hiên thị bên dưới
+, I
=
Come " EEBOeni Conv Loyers Loyer
xá - Ixixði2 Conv Layer rer Conv Layer or
được chuyên đôi đề thực hiện phát hiện Lớp được kết nối đầy đủ cuối cùng của YOLO dự đoán cả xác suất của lớp và tọa độ hộp giới hạn
YOLO chia hình ảnh đầu vào thành lưới S x S Nếu tâm của một đối tượng rơi vào một ô lưới thì ô lưới đó có nhiệm vụ phát hiện đối tượng đó Mỗi ô lưới dự đoán
các hộp giới hạn B và điểm tin cậy cho các hộp đó Các điểm tin cậy này phản ánh mức độ tin cậy của mô hình rằng hộp chứa một đối tượng và mức độ chính xác mà mô
hình cho rằng hộp được dự đoán
YOLO dự đoán nhiều hộp giới hạn trên mỗi ô lưới Tại thời điểm dao tao, ta chi
muốn một bộ dự đoán hộp giới hạn thẻ hiện cho từng đối tượng YOLO chỉ định bộ
dự đoán dựa trên chỉ số lOU hiện tại cao nhất với thực té Điều này dẫn đến sự chuyên môn hóa giữa các bộ dự đoán hộp giới hạn Mỗi công cụ dự đoán trở nên tốt hơn trong
10
Trang 13Bài tập lớn môn học GVHD: Nguyễn Khánh Lợi
việc dự báo các kích thước, tỷ lệ khung hình hoặc loại đối tượng nhát định, cải thiện
tong thé recall score
Một kỹ thuật quan trọng được Sử dụng trong các mô hình YOLO là NMS (non- maxinum suppression) NMS là một bước hậu xử lý được sử dụng để cải thiện độ chính xác và hiệu quả của việc phát hiện đối tượng Trong phát hiện đối tượng, thông
thường có nhiều hộp giới hạn được tạo cho một đối tượng trong một hình ảnh Các
hộp giới hạn này có thê chồng lên nhau hoặc nằm ở các vị trí khác nhau, nhưng tất cả chúng đều đại diện cho cùng một đối tượng NMS được sử dụng để xác định và loại
bỏ các hộp giới hạn dư thừa hoặc không chính xác và đề xuất một hộp giới hạn duy
nhát cho từng đối tượng trong ảnh
2.4YOLOv8
Kê từ lần đầu tiên được giới thiệu vào năm 2016 bởi Joseph Redmon và cộng sự,
YOLO đã được phát tiền nhiều phiên bản khác nhau, với YOLOv8 hiện là phiên bản mới
YOLOv8 1a sy phat triển dựa trên thành công của các phiên bản YOLO trước đó
và giới thiệu các tính năng và cải tiến mới đề nâng cao hiệu Suất và tính linh hoạt, đạt
hiệu suất tốt và tốc độ xuất sắc YOLOv8 cung cấp năm mô hình có kích thước khác
nhau: nano, small, middle, large va extra-large
YOLOv8 duoc chia thanh ba phan chinh: backbone, neck va head, duoc su dung cho việc trích xuất đặc trưng, kết hợp nhiều đặc trưng và dự đoán kết quả đầu ra Thiết
kế của mạng YOLOv8 duoc thé hién trong hình dưới đây
11
Trang 14
Mạng trích xuất đặc trưng chủ yếu trích xuất các đặc trưng cỡ hình ảnh riêng lẻ
từ ảnh được tạo ra bởi các mô-đun C2f và SPPF Mô-đun C2f giảm mạng đi một lớp tích chập dựa trên mô-đun C3 gốc, làm cho mô hình trở nên nhẹ hơn Nó cũng kết hợp những điểm mạnh của cấu trúc ELAN từ YOLOv7, mở rộng nhánh gradient bằng
cách sử dụng các module bottleneck đề thu thập thông tin phong phú hơn
SPPF giảm đi lớp mạng dựa trên SPP (spatial pyramid pooling) để loại bỏ các hoạt động dư thừa vả thực hiện việc hợp nhát đặc trưng một cách nhanh chóng hơn
Module hop nhat đa tỷ lệ sử dụng sự kết hợp của mang FPN (feature pyramid
network) va PAN (path aggregation network) Bang cach két hop hai huéng théng qua
low-level features va high-level features, nd tang cwong low-level features voi cac
lĩnh vực lây mẫu nhỏ hơn và cải thiện khả năng phát hiện các mục tiêu có quy mô khác nhau Lớp phát hiện dự đoán vị trí, loại, điểm tự tin và thông tin khác về mục tiêu
Phản Head của YOLOv8 chuyền từ phương pháp dựa trên anchor boxes sang
phương pháp không dựa trên anchor boxes Nó từ bỏ việc khớp loU và sử dụng bộ gán
nhiệm vụ cho việc khớp mẫu Cuối cùng, nó thực hiện dự đoán đa tỷ lệ bằng cách sử
12
Trang 15Bài tập lớn môn học GVHD: Nguyễn Khánh Lợi dụng các đặc trưng giảm xuống 8x, 16x và 32x để đạt được dự đoán chính xác cho các mục tiêu nhỏ, trung bình và lớn Các mô-đun chi tiết trong mạng YOLOv8 được minh hea trong hình dưới đây
G6 3s - —— YOLOv8 O35, | —— YOLOv8
Ỷ s— YOLOv8-7.0 tỷ =— YOLOv8-7.0
0 20 40 60 80 1.0 15 20 25 30 35
Parameters (M) Latency A100 TensorRT FP16 (ms/img)
Như chúng ta có thê thấy từ biêu đồ, YOLOv§ có nhiều tham số hơn so với các phiên bản tiền nhiệm như YOLOv5, nhưng ít tham số hơn so với YOLOv6 Nó cung cấp khoảng
33% mAP nhiều hơn cho các mô hình kích thước n và mAP lớn hơn nói chung
13
Trang 16Từ biêu đồ thứ hai, chúng ta có thé thay YOLOv8 có thời gian suy luận nhanh hơn so với tat Cả các phiên bản YOLO khác
14
Trang 17Bài tập lớn môn học GVHD: Nguyễn Khánh Lợi
3 XÂY DỰNG ĐÈ TÀI
3.1 Các phương pháp nhận diện biễn số xe trong thực tế
Nhận diện biển số xe sử dựng kế hợp YOLO Tiny v3, OpenCV và CNN [3]:
e Xác định vùng chứa biên số xe sử dụng YOLO Tiny v3
e Sử dụng thuật toán seement đề tách từng kí tự trên biên số xe
e Xây dựng một model CNN dé phan loại cac ki ty (characters classification)
© Định dạng lại biên số xe xác định biên số xe gồm một hay hai dòng
Nhận dựng biển số xe dàng OCR [1]:
e Dinh vi vị trí, trích ra vùng biển số trong khung ảnh
e_ Điều chỉnh lại kích thước vùng biển số, bổ chính lại góc xoay để phù hợp với kích thước biển số yêu cầu
e Xử lý cân chỉnh để chuân hóa độ sáng, độ tương phản của hình ảnh biên số
e Phan ly ky ty dé tao thành tập các hình ảnh ký tự trên biên số
e Thực hiện nhận dạng quang học OCR đề có được tập ký tự dạng ASGII
e Phân tích kiểm tra việc sắp Xếp ký tự để phù hợp với cấu trúc biển số Việt
Nam
e©_ Làm lại nhiều lần và đánh giá kết quả trung bình trên nhiều (vài) hình ảnh để
đưa ra kết quả kết luận tin cậy hơn
3.2 Phương pháp nhận diện biễn số xe trong đề tài
Đầu tiên nhóm em xác định mục tiêu của đề tài là xây dựng một mô hình có thể
phát hiện được biên số xe, sau đó nó sẽ tiễn hành nhận diện các ký tự trên biển số xe
đó cuối cùng sẽ trả Về giá trị biển số xe dự đoán cho người dùng để tiện cho mục đích lưu trữ
Với ý tưởng trên, đề tài có thể chia thành 2 phần chính là huấn luyện mô hình
đề phát hiện và bắt được biên số xe có trong hình Sau đó, ta có thê thực hiện
segmentation hoac cat lay phan bién sé xe đã phát hiện trong hình đê phục cho mục
đích nhận diện Tiếp theo, ta huần luyện thêm một mô hình đề nhận diện ký tự có trên
15