Do đó, để tận dụng vàtối ưu hóa nguồn tài nguyên có sẵn, dé tài nhắm tới mục tiêu dé xuất hệ thống và sửdụng mạng RetinaNet được huấn luyện bằng cách áp dụng thư viện xử lý dữ liệu lớnBi
Trang 1ĐẠI HỌC QUOC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
s*œ8
BÙI THANH PHƯƠNG
XÂY DỰNG HỆ THONG NHẬN DIỆN BIEN SO XE 0 TÔ
THEO THỜI GIAN THỰC
SỬ DỤNG CÔNG NGHỆ DỮ LIỆU LỚN
BUILDING A REAL-TIME CAR LICENSE PLATES
RECOGNITION SYSTEM USING BIG DATA TECHNOLOGY
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
Mã số: 8.48.02.01
GIẢNG VIÊN HƯỚNG DAN:
TS Đỗ Trọng Hợp
Trang 2Cuối cùng, em cảm ơn những người thân yêu đã thấu hiểu cho sự nhiều lần vắngmặt, chia sẻ một phần công việc để em có thể tập trung nhiều hơn vào luận văn.Những người bạn học, những đồng nghiệp ở công ty đã cho em mượn trang thiết bị
để có được kết quả tốt
Em cảm ơn mọi đóng góp từ mọi người.
Trang 3LỜI CAM KÉT
Với niềm danh dự của mình, em tuyên bé chắc chắn rằng luận văn XÂY DỰNG
HỆ THONG NHAN DIEN BIEN SO XE Ô TÔ THEO THỜI GIAN THỰC SUDỤNG CÔNG NGHỆ DU LIEU LỚN được thực hiện hoàn toàn bởi cá nhân em trênđịnh hướng của Thầy TS Đỗ Trọng Hợp Em sẽ chịu trách nhiệm về các kết quả trong
bài báo cáo này.
TP HCM, ngày 06 tháng 06 năm 2023
Học viên
Bùi Thanh Phương
Trang 4MỤC LỤC
LOT BAY TỎ + 9 EEESEEEE17EEEA2111111111411000EpEtrttttrtrtrrrrrrrkrrrkresrre 2 LOT CAM KKẾT ve EEEEEEE9272127211111111113111010.EpEtrrtttrtrrrrrrrrrkrrrkresrre 3 BANG VIET TAT
BANG HÌNH ANH
DANH MUC CAC BAN
OO 9
Chuong 1 TONG QUAN
1.1 Van đề nghiên cứu.
1.2 Mục tiêu
1.2.1 Tổng quan ¿¿+222++22222112222211112221112221112211112221211 xe 11
1.3 Giới han và kết qua
13.1 - Đối tượng nghiên cứu.
Chương 2 NGHIÊN CỨU VÀ CÔNG NGHỆ LI
2.1 Nghiên cứu và xu hướng công nghệ.
2.2 Các nghiên cứu ở Việt Nam
2.3 Cơ sớ lý thuyết và hướng tiếp cận đề tài -c cccccvveesserrrrrrreesee 17
2.3.1 Công nghệ áp dụng
Chương 3 PHÂN TÍCH VÀ THIẾT K
BAL Thiết kế tong quan -e«-+ee©©©+eet©E+kettEEEkAetEEEkAetEEEkeetitrkesrrrke 22
3.2 Thiết kế chỉ tiết
3.2.1 Thanh phan nhan dién bién s6 xe.
3.2.2 Thanh phan lưu trữ.
3.2.3 Thanh phần máy chủ
3.2.4 Thành phần ứng dụng trên trình duyỆt - -:-ccccccccsccccssccc. 28 Chương 4 THỰC HIEN VÀ ĐÁNH GIA -cc2s<<cCVV22vveesettrvrrveessrrrrrrrke 31
4.1 Thu thập - xử lý dữ liệu ccccctttttttttttttterrrrrvvrvvrrrrrrrrrrsrree 31
Trang 54.1.1 Thu thập "— — - 4.1.2 Gan nhãn và xử lý hình ảnh se scsceeseeeereeerrrerrrre.33
4.2 Huấn luyện mô hình -°-v+++t+E22++vsstttttzzvvssstrtsrrrrrssserrrr 35
4.2.1 _ Hiện thực mô hình RetinaNet.
4.2.2, Huấn luyện
4.3 Hiện thực chương trình nh:
4.4 Đánh giá
37
4.4.2 Hién thực công thức tinh AP
4.4.3 Đánh giá độ chính xác của mô hình phát hiện biên sô xe
4.4.4 Đánh giá độ chính xác và hiệu suất của chương trình biển số xe 49
4.4.5 So sánh với bai báo khác
Trang 6BANG VIET TAT
Full High Definition Frame Per Second High Definition You Only Look One Amazon Web Services Hadoop Distributed File System Single Shot Detector
Internet of Things False Positive
Intersection over Union True Positive
Mean Average Precision Simple Storage Service Artificial Intelligence Support Vector Machine
Dữ liệu lớn Convolutional Neural Network
Co sở dữ liệu Feature Pyramid Network Deep learning
Trang 7Cac thư viện trong BigDL
Cách hoạt động của Orca
Quản lý và phân chia tác vụ trong Orca.
Diagram quan ly camera
Trang chủ trang cho thuê 6 tô mioto.v vn.
Đoạn mã thực hiện việc tải ảnh ô tô.
Minh họa nội dung ảnh được gan nhãn từ tệp K2BI86.xml
Công cụ gán nhãn mã nguồn mở miễn nhí labelImg
Vị trí của biển số xe.
Đoạn mã thé hiện các cong việc tiên xử rly anh
Doan mã xây dung khung xương ResNetS0
Đoạn mã hiện thực FPN
Đoạn mã hiện thực lớp RetinaNet
Cài đặt phương thức huấn luyện trên máy tinh Acer Nitro ANS15 - 57 Đoạn mã hoàn thiện cài đặt mô hình.
Tạo dữ liệu huấn luyện và validation
Tiến hành huấn luyện mô hình
D6 thị thể hiện độ mắt mát sau mỗi lần huấn luyệ
Kết quả huấn luyện Đoạn mã nhận diện biên sô xe
Doan mã tính độ trùng |:
Đoạn mã xếp dự đoán hoặc FP hoặc TP dựa trên ngưỡng IoU.
Doan mã tính toán giá trị AP
Kết quả đánh giá mô hình lần 1.
Kết quả đánh giá mô hình lần 2.
Ảnh chụp biển số xe trong bài báo quản lý bãi giữ xe [1
Trang đăng nhập vào web quản lý giao thông Việt Nam.
Trang thêm mới camera
Trang danh sách camera hiện có Trang Lich sw
Trang xem truc tiép tinh hinh giao ‘thong tire camera
Trang 9TÓM TAT
Có thé dé dàng nhận thấy thành phố thông minh đang dần xuất hiện p hồ biến tạicác đô thị trên thé giới qua sự phát triển của lĩnh vực giao thông Trong đó dé xử lýcông việc về giao thông, cần phải có chương trình nhận diện bién số xe trước Thêmvào đó, với lượng dữ liệu lớn (DLL) ngày càng tăng, việc phân tích, xử ly dit liệu cần
sự hỗ trợ từ các công cu DLL va Artificial Intelligence (AI) Do đó, để tận dụng vàtối ưu hóa nguồn tài nguyên có sẵn, dé tài nhắm tới mục tiêu dé xuất hệ thống và sửdụng mạng RetinaNet được huấn luyện bằng cách áp dụng thư viện xử lý dữ liệu lớnBigDL nhằm xác định biển số xe ô tô di chuyền trên đường thông qua máy tính nhúng
Jetson nano kết nỗi với camera.
Trang 10Chương 1 Tổng quan
Chương 1 TONG QUAN
Chương | nêu ra bài toán mong muốn giải quyết, phương án áp dụng, mục tiêuhướng đến, cách thức thực hiện, sau cùng là kết quả khoa học cùng lĩnh vực
1.1 Vấn đề nghiên cứu
Các mô hình Deep Learning (DL) đang được sử dụng nhiều trong các ứng dụng
AI do kết quả mang lại tốt hơn so với các mô hình máy học theo như nhận định củanhóm tác giả Jithmi Shashirangana [5] trong khảo sát về phương pháp và kỹ thuậtnhận diện biển số xe Tuy vậy, theo phạm vi tìm hiểu thì các nghiên cứu áp dụng các
mô hình DL trong việc nhận diện biển số xe ở Việt Nam vẫn chưa nhiều và còn sửdụng các kỹ thuật thị giác máy tính truyền thống gần đây [1,3]
5 năm gần đây, đi cùng với sự phát triển của các mô hình DL là sự phát triển của
các công cụ xử lý DLL Dựa trên thực nghiệm của nhóm tác giả Jason Dai [4] thì
công cụ xử lý DLL của họ giúp tăng tốc việc xây dựng, phát triển ứng dụng AI lên9.6 lần trên một node và khả năng mở rộng trên các cụm máy chủ lớn (trên 100 nodetrong thực tế) Trong bối cảnh dữ liệu và ứng dụng AI ngày càng tăng và nhiều thìviệc tận dụng các nguồn tài nguyên xử lý dữ liệu lớn để phát triển ứng dụng AI sẽlàm giảm chi phí phát trién và nhanh chóng đưa ứng dụng vào sử dụng thực tiễn
Từ những tìm hiểu trên, đề tài này tập trung tìm hiệu, đề xuất một phương phápmới trong việc xây dựng ứng dụng nhận diện biển số xe sử dụng mô hình học sâu vàcông cụ xử lý DLL trong bối cảnh/phạm vi xây dựng thành phó thông minh ở Hồ ChíMinh nơi có nhiều dữ liệu, chương trình AI và các nguồn tài nguyên xử lý DLL sẵn
có Sau đó tiễn hành xây dựng hệ thống minh họa
Trang 11dụng giao thông thông minh như theo dõi hành trình xe, xử lý vi phạm
1.2.2 Cụ thé
© Mục tiêu 1: Đề xuất hệ thống giao thông sử dung công nghệ DLL đề xác định
biển số xe ô tô theo thời gian thực
© Muc tiêu 2: Sử dụng các phương pháp học sâu dé tăng độ chính xác nhận dang
bién số xe
1.3 Giới hạn và kết quả
1.3.1 Đối tượng nghiên cứu
Trong báo cáo này, các đối tượng nghiên cứu:
e© M6 hình RetinaNet trong việc nhận dang biển số xe
e BigDL trong tác vụ huấn luyện mô hình
1.3.2 Giới hạn
Do chưa được thử nghiệm thực tế nên hệ thống đang phát triển:
© Sử dụng video được quay từ điện thoại để thực nghiệm thay vì lấy trực tiếp từ
camera.
e Huan luyện mô hình trên máy tính cá nhân thay vi từ các cum máy tính như
đã đề xuất
1.4 Nội dung, phương pháp thực hiện
1.4.1 Các nghiên cứu, công nghệ có liên quan
Có nhiều nghiên cứu về chủ đề nhận diện biển số xe ô tô ở trên toàn thế giới từnăm 2012 Tuy nhiên, nếu chỉ xét đến các bài báo đã xuất bản trên các tạp chí, ở ViệtNam, thì đã có nhiều nghiên cứu dùng giải thuật máy học đề phát triển ứng dụng nhận
Trang 12Chương 1 Tổng quan
diện biển số xe Theo khảo sát của nhóm tác giả Jithmi Shashirangana [5], được công
bố vào năm 2021, các mô hình DL đã cho kết quả tốt hơn các mô hình máy học và
ngày càng được dùng rộng rãi trong các ứng dụng trí tuệ nhân tạo Cac mô hình nhận
diện đối tượng được phân loại thành “bộ phát hiện một giai đoạn” và “bộ phát hiện
hai giai đoạn” Bộ phát hiện hai giai đoạn có độ chính xác thường cao hơn nhưng có
thời gian nhận diện lâu hơn Hiện nay, trong số các mô hình nhận diện đối tượng phổ
biến, có Yolo, Faster R-CNN, SSD, và mô hình RetinaNet.
Hai năm gan đây, BigDL được xem là 1 công nghệ mới trong việc tận dụng cáctài nguyên công cụ xử lý DLL có sẵn, chẳng hạn như Hadoop/Spark, K8s để tănghiệu suất của các ứng dụng AI, giảm thời gian phát trién, triển khai các ứng dụng AItrong bối cảnh dữ liệu và ứng dụng AI ngày càng tăng theo thời gian
Để hệ thống hoạt động tốt, camera cần có khả năng thu ảnh chất lượng và tốc độcao, cũng như có khả năng hoạt động tốt ở ngoài trời Cơ sở dit liệu cần có khả nănglưu trữ, xử lý DLL và mở rộng dung lượng dữ liệu Máy tính cần có bộ xử lý đồ họa
dé thực hiện các tác vụ AI
Vi vậy, đề tài đề xuất dùng camera Logitech C922, nơi lưu trữ dữ liệu bao gồm
AWS S3 và DynamoDB, máy tính nhúng Jetson Nano, máy tính EC2 và mô hình
nhận diện đối tượng RetinaNet để phát triển hệ thống nhận diện biển số xe ô tô theo
thời gian thực.
1.4.3 Thực hiện - triển khai
Các bước thực hiện và triển khai hệ thống:
Trang 13Chương 1 Tổng quan
- _ Thu thập hình ảnh ô tô từ trang cho thuê 6 tô mioto.vn và các nguồn khác
- _ Đánh giá, gan nhãn bộ dữ liệu thu thập được.
- Huấn luyện mô hình dựa trên RetinaNet và BigDL
- Đánh giá, cải thiện kết quả mô hình trên phép đo mAP
- Cài đặt chương trình thu nhận hình ảnh từ camera và nhận diện biển số xe trên
máy tính nhúng Jetson Nano.
- Cài đặt cơ sở dữ liệu (CSDL) DynamoDB và S3
- Xây dựng ứng dụng phía người dung bằng React, Javascript
- _ Xây dựng ứng dụng máy chủ bang Python, Flask
- Đánh giá và cải thiện độ chính xác và hiệu suất của hệ thống
1.4.4 Kết quả - đánh giá
Đề tài đã đánh giá độ chính xác của mô hình phát hiện biển số xe dựa trênmAP với ngưỡng IoU = 0.75 cho kết qua đạt mAP = 0.94, chứng tỏ khả năng pháthiện chính xác biển sé xe Đồng thời, chương trình cũng được đánh giá trên một đoạnvideo độ phân giải 1080x1920 và cho thây khả năng nhận diện chính xác 7/9 biên sốdài và biển số vuông tương với FPS trung bình đạt 1.8
1.4.5 Kết luận - hướng phát triển
Đề tài đã đề xuất được | hệ thống nhận diện biển số xe ô tô theo thời gian thực.Bên cạnh, dé tài đã đóng góp một bộ dữ liệu về biển số xe đã được gan nhãn mặc dùquá trình hiện thực và triển khai hệ thông gặp nhiều khó khăn Trong tương lai, đề tài
có thé cải thiện tốc độ nhận diện bằng cách nâng cấp cấu hình máy tính nhúng hoặc
sử dụng mang học sâu mới như Yolov8, SSD Ngoài ra, dé tài còn có thể thêm cáctính năng mới như phát hiện vượt đèn đỏ quy định đề tăng tính ứng dụng
1.5 Ý nghĩa
e Tính mới: Trong lĩnh vực nhận diện biển số xe ô tô, đang còn thiếu những
nghiên cứu áp dụng khả năng của DL và công nghệ xử lý DLL Việc kết hợphai công nghệ này dé phát triển hệ thông nhận diện biển số xe ô tô theo thờigian thực là một phương pháp mới trong bối cảnh dit liệu và chương trình AIngày càng tăng Vì vậy, dé tài có tính mới
Trang 14Chương 1 Tổng quan
e Tính khoa học: Đề tài sử dụng công nghệ DLL và các thuật toán DL để xây
dựng hệ thống nhận diện biển số xe ô tô theo thời gian thực Các kỹ thuật này
đang là xu hướng trong lĩnh vực AI.
¢ Tinh ứng dụng: Hệ thống có tính ứng dụng cao trong lĩnh vực giao thông vận
tải, đặc biệt là trong việc giám sát giao thông Hệ thống có khả năng tự độngnhận diện thông tin biển số xe, giúp việc kiểm soát phương tiện dễ dàng
¢ Tính cấp thiết: Với xu hướng xây dựng các thành phố thông minh, việc xây
dựng ứng dụng nhận diện biển số xe ô tô theo thời gian thực sử dụng công cụ
xử lý DLL là cấp thiết đề giải quyết các bài toán giao thông, dữ liệu và nâng
cao hiệu quả quản lý.
Trang 15Chương 2 Nghiên cứu và công nghệ liên quan
es cv x cà Chương 2
NGHIEN CUU VA CONG NGHE LIEN QUAN
Chương này trình bay các bài báo và công nghệ liên quan đến việc nhận diện biển
số xe ô tô Bằng việc tìm hiểu các nghiên cứu và công nghệ này, chương đưa ra cơ sở
lý thuyết và hướng tiếp cận đề tài
2.1 Nghiên cứu và xu hướng công nghệ
Các giải pháp dé nhận diện bién số xe tự động hiện tại có thể phân làm 2 loại, đó
là phương pháp 1 giai đoạn và phương pháp nhiều giai đoạn Tuy nhiên, phương phápnhiều giai đoạn được sử dụng phô biến hơn và bao gồm ba bước chính Bước | là xácđịnh vị trí của biển số xe, trong đó các thuật toán sử dụng các kỹ thuật thị giác máytính truyền thống cũng như học sâu Bước thứ hai là phân đoạn các ký tự, trong đócác kỹ thuật được dùng gồm hình thái toán học, các thành phần kết nói, phép chiếudọc và ngang Cuối cùng, bước thứ ba là nhận diện ký tự dựa trên kỹ thuật khớp mẫu
hay phân loại như mạng neural và phân loại mờ Tuy nhiên, việc xác định và nhận
dạng được chia thành 2 giai đoạn khác nhau dẫn đến độ chính xác của kết quả cuốicùng bị ảnh hưởng Giả sử trong quá trình xác định vị trí bỏ qua 1 phần của biển số
xe sẽ dẫn đến việc nhận dạng thiếu ký tự Do vậy việc có kết quả mong muốn ở mỗigiai đoạn trong phương pháp nhiều giai đoạn là quan trọng đề đảm bảo độ chính xáctổng thé của quá trình nhận dạng
Gan đây các nghiên cứu về nhận diện bién số xe đã không còn tập trung hết vàohướng tiếp cận nhiều giai đoạn mà đã có một số phương pháp thành công theo hướngtiếp cận một giai đoạn Hầu như các phương pháp này chi sử dung 1 mang neural sâu,được huấn luyện để phát hiện và nhận dạng biển số xe trong một lần thực thi duy
nhất Việc nhận diện biển số xe được xem là một trường hợp cụ thể của việc phát hiện
đối tượng Giống với các bộ phát hiện đối tượng trong 1 giai đoạn, các mô hình này
có thể khai thác sự tương quan cao giữa việc phát hiện và nhận dạng biển số xe Điềunày cho phép các mô hình chia sẻ tham số và có ít tham số hơn so với một mô hìnhhai giai đoạn điển hình Do đó, mô hình có thể nhanh hơn và hiệu quả hơn so với
phương pháp hai giai đoạn tương đương.
Trang 16Chương 2 Nghiên cứu và công nghệ liên quan
Ở giai đoạn phát hiện biên số xe, thường áp dụng các kỹ thuật thị giác máy tínhtruyền thống để trích xuất biển số, dựa vào các đặc trưng như hình dạng, màu sắc của
ký tự Nhiều nghiên cứu cũng sử dụng các bộ phân loại thống kê với các đặc trưngHaar-like để đạt hiệu suất tốt hơn Gần đây, hơn 80% các nghiên cứu đã sử dụng DLcho việc nhận dạng biển số xe do hiệu suất vượt trội và chính xác hơn so với các kỹthuật truyền thống
1 số mô hình DL được dùng cho tác vụ phát hiện và nhận dạng đối tượng có thể
ké đến:
- Faster R-CNN: Đây là mô hình phổ biến dựa trên CNN sử dụng một mang đề
xuất vùng (RPN) để tạo ra các đề xuất đối tượng, tiếp theo là một mạng CNNdựa trên vùng đó để phân loại và điều chỉnh các đề xuất
- YOLO (You Only Look One): Đây là một mô hình phổ biến khác dựa trên
CNN thực hiện việc phát hiện và nhận dạng đối tượng trong một lần Mô hìnhchia ảnh đầu vào thành các ô lưới sau đó dự đoán xác suất lớp và tọa độ hộp
giới hạn cho mỗi ô.
- SSD (Single Shot Detector): Đây là một mô hình có hiệu suất nhanh và hiệu
quả dựa trên CNN Mô hình sử dụng một loạt các lớp tích chập với các tỷ lệ
khía cạnh khác nhau để dự đoán xác xuất lớp và tọa độ hộp giới hạn cho mỗi
đối tượng
- Mask R-CNN: Đây là một mở rộng của mô hình Faster R-CNN, bồ sung thêm
một nhánh phân đoạn vào mạng, cho phép dự đoán cả các lớp đối tượng vàcác mặt nạ phân đoạn cấp pixel
- RetinaNet: Day là mô hình dựa trên CNN sử dụng độ mat mát dé xử lý bài
toán mat cân bằng giữa các lớp trong phát hiện đối tượng Mô hình này đã datđược độ chính xác cao bằng cách tập trung vào những ví dụ khó trong quátrình huấn luyện và bỏ qua các ví dụ dễ
2.2 Các nghiên cứu ở Việt Nam
Ké từ 2012, có nhiều nghiên cứu về dé tài nhận diện biển số xe ở Việt Nam Nếuchỉ tính đến những bài báo được đăng trong nước thì gần đây có nhiều nghiên cứu [1-
Trang 17Chương 2 Nghiên cứu và công nghệ liên quan
3] Tuy nhiên, chỉ có hai nghiên cứu có mục tiêu xây dựng ứng dụng giống với đề tài
này.
Bài báo thứ nhất [3], tác giả đã dùng các kỹ thuật máy học như trích xuất đặctrưng va SVM làm giải thuật chính cho chương trình Rồi tiền hành ba lần thử nghiệmtrên 100 tắm ảnh ngẫu nhiên đề thống kê kết quả đánh giá độ chính xác
Bài báo thứ hai [1] trong năm 2021, là về việc áp dụng kỹ thuật nhận diên biển
số xe ô tô vào quản lý giữ xe ở Trường Đại học Hà Tĩnh Tuy nhiên tác giả chỉ đề cập
tới kỹ thuật phát hiện cạnh Canny và kỹ thuật nhận diện ký tự quang học làm giải
thuật cho chương trình mà không đề cập chỉ tiết đến kỹ thuật nhận diện kỹ thuật nhậndiện ký tự Về kết quả, nhóm tác giả đã thử nghiệm trên 100 mẫu biển số xe và chươngtrình chỉ không thể nhận dạng được một biển số xe do bị mờ
Sau khi tham khảo hai bài báo trên, cả hai đang sử dụng giải thuật máy học làm
giải thuật chính Tuy nhiên, học sâu đang được xem như một lĩnh vực tiên tiến vàhiệu quả cho các bài toán nhận diện đối tượng Do đó, ở tương lai, có thé dự đoán xuhướng sẽ dần chuyền sang áp dụng DL cho việc nhận diện biển số xe Mặt khác phạm
vi áp dụng của hai bài báo nằm trong phạm vi nhỏ cục bộ, trong khi các ứng dụngtrong lĩnh vực thành phó thông minh sẽ đòi hỏi những phương pháp và công cụ xử lýDLL, kết hợp với học sâu để đảm bảo hiệu quả và chính xác trong quá trình nhận diệnbiển số xe
2.3 Cơ sở lý thuyết và hướng tiếp cận đề tài
2.3.1 Công nghệ áp dụng
2.3.1.1 BigDL
BigDL được phát triển bởi công ty Intel với mục đích tận dụng các cụm máy tínhnhư K8s, Hadoop, Spark, Yarn dé làm giảm thời gian huấn luyện và dự đoán mô hìnhhọc sâu Ngoài ra, BigDL cũng có các công cụ hỗ trợ cho các ứng dụng về gợi ý/đềxuất và thời gian cũng như các giải pháp bảo mật đữ liệu
BigDL cũng tương thích với các framework phổ biến khác như: Tensorflow,Keras, PyTorch, OpenVINO Bộ thư viện bao gồm nhiều thành phần như:
- Orca: giúp huấn luyện va dy đoán mô hình DL trên các cum máy tính
Trang 18Chương 2 Nghiên cứu và công nghệ liên quan
- Nano: tối ưu hóa các chương trình sử dụng PyTorch hoặc Tensorflow trên
Intel XPU.
-_ DLIib: hỗ trợ viết các chương trình học sâu dưới dang các chương trình Spark
- Chronos: hỗ trợ xây đựng ứng dụng liên quan tới phân tích về thời gian
- Friesian: hỗ trợ xây dựng hệ thống có tính năng gợi ý/đề xuất
- PPML: hỗ trợ bảo vệ quyên riêng tư bảo mật của dữ liệu
Hardware Secured Big Data & AI?
No Yes
Python vs Scala/Java? eD
Python ScalalJava
What type of application? én
Distributed Big Data
Accelerate
+ DL for Spark MLIib High Level App Framework
AI (TF/PyTorch) TensorFlow / PyTorch
ooo
co Series Recommender cp
Hình 2.1 Các thu viện trong c—
Nguồn: Hình ảnh được trích dẫn từ trang chủ của BigDL.
Đề tài này sẽ sử dụng Orca đề hỗ trợ công việc huấn luyện mô hình DL Orca cho
phép cài đặt chương trình trên máy tính cá nhân và sử dụng các tài nguyên trên cụm
máy chủ đề thực hiện quá trình huấn luyện
Trang 19Chương 2 Nghiên cứu và công nghệ liên quan
Install & Run on prototype on distributed
Pipeline
Hình 2.2 Cách hoạt động của Orca
Nguồn: Hình ảnh được trích dẫn từ bài thuyết trình về chủ đề BigDL 2.0: Seamlessly
scaling end-to-end AI pipelines tại sự kiện Ray Submit 2022.
Để quản lý và phân chia các tác vụ trên cụm máy chủ, Orca sử dụng ApacheSpark Cụ thé là Spark Driver dé quan lý các tác vụ và giao tiếp với các Executor trêncác nút của cụm máy chủ Mỗi Executor sẽ chạy các tác vụ được giao cho nó, tươngứng với một phần của dữ liệu Việc phân chia và thực thi các tác vụ trên nhiềuExecutor khác nhau nhằm tăng tốc độ huấn luyện và giảm thời gian chờ đợi
Hình 2.3 Quản lý và phân chia tác vụ trong Orca
Nguồn: Hình ảnh được trích dẫn từ bài thuyết trình về chủ đề BigDL 2.0: Seamlessly
scaling end-to-end AI pipelines tại sự kiện Ray Submit 2022.
2.3.1.2 RetinaNet
RetinaNet [8] được giới thiệu vào năm 2018 Do là một mô hình nhận diện đốitượng một giai đoạn với khả năng cho kết quả có độ chính xác cao và tốc độ nhanh.RetinaNet sử dung cơ chế mang CNN, cho phép mô hình cải thiện khả năng phát hiệncác vật thể nhỏ cái mà trước đây thường bị bỏ qua bởi các mô hình truyền thống,nhưng RetinaNet có thé phát hiện chúng với độ chính xác cao hơn Ngoài ra, mô hình
Trang 20Chương 2 Nghiên cứu và công nghệ liên quan
còn xử lý được bài toán mất cân bằng giữa hình nền và hình chứa vật thé bằng cách
sử dụng hàm focal loss có công thức như sau:
FP(q) = —ø;( ~ qi)" log (qi) (2.1)
Sự đổi mới chính của RetinaNet là việc sử dụng mang FPN (Feature PyramidNetwork) để phát hiện hiệu quả các vật thể ở nhiều tỷ lệ khác nhau Ảnh ban đầu
được trích xuất đặc trưng bởi bộ lọc đặc trưng bao gồm ResNet và FPN Kiến trúc
FPN bao gồm I nhánh đi xuống và | nhánh đi lên Nhánh đi lên sẽ làm giảm kíchthước và tăng độ đặc trưng trong khi nhánh đi xuống sẽ tăng kích thước bản đồ đặctrưng lên gấp đôi
dastbox] |’ |
subnets | | class
| subnet
elasstbox subnets
dasctbox
subnets
box
subnet
(@) ResNet (© feature pyramid net {c) class subnet (top) _(d) box subnet (bottom)
Hinh 2.4 Mang Rentina Net
Các ban dé đặc trưng nay dùng dé dự đoán lớp va hộp giới hạn cho các đối tượng.Nhánh phía trên dự báo phân phối xác xuất của các lớp trong khi nhánh phía dưới dựđoán tọa độ với định dạng: (x, y, chiều rộng, chiều dai)
Nhìn vào hình 2.5 có thể thấy RetinaNet có kết quả tốt hơn các mạng khác và cảithiện được đến 7.8 điểm (53.3 > 61.1) so với mô hình đứng thứ 2 là DSSD513 khi
cả hai đều sử dụng kiến trúc RestNet101 và xét trên độ đo AP50
RetinaNet (ours) ResNet-101-FPN 39.1 59.1 42.3 21.8
RetinaNet (ours) ResNeXt-101-FPN 40.8 61.1 441 24.1
Hình 2.5 Kết quả so sánh các mô hình tại thời điểm 2018 Nguồn: Hình ảnh được trích dẫn từ bài báo: Focal Loss for Dense Object Detection.
Trang 21Chương 2 Nghiên cứu và công nghệ liên quan
Trong dé tài này, biển số xe cũng có thể được xem là vật thé nhỏ Với khả năngcho kết quả nhận diện các đối tượng nhỏ tốt hơn so với các mạng khác nên mô hình
quy mô doanh nghiệp.
S3 là một dịch vụ lưu trữ đám mây được dùng để lưu trữ và phân phối dữ liệu
trên mạng như hình ảnh, video, tệp âm thanh, tệp dữ liệu và các tài liệu khác Nó không giới hạn dung lượng lưu trữ và tự động mở rộng, đi kèm với tính năng bảo mật
đề đảm bảo an toàn dữ liệu
Trang 22Chương 3 Phân tích và thiết kế
xạ Chương
PHAN TICH VA THIET KE
Chương trình bay về sơ đồ hoạt động tổng quan của hệ thống Bằng việc phântích các yêu cầu, chương đưa ra sự lựa chọn và thiết kế cho các phan trong hệ thống
3.1 Thiết kế tống quan
Hệ thống bao gồm 4 thành phần:
Thanh phần lưu trữ thông tin về hình ảnh, dữ liệu
Thành phần nhận diện biển số xe
Thành phần hiển thị giao diện chức năng phía người dùng
Thành phần máy chủ xử lý thông tin trước khi gửi về cho người dùng
Luỗng hoạt động:
Hình ảnh được thu bởi camera sẽ đưa qua mô hình nhận diện biển số xe Sau
đó kết quả nhận diện được lưu tại CSDL của hệ thống
Khi người dùng sử dụng ứng dụng trên trình duyệt, các yêu cầu thông tin sẽđược gửi đến máy chủ Lúc này tùy thuộc vào các thao tác của người dùng
mà máy chủ sẽ kết nối đến CSDL hay camera đề trả dữ liệu về cho người
dùng.
Trang 23Chương 3 Phân tích và thiết kế
3.2 Thiết kế chỉ tiết
3.2.1 Thành phần nhận diện bién số xe
Thành phần nhận diện biển số xe được thiết kế bao gồm camera và máy tínhnhúng, được kết nối với nhau qua công USB và dây cáp mạng Thay vì gửi toàn bộ
dir liệu từ các camera tới máy chủ và thực hiện quá trình nhận diện ở đó, quá trình
nhận diện sẽ được xử lý trực tiếp tại máy tính nhúng Điều này giúp giảm tải cho máychủ và tránh tình trạng chậm và gây lỗi cho hệ thống Máy tính nhúng được cài đặt
để xử lý video từ camera thông qua thư viện OpenCV Sau đó, ảnh được đưa vào môhình DL để xác định vị trí biển số xe trong ảnh Nếu mô hình phát hiện được đốitượng, chương trình sẽ tiến hành cắt và đưa đối tượng sang mô hình nhận diện ký tự.Kết quả trả về là chuỗi ký tự biển số xe được dự đoán và sau đó chuỗi ký tự đượcchuẩn hóa và xử lý dé đưa ra kết quả cuối cùng Dữ liệu gồm kết quả nhận diện, thờigian, hình ảnh và camera sẽ được gửi và lưu trong CSDL của hệ thống Ngoài ra, máytính nhúng được cài đặt để nhận kết nối từ máy chủ và gửi thông tin theo giời thanthực khi có yêu cầu
Các lựa chọn cho máy tính nhúng có thé là:
Bảng 3.1 Mô tả các máy tính nhúng
Tên Mô tả Câu hình Giá thành
Các máy tính nhúng Được thiết kế đặc biệt | 4 nhân 4 triệu 900
thuộc bộ Jetson như cho việc thực thi các ARM ngàn việt nam
Jetson Nano các ứng dụng thị giác | Cortex-A57, | đồng
` NVIDIA
GPU
Đây cũng là một thiệt | 4 nhân 4 triệu — 5 triệu
bị được dùng nhiều ARM 600 việt nantrong các ứng dụng Cortex-A72 | đồng tùy theokhác nhau bao gồm CPU, từng phiên bảnnhận diện vật thẻ 2/4/8GB dung lượng
RAM RAM
Trang 24Chương 3 Phân tích và thiết kế
Coral Dev Board Được phát triên bởi 4 nhân 4 triệu 900
Google để sử dụng với | ARM ngàn việt namEdge TPU (Tensor Cortex-A53 | đồng
Processing Unit) dé CPU, bộnâng hiệu qua các tác | đồng xử lý
vụ máy học Google
Edge TPU
Odroid-N2 Được phát triển bởi ARM 2 triệu 500
4 Hardkernel thường Cortex-A73 | ngàn việt nam
ke dùng trong xử lý video |CPU,4GB_ | đồng.
ne theo thời gian thực RAM
ne
UP Xtreme il1 Day là hệ thông nhúng | Intel core i3 | 19 triệu việt
i có hiệu năng xử lý cao | thế hệ 11, nam đồng
được phát triển bởi Intel Iris Xe,AAEON 8GB RAM
Với sự phổ biến, giá thành dễ tiếp cận và sự vượt trội hon về GPU, máy tínhnhúng Jetson nano sẽ cho tốc độ xử lý nhanh hon so với các đối thủ cùng tam giá tiền
Do đó thiết bị này đã được dùng trong hệ thống
Ngoài việc dùng máy tính nhúng hiệu suất cao, chất lượng video đầu vào cũngcần được đảm bảo Vì vậy camera được chọn cần phải có độ phân giải từ Full HD trởlên, FPS từ 30 trở lên, độ bền cao Đề dit liệu được truyền tải đến máy tính nhúngmột cách toàn vẹn và an toàn nên các camera IP không được đề xuất trong đề tài này.Một số camera có thể tham khảo như:
Bảng 3.2 Mô tả các camera
Tên Mô tả Giá thành
Logitech C922 HD Pro Độ phân giải 1080p, 30 FPS, 2 triệu 200 ngàn
hoạt động tốt trong tình trạng việt nam đồngánh sáng yếu
Sony IMX219 Camera Được thiết kê đặc biệt cho 600 ngàn việt nam
Jetson Nano, cảm biến 8 đồng
megapixel, góc nhìn 160 độ, độ phân giải 1080p, 30 FPS.
Trang 25Chương 3 Phân tích và thiết kế
Raspberry Pi Camera V2 | Mặc dù được thiệt kê cho 700 ngàn việt nam
Raspberry Pi nhưng vẫn tương | đồng
thích với Jetson Nano, độ phân
giải 1080p, 30 FPS, cảm biến 8
megapixel.
Cả 3 camera đều cung cấp video chất lượng Full HD với FPS bằng 30 Mặc dugiá thành của Raspberry Pi Camera V2 và Sony IMX219 Camera rẻ hơn rất nhiều sovới Logitech C922, tuy nhiên, vì camera sẽ được gắn trên cột đèn giao thông ngoài
trời nên việc sử dụng Sony IMX219 hay Raspberry Pi Camera V2 sẽ đòi hỏi thêm chi
phí cho vật liệu để bảo vệ camera Vì vậy, đề tài dùng Logitech C922
3.2.2 Thành phần lưu trữ
Thanh phan lưu trữ CSDL là 1 thành phần không thẻ không có trong tat cả cácứng dụng Trong hệ thông này, CSDL được sử dụng đề tiếp nhận và lưu thông tin từcamera sau khi nhận dạng Với việc có rất nhiều camera gửi dữ liệu về trung tâmCSDL liên tục trong suốt ngày đêm, cho nên CSDL cần được đảm bảo về dung lượng
lưu trữ lớn, khả năng ghi và chịu tải cao Do đó các CSDL phân tán được ưu tiên sử
dụng trong hệ thống Một số CSDL phù hợp như: Apache Cassandra và AWSDynamoDB Cả hai CSDL này đều là CSDL không có quan hệ, được thiết kế xử lýDLL và cung cấp khả năng sẵn sàng và mở rộng cao Tuy nhiên, nếu sử dụng CDSLApache Cassandra, sẽ cần phải tự quản lý về cơ sở hạ tầng và khả năng mở rộngCSDL Trong khi đó, nếu sử dụng CSDL AWS DynamoDB, sẽ không cần quan tâmđến điều đó nữa, tuy nhiên sẽ cần quan tâm về chỉ phí sử dụng dịch vụ Do đó, đề tàidùng AWS DynamoDB đề lưu dữ liệu
Ngoài dữ liệu dạng văn bản thông thường, hệ thống còn cần lưu dữ liệu hình ảnh
Do kích thước dữ liệu hình ảnh thường lớn hơn dung lượng tối đa mà DynamoDBcho phép cho nên cần phải có nơi lưu trữ riêng cho dữ liệu này Có hai lựa chọn khả
thi là Hadoop Distributed File System (HDFS) và Amazon S3.
Trang 26Chương 3 Phân tích và thiết kế
Bảng 3.3 So sánh HDFS va Amazon S3
Tên Ưu điểm Nhược điểm
HDFS Là hệ thông phân tán dữ liệu được thiết kế cho | Tén nhiều công
việc lưu trữ DLL và truyền dữ liệu sức đề cài đặtThường sử dụng trong môi trường DLL thiết lập và bảoTính sẵn sàng và khả năng hạn chế lỗi cao trì
Amazon S3 | Dịch vụ lưu trữ đám mây có khả năng mở rộng | Cần phải tra phí
cao, có thé truy cập lây dữ liệu từ bat ky đâu dịch vụ
trên mạng.
Dễ dàng thiết lập và cài đặt
Các tính năng như tự động mở rộng, quản lý
phiên bản dữ liệu, các quyền truy cập cho dữ
liệu.
Đề tài dùng dịch vụ lưu trữ Amazon S3 để tiết kiệm thời gian và đồng bộ hóa với
CSDL DynamoDB.
3.2.3 Thành phần máy chủ
Đây là nơi xử lý trung gian trong hệ thống Tùy vào yêu cầu đến từ người dùng
mà máy chủ có thé truy cập vào CSDL hoặc camera dé lay và trả về dữ liệu can thiết
Có hai mô hình truyền tin giữa camera và máy chủ đó là: REQ/REP và PUB/SUB
Bảng 3.4 So sánh REQ/REP và PUB/SUB
Mô hình | Ưu điểm Nhược điêm
REQ/REP | Hình ảnh được đảm bảo gửi đên | Camera sẽ không tiếp tục gửi dữ
máy chủ trước khi camera tiếp liệu về máy chủ nếu không nhậntục gửi tiếp dữ liệu được phản hồi
May chủ không cần biết địa chỉ | Nếu máy chủ khởi động lại thì tat
của từng camera cả các máy tính nhúng cũng phải
Máy chủ có thể đồng thời nhận _ | khởi động lại Do đó máy chủ
và xử lý hình ảnh từ nhiều phải ồn định và không được khởi
camera động lại thường xuyên.
Khởi động hoặc dừng camera không ảnh hưởng tới máy chủ hoặc các camera khác.
PUB/SUB | Khi có kêt noi từ máy chủ, Máy chủ cân biêt được chính xác
camera sẽ truyền tải dữ liệu liên | địa chỉ của từng camera/máy tínhtục mà không cần phải đợi tin nhúng Trong trường hợp với số
hiệu phản hồi lượng lớn camera hoạt động thì sẽ
Máy tính nhúng không cần phải | dẫn đến có hàng loạt phương thứckhởi động lại nếu máy chủ khởi | kết nối được gọi và thực thi trong
động lại chương trình.
Trang 27Chương 3 Phân tích và thiết kế
Dé dàng triên khai với mô nhiều | Nếu máy chủ không nhận đượcnhiều camera nhiều máy chủ hình ảnh, camera/máy tính nhúng
cũng không biết
Nếu việc nhận và xử lý dữ liệu ở
máy chủ chậm hơn quá trình gửi
dữ liệu từ camera đến máy chủ sẽdẫn đến dễ gây lỗi cho chương
trình.
Do hệ thống sẽ có nhiều rất nhiều camera nên nếu áp dụng mô hình REQ/REP sẽcần phải xây dụng một máy chủ cực kỳ mạnh và hạn chế khởi đông lại Mặt khác,trong quá trình sử dụng, chưa han lúc nào người dùng cũng quan sát camera thườngxuyên mà chỉ trong những trường hợp cần với thời gian ngắn Do đó, việc áp dụng
mô hình PUB/SUB sẽ hợp lý hơn vừa giảm tải khối lượng cho máy chủ, vừa giảm
chi phí xây dựng va vận hành.
'Việc xử lý nhận diện biển số xe đã thực hiện ở máy tính nhúng, nên cầu hình máychủ không cần thiết phải có bộ xử lý đồ họa, mà cần nhiều RAM, bộ xử lý và khảnăng tải cân bằng phân bố lượng yêu cau tới máy chủ Do đó đề tài dùng dịch vụAWS EC2 với máy chủ c5.large cấu hình 2 vCPUs, 4GB RAM kèm với dịch vụ ELB
tự điều phối yêu cầu và tăng giảm s6 lượng máy chủ theo từng thời điểm vì ngườidùng chưa hắn lúc nào cũng trực hệ thông Vì vậy chỉ phí sẽ có thể tiết kiệm hơn sovới lựa chon một cầu hình mạnh như 16 vCPUs, 32GB RAM nhưng không kèm dịch
vụ ELB Chi phí ước tính cho hằng tháng khoảng 52 triệu việt nam đồng
Các sự lựa chọn khác có thể tham khảo:
- Google Cloud Platform: cấu hình 2 vCPUs, 7.5 GB RAM kèm dich vu tải cân
bang với chi phí ước tính cho hằng tháng khoảng 38 triệu việt nam đồng
- Microsoft Azure: máy tinh ảo B2s cấu hình 2 vCPUs, 4GB RAM kèm dịch
vụ tải cân bằng với chí phí ước tính cho hằng tháng khoảng 42 triệu việt namđồng
Trang 28Chương 3 Phân tích và thiết kế
3.2.4 Thành phần ứng dụng trên trình duyệt
Hình 3.2 Use case quản lý giao thông
thông tại một thời gian hay địa đ
Tên chức năng Quản lý giao thông
Tác nhân Người dùng
Cho phép người sử dụng quan sát trực tiếp tình trạng giao
Mô tả thông, quản lý các camera giám sát và xem lại lịch sử giao
iém nhất định
Luéng su kién
Tac nhan Phản hồi của hệ thống
Người dùng đăng nhập vào hệ thông.
Xác nhận thông tin người
dùng, nếu thông tin chính
xác cho phép người dùng
sử dụng hệ thống
Sử dụng các chức năng của hệ thông: xem trực tiép, xem lại lịch sử giao thông, quản lý camera.
Điều kiện thoát Khi người dùng đăng xuất hệ thông
Trang 29Chương 3 Phân tích và thiết kế
Hình 3.4 Diagram quản lý camera
lý camera đề quản lý các camera đang sử dụng Người dùng có
Trang 30Chương 3 Phân tích và thiết kế
camera được lắp đặt Nếu có thay đổi về thông tin của camera, người dùng có théchỉnh sửa thông tin này Đối với trường hợp camera bị hư hỏng hoặc ngừng hoạtđộng, người dùng có thể xoá bỏ camera đó bằng chức năng xoá
Chức năng thêm camera dùng dé thêm một camera mới vào trong hệ thống bằngcách nhập thông tin của camera, bao gồm: tên camera, mã camera, vi trí đặt camera,hình ảnh của camera và ghi chú (nếu có) Sau khi thêm camera mới, người dùng cóthể quản lý và sử dụng camera này trong các chức năng khác của hệ thống
e = Xem lại lịch sử giao thông
Chức năng xem lại lịch sử giao thông mang đến khả năng xem lại tình hình giaothông tại 1 địa điểm và thời điểm nào đó Người dùng cần chọn địa điểm và thời gianmuốn xem lại Sau đó, người dùng sẽ có thể xem chính xác thông tin về các phươngtiện đã đi qua đó bao gồm biển số xe và hình ảnh của chúng tại thời điểm đó Chứcnăng này giúp người dùng nắm được tình hình giao thông trước đó và đưa ra cácquyết định ở tương lai
Trang 31Chương 4 Thực hiện và triển khai hệ thống
Chương4 :
THỰC HIỆN VÀ ĐÁNH GIÁ
Chương cung cấp 1 số hình ảnh cho việc triển khai hệ thống Ngoài ra, các đoạn
mã chính cũng được đưa ra đề giải thích cách hiện thực của ứng dụng và đánh giá kết
khác nhau.
3m @ H9 # @ %$(
©wlogtoertea @ moedoslnpC 2 Howcinlgenent Z2 choưnn > | Bom
@ Thanh phd H6Chi Minn Việt © 21/08/2025 | 21-00 28/06/2025 | 20:00
&) (@ xegamgae ) ( Vÿ chủxe5sao@ ) (@ miéntnéchip © ` ( Đặtenhanh© ) ( © Bảohiếmchuyểnđi@ ) ( toaixe > Í Z BQlạe
` ` siướng `
HYUNDAI SANTA FE 2021 ©) VINFASTFADIL2019 © MORRISGARAGESMGSLUXU ©) HONDACITY2020 ©)
S0 chai #so cgấ 5.027 50 st
9 oun tranh Hor 9 om ° 7 9oAne
HYUNDAI ACCENT2019 1 HYUNDAI ACCENT2020 -) 3 MITSUBISHI ATTRAGE 2020 ©)
Hình 4.1 Trang chu trang cho thuê 6 tô mioto.vn
Chương trình thu thập hình ảnh được xây dựng bằng Javascript, ChromeExtensions API với các bốn bước chính như sau:
Bước 1: Kiểm tra số lượng ảnh đã tải với số lượng ảnh mong muốn nhận được
Trang 32Chương 4 Thực hiện và triển khai hệ thống
Bước 2: Tiến hành lấy đường dẫn hình ảnh ô tô thông qua API mà trangmioto.vn cung cấp
Bước 3: Dùng API mà Chrome Extension cung cấp dé tải xuống ảnh từ đườngdẫn đã lấy được ở bước 2 về máy tính
Bước 4: Cập nhật lại điều kiện
Hình 4.2 Doan mã thực hiện việc tải anh 6 tô
Trang 33Chương 4 Thực hiện và triển khai hệ thống
Kết quả thu được là 2365 ảnh ô tô trong đó có 373 ảnh không chứa bién số xe 6
Hình 4.3 Minh họa nội dung ảnh được gan nhãn từ tệp K2BI86.xml
Để có thé gan nhãn, dé tai sử dụng công cụ miễn phí labellmg được xây dựng bằng ngôn ngữ Python dé tiến hành mở ảnh sau đó dùng chuột dé xác định và vẽ vị trí mà biển số xe xuất hiện trong ảnh.
Trang 34Chương 4 Thực hiện và triển khai hệ thống
Hình 4.4 Công cụ gan nhãn mã nguồn mở miễn phí labellmgKết quả thu được là 1750 tệp ảnh đã được gán nhãn trong đó có 1473 tắm hìnhđược chụp ở góc chính diện, 130 tắm hình được chụp ở góc xéo bên phải, 147 tắm
hình được chụp ở góc xéo bên trái.
130 ảnh lệch phải
Hình 4.5 Vị trí của biển số xe
Trước khi ảnh được đưa vào mô hình nhận diện thì phải được thay đổi kích thước và
được chuân hóa:
Hình 4.6 Đoạn mã thẻ hiện các công việc tiền xử lý ảnh.
Trang 35Chương 4 Thực hiện và triển khai hệ thống
4.2 Huan luyện mô hình
4.2.1 Hiện thực mô hình RetinaNet
Mô hình RetinaNet [8] được xây dựng trên bộ trích xuất đặc trưng ResNet50 va FPN Nhưng BigDL chưa cung cấp san mô hình RetinaNet dé có thé sử dung Do đó cần phải hiện
thực lại mô hình với ba bước chính như sau:
Bước 1: Khởi tao mô hình với dau vào là 1 ảnh ở dạng tensor và dau ra là kêt quả của
convolutional ở bước 3, 4, và 5 của mạng ResNet50.
.aÐblicat1lons.ResNet50 (
, input_sutput, c4Output, c5Ou =
Trang 36Chương 4 Thực hiện và triển khai hệ thống
keras layers Conv2D, UpSampling2D
FeaturePyramid(keras.layers.Layer):
def init (self, backboneResnet50=None, **kwargs) :
super() init_ (name="FeaturePyramid", **kwargs) self.backboneResnet50 = backboneResnet50
backboneResnet50 xayDungBackboneResnet50 ()
self.convC3 1 1 = Conv2D(256, 1, self.convC4 1 1 Conv2D (256,
(
Do ^ )
fF call(self, images, training=False) :
c30utput, c4Output, c5Output = self backboneResnet50 (
images, training=training) p30utput = self.convC3 1 1(c30utput
p40utput 2 self -conavC24\1 (C40100.
poOutput self.convC5 1 1(c5Output) p40utput p40utput + self.upsample2x (p50utput)
p30utput p30utput + self.upsample2x (p4Output)
p30utput self.convC3 3 3(p30utput) p40utput self.convC4 3 3(p4Output) psOutput self.convC5 3 3(p50utput)
( (
) )
Đ6Output self.convC6 3 3(c5Output)
p/Output self.convC7 3 3(t£.nn.relu(p6Output) )
p30utput, p4Output, poOutput, pe6Output, p/7Output
Hình 4.8 Doan mã hiện thực FPN
Bước 3: Kết hợp các kết quả từ bước 1 và 2 dé xây dựng lớp RetinaNet
Trang 37Chương 4 Thực hiện và triển khai hệ thống
rflow import constant initializer, import log
class RetinaNet (keras.Model):
def init (self, soLop, backboneResnet50=None,
*xkwargs):
self.fpn = FeaturePyramid (backboneResnet50) self.soLop = soLop
self.lop = buildHead(9 * soLop, khaNang) self.viTri = buildHead(9 * 4, )
call(self, anh, training=False) :
features-=.selL£.£bn(anh; kraining=training)
N shape (anh) [0]
duDoanLop = duDoanVitri = []
for feature in features:
duDoanVitri.append(reshape (self.viTri (feature),
duDoanLop append (
reshape (self.lop(feature), [N, -1, self.soLop])
)
duDoanLop = tf.concat(duDoanLop, axis=1) duDoanVitri = tf rat (duDoanVitri, axis=1)
return tf.concat([duDoanVitri, duDoanLop], axis=-l)
Hình 4.9 Doan mã hiện thực lớp RetinaNet
4.2.2 Huấn luyện
Sau khi hiện thực được mô hình RetinaNet, bước tiếp đó là huấn luyện mô hình trên
máy tính Acer Nitro AN515 — 57 theo 4 bước sau:
Bước 1: Thiết lập phương thức huấn luyện dé tận dụng tối đa phần cứng
Trang 38Chương 4 Thực hiện và triển khai hệ thống
object store memory="10g")
Hình 4.10 Cài đặt phương thức huấn luyện trên máy tinh Acer Nitro AN515 - 57
Bước 2: Hoàn chỉnh khởi tạo mô hình bằng việc lựa chọn thuật toán tối ưu, sử dụng
trọng sô đã được huân luyện từ trước nêu có.
keras.optimizers def khoiTaoMoHinh (cauhinh) :
# dung model tw
# Hiện thực mô hình Retine
backboneResnet50 = xayDungBackboneResnet50 () lossFN RetinaNetLoss (soLop)
RetinaNet (soLop, backboneResnet50)
thi vi huan luyện 3 Ven so với các t Oán tôi ưu khác
Hinh 4.1 Doan ma hoan thién cai dat m6 hinh
Bước 3: Chuẩn bị dữ liệu đầu vào mô hình Trước đó bộ đữ liệu được gán nhán đã được
chia làm 3:
- Dé liệu huấn luyện gồm 1225 ảnh tương đương với 70% bộ dit liệu.
- Di liệu validation gồm 350 ảnh tương đương với 20% bộ dit liệu.
- Di liệu kiểm tra gồm 175 ảnh tương đương với 10% bộ dữ liệu.