Đối tượng nghiên cứu: Hệ thống giám sát phương tiện giao thông áp dụng trí tuệ nhân tạo thực thi trên các thiết bị biên ứng dụng trong hệ thống giao thông thông minh.. mô hình học sâu ph
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG
DINH DUC LIEM NGUYEN HONG NAM
KHOA LUAN TOT NGHIEP
TRAFFIC FLOW CALCULATING SYSTEM
USING AI CAMERA
KỸ SƯ NGANH TRUYEN THONG VA MẠNG MAY TÍNH
TP HO CHi MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA MANG MAY TINH VA TRUYEN THONG
DINH DUC LIEM - 17520678NGUYEN HONG NAM - 17520779
KHÓA LUẬN TOT NGHIỆP
HỆ THÓNG GIÁM SÁT LƯU LƯỢNG GIAO THONG SU DỤNG CAMERA THONG MINH
TRAFFIC FLOW CALCULATING SYSTEM
USING AI CAMERA
KY SU NGANH TRUYEN THONG VA MẠNG MAY TÍNH
GIANG VIEN HUONG DAN
TS LE KIM HUNG
ThS NGUYEN KHANH THUAT
TP HO CHÍ MINH, 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
n8ầY của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4ĐẠI HỌC QUOC GIA TP HO CHÍMINH CONG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP HCM, ngày tháng 07 năm 2021
NHAN XÉT KHÓA LUẬN TOT NGHIỆP
(CUA CAN BỘ HƯỚNG DAN)
Tên khóa luận:
HỆ THÓNG GIÁM SÁT LƯU LƯỢNG GIAO THÔNG
SỬ DỤNG CAMERA THÔNG MINH
TRAFFIC FLOW CALCULATING SYSTEM
USING AI CAMERA
Nhóm SV thực hiện: Cán bộ hướng dẫn:
Đinh Đức Liêm 17520678 TS Lê Kim Hùng
Nguyễn Hồng Nam 17520779 ThS Nguyễn Khánh Thuật
Đánh giá Khóa luận
1 Về cuốn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một sô nhận xét về hình thức cuôn báo cáo:
2 Vê nội dung nghiên cứu:
3 Về chương trình ứng dụng:
Trang 54 Vé thái độ làm việc của sinh viên:
Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp
kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình
Diém từng sinh viên:
Trang 6ĐẠI HỌC QUỐC GIA TP HỎ CHÍ MINH CONG HOA XÃ HOI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP HCM, ngày tháng 07 năm 2021
NHAN XÉT KHÓA LUẬN TOT NGHIỆP
(CUA CÁN BO PHAN BIEN)
Tên khóa luân:
HỆ THÓNG GIÁM SÁT LƯU LƯỢNG GIAO THÔNG
SỬ DỤNG CAMERA THÔNG MINH
TRAFFIC FLOW CALCULATING SYSTEM
USING AI CAMERA
Nhóm SV thực hiện: Cán bộ phản biện:
Dinh Đức Liêm 17520678
Nguyễn Hồng Nam 17520779
Đánh giá Khóa luận
1 Về cuốn báo cáo:
Số trang Số chương
Sô bảng sô liệu Sô hình vẽ
Số tài liệu tham khảo Sản phẩm
Một sô nhận xét về hình thức cuôn báo cáo:
2 Về nội dung nghiên cứu:
3 Về chương trình ứng dụng:
Trang 74 Về thái độ làm việc của sinh viên:
Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp
kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình
Điểm từng sinh viên:
Dinh Đức Liêm - H0
Nguyễn Hồng Nam - 0
Người nhận xét
Trang 8Lời Cảm Ơn
Lời đầu tiên, chúng em xin trân trọng cảm ơn quý thầy, cô đang công tác vàgiảng dạy tại khoa Mạng máy tính và Truyền thông, cũng như toàn thể thầy, cô kháccông tác tại trường Đại học Công nghệ Thông tin - ĐHQG Tp.HCM đã truyền đạtnhững kiến thức, bài học, kinh nghiệm quý báu cho chúng em trong suốt quãng thờigian bốn năm vừa qua Và đã sắp xếp thời gian, chương trình hợp lý để chúng em có
cơ hội hoàn thành khóa luận tốt nghiệp tốt nhất Chúng em xin kính chúc khoa Mangmáy tính và Truyền thông nói riêng và trường Đại học Công nghệ Thông tin nói chungluôn thành công rực rỡ trên con đường giảng dạy đào tạo nhân tài, sẽ mãi là niềm tinvững chắc cho các thế hệ sinh viên trên con đường giáo dục
Đặc biệt, chúng em xin gửi lời cảm ơn chân thành nhất đến giảng viên, TS LêKim Hùng Nhờ những kinh nghiệm, bài học quý báu được chia sẻ từ thầy, thầy đãluôn quan tâm và giúp đỡ chúng em giải quyết những vấn đề phát sinh, khó khăntrong quá trình thực hiện Nhờ có thầy, chúng em đã có cơ hội hoàn thành tốt khóaluận tốt nghiệp này Chúng em cũng xin gửi lời cảm ơn đến giảng viên, Th§ NguyễnKhánh Thuật đã hỗ trợ chúng em trong suốt quá trình thực hiện luận văn tốt nghiệp
vừa qua.
Tiếp theo, chúng em xin cảm ơn về phía gia đình đã luôn luôn tin tưởng, độngviên chúng em trong suốt quá trình học tập tại trường Đại học Công nghệ Thông tin
- ĐHQG Tp.HCM, giúp chúng em có thêm nguồn năng lượng dé đi đến được như
ngày hôm nay.
Cuối cùng, nhóm chúng em xin gửi lời cảm ơn đến các anh, chị và các bạn
sinh viên tại trường Dai học Công nghệ Thông tin - ĐHQG Tp.HCM đã luôn nhiệt
tình hỗ trợ, chia sẻ ý kiến và góp ý cho chúng em trong quãng thời gian thực hiện
khóa luận.
TP Hồ Chí Minh, ngày tháng 07 năm 2021
Nhóm tác giả
Trang 9ĐẠI HOC QUOC GIA TP HO CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh PhúcCÔNG NGHỆ THÔNG TIN
DE CƯƠNG CHI TIẾT
TÊN ĐÈ TÀI:
HỆ THONG GIÁM SÁT LƯU LƯỢNG GIAO THONG
SỬ DỤNG CAMERA THÔNG MINH
TRAFFIC FLOW CALCULATING SYSTEM USING AI CAMERA
Cán bộ hướng dẫn: TS Lê Kim Hùng, ThS Nguyễn Khánh Thuật
Thời gian thực hiện: Từ ngày 01/03/2021 đến ngày 29/07/2021
Sinh viên thực hiện:
Dinh Đức Liêm - 17520678
Nguyễn Hong Nam - 17520779
Nội dung đề tài:
Mục tiêu nghiên cứu:
e Tìm hiểu về trí tuệ nhân tạo (AI — Artificial Intelligence) và ứng dung của AI vào thực
tiễn trong cuộc sống, cụ thể trong khóa luận là ứng dụng trong hệ thống giao thông thông
minh.
e Tìm hiểu về các thiết bị biên cũng như là cơ chế dé tăng tốc độ tính toán các mô hình học
sâu phát hiện đối tượng trên thiết bị
e Tìm hiểu về thuật toán dé theo vết đối tượng cũng như đếm và xác định hướng di chuyên
của các loại phương tiện giao thông trong những vùng quan sát đã định trước.
e Thử nghiệm và xây dựng hệ thống giám sát phương tiện giao thông áp dụng trí tuệ nhân
tạo thực thi trực tiếp tại các thiết bị biên
Đối tượng nghiên cứu: Hệ thống giám sát phương tiện giao thông áp dụng trí tuệ nhân tạo
thực thi trên các thiết bị biên ứng dụng trong hệ thống giao thông thông minh
Pham vi nghiên cứu: Các thiệt bị biên phô biên cho các ứng dụng AI và các cách tôi ưu các
il
Trang 10mô hình học sâu phát hiện đối tượng nhằm tăng tốc độ tính toán trên thiết bị, các thuật toán
theo vết đối tượng, đếm và xác định hướng di chuyên của phương tiện trong những vùng quan
sát.
Phương pháp thực hiện:
e Cơ sở lý thuyết:
- Xây dựng mô hình hoạt động của hệ thống giám sát phương tiện giao thông thực thi trên
các thiệt bị biên và so sánh với mô hình tính toán trên đám mây truyén thông.
- Chay thử các mô hình phát hiện đối tượng phổ biến trên các video giao thông tại Việt
Nam và đưa ra đánh giá sơ bộ.
e Xây dựng tập dữ liệu về các phương tiện giao thông tại Việt Nam:
- Tiến hành thu thập các video về giao thông tại Việt Nam Các video sẽ được cắt thành
các frame anh và sử dụng công cụ labellmg dé dán nhãn các phương tiện giao thông có
trong frame ảnh.
e Xây dựng hệ thống giám sát phương tiện giao thông trên thiết bị biên:
- Tìm hiểu và cài đặt môi trường (Anaconda, Python, TensorFlow, )
- Tién hành huấn luyện trên tập dữ liệu, tìm ra mô hình tốt nhất có thể phát hiện các
phương tiện giao thông nhưng cũng đảm bảo ứng dụng có thể thực thi theo thời gian
thực.
- Áp dụng các mô hình đã huấn luyện tìm được dé xây dựng hệ thống đếm phương tiện
giao thông tại các thiết bị biên
Kết quả mong đợi:
e Báo cáo tông hợp về hệ thống áp dụng trí tuệ nhân tạo trong việc phát hiện các phương
tiện giao thông tại thiết bị biên
e Bộ dữ liệu được thu thập riêng cho hệ thống, hỗ trợ các nghiên cứu sau này
° Xây dựng và thử nghiệm hệ thống giám sát phương tiện giao thông với chi phí thấp trên
thiết bị biên Từ đó hỗ trợ hiệu quả trong việc giám sát, phân luồng giao thông một cách
hiệu quả, giúp giảm tình trạng tắc nghẽn
1H
Trang 11Công nghệ liên quan đến đề tài:
e Sử dụng công cụ labellmg dé dán nhãn dữ liệu thu thập được
e Sử dụng các framework TensorFlow, Pytorch, Darknet dé huấn luyện các mô hình trên
tập dữ liệu.
Tính mới đề tài: Áp dụng các mô hình phát hiện đối tượng, thuật toán theo vết và đếm cácphương tiện giao thông trên các thiết bị biên hạn chế về tài nguyên tính toán Cách tiếp cậnnày giúp giảm chỉ phí xây dựng hệ thống, bảo đảm an toàn dữ liệu cũng như khắc phục đượcđiểm yếu của mô hình tính toán trên đám mây truyền thống là độ trễ truyền đối với các ứngdụng thực thi theo thời gian thực và có thê xử lý đữ liệu phân tán thay vì tập trung trên các
máy chủ đám mây.
Kế hoạch thực hiện:
Thời gian Công việc Phân công
20/03/2021 về công nghệ trí tuệ nhân tao, python, opencv,
các framework như tensorflow, pytorch, Nguyễn Hồng Nam —
17520779
Choy àm———t Trên CoralDev | Dinh Đức Liêm —
hiện đôi tượng sẵn có như Board 17520678
21/03/2021 - SSD MobileNet v2,
31/03/2021 Yolov5, trên các video - ;
Nguyên Hong Nam — 17520779
giao thông tại Việt Nam va | Trên Jetson Nano
đưa ra đánh gia sơ bộ.
Thu thập và đán nhãn dữ liệu về các phương Định Đức Liêm —
tiện giao thông tại Việt Nam Từ tập dữ liệu đã | 17520678
Trang 1216/04/2021
-15/05/2021
Tiến hành huấn luyện, mô
hình hóa tập dữ liệu Tĩnh chỉnh mô hình và tìm ra mô
hình tốt nhất cho hệ thống
Mô hình phát hiện đối
tượng sau khi được huấn
luyện phải được chuyên
đổi qua các định dang phùhợp đề tận dụng phần cứngcủa thiết bị biên nhằm tăng
tốc độ tính toán
Trên Coral Dev
Board, các mô
hình phải được quantization-
“lượng tử hóa”
hoàn toàn sang
dạng int8 dé tậndụng tốc độ tính
toán trên tpu.
Định Đức Liêm — 17520678
Trang 13-hiệu quả thiết bị và đữ liệu.
Xây dựng Mobile App dé hién thị và quan lý Nguyễn Hồng Nam
-17520779
02/07/2021 29/07/2021
-Chuân bị bảo vệ khóa luận.
Hoàn thành khóa luận.
Định Đức Liêm 17520678
Sinh viên 1 Sinh viên 2
Đinh Đức Liêm Nguyễn Hồng Nam
VI
Trang 14DINH DUC LIEM 0 e 1
NGUYEN 8.00)0c1 3 Ấ 1
NHAN XET KHOA LUAN hoàn c1 1A8 4
NHAN XET KHOA LUAN hin c2 000105857 6
NGƯỜI NHẬN XẾT - Gv 7 LOT CAM ON 0Š 1
›39/ecs bia 2
MỤC LUC - - G CS 00000 gọn 00 00000000 4:0 0004900990809 000 0109409808099 8808 6 DANH MUC HINH A2001 P1878 ốố 8
j0 80/7) c0 10
DANH MỤC TỪ VIET TẮTT - ©- © Set E 91911 9151511913148 18 881919819110 92919 15196 xkE 11 98/104 /97.01/) 010005057 1
CHƯƠNG1 MỞĐẦU s oto HT HH1 H11011111111011111111011.111111111111011111111011.1a11 2 1.1 u13: k- ốốẽố ‹x¬ ¬ốéẽ ` 2
1.2 2087 >) //đ < 1
1.3 MỤC TIÊU CUA ĐỀ TÀI eS, 1.4 ĐỐI TƯỢNG VA PHAM VI NGHIÊN CUU ccceccccsscccsscccsssccsscccensccesssccesscccasccesseccesseceasecesueceaseseeseseesssccssecessseceasecensecesaeeeenes 4 I5 0n nn số n aDỤ 4
1.4.2 Phạm vi ng ÌHÊH CÍPH óc 99111 HH HH HT TT Tu HT TT Tu Tu TT TT TT TT 1 1e 4 CHU'O'NG 2 — CO’ sa a6 666 ẻ 5
2.1 TONG QUAN VE SINGLE BOARD COMIPUTER: G222 221121158 853E1 31111111 131111 111 0111011111 T101 0111101 H11 01T Hiệp 5 2.1.1 Google Coral Dev BOdrd - - St 1h Thành TH TH Hà Tà Tàn Tư Hà Tà cưng trệt 5 PP N08 /0/ n6 e 6
2.2 ỨNG DỤNG Al TREN CAC SINGLE BOARD COMPUTER . ¿52222262 9SEEEESEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEETEEEETETErrkrkrrerre 8 2.2.1 Tổng quan về “Deep learning” 8 2.2.2 Mạng nơ-ron tích chập — Convolutional Neural Networks (CNN) và ứng dụng trong xử ly ảnh 9
2.2.3 Tổng quan về “Transfer ÏeqFHÌHB” 5c tt HE HH ng 11g 11 2.2.4 Các model deep learning tương thích với Coral Dev BOđFi - th nh nh ng rh rrưg 12 2.2.5 Các model deep learning tương thích với Nvidia Jetson ÏNHHO HH HH tr, 15 2.3 9.190 — dâdầd-3 19
VN 8ø nố ố 20
2.4 9290 011 1A1 re 21 CHƯƠNG 3 KIẾN TRÚC CUA HỆ THỐNG GIÁM SÁT LƯU LƯỢNG GIAO THONG 55c 5c++cscsscesesseree 24 3.1 W9 Ic90 00/244 3)0( 00.0 can -“-d.a 24
3.2 SO DO LUONG XU LY DU LIEU ANH TREN THIET BI BIEN 0088 e 27
3.3 CAC MODEL DEEP LEARNING PHÁT HIEN PHƯƠNG TIEN GIAO THONG cscsscscscescseescsscsesecsesecseseesesecsesecstsecsesecseeesseeeeseeees 28 3.3.1 277/2 P 28
3.3.2 Single Shot MultiBox Ì€f€CÉOTS 5 TH TH HH TT TH TH nh Hàn TT Tà TH Tà Tà Tàn nhàn 30 3.3.3 Thuật toán theo vết doi tượng SORT "_- 31
3.3.4 Thuật toán đêm phương tiện và xác định hướng di chuyên của chúng trong vùng quan sát 33
CHU'O'NG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1 PHAN TICH 0e 00120009271 .3 37
VI
Trang 154.2 CHỈ SỐ SỬ DỤNG ĐỂ ĐÁNH GIÁ HIỆU SUẤT CUA CÁC MODEL ¿22222218831 193E5191 E1 11121111511 1111 1111111011 xr+
4.3 KẾT QUA ĐÁNH GIÁ MODEL PHAT HIỆN ĐỐI TƯỢNG TREN CHẠY TREN THIẾT BỊ BIEN .
4.3.1 Trên Coral Dev Board.
4.3.2 Trén Jetson Nano
4.4 KET QUA THU NGHIEM CUA THUAT TOÁN DEM PHƯƠNG TIE:
4.5 TRIEN KHAI THỰC TE THIET BỊ LG 2E 22112111938 1511 11 118 3113 1 11 111 11113 1T TH TC HE
CHƯƠNG 5 TỔNG KẾT VÀ HƯỚNG PHÁT TRIẾN - ©- ®S<SeEESEEEEEEEEEEEESEEEEE3EESEESEEEEEkEEErkerksrsersrree 63
5.1 KET QUA DAT ĐƯỢC
5.2 HƯỚNG PHATTRIEN
TÀI LIEU THAM KHAO
Trang 16DANH MỤC HÌNH VE
Hình 2.1 Google Coral Dev BOaT .- - - - c 1119101119111 910 19101 19 1119 HH ng 6 Hình 2.2 Nvidia Jetson Nano - s11 912 TH ng HH HH Hi hà 6 Hinh 8/0 1-0i1i9i0i1::iär nh 8
Hình 2.4 Luéng CNN dé xử lý hình ảnh đầu vào va phân loại dựa trên giá trị 10Hình 2.5 Minh họa một kernel đang trích xuất đặc trưng từ hình ảnh - 10Hình 2.6 Minh hoa hoạt động Max Pooling cho dữ liệu 2 ChiỀU 5-5: cccccccxzxsrerrtsrrrs 11
Hình 2.7 Kỹ thuật fine tuning trong transfer Ï€aTTn1TE - . s5 + + E+EsekEseeseessersrke 12
Hình 2.8 Quy trình làm việc cơ bản dé tạo ra một model tương thích với Edge TPU 13Hình 2.9 Node ‘wt quant’ va ‘act quant’ được thêm vào model dé thực hiện cho việc chuyểnđôi hoàn toàn sang integer §-bitL -¿- 2: ©2+2222EE22EE2EE223122112712112711271211 21111 21crxee 14
Hình 2.10 Tổng quan về TensorRTT 2 2 ¿+ x+S+EE£EE+EE2E£+E£EEEEEEEEEEEEEEEEEEEEEEErkerkrrkrree 15
Hình 2.11 Luồng xử lý chuyên đổi model trong TensorRTT 2-2 s2 2+s2+s£++zs+£s+se2 16Hình 2.12 Lưu đồ quy trình tối ưu hóa và trién khai model trong TensorRT 18Hình 2.13 Các phương pháp dé chuyên đổi từ TensorFlow sang TensorFlow Lite 21Hình 3.1 Tống quan kiến trúc của hệ thông giám sát phương tiện giao thông trên thiết bị biên
— Í ` ẻẽ <“ ỐỐốốố 25
Hình 3.2 Tổng quan kiến trúc hệ thống cho ứng dung di động 2 - 5 s22 26Hình 3.3 Sơ đồ khối mô tả luồng xử lý dữ liệu ảnh trên thiết bị biên 2-2 52 27Hình 3.4 Kiến trúc mạng YOLO - 2-2: 2£ ©S£+2+22EE2EEEEEEEEEE22121127112212212112212 2212 xe 28Hình 3.5 Kiến trúc mạng MobileNet-SSD 2-2: 2© £+E£+EE£EEEEEEE2EEEEEEEEEEEEEEcrkrrree 30Hình 3.6 Sơ đồ khối mô tả luồng xử lý dit liệu trong SORT dé theo dõi đối tượng giữa các
Hình 3.7 Cơ chế được sử dụng dé kiểm tra xem một bounding box có bên trong ROO hay
Hình 3.8 Công thức tính Cosine Similarity SŠCOf€ ee «5 5 3k1 ng giết 34
Hình 3.9 Minh họa tính toán điểm tương đồng cosine trong ngữ cảnh đường một hoặc hai
Hình 3.10 Minh họa phương pháp tính khoảng cách tối thiểu trong các ngữ cảnh tại các giao
vill
Trang 17,ÔỎ 36
Hình 4.1 Những ngữ cảnh khác nhau lấy từ VDD với ROO và DOM được xác định trước 38
Hình 4.2 12 thông số được sử dụng đề đánh giá hiệu suất của các models phát hiện đối tượng
trên tập dữ liệu MS COCO - QHHHHHHH HH H HHg Hệt 39
Hình 4.3 Công thức tinh ty lệ lỗi của thuật toán đếm -2- 2 +¿+++++++zx++zxzzxeez 40
Hình 4.4 Mô tả quá trình biên dịch từ Tflite sang EdgeTPU TÍlite -<+-<+2 43
Hình 4.5 Biểu đồ độ chính xác của model SSD MobileDet trong quá trình training 45Hình 4.6 Biểu đồ Loss của model SSD MobileDet trong quá trình training - 45
Hình 4.7 Tương quan giữa độ chính xác va fps của các models khi chạy trên Jetson Nano 48
Hình 4.8 Kết quả theo vết phương tiện thực thi trên Coral Dev Board đối với video 06 thuộc
bG dit ligu Ganh Gia ooo eee ÕÕ 49
Hình 4.9 Hình ảnh triển khai hệ thống trong thực t6 c.cccscccsscessesssesssesssesstessesssessesstesseesses 50Hình 4.10 Góc quay camera thực tế từ hệ thống + 2s +E+EE+EE+EE+EE2E£EerEerkerxerxrree 51Hình 4.11 Kết qua đếm phương tiện theo hướng di chuyên hiền thị trên dashboard 51Hình 4.12 Điều khiển bo mạch thông qua giao điện web -. ¿ ¿s¿©++cx++zxzzxzez 52
Hình 4.13 Cac records được lưu lai trong database 5 + c* St strsrirrererrrrrrrree 53
Hình 4.14 Hình ảnh lưu lại khoảnh khắc phương tiện rời khỏi vùng ROO 53
Hình 4.15 Sơ đồ Usecase ứng dụng VNTraffic c.ccecceccccsessesssessessessssssessessesssessessessessesseeseaes 54
Hình 4.16 Bang mô ta các thành phan trong Usecase cccceccessssssseesessessessesssssessesseesessesseaee 55
Hình 4.17 Giao diện dang ký va dang nhập vào app eeeeesceeceeseeeceeeceeseeeseeeseeeeeeaeeeaeeees 56
Hình 4.18 Giao diện quên mật Khau cceccecceccecsessesssessessesssssessessessssssessessecsusssessessessssseeseeses 57
Hình 4.19 Giao diện trang ChủỦ - - - - s 111211931 011 ng HH ng 58 Hình 4.20 Giao diện Camera ccccccccsssccssscccseseccesseccseseccseseeccesseeesessesesseeesesseeesesesessssesesesaes 59 Hình 4.21 Giao diện Real-time traÍẨTC - << E333 2211118E11E5531 1181119552311 E852 re 60
Hình 4.22 Giao diện Log mỗi ngày ¿+ ¿6 £+E+SE+E£EE+EEEESE2EEE121E2121711121 211211 cre 61
Hình 4.23 Giao diện trang thông tin người dùng và giới thiệu ứng dụng 62
1X
Trang 18DANH MỤC BANG
Bảng 2.1 So sánh thông số kỹ thuật giữa Jetson Nano và Coral Dev Board - 7Bảng 4.1 Kết quả thí nghiệm của các model phát hiện đối tượng chạy trên Coral Dev
Bảng 4.2 Ty lệ tương thích giữa các models với Edge TPU 5s s<£<<<sessesss 44
Bảng 4.3 Kết quả thí nghiệm của các model phát hiện đối tượng khi chạy trên Jetson
Trang 19DANH MỤC TU VIET TAT
TU NOI DUNG DIEN GIAI
ITS Intelligent Transportation System Hệ thống giao thông thông minh
IOT Internet of Things Internet van vat
AI Artificial Intelligence Tri tué nhan tao
VTCS Video-Based Traffic Counting System Hệ thống đếm lưu lượng dựa trên video
SBC Single Board Computer May tinh don bo mach
TPU Tensor Processing Unit Don vi xu ly tensor
GPU Graphics Processing Unit Don vị xử ly đồ họa
SOM System-On-Module Hệ thống trên mô-đun
ML Machine Learning May hoc
DL Deep learning Hoc sau
VDD Vehicle Detection Dataset Tap dữ liệu phát hiện phương tiện giao
thông
ROO Region of Observation Vùng quan sát
DOM Direction of Movement Hướng di chuyên
XI
Trang 20TOM TAT KHÓA LUẬN
Trong những năm gần đây chứng kiến sự gia tăng đáng ké về số lượng phươngtiện giao thông đã đặt cơ sở hạ tầng giao thông và việc kiểm soát giao thông dưới áp
lực rất lớn Việc cung cấp thông tin về lưu lượng giao thông kịp thời và chính xác là
điều rất cần thiết trong việc phát triển các chiến lược giám sát giao thông Nhận thấy
được vấn đề này, nhóm chúng em đã tiến hành nghiên cứu một hệ thống giám sát lưu
lượng giao thông thông minh chạy trực tiếp trên các thiết bị biên với chỉ phí thấp tíchhợp các model phát hiện đối tượng dé thực hiện phát hiện, theo dõi và đếm các loạiphương tiện, khắc phục điểm yếu của mô hình tính toán trên đám mây truyền thống
như độ trễ truyền đối với những ứng dụng thực thi theo thời gian thực và có thê xử lý
dữ liệu phân tán thay vì tập trung trên các máy chủ đám mây như trước đây Kết quảchạy thực nghiệm trên hai bo mach đại diện phô biến cho các ứng dụng AI là GoogleCoral dev board (Edge TPU coprocessor) va Nvidia Jetson Nano (GPU) cho thấyphương pháp được đề xuất có kha năng đếm được lưu lượng các phương tiện giao
thông với độ chính xác cao trong thời gian thực.
Với những thành quả nghiên cứu được trong luận văn, chúng em mong muốn
sẽ tiếp tục xây dựng và hoản thiện hệ thống hoàn hảo hơn, thực hiện những đánh giákhách quan, chính xác hơn đối với phương pháp được dé xuất , góp phần nhỏ trongviệc thống kê lưu lượng giao thông một cách hiệu quả, giảm thiêu tắc nghẽn bangviệc xây dựng một hệ thống giám sát giao thông thông minh với kinh phí hợp lý
Trang 21Trong những năm qua, hệ thống giao thông thông minh - intelligent
transportation system (ITS) đã trở thành một nhánh cơ bản trong việc xây dựng thành
phố thông minh, đóng vai trò thiết yếu trong quy hoạch, quản lý và mức độ an toàncủa hệ thống giao thông công cộng Một ITS điền hình đóng vai trò như một bộ phântích lưu lượng giao thông, ước tính số lượng xe trên đường trong một khoảng thờigian cụ thé Những thông tin về lưu lượng giao thông thu được rất hữu ích trong việc
dự đoán tình trạng giao thông hiện tại (ví dụ: mật độ giao thông, mức độ tắc nghẽn)
hoặc thông bao về các sự kiện bất thường (ví dụ: tắc đường, chiếm làn đường) Từ đó
có thé ứng dụng trong việc điều chỉnh thời gian của đèn tín hiệu giao thông, được tinh
toán một cách thích ứng với thông tin lưu lượng giao thông hiện tại từ các giao lộ,
qua đó giúp giảm tắc nghẽn Do đó, đếm số lượng phương tiện giao thông là một
thành phần không thê thiếu của ITS để cải thiện hiệu quả giao thông
Thực tế hiện nay việc sử dung rộng rãi Internet of Things (IoT) nhằm kết nối
mọi đối tượng vật lý với Internet, xây dựng một môi trường kết nối từ mạng cảm biến
không dây đã và đang đối mặt với nhiều thách thức lớn và vẫn còn xa rời thực tế [1].Các cảm biến đặc biệt (vi dụ: cuộn day từ tính, phát hiện siêu âm) thường được triển
khai dọc theo bên đường đề quan sát tình trạng giao thông Tuy nhiên, việc triển khaicác cảm biến này đòi hỏi chi phí đắt đỏ và sự thay đôi trong cơ sở hạ tang giao thông
Dữ liệu từ cảm biến rất có thé bị hạn chế cả về số lượng và chất lượng do các vấn đề
về đường truyền (ví dụ, bị ngắt kết nối, bị can thiệp bởi các yếu tố môi trường) [2].
Do đó, việc đếm lưu lượng giao thông từ các camera giám sát chi phí thấp đã nồi lênnhư một ứng cử viên cho việc tự động hóa điều khiển ludng giao thông trong ITS nhờ
Trang 22tận dụng sự phát triển vượt bậc của công nghệ trí tuệ nhân tạo - artificial intelligence(AI) trong lĩnh vực thị giác máy tính So với phương pháp dựa trên các cảm biến, hệthống đếm lưu lượng dựa trên video - video-based traffic counting system (VTCS)không chi đơn giản hóa quy trình triển khai và bảo trì mà còn tích hợp liền mạch với
AI đề phát hiện, theo dõi, xác định từng phương tiện và hành vi của nó Ví dụ, ứngdụng nhận dạng theo dõi phương tiện sử dụng AI để xác định thông tin của chủphương tiện thông qua nhận dạng biển số xe Do đó, một VTCS sử dụng AI sẽ vô
cùng hữu ích trong bộ phân tích lưu lượng giao thông của ITS.
Mặc dù việc tích hợp AI vào ITS theo mô hình tính toán tập trung trên đám mây
đã thu hút được nhiều sự chú ý từ các nhà nghiên cứu trong nhiều năm qua, nhưng nóvẫn gặp phải vô số thách thức để đáp ứng các yêu cầu của một hệ thống giao thôngthông minh: (1) Truyền dữ liệu đã thu thập từ các thiết bị đầu cuối sang đám mây sẽ
mat rất nhiều thời gian , trong khi các ứng dụng quan trọng yêu cầu độ trễ thấp dé
phản ứng tức thì với các hành vi bất thường; (2) Truyền dữ liệu qua mạng và lưu trữnhững dữ liệu này trên các máy chủ ở xa có thê gây ra nhiều vẫn đề liên quan đến bảomật và bảo vệ quyền riêng tư, đặc biệt là dữ liệu nhạy cảm về hành vi của người dùng.Một giải pháp khả thi cho những van dé này là điện toán biên, được coi là sự bổ sung
của điện toán đám mây [3] Xử lý dt liệu thì luôn được ưu tiên thực thi trên các thiết
bị biên hơn là máy chủ đám mây Việc di chuyền các tác vụ tính toán đến gần hơnvới nguồn đữ liệu có thé làm giảm đáng kể độ trễ truyền và rủi ro bao mật
Trong nghiên cứu ở luận văn lần này, chúng em giới thiệu một framework đếmlưu lượng giao thông dựa trên AI chạy trên các thiết bị biên Framework này nhằmmục đích thu thập hiệu quả thông tin về luồng giao thông thông qua ba bước: phát
hiện, theo dõi và đếm phương tiện và xác định hướng di chuyền của chúng
Trang 2313 Mục tiêu của đề tài
¢ Tim hiểu về trí tuệ nhân tạo (AI) và ứng dụng AI trên các thiết bị biên
e Tim hiểu về các thiết bị biên phổ biến cho việc tăng tốc độ tính toán đối với ứng
dụng AI.
e Tìm hiểu các model deep learning phát hiện đối tượng, thuật toán theo vết, đếm
và xác định hướng di chuyên của các phương tiện khi rời khỏi vùng quan sát
« _ Thử nghiệm và xây dựng hệ thống giám sát lưu lượng giao thông tại các thiết bi
biên.
1.4 Đối tượng và phạm vi nghiên cứu
1.4.1 Đối tượng nghiên cứu
Khóa luận này hướng đến:
e _ Xây dựng một hệ thống giám sát lưu lượng giao thông trên thiết bị biên vớichi phi thap nhung van dat duoc d6 hiéu qua cao
1.4.2 Pham vi nghiên cứu
e _ Nghiên cứu các phương pháp phát hiện, theo vét, đếm phương tiện giao thôngtrên các thiết bị biên
Trang 24Chương2 CƠ SỞ LÝ THUYET
2.1 Tổng quan về Single Board Computer:
Sự kết hợp giữa việc phát triển vượt bậc của các vi mạch phần cứng và việc tối
ưu hóa phần mềm trong những năm gần đây đã tạo ra nhiều máy tính đơn bo mạch
-Single Board Computer (SBC) khác nhau như Coral Dev Board, Jetson Nano / TX2
/ Xavier, Odroid, Raspberry Pi Với sức mạnh tính toán mạnh mẽ, việc tích hop tri
tuệ nhân tạo AI vào các thiết bị này dần trở nên pho bién, chúng hoạt động như một
bộ xử lý trung tâm ứng dụng trong ô tô tự lái, giám sát giao thông, IoT và công nghiệp
hiện đại Thử nghiệm của nhóm được tiễn hành trên hai máy tính đơn bo mạch là
Google Coral Dev Board va Nvidia Jetson Nano đóng vai trò như là một thiết bị biên
có chứa bộ xử lý tăng tốc độ tính toán cho các ứng dụng AI tương ứng là TPU (Tensor
Processing Unit) và GPU (Graphics Processing Unit).
2.1.1 Google Coral Dev Board
Coral Dev Board [4] là một máy tinh đơn bo mach có hệ thống trên mô-đun cóthé tháo rời - System-On-Module (SOM) có chứa thẻ nhúng đa phương tiện Multi-Media Card (EMMC), hệ thống trên chip - System-On-Chip (SOC), radio không
dây, Google ‘s Edge TPU có khả năng thực hiện 4 nghìn tỷ tính toán mỗi giây Nó
là sản phẩm tuyệt vời cho các thiết bị IoT và các hệ thống nhúng khác đòi hỏi tốc
độ suy luận của các mô hình Máy học - Machine Learning (ML) trên thiết bị Hơnnữa, hệ thong SOM 40mm x 48mm phù hợp với phần cứng có bảng mạch in tùy
chỉnh và sử dụng đầu nối bo mạch để tích hợp vào sản phẩm Hiện tại, phiên bản
SOM 1GB và 4GB LPDDR4 đã có sẵn trên thị trường SOM dựa trên hệ thốngNXP’s iMX8M SOC, nhưng sức mạnh thực sự của nó đến từ bộ vi xử lý Edge TPU
- một mạch tích hợp nhỏ dành riêng cho ứng dụng AI (ASIC) do Google thiết kế dé
xử lý các tác vụ ML với hiệu quả cao và chi phí điện năng thấp
Trang 25Hình 2.1 Google Coral Dev Board
2.1.2 Nvidia Jetson Nano
NVIDIA® Jetson NanoTM Developer Kit [5] là một bo mach máy tính nhúng
Al do hãng NVIDIA sản xuất dé thực thi các tác vụ AI, cụ thé hơn là những tác vụnhư phân loại hình ảnh, phát hiện đối tượng và xử lý giọng nói Jetson Nano là mộttrong những sản phẩm ho Jetson của hãng NVIDIA và được công bố tai NVIDIAGTC (GPU Technology Conference) 2019, bên cạnh đó là các sản phẩm khác như
bộ dev kit Jetson Xavier NX, Jetson AGX Xavier với hiệu năng tốt hơn đồng thời
giá tiền sản phâm cũng cao hon so với Jetson Nano.
Trên Jetson Nano, hãng NVIDIA cũng cho ra mắt hệ điều hành NVIDIA JetPackcho các sản phẩm ho Jetson của hãng Hệ điều hành này cũng hỗ trợ cài đặt và chạy
các mô hình AI thuộc các ML frameworks lớn hiện nay như Tensorflow, PyTorch,
Darknet, Caffe/Caffe2, Keras, và MXNet.
Trang 26Đặc điểm chỉ tiết kỹ thuật của hai máy tính nhúng này được trình bày trong Bang 2.1.
AI Performance 472 GFLOPS 4 TOPS
Al Accelerator NVIDIA Maxwell GPU Google Edge TPU
CPU Quad-Core ARM Cortex-A57 NXP i.MX 8M SoC (Quad
MPCore Cortex-A53, Cortex-M4F)
= 128 Core Maxwell GPU | GC7000 GPU
Computer Number FP16 / FP32 INT8
Format
32 GB MicroSD 8 GB eMMC, MicroSD slot
Ethernet 10/100/1000 BASE-T Ethernet | 10/100/1000 Mbps Ethernet,
IEEE 802.3
Wi-Fi No 2.4GHz and 5GHz
802.1 1b/g/n/ac
Display HDMI 2.0, eDP 1.4, 2x DSI HDMI 2.0, MIPI-DSI
MIPI-CSI2, D-PHY 1.1 MIPI-CSI2
Video Processing Unit 720p30-4Kp60 [H.265 & H.264] | 4Kp60 HEVC/H.265 4Kp60
VP9, 4Kp30 AVC/H.264
1080p60 H.263
Bảng 2.1 So sánh thông số kỹ thuật giữa Jetson Nano va Coral Dev Board
Trang 272.2 Ứng dung AI trên các Single Board Computer.
2.2.1 Tổng quan về “Deep learning”
Hoc sâu - Deep learning (DL) là một kỹ thuật quan trọng trong AI, là cách tiếp
cận được sử dụng phổ biến nhất trong việc phát hiện đối tượng trong lĩnh vực thị
giác máy tính Kỹ thuật này là một loại máy học đặc biệt được lấy cảm hứng từ chức
năng của các tế bào não của chúng ta được gọi là mạng thần kinh nhân tạo Các kếtnối dé liệu giữa tất cả các nơron nhân tạo được hình thành và tự điều chỉnh chúng đểphù hợp với mẫu đữ liệu, nếu kích thước của mẫu đữ liệu lớn thì cần có nhiều nơ-
ron hơn Với khả năng tự động học ở nhiều cấp độ trừu tượng cho phép các noron
học ánh xạ các hàm phức tạp mà không phụ thuộc vào bat ky thuật toán cu thé nao.
Nhiều lớp hidden layers phi tuyến tinh được sử dung dé trích xuất, chuyên đổi, phân
tích và phân loại các đặc trưng một cách có giám sát hoặc không có giám sát, trong
đó mỗi lớp kế tiếp lấy đầu ra từ lớp trước đó làm dữ liệu đầu vào Các đặc trưngtrong dir liệu được tự động trích xuất thay vì thêm vào thủ công như trong các thuật
toán học máy truyền thống Hạn chế chính liên quan đến việc thực thi các thuật toán
DL đòi hỏi khả năng tính toán lớn va dữ liệu dao tạo phải đủ lớn [6].
(Input Layer) (Output Layer)
Hinh 2.3 Mang no-ron nhan tao
Trang 28Các nơron được chia vào 3 loại layer khác nhau:
e Input layer có nhiệm vụ nhận các dữ liệu đầu vào và sau đó đưa các đầu vàonày vào hidden layer thứ nhất
e _ Các hidden layer sẽ thực hiện các phép tính toán cho các dit liệu đầu vào.Việc quyết định số lượng các hidden layer này, cũng như số các noron cho mỗilayer là khó khăn lớn nhất trong việc xây dựng mạng noron
e Output layer sẽ trả về dữ liệu đầu ra
Mỗi một kết nối giữa nơron được liên kết với một cặp trọng số là weight và bias
Những trọng số này sẽ tự động điều chỉnh trong quá trình training Trọng số ban đầu
khởi tạo được chọn ngẫu nhiên Mỗi một nơron sẽ có một Hàm kích hoạt (Activation
Function) là các thuật toán như: softmax, gaussian dùng dé chuẩn hóa output từmỗi nơ-ron Khi một tập dữ liệu input được truyền qua tất cả các hidden layers củamạng noron, nó sẽ trả về dữ liệu đầu ra thông qua output layer
2.2.2 Mạng no-ron tích chập — Convolutional Neural Networks (CNN) và ứng
dụng trong xử ly ảnh.
Một trong những phương pháp phô biến đề thực hiện nhận dạng hình ảnh, phân
loại hình ảnh trong mạng nơ-ron đó chính là mạng nơ-ron tích chập (ConvNets hay
CNNs, Convolutional Neural Network) Kiến trúc mạng này ra đời do các phương
pháp xử lý dữ liệu ảnh thường sử dụng giá tri của từng pixel Ví dụ với một ảnh có
giá trị kích thước 320x320 sử dụng kênh RGB ta có tong cộng ta có 320 * 320 * 3
bằng 307,200 nơ-ron ở lớp đầu vào và có một số lượng lớn weight và bias tươngứng dẫn đến mạng nơ-ron trở nên dày đặc đòi hỏi khối lượng tính toán cực kỳ lớn.Dau vậy thông tin của các pixel thường chỉ chịu tác động bởi các pixel ngay gần nó
do đó việc bỏ qua một số nơ-ron ở lớp đầu vào trong mỗi lần training sẽ không làmgiảm độ chính xác của mô hình Vì thế nên cửa số tích chập được sinh ra nhằm giảiquyết vấn đề số lượng tham số lớn mà vẫn đảm bảo trích xuất được đặc trưng của
ảnh.
Về tổng quan, trong mạng nơ-ron tích chập, mô hình sẽ chuyền đổi ảnh đầu vàoqua một loạt các lớp tích chập với các bộ lọc với kích cỡ khác nhau, sau đó đến lớp
Trang 29Pooling, rồi tiếp theo là các lớp được kết nối đầy đủ (FC — fully connected layers)
và cudi cùng hàm kích hoạt Softmax được áp dụng vào dé phan loại một đối tượng
dựa trên giá tri xác suất của các giá trị trong khoản từ 0 đến 1 Hình 2.4 mô tả mộtluồng CNN dé xử lý hình anh đầu vào và phân loại các đối tượng dựa trên giá trị
FEATURE LEARNING CLASSIFICATION
Hình 2.4 Luéng CNN dé xử lý hình ảnh đầu vào và phân loại dựa trên giá tri [7]
e Lớp tích chập - Convolution Layer: Convolution (lớp tích chập) là lớp đầutiên dùng để trích xuất các đặc tính từ hình ảnh Một tập hợp các bộ lọc (kernels)
thường có kích cỡ hai chiều khoảng 3x3 hoặc 5x5, và có độ sâu băng với độ sâu
của đầu vào đầu vào được áp dụng bằng cách trượt dần bộ lọc theo chiều ngang vàdọc trên ảnh, sau đó hình ảnh sẽ xuất ra thành một Feature Map chứa các đặc trưngđược trích xuất ra từ lớp tích chập
Hình 2.5 Minh họa một kernel dang trích xuất đặc trưng từ hình ảnh
10
Trang 30Với mỗi một bộ lọc kernel khác nhau ta sẽ học được những đặc trưng khác
nhau của ảnh, nên nhiều kernel sẽ được dùng trong mỗi lớp convolutional để họcđược nhiều thuộc tính của ảnh Mỗi một kernel sẽ cho ra output là 1 matrix nên kkernel sẽ cho ra k output matrix, sau đó k output matrix này kết hợp lại thành 1
tensor 3 chiều có chiều sâu k Đầu ra của lớp convolutional sẽ qua hàm hoạt hóa
trước khi trở thành đầu vào của convolutional tiếp theo
e Lớp Pooling: thường được dùng sau mỗi lớp convolutional dé giảm kích
thước dit liệu nhưng vẫn giữ được các thuộc tính quan trọng từ đó giúp giảm việc
tính toán trong model.
Max Pool
——y
Filtar - (2 x 2]
Stride - (2, 2)
Hình 2.6 Minh họa hoạt động Max Pooling cho dữ liệu 2 chiều [8]
e Sau khi ảnh được truyền qua nhiều lớp convolutional và lớp pooling thì model
đã học được tương đối các đặc điểm của ảnh thì tensor đầu ra của layer cuối cùng
sẽ được là “flatten” thành một vector và đưa vào một lớp kết nối như một mạng ron Sau đó các đặc trưng được kết hợp lại với nhau tại lớp FC (Fully Connectedlayer) và sử dụng hàm softmax hoặc sigmoid dé phân loại đầu ra
nơ-2.2.3 Tổng quan về “Transfer learning”
Trong hệ thống được đề xuất, thay vì xây dựng mô hình phát hiện đối tượng
va training nó từ đầu, chúng em thực hiện training lại một mô hình hiện có bằng
cách sử dụng một kỹ thuật gọi là học chuyền giao - transfer learning Việc trainingmột mô hình từ dau (weights và bias được khởi tạo ngẫu nhiên) có thé mat thờigian tính toán đến hàng ngày và yêu cầu một lượng lớn đữ liệu huấn luyện.Học
11
Trang 31chuyền giao cho phép bắt đầu với một mô hình đã được đào tạo với một tác nhiệm
vụ liên quan Sau đó, mô hình sau đó được training thêm sử dụng một tập dữ liệu
có liên quan dùng cho tác vụ phân loại mới.
Fine tuning là một dang transfer learning rất phô biến, đó là kỹ thuật lay mộtphần hoặc toàn bộ các layer của một pre-trained model, có thé thêm/sửa/xoá mộtvài layer/nhánh để tạo ra một model mới Các layer đầu của model thường sẽ đượcfreeze (đóng băng) — có nghĩa là weight các layer này sẽ không bị thay đổi giá tritrong quá trình training Cac layer đầu này đã có khả năng trích xuất thông tin mứctriu tượng thấp được học từ quá trình training trước đó do đó việc ta freeze lại détận dụng được khả năng này giúp việc training diễn ra nhanh hon (model chi phải
cập nhật weight ở các layer cao).
TRAINING FROM SCRAICH
Hình 2.7 Kỹ thuật fine tuning trong transfer learning [9]
2.2.4 Các model deep learning tương thích với Coral Dev Board
Coral Dev Board hỗ trợ bộ đồng xử ly Edge TPU thực thi các tính toán một
cách nhanh chóng trong các mạng nơ-ron học sâu như mạng nơ-ron tích chập (CNN) Nó chỉ hoạt động với các model TensorFlow Lite được lượng tử hóa -
quantization hoàn toàn sang interger 8-bit và sau đó được chuyền đổi sang định
12
Trang 32dạng phù hợp với Edge TPU Hình 2.8 mô tả quy trình để tạo ra một model tương
thích với Edge TPU Các quy trình chuyển đổi được xử lý bởi bộ công cụ
Edge TPU model
Hình 2.8 Quy trình làm việc co bản dé tạo ra một model tương thích với Edge TPU
[10]
Quantization : Các model deep learning ngày cảng đạt độ chính xác cao
hơn qua thời gian Không khó dé tìm thấy những model đạt độ chính xác of-the-art (SOTA) trên bộ dữ liệu ImageNet Nhung hau hết những model có độchính xác cao lại không có khả năng triển khai trên các thiết bị oT và mobile dohạn chế về phần cứng Quantization là một kỹ thuật giúp bạn giảm nhẹ kíchthước các model deep learning nhiều lần, đồng thời giảm độ trễ (latency) và tăngtốc độ inference Sau khi training lai, model được lượng tử hóa hoàn toàn thành
state-integer 8-bit từ float 32-bit (bao gồm ca weights lẫn activation) Quantization làm
cho model nhỏ hon và nhanh hơn mà không bi ảnh hưởng đáng ké đến độ chínhxác suy luận của mạng nơ-ron Đề tương thích với Edge TPU, phải sử dụng
quantization- aware training (được khuyến nghị) hoặc Full integer
post-training quantization
13
Trang 33° Quantization — aware Training (cho TensorFlow 1): nó thêm vào các
node được lượng tử hóa "giả định" trong biểu đồ mạng no-ron dé mô phỏng anhhưởng của các giá trị 8-bit trong quá trình huấn luyện Cách này làm cho model
có độ chính xác cao hơn (so với Full integer post-training quantization) vì
các tham số (weights va activation) 8-bit được học thông qua quá trình trainingchứ không phải được chuyên đổi sau đó Chúng em sử dụng phương pháp này
để chuyển đổi các model SSD MobileNet VI 300x300, SSD MobileDet
320x320.
output
Hình 2.9 Node ‘wt quant’ va ‘act quant’ được thêm vào model dé thực hiện cho việc
chuyên đổi hoàn toàn sang integer 8-bit [11]
e Full integer post-training quantization: phương pháp này chuyên đổi
một model float 32-bit đã hoàn thành training trước đó thành một model được
lượng tử hóa hoàn toàn sang int 8-bit Tuy nhiên, quá trình chuyền đổi này yêu
cầu một tập dữ liệu đại diện (tương đồng tập dữ liệu dùng cho training) Chúng
em sử dụng cách tiếp cận nay dé chuyển đổi các models SSD MobileNet V2
320x320, SSD MobileNet V2 FPNLite 320x320, SSD MobileNet V2 FPNLite
14
Trang 34640x640, SSD MobileNet V1 FPN 640x640.
2.2.5 Cac model deep learning tương thích với Nvidia Jetson Nano.
Tối ưu hóa với TensorRT: NVIDIA TensorRT là một môi trường được viếtbằng các thư viện C++ hỗ trợ chạy suy luận các model deep learning cho các tác
vụ như phân loại ảnh, phát hiện vật thể bằng cách tối ưu hóa các model cho ra kết
quả có hiệu năng cao và độ trễ thấp trên GPU NVIDIA [12]
Hinh 2.10 Téng quan vé tensorRT
TensorRT cung cấp cach tối ưu hóa model sang int 8-bit va float 16-bit dé triển
khai các ứng dụng suy luận học sâu trong xử ly anh, nhận dạng giọng nói, hệ thống
đề xuất và xử lý ngôn ngữ tự nhiên Với TensorRT, các nhà phát triển có thê tập
trung vào việc tạo ra các ứng dụng mới dựa trên AI thay vì việc giảm kích thước
model dé triển khai trên các thiết bị nhúng
Các điểm nỗi bật hiện tại của TensorRT:
e _ Các layers và toán tử mới
° Hồ trợ suy luận một cách chính xác
15
Trang 35° Hỗ trợ lượng tử hóa các model
e Hỗ trợ tiêu chuẩn INT§
e _ Bộ công cụ mới như ONNX Parses hay C++/Python API.
Hệ thống tensorRT được chia thành 2 phần:
Chuyén đổi: là các đuôi file khác nhau mà người dùng hoặc các nhà phattriển dùng dé chuyên đổi mô hình của họ sang tensorRT engine nhằm tối ưu hóa
Có 3 tùy chọn chính để chuyên đổi mô hình với tensorRT:
e Sử dụng đuôi TF-TRT: dé chuyền đổi các mô hình TensorFlow
° Sử dụng đuôi ONNX: onnx có thé chuyên đôi hầu hết các mô hình như
TensorFlow, Pytorch, Keras Tuy nhiên, đổi với các mô hình TensorFlownói riêng thì hiệu năng onnx mang lại vẫn còn thấp hơn khi sử dụng với TF-
TRT.
e Xây dựng mô hình theo cách thủ công bằng API TensorRT(C++/Python): dé có hiệu suất và khả năng tùy chỉnh cao nhất có thé, ta có
thé tạo công cụ TensorRT engine theo cách thủ công bang cách sử dụng các
API định nghĩa mạng trong TensorRT Sau khi một mạng TensorRT được
tạo, ta sẽ xuất ra các trọng số (weights) của model từ framework AI đang sử
dụng và tải chúng vào mạng TensorRT mới mà ta đã tạo.
Trang 36Triển khai: bao gồm các bộ công cụ khác nhau mà ở đó người dùng có thểtriển khai model của ho dé đạt được sự tối ưu hóa nhất Có 3 tùy chọn chính dé
triển khai một model với tensorRT:
e _ Triển khai đối với TensorFlow: khi sử dụng TF-TRT, tùy chọn phô biếnnhất đề triển khai là chi cần triển khai trong TensorFlow Chuyên đổi TF-
TRT dẫn đến một biểu đồ (graph) TensorFlow với các hoạt động TensorRT
được chèn vào nó Điều này có nghĩa là bạn có thé chạy các model TF-TRTgiống như bất kỳ model TensorFlow nào khác bằng Python
e Sử dung TensorRT runtime API: tương thích với các model được xuất
ra từ onnx.
e NVIDIA Triton Inference Server: là một phần mềm phục vụ chạy suyluận mã nguồn mở cho phép các nhóm trién khai các model AI được training
từ bất ky framework nào (TensorFlow, TensorRT, PyTorch, ONNX Runtime
hoặc các framework khác), từ bat kỳ máy tinh cục bộ hoặc Google Cloud
Platform hoặc AWS S3, có thê trên GPU hoặc CPU
Quy trình tối ưu hóa: Sơ đồ dưới đây là quy trình cơ bản hướng dẫn ta lựa
chọn đường đi đúng đắn cho cả chuyên đổi và triển khai Ở đây, ta có thé tóm tắt
thành 3 bước cơ bản như sau:
° Bước 1: Xác định model đang có thuộc loại nào (TensorFlow, Pytorch
hay đã là ONNX)
e Bước 2: Nếu các model chưa được chuyên đổi thành các file có đuôi
theo yêu cầu (TF-TRT, ONNX) thì chuyển chúng sang đuôi hỗ trợ tương
ứng.
° Bước 3: Tùy thuộc vào file và mục tiêu của người sử dụng, ta có thê
chọn các bộ công cụ triên khai cho mô hình.
17
Trang 38Một số khái niệm trong TensorFlow
e Tensor: tất cả các kiểu dữ liệu khi đưa vào trong tensorflow thì đều được gọi là
Tensor có 3 thuộc tính cơ ban là rank, shape va type.
e Rank: Số bậc của tensor
Scalar: Khi Tensor có rank bằng 0
Vector: Vector là một Tensor rank 1.
Matrix: Đây là một Tensor rank 2 hay mảng hai chiều theo khái niệm của Python
N-Tensor: Khi rank của Tensor tăng lên lớn hơn 2, gọi chung là N-Tensor.
e Shape: chiều tensor
e Type: kiểu dé liệu của các thành phan
Cách sử dụng TensorFlow: Vì không phải là thư viện có sẵn trong python nên cần
phải import tensorflow as tf
Tao chuong trinh TensorFlow chia thanh 2 phan:
e Construction phase: Xây dựng mô hình tính toán
e Execute phase: Chay mô hình tính toán
Epoch va Loss trong TensorFlow:
e Epoch: Một vòng lặp qua tập dữ liệu training.
e Loss: thé hiện sự chênh lệch giữa hai đại lượng: nhãn thật của dữ liệu và nhãn
của dir liệu do model dự đoán ra.
19
Trang 392.3.1 TensorFlow Lite
TensorFlow Lite [13] là một framework deep learning mã nguồn mở dé chạy
các mô hình TensorFlow trên thiết bi di động, thiết bị nhúng va IOT.
Các tính năng chính của TensorFlow Lite có thé kế đến như:
e_ Được tối ưu hóa cho các mô hình ML trên thiết bi bằng cách giải quyết 5 hạn
chế chính: độ trễ (không tốn thời gian truyền nhận tới máy chủ), quyền riêng
tư (không bị rò ri đữ liệu cá nhân), kết nối (không cần kết nối internet), kích
cỡ model (giảm độ lớn model và kích cỡ của tệp nhị phân) vả tiêu thụ điện
năng (do giảm thời gian suy luận và không cần kết nối mạng)
e Hỗ trợ đa nền tảng, bao gồm các thiết bị Android và iOS, hệ thống nhúng
Linux và vi điều khiến
e Hỗ trợ đa dạng ngôn ngữ, bao gồm Java, Swift, Objective-C, C ++ và Python
e Hiệu suất cao, có hỗ trợ thêm các bộ tăng tốc phần cứng và công cụ tối ưu hóa
model.
e Có những dự án mẫu thực tế, cho các tác vụ ML phô biến như phân loại hình
ảnh, phát hiện đôi tượng, phân loại văn bản, v.v trên nhiêu nên tảng.
Ngoài ra TensorFlow Lite còn cung cấp bộ chuyền đổi mô hình TensorFlow thành
mô hình TensorFlow Lite (định dạng FlatBuffer được tối ưu hóa với phần mở rộngtệp là tflite) bằng cách sử dụng Python API Trong Hình 2.13 ta thấy được có thé
tạo tệp TensorFlow Lite từ Keras Model, Saved Model hoặc Concrete Functions.
20
Trang 40High Level APIs
TFLite
Converter
L] File format [4 Data Type L] Infrastructure
Hình 2.13 Các phương pháp dé chuyên đổi từ TensorFlow sang Tensorflow Lite[14]
2.4 OpenCV
OpenCV [15] được biết đến là một thư viện mã nguồn mở hàng đầu cho thị giác
máy tinh (computer vision), xử lý ảnh và máy học, và các tính năng tăng tốc GPU
trong hoạt động thời gian thực.
OpenCV được phát hành theo giấy phép BSD và hoàn toàn miễn phí cho cả học
thuật và thương mại Nó hỗ trợ cả interface C++, C, Python, Java cũng như các hệ
điều hành như Windows, Linux, Mac OS, iOS và Android OpenCV được viết bằngtối ưu hóa C/C++, thư viện có thé tan dụng lợi thế của xử lý đa lõi do đó cho hiệu quả
cao với các ứng dụng thời gian thực Được sử dụng trên khắp thế giới, OpenCV cócộng đồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu lần
21