Kỹ thuật này cung cấp cho chúng ta hiéu biết chi tiết hơn về đối tượng trongmột ảnh, nó thực hiện phân vùng với từng lớp đối tượng khác nhau trong một bức ảnh.. 4/2019 tại Việt Nam, FPT
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
PHAM ĐÌNH ANH VU
MAI TRỌNG NGHĨA
KHÓA LUẬN TÓT NGHIỆP
Implement A Program to Segment Vietnam Traffic Images
KỸ SU KY THUAT MAY TÍNH
TP HO CHi MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
PHAM ĐÌNH ANH VŨ - 16521457
MAI TRỌNG NGHĨA - 16521749
KHÓA LUẬN TÓT NGHIỆP
XÂY DỰNG CHƯƠNG TRINH PHAN VUNG ANH
DUONG GIAO THONG VIET NAM
Implement A Program to Segment Vietnam Traffic Images
KY SU KY THUAT MAY TINH
GIANG VIEN HUONG DAN
ThS PHAM MINH QUAN
ThS NGUYEN DUY XUAN BACH
TP HO CHi MINH, 2021
Trang 3THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
70/QD-DHCNTT ngày 27 tháng 01 năm 2021 của Hiệu trưởng Trường Đại học Công nghệ
Thông tin.
Trang 4LỜI CẢM ƠN
Đề hoàn thành khóa luận tốt nghiệp này, nhóm em xin chân thành cảm ơn cácthầy cô giáo trường Đại học Công nghệ Thông tin - Đại học Quốc gia Thành phố HồChí Minh nói chung và các thầy cô giáo Khoa Kỹ Thuật Máy Tính nói riêng đã cho
chúng em kiên thức và kinh nghiệm quý báu trong bôn năm rưỡi vừa qua.
Nhóm xin gửi lời cảm ơn chân thành nhất đến thầy Phạm Minh Quân và thầyNguyễn Duy Xuân Bách, hai thầy đã dành thời gian và kinh nghiệm quý báu củamình, tận tình hướng dẫn chúng em hoàn thành khóa luận tốt nghiệp
Bên cạnh đó, nhóm cũng xin chân thành cảm ơn sự giúp đỡ của bạn bè đã giúp
chúng em tìm kiếm và thu thập thông tin trong quá trình thực hiện luận văn Chắcchắn sẽ có những sai sót và thiếu thốn trong quá trình thực hiện luận văn, kính mongquý thầy cô và các bạn bỏ qua
Một lần nữa xin cảm ơn mọi người đã dành thời gian và tâm sức dé hỗ trợ chúng
em hoàn thành khóa luận tốt nghiệp
Phạm Đình Anh Vũ Mai Trọng Nghĩa
Khoa Kỹ Thuật Máy Tính
Trang 5MỤC LỤC
Chương 1 TONG QUAN -22©5222< 2E 2E22EEEEEEEEE21121122171 21.211 1x rxe 3
1.1 _ Tình hình nghiện cứu trên thế giới -¿- 2 + x+2s++z+zx+rxe+ 3
1.2 Tinh hình nghiên cứu trong NƯỚC - - 5 + * + sseexeeeeseeeres 4
1.3 Những van dé còn tồn tại -©2¿+5<+S+ccEeEE2EEEEEerErrkrrrrerkerkee 4
1.4 Mục tiêu khóa luận - 1131111223111 1 111951111111 xy 6
1.5 Giới hạn đề tài cc the 6
Chương 2 CƠ SỞ LÝ THUYYÊTT 2-2 52+S£+EE+EE£EEE2EE+EE+EEEEzEerrxerxee 8
PÊ NNo ca ai oi a 8
2.2 Semantic S€ðIm€nfafIOI - -. 3c 3x13 EEESesersesereseeersere 10
2.3 Tổng quan về Deep Learning -¿ 2 s+s+zx+E+Ezrxerxerreee 11
2.5 Lite Reduced Atrous Spatial Pyramid Pooling (LR-ASPP) 17
2.6 Tổng quan về CNN và các khái niệm liên quan -. - 18
2.6.1 CNN - Convolutional Neural Network . + << c<x 18 2.6.2 Padding - Ăn HT TH HH ng Hiện 18
Trang 62.6.3 Hàm ReLU Ăn TH TH TH HH HH già 18 2.6.4 9d 0 r ( 18 2.7 Mask RCNN và các khái niệm liên quan 5s «+5s<+<s<2 19
"XI No) 19
2.7.2 Region of Interset (ROI) ceeceeeseeeseesneeeseeeeseeeseeeeaeceseeeeeneesaes 20
2.7.3 Kiến trúc Mask RCNN sec 21
Chương 3 PHAN TÍCH THIET KE HE THÓNG - -2-5- 28
3.1 MÔI trường Ă- Ăn TH HH TH HH kg 28 3.2 Input và output của mô hình -s++«x+sx*sEeeEeeeeeeesersessee 28
3.3 TensorRÏT Ăn HH HH HH 29
3.4 Phương pháp đánh giá - c2 1 323 Stissrrrresrssrrree 31
3.5 Quy trình xây dựng bộ dữ liệu riêng - «5< <<<<s<+sr+ 32
3.5.1 Dữ liệu về đường và lỀ 2-2 ++E++EE+EE+EEtEEzEsrxerxerree 32
3.5.2 Dữ liệu về người Và Xe ¿- ¿+ StcSt E2 2 EEEEEerkerkerrres 34
3.5.3 Tiền xử lý dữ liệu 2¿-©+¿2cxt2ExEEEESEkrEEkrrkerkrerrerrre 35
3.5.4 Huấn luyện mô hình trên kiến trúc mạng VGGI6 - 363.5.5 Kiểm thử và đánh giá 2: +¿+c+c2xteEkSEkrrrrerkrerkrrrres 37
3.5.6 Chi tiết quy trình thiết kế dữ liệu -¿©2+cz+cx+zxezse2 37
Chương 4 KET QUÁ THỰC NGHIỆM - 2-2 2 2+E+£xe£Eerserszes 39
Trang 74.1 Kết quả mô hình sau khi training -. :-¿ s+2c++cx+zs+ec+s 39
AL BO dit na 39
41.2 Quá trình tra1n - -.c + 1111211111 1111111118111 881111811, 39
na (ch 39
4.2 So sánh bộ dữ liệu nhóm với bộ dữ liệu CityScapes Al
ADL CityS capes 41 4.2.2 So sánh với bộ dữ liệu CityScapes - - se 44 4.2.3 Đánh gia bộ dữ liệu của nhóm trên môi trường nước ngoai 45
4.3 Đánh giá mô hìỉnhh c5 + 1k1 ng ng giết 46
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIÉN - 48
5I Kếtluận KG ,#ếc À À 485.2 Hướng phát triỀn -++-++ck++E++EESEEEEEEEErrrrkerkerreee 48
Trang 8DANH MỤC HÌNH
Hình 2.1: Phân biệt thuật toán Object Detection và Instance Segmentation [4] 8
Hình 2.2: Phân biệt Semantic Segmentation và Instance Segmentation [23] 9
Hình 2.3: Ví dụ về Semantic Segmentation [8] - +s-c<<<scc<seeeesee 10 Hình 2.4: Kiến trúc MobileNetV3 [ [] - 5c ©5¿25+22++£xvzxczxerxerxerxeces 13 Hình 2.5: So sánh giai đoạn cuối ban đầu và giai đoạn cuối hiệu quả [1] 14
Hình 2.6: So sánh độ trễ hai loại mạng MobileNetV3 với các mạng khác [1] 15 Hình 2.7: Cấu trúc Lite R-ASPP - Segmentation Head [ l] - - 17
Hình 2.8: Ví dụ về Mask RCNN [26] csscsscsscessessesssessessessessessessessesstessesseeseess 19 Hình 2.9: Ví dụ về cách tìm loU [26] 222222111 ereeeeeeeeeeees 21 Hình 2.10: Mô tả cau trúc Mask RCNN [20] -: 2 ¿cs+5c++>s+ecs+ 22 Hình 2.11: Cấu trúc VGG16 [17] ¿2+2 ++E£++£+E++ExtzEzxe+reerxerxeres 23 Hình 2.12: Kiến trúc VGG16 [ 17] -. -¿- ¿22 +2E++E++£++Exerxzxe+rxerxerxeres 25 Hình 2.13: Jetson TX2 [11] - - - - <2 <- + S222 1E 1E **223EEEEEEESSkeeeesszeee 26 Hình 2.14: Cấu hình phần cứng Google Colab cung cấp [27] -.- 26
Hình 3.1: Ung dụng của TensorRT [16] - 2 2 s++z££+££+£++zxezxezss 30 Hình 3.2: Sơ đồ quy trình chuyên từ Keras sang TensorRTT - 31
Hình 3.3: Minh họa IoU [2] - - - ¿+5 2E *EE***22EEEEEe+szeeeeeeeesszeeee 31 Hình 3.4: Kết quả khi test mô hình với dit liệu chỉ có đường - 33
Hình 3.5: Kết quả khi test mô hình với dữ liệu gồm đường va lề 34
Hình 3.6: Hình cắt ngườii - ¿2-22-2222 2EEt2EEE2EE22EE22121171.221211c2E.crk 35 Hình 3.7: Hình cắt xe ¿- 2¿©222+22EE2EE22E1221127112112112111211 21121 crk 35 Hình 3.8: Quy trình tiền xử lý dữ liệu -. - 2-52 2 s+EE+£EzEzExerxerxeres 36 Hình 3.9: Sơ đồ khối quy trình xây dựng bộ dữ liệu giai đoạn một 37
Hình 3.10: Sơ đồ khối quy trình xây dựng bộ dữ liệu giai đoạn hai 38
Hinh 888i d6 LOSS 40
Hinh 4.2: Két qua sau khi detect với bộ dữ liệu hoàn chỉnh - 41 Hình 4.3: Ảnh được chú thích tốt [15] - - ¿5c x+s++E+E++EeExzEerxererxerezxers 42
Trang 9Hình 4.4: Ảnh được chú thích thô [15] - ¿- s5 +x£E++E£E+EeEererxererxers 42
Hình 4.5: Kết quả sau khi detect với bộ dữ liệu CityScapes . 44
Hình 4.6: Kết quả detect đường nước ngoài khi dùng bộ dữ liệu nhóm 45Hình 4.7: Kết quả mô hình dưới độ sáng thấp -¿- 2 s2 s+zszzss 41
Hình 4.8: Kết quả mô hình khi ảnh ngược sáng 2-2 2s s+cs+zs+sz 47
Trang 10DANH MỤC BANG
Bang 1.1: So sánh độ chính xác giữa các decoder và encoder [12] 4
Bảng 1.2: Các thông số sau khi train của các mô hình sử dụng MobileNet [3].5Bảng 2.1: Thông số kỹ thuật của MobileNetV3-Small [1] 16
Bảng 4.1: Định nghĩa các lớp của CityScapes [ 1Š] - ‹ -<+<s<+<>+s 43
Bảng 4.2: So sánh hai bộ dữ liỆU 5 2-5 33221132 E*EEeesesereeeerere 44
Bảng 4.3: Độ chính xác bộ dữ liệu của nhóm trên CItyScapes 46
Bảng 4.4: Bảng đánh giá MIoU và FPS các đối tượng -s- 46
Bảng 4.5: Bảng đánh giá loU dựa trên độ sắng - - 5 55 <5<<<s<+ss+ 46
Trang 11DANH MỤC TỪ VIET TAT
Avg-Pool Average Pooling
BN Bottleneck
CNN Convolution neural network
FC Fully — Connected layer
FPN Feature Pyramid Network
HS H - swish
IoU Intersection over Union
LR-ASPP Lite Reduced Atrous Spatial
RGB Red Green Blue
RPN Region Proposal Network
S Stride
SE Squeeze-And-Excite
SOTA State of the art
Trang 12TOM TAT KHÓA LUẬN
Deep Learning đã giúp lĩnh vực Computer Vision phát triển nhanh chóng trong
vài năm qua Một trong những khía cạnh của Computer Vision là Semantic
Segmentation Phân vùng ngữ nghĩa anh (Semantic Segmention) là một trong hai loại
của bài toán Image Segmentation Khác với bài toàn Object Detection chỉ xây dựng
một bounding box cho mỗi đối tượng của hình ảnh chứ không cho ta biết về hìnhdạng của vật thể, Semantic Segmentation tạo ra một mặt nạ cho mỗi đối tượng tronghình ảnh Kỹ thuật này cung cấp cho chúng ta hiéu biết chi tiết hơn về đối tượng trongmột ảnh, nó thực hiện phân vùng với từng lớp đối tượng khác nhau trong một bức
ảnh Điều này có thé giúp nhóm giải quyết bài toán của khóa luận Nhóm nghiên cứu
về xử lý anh, Deep Learning dé thực hiện bài toán trên nhằm xây dựng một chươngtrình phân vùng ảnh đường giao thông Việt Nam Cụ thé là sẽ xây dựng chương trìnhDeep Learning trên nền tảng hệ thống nhúng để phân vùng các vật thể (làn đường,phương tiện giao thông, người) hỗ trợ cho xe tự hành Đầu ra của model nhóm thực
hiện sẽ sử dụng cho một nhóm khác xử lý góc lái cho xe tự hành.
Kết quả nhóm đã đạt được gồm 13000 data đường đã label thủ công, ứng dụngcác kiến trúc mạng deep learning xây dựng một model sao cho đầu vào là một bứcanh RBG gốc và dau ra là ảnh RBG có các đối tượng đường, người, xe được gắn
mask riêng.
Trang 13MỞ ĐẦU
Trong những năm gần đây, nghiên cứu về Computer Vision luôn là đề tài nỗi
bật và thu hút được sự chú ý của nhiều người thuộc lĩnh vực Công Nghệ Thông Tin
Với sự phát triển vượt bậc về trí tuệ nhân tạo (AI), các hệ thống với khả năng tự vậnhành đang dần được phát triển phổ biến Và để hệ thống có thể vận hành thuận lợi,việc xử lý thông tin đầu vào là quan trọng nhất, giống như não con người vậy Vì thếphân vùng nội dung ảnh được khá nhiều nhà nghiên cứu tìm hiểu và đầu tư phát triển
dé ứng dụng vào các lĩnh vực quan trọng trong đời sống: cảm biến địa lý (phân vùng
các loại địa hình bằng hình ảnh từ vệ tinh), chân đoán hình ảnh y tế, và đặc biệt là xe
tự hành.
4/2019 tại Việt Nam, FPT Software đã thử nghiệm thành công xe tự hành trong
khu đô thị sử dụng công nghệ AI, Deep Learning, Behavior cloning nghĩa là xe sẽ
học lái như con người đồng thời có thé nhận định vật cản và đưa ra quyết định lái xe.Bài toán về phân vùng ảnh có thể được giải quyết trên nhiều kiến trúc mạng DeepLearning khác nhau Thường thấy nhất là kiến trúc Mask RCNN với khoảng 80 đốitượng trong bộ dữ liệu MS COCO Ngoài ra, còn có kiến trúc PSPNet phân vùng nộidung ảnh chính xác với nhiều lớp đối tượng trong giao thông Và còn nhiều các kiếntrúc mạng Deep Learning khác trong việc giải quyết bài toán Tuy nhiên, bộ dữ liệu
về các đối tượng giao thông kể trên có sự khác biệt về cấu trúc xây dụng cơ sở hạtầng của Việt Nam, đặc biệt là dạng đường phong phú ở Việt Nam nên các bộ dữ liệu
đã được gán nhãn bên nước ngoài sẽ không dùng được ở Việt Nam.
Vì thế, mục tiêu của nhóm sẽ nghiên cứu về các mô hình đã được xây dựng(phát triển) như MobileNetV3, Resnet, Pix2Pix, ShuffleNet, VGG16, so sánh các
mạng trên dé chọn lọc ứng dụng một kiến trúc mạng phù hợp nhất đề triển khai bài
toán phân vùng mặt đường va các vật thể Xây dựng bộ dữ liệu về đường xá Việt
Nam sau đó cải thiện độ chính xác, thử nghiệm thời gian thực và ứng dụng vào board NVIDIA Jetson TX2 phục vụ như “bộ não” của xe tự hành.
Trang 14Chương 1 TONG QUAN
1.1 Tinh hình nghiện cứu trên thé giới
Ngày nay, lĩnh vực Computer Vision ngày càng phát triển và được nghiên cứurộng rãi, nhất là thời điểm công nghệ AI đang đi lên chiếm dan xu thé của ngành IT.Các công nghệ hàng đầu như xe tự hành, xử lý ảnh vệ tinh thường phát trién ở nhữngnước công nghệ cao, hiện đại Và dé thiết kế được những hệ thong hiểu sâu về nộidung bức ảnh như trên thì ta cần tới thuật toán Image Segmentation Nhiều kiến trúc
mạng giải quyết cho bài toán này ngày càng được công bố công khai nhiều trên toànthé giới
PSPNet mang lại ky lục mới về độ chính xác mloU 85,4% trên PASCAL VOC
có thê sao chép đầu vào của chúng sang lớp tiếp theo [6]
MobileNet là một trong những kiến trúc được ưa chuộng va sử dụng phổ biếnbởi độ chính xác và hiệu năng tính toán Điểm mau chốt giúp cho các mô hìnhMobileNet giảm thiêu số lượng tính toán đó là áp dụng tích chập tách biệt chiều sâu
Trang 15Đồng thời qua thời gian, nhóm tác giả MobileNet đã lồng ghép các ưu điểm từ những
kiến trúc CNN khác vào mô hình của minh dé ngày càng cải thiện hơn về độ chính
xác và hiệu năng.
1.2 Tình hình nghiên cứu trong nước
Tuy Image Segmentation được ứng dụng rất nhiều bên nước ngoài, nhưng ở
Việt Nam vẫn còn khá lạc hậu Ngoài FPT đã có ứng dụng Deep Learning lên xe tự
hành trong đô thị thì bài toán này còn khá mơ hồ ở nước ta
Thêm vào đó, dữ liệu để huấn luyện cho mô hình bên Việt Nam rất khan hiếmhoặc hầu như chưa được public nên khả năng nhóm phải làm lại từ đầu một bộ dữ
liệu là rât cao.
1.3 Những van đề còn tôn tai
Tuy khá nhiều kiến trúc mạng đã được công bố có thé áp dụng vào bài toàn détài nhưng lựa chọn một mạng phải dựa trên những tiêu chí cốt yếu Vì mô hình cầnchạy real-time trên board TX2 nên phải đảm bảo kiến trúc mạng khi nhúng lên sẽ cầnphải đạt FPS tối ưu và độ chính xác cao nhất có thể Mô hình dùng hỗ trợ cho xe tựhành nên FPS thấp có thé ảnh hưởng việc trích xuất trễ hoặc thiếu từng frame ảnhcho việc xử lý bên trong, cụ thể ở đây là điều khiển góc lái cho xe tự hành Độ chính
xác thấp sẽ ảnh hưởng việc điều khién góc lái chính xác cho xe Bảng 1.1 sau góp
phần cho nhóm một lựa chọn kiến trúc mạng phù hợp
Bảng 1.1: So sánh độ chính xác giữa các decoder và encoder [12]
Decoder | Encoder | Coarse | mloU | Road | Sidewalk | Building | Sign | Sky | Person | Car | Bicycle | Truck SkipNet | MobileNet | No 613 | 95.9 | 73.6 86.9 57.6 | 91.2 | 66.4 | 89.0 | 63.6 | 45.9
SkipNet | MobileNet | Yes | 62.4 | 95.4 | 73.9 86.6 574 | 91.1) 65.7 | 88.4 | 63.3 | 453
SkipNet | ShuffleNet | Yes ¡593 | 94.6 | 70.5 85.5 349 | 90.8 | 60.2 | 87.5 | 58.8 |454
Trang 16Bang 1.1 cho thấy sự so sánh các bộ decoder và encoder khác nhau về độ chính
xác trên tập val của bộ dữ liệu CityScapes Coarse cho biết liệu mạng đã được đào
tạo trên thô trước hay chưa So sánh trên là từ một bài báo nghiên cứu “R7 Seg:
Real-Time Semantic Segmentation Comparative Study” [12] Trong bai báo này, tác gia
trình bày cách tiếp cận nguyên tắc đầu tiên dé điểm chuan các mạng phân đoạn thời
gian thực Thiết kế tách rời của khung phân tách các mô-đun dé tốt hơn cho việc so
sánh định lượng Mô-đun đầu tiên bao gồm kiến trúc mạng khai thác tính năng, thứ
hai là siêu kiến trúc cung cấp phương pháp decoder Ba kiến trúc meta khác nhau
được đưa vào khuôn khổ của tác giả, bao gồm kiến trúc Skip, UNet và Dilation
Frontend Các kiến trúc mạng khác nhau dé trích xuất tính năng được bao gồm, đó là
ShuffleNet, MobileNet, VGG16, va ResNet-18 Khung do điểm chuẩn của tác giả
cung cấp cho các nhà nghiên cứu và các nhà thực hành như nhóm em một phương
tiện để đánh giá thiết kế lựa chọn cho nhiệm vụ của nhóm Từ Bảng 1.1, ta có thê
thấy mạng MobileNet đạt độ chính xác cao nhất ở mỗi class đối tượng, là khả thi nhất
trong các lựa chọn với độ chính xác tốt hơn ResNet và ShuffleNet Tuy độ chính xác
có thé không bằng VGG16 nhưng xét về FPS thì 6n hơn khá nhiều Bảng 1.2 sau là
một bài kiểm thử sau khi train và test hai loại mạng của MobileNetV3 đã cho thấy
rằng 72,6% mloU và 3,6 triệu parameters trên tập validation của Cityscapes, thử
nghiệm trên một GPU V100 duy nhất với hình ảnh độ phân giải đầy đủ (1024 x 2048)
làm đầu vào Nó chạy nhanh hơn khoảng bốn lần trên hình ảnh có độ phân giải một
nửa (512 x 1024) [3]
Bảng 1.2: Các thông số sau khi train của các mô hình sử dụng MobileNet [3]
Model Segmentation Head Parameters miloU Inference TensorRT Weights?
MobileV3Large LR-ASPP, F=256 3.6M 72.3% 21.1 FPS 30.7 FPS 4 MobileV3Large LR-ASPP, F=128 3.2M 72.3% 25.7 FPS 37.3 FPS 4 Mobi1eV35ma11 LR-ASPP, F=128 1.1M 67.4% 38.2 FPS 52.4 FPS S4 Mob41eV35ma11 LR-ASPP, F=64 1.0M 66.9% 46.5 FPS 61.9 FPS s4
Trang 17Từ Bang 1.2, có thé thấy với mô hình MobileNetV3 va Segmentation Head làLR-ASPP, tốc độ FPS là vượt trội so với ShuffeNet và nếu chuyên sang TensorRTthì FPS còn được cải thiện tối ưu hơn nữa Ngoài ra, giữa MobileNetV3Large vàMobileNetV3Small thì tốc độ của Small nhanh hơn nhiều lần tuy độ chính xác có vẻthấp hơn Qua các đánh giá trên, nhóm quyết định dùng kiến trúc mạngMobileNetV3Small và LR-ASPP cho đề tài.
Ngoài ra, vẫn còn vấn đề về tập dữ liệu Dữ liệu vê hệ thông đường tại Việt Nam không có sẵn mà không thê áp dụng bộ dữ liệu có sẵn như CityScapes, nên nhóm cần
tiễn hành tự thu thập dữ liệu và tự label thủ công dé train cho mô hình của nhóm
1.4 Mục tiêu khóa luận
Mục tiêu của đề tài là áp dụng được các kiến trúc mạng thích hợp dé giải quyếtvấn đề, nhóm sẽ xây dựng lại bộ dữ liệu phù hợp cho cơ sở hạ tầng đường xá ViệtNam Đồng thời xây dựng hệ thống phân vùng ảnh theo thời gian thực và nhúng lênboard NVIDIA Jetson TX2 hiện thực hóa “bộ não” cho xe tự hành Cụ thé các vấn décần tập trung giải quyết là:
— Nghiên cứu và chọn lọc một kiến trúc mạng deep learning chạy phân vùng nội
dung anh real time phù hợp trên board NVIDIA Jetson TX2.
— Tw tạo bộ dữ liệu riêng của nhóm với môi trường trong nước Việt Nam để train
cho mô hình.
— Phân vùng được các đối tượng: người, xe vả làn đường tại Việt Nam
— Nhúng thành công lên board NVIDIA Jetson TX2 và kiểm thử, cải thiện
1.5 Giới hạn đề tài
— Kích thước dt liệu: 13000 ảnh (10000 train 3000 test), độ phân giải 512 x 512.
— Mô hình phân vùng được các đối tượng người, xe, đường.
— Mô hình phân vùng đối tượng trên các đoạn đường đã được phủ nhựa
— Hoạt động tốt nhất trong điều kiện thời tiết tốt: sáng, trưa, chiều khi đủ ánh
sáng, không có sương mù.
Trang 18— Mô hình đạt độ chính xác:
e Trên 80% tại trường đại học công nghệ thông tin TPHCM.
e Trên 75% tại khu đô thị đại học quốc gia TPHCM
e Trên 50% tại các loại đường giao thông khác (không ké đường đất đỏ)
— Sử dụng mạng pretrained và chuyên đổi lại dé thu dit liệu người và xe
— Detect trên camera của board NVIDIA Jetson TX2 với 30 FPS.
Trang 19Chuong 2 CƠ SỞ LÝ THUYET
2.1 Image Segmentation
Image Segmentaion hay còn gọi là phân khúc hình anh nghĩa là bai toán sé phan
chia hình ảnh thành nhiều vùng ảnh khác nhau, tạo ra một mặt nạ pixel-wise cho mỗiđối tượng trong hình ảnh Kỹ thuật này cung cấp cho chúng ta hiểu biết chỉ tiết hơn
về các đối tượng trong hình anh Image Segmentation cũng có chung mục tiêu nhưObject Detection là phát hiện ra vùng ảnh chứa vật thể và gán nhãn phù hợp chochúng Tuy nhiên tiêu chuẩn về độ chính xác của Image Segmentation ở mức cao hơn
so với Object Detection khi nó yêu cầu nhãn dự báo đúng tới từng pixel [23]
Object Instance
Detection Segmentation
Hình 2.1: Phân biệt thuật toán Object Detection va Instance Segmentation [4]
Hình 2.1 cho thấy sự khác nhau giữa hai thuật toán Với hình bên trái sử dung
Object Detection, các đối tượng được phát hiện và tạo bounding box quanh đối tượng.
Với hình bên phải sử dụng Semantic Segmentation, các đối tượng được tạo mask
riêng.
Trang 20Mặc dù Image Segmentation yêu cầu về mức độ chỉ tiết cao hơn nhưng bù lại
thuật toán giúp ta hiểu được nội dung của một bức ảnh ở mức độ sâu hơn khi chúng
ta biết được đồng thời: Vi trí của vật thé trong ảnh, hình dạng của vật thể và từng
pixel nào thuộc về vật thể nào Bài toán Image Segmentation được chia ra làm hai
loại: [23]
— Semantic segmentation: Thực hiện segment các vùng ảnh theo từng lớp khác
nhau mà không phân biệt sự khác nhau giữa các đối tượng trong từng lớp
— Instance segmentation: Thực hiện segment các vùng ảnh chỉ tiết với từng đối
tượng riêng biệt trong cùng một lớp.
Hinh 2.2: Phan biét Semantic Segmentation va Instance Segmentation [23]
Trong hai hình của Hình 2.2, hình trái, mỗi pixel thuộc về một lớp cụ thé (nềnhoặc người) Ngoài ra, tất cả các pixel thuộc một lớp cụ thé được thé hiện bang cùngmột màu (nền là màu đen và người là màu hồng) Đây là một ví dụ về Semantic
Trang 21lên kế hoạch trong một môi trường phát triển liên tục Vì yêu cầu an toàn tuyệt đối và
độ chính xác cao trong mọi quyết định nên một hệ thống xe tự hành cần phải xác định
chính xác các vật thê xuất hiện khi tham gia giao thông Qua đó, nhóm quyết định
chọn sử dung Semantic Segmentation dé nhóm các class làn đường, người, phương
tiện giao thông.
2.2 Semantic Segmentation
Semantic Segmentation - phân đoạn ngữ nghĩa, hoặc phan đoạn hình anh, là
nhiệm vụ nhóm các phần của một hình ảnh thuộc cùng một lớp đối tượng lại với nhau.
Nó là một dạng dự đoán cấp pixel vì mỗi pixel trong ảnh được phân loại theo một
danh mục.
Mục tiêu của phân đoạn ngữ nghĩa hình ảnh là gán nhãn mỗi pixel của hình ảnh
với một lớp tương ứng của những gi đang được biéu diễn Vì ta dang dự đoán cho
mỗi pixel trong bức ảnh, tác vụ này thường được gọi là dự đoán dày đặc [8] Hình 2.3
sau mô tả một bức hình gốc sau khi được phân vùng ngữ nghĩa
Trang 222.3 Tổng quan về Deep Learning
2.3.1 Dinh nghĩa
Deep Learning là một tập hợp con của Machine Learning, bản thân nó năm tronglĩnh vực trí tuệ nhân tạo Nó có khả năng khác biệt ở một số khía cạnh quan trọng sovới Machine Learning nông truyền thống, cho phép máy tính giải quyết một loạt các
van đề phức tạp không thé giải quyết được [22]
2.3.2 Ung dụng
Ta thường sử dung Deep Learning khi dữ liệu của ta phần lớn không có cau trúc
và bạn có rất nhiều dữ liệu Các thuật toán Deep Learning có thể lay di liệu lộn xộn
và không có nhãn rộng rãi — chăng hạn như video, hình ảnh, bản ghi âm thanh và văn
bản — và áp đặt đủ thứ tự cho dữ liệu đó dé đưa ra dự đoán hữu ích, xây dựng hệ thống
phân cấp các tính năng tạo nên con chó hoặc con mèo một hình ảnh hoặc âm thanh
tạo thành một từ trong lời nói.
Các mạng nơ-ron sâu vượt trội trong việc đưa ra dự đoán dựa trên dữ liệu phân
lớn không có câu trúc Điêu đó có nghĩa là chúng cung cap hiệu suat tot nhat trong các lĩnh vực như nhận dạng giọng nói và hình ảnh, nơi chúng làm việc với đữ liệu lộn xộn như ghi âm lời nói và hình ảnh [22]
2.3.3 Khó khăn
Một trong những nhược điểm lớn của Deep Learning là lượng dữ liệu nó cần đểtraining, gần đây Facebook tuyên bồ họ đã sử dụng một tỷ hình ảnh dé đạt được hiệu
suất phá kỷ lục bởi một hệ thống nhận dạng hình ảnh Khi các bộ dữ liệu lớn như vậy,
các hệ thống training cũng yêu cầu quyền truy cập vào một lượng lớn sức mạnh tính
toán phân tán Đây là một vấn đề khác của Deep Learning, chi phí đào tạo Do kíchthước của bộ dữ liệu và số chu kỳ training phải được chạy, training thường yêu cầuquyên truy cập vào phần cứng máy tính mạnh mẽ và đắt tiền, điển hình là GPU caocấp hoặc mảng GPU Cho dù bạn đang xây dựng hệ thống của riêng mình hoặc thuêphần cứng từ nền tảng đám mây, không có tùy chọn nào là rẻ
11
Trang 23Mạng lưới thần kinh sâu cũng khó đảo tạo, do cái được gọi là vấn đề độ dốcbiến mắt, có thể làm xấu đi nhiều lớp hơn trong mạng lưới thần kinh Khi nhiều lớp
được thêm vào, van đề độ dốc biến mat có thé dẫn đến việc mat một thời gian dài
không thé dé training một mang lưới thần kinh đến một mức độ chính xác tốt, vi sựcải thiện giữa mỗi chu kỳ training là rất ít Vẫn đề không ảnh hưởng đến tất cả cácmạng thần kinh nhiều lớp, thay vào đó là các mạng sử dụng phương pháp học tập dựa
trên độ dốc Điều đó nói rằng vẫn đề này có thể được giải quyết theo nhiều cách khácnhau, bằng cách chọn một chức năng kích hoạt phù hợp hoặc bằng cách training trên
một hệ thống sử dụng GPU hạng nặng [22]
2.3.4 Các kỹ thuật Deep Learning
Có nhiều loại mạng lưới thần kinh sâu, với các cau trúc phù hợp với các loại
nhiệm vụ khác nhau Ví dụ: Mạng nơ-ron tích chập (CNN) thường được sử dụng cho
các tác vụ Computer Vision, trong khi Mạng nơ-ron hồi quy (RNN) thường được sửdụng để xử lý ngôn ngữ Loại mạng thần kinh cơ bản nhất là mạng Perceptron nhiềulớp, loại được thảo luận ở trên trong ví dụ về các số liệu viết tay
Có một số lượng lớn các loại mạng thần kinh sâu khác nhau Không có mộtmạng nào tốt hơn mạn ø kia, chúng chỉ phù hợp hơn dé học các loại nhiệm vụ cụ thé
nhúng Nhiều nghiên cứu đang được tiến hành và các nhà nghiên cứu hiện đã phát
hành MobileNetV3 đại diện cho MobileNets thế hệ tiếp theo dựa trên sự kết hợp của
các kỹ thuật tìm kiếm bé sung và thiết kế kiến trúc mới
12
Trang 24Đóng góp chính của MobileNetV3 là việc sử dụng AutoML dé tìm kiến trúc
mạng thần kinh tốt nhất có thể cho một vấn đề nhất định Điều này tương phản với
thiết kế thủ công của các phiên bản kiến trúc trước Cụ thể, MobileNetV3 sử dụng
hai kỹ thuật AutoML: MnasNet va NetAdapt MobileNetV3 trước tiên tìm kiếm mộtkiến trúc thô bằng MnasNet, sử dụng tính năng học tăng cường dé chọn cấu hình tối
ưu từ một tập hop các lựa chon rời rac Sau đó, mô hình fine-tunes kiến trúc bang
cách sử dung NetAdapt, một kỹ thuật bổ sung giúp cat bỏ các kênh kích hoạt chưađược sử dụng thành các phần nhỏ [5]
2.4.2 Kién trúc
Một ý tưởng mới khác của MobileNetV3 là sự kết hợp của một khối
Excitation vào kiến trúc cốt lõi Ý tưởng cốt lõi của khối
Squeeze-And-Excitation là cải thiện chất lượng của các đại diện được tạo ra bởi một mạng bang
cách mô hình hóa rõ ràng sự phụ thuộc lẫn nhau giữa các kênh của các tính năng tích
hợp của nó Vì vậy, tác giả đề xuất một cơ chế cho phép mạng thực hiện hiệu chuẩn
lai tính năng, qua đó mạng có thé học cách sử dụng thông tin toàn cầu dé nhắn mạnh
một cách có chọn lọc các tính năng thông tin và loại bỏ những tính năng kém hữu ích
hơn Trong trường hợp của MobileNetV3, kiến trúc mở rộng MobileNetV2 kết hợpcác khối Squeeze-And-Excitation như một phần của không gian tìm kiếm, kết quả là
ya ~
tao ra cac kién trúc mạnh mẽ hơn.
Hình 2.4 sau minh họa kiến trúc của MobileNetV3 sau khi được mở rộng từ V2
và kết hợp các khối khác [5]
13
Trang 25Hình 2.4, tại layer thứ 3 có một nhánh Squeeze-And-Excitation có kích thước
(width x height) bằng 1 x 1 có tác dụng tong hợp global context Nhánh này lần lượt
đi qua các biến đổi FC -> Relu -> FC -> hard sigmoid Cuối cùng được nhân trực tiếpvào nhánh input dé scale input theo global context Các kiến trúc còn lại hoàn toàn
giữ nguyên như MobileNetV2.
14
Trang 26Một tối ưu hóa thú vị của MobileNetV3 là thiết kế lại một số expensive layers
trong kiến trúc Một số layers trong MobileNetV2 là nền tảng cho độ chính xác của
các models nhưng cũng cho vào các mức độ trễ liên quan Băng cách kết hợp một số
tối ưu hóa cơ bản, MobileNetV3 có thể loại bỏ ba expensive layers của kiến trúc tiền
nhiệm của nó mà không làm giảm độ chính xác [5] Hình 2.5 sau giải thích sự thay
Hinh 2.5: So sanh giai doan cuối ban đầu và giai đoạn cuối hiệu quả [1]
Từ Hình 2.5, có thê thấy một số layers cuối cùng cũng như một số layers đầutốn kém hơn những layers khác Trong original last stage, tích chập 1 x 1 làm lớpcuối cùng dé mở rộng từ 320 chiều sang không gian đặc trưng có chiều cao hơn (kíchthước 1280) Layers này cực kỳ quan trọng để có các tính năng phong phú cho dựđoán Tuy nhiên, điều này đi kèm với chỉ phí là độ trễ thêm
Sửa đổi đầu tiên là đi chuyên layer này (1 x 1 Conv) qua layer Avg-Pool cuốicùng Bộ tính năng cuối cùng này hiện được tính ở độ phân giải không gian 1 x 1
thay vì độ phân giải không gian 7 x 7.
Khi chi phí của lớp tạo tính năng này đã được giảm thiểu, lớp BN trước đókhông còn cần thiết nữa dé giảm tính toán
Giai đoạn cuối hiệu quả này giúp giảm độ trễ 7 mili giây, tức là 11% thời gian
chạy và giảm số lượng hoạt động đi 30 triệu MAdds mà hầu như không mất độ chính
xác.
15
Trang 27Một lớp tốn kém khác là bộ lọc ban đầu Ban đầu, các mô hình có xu hướng sử
dụng 32 bộ lọc trong tích chập 3 x 3 đầy đủ để xây dựng các ngân hàng bộ lọc ban
đầu đề phát hiện cạnh
Với việc giảm số lượng bộ loc và sử dụng các độ phi tuyến khác nhau có thélàm giảm sự dư thừa Bang cách sử dụng H-Swish, số lượng bộ lọc giảm xuống còn
16 bộ lọc trong khi vẫn duy trì độ chính xác như 32 bộ lọc sử dụng ReLU hoặc swish.
Điều này giúp tiết kiệm thêm 2 mili giây và 10 triệu MAdds [19]
2.4.3 Phan loại
MobileNetV3-Large và Small được tác giả đề xuất là những mô hình Mobilethé hệ tiếp theo MobileNetV3 đã cho thấy những cải tiến đáng kể so với các kiến
trúc trước đó Vi dụ: trong các tác vụ phát hiện đối tượng, MobileNetV3 hoạt động
với độ trễ ít hơn 25% va cùng độ chính xác của các phiên bản trước Các cải tiến
tương tự cũng được thấy trong các nhiệm vụ phân loại như được minh họa trong hình
Latency, pixel 1, ms Latency, pixel 1, ms
Hình 2.6: So sánh độ trễ hai loại mạng MobileNetV3 với các mạng khác [1]
Hình 2.6 cho thấy sự cân bằng giữa độ trễ Pixel 1 và độ chính xác củaImageNet hàng dau Tất cả các kiều máy đều sử dụng độ phân giải đầu vào 224 V3
large và V3 small sử dụng các hệ số 0,75, 1 và 1,25 dé hiển thị biên cương tối ưu Tất
cả các độ trễ được đo trên một lõi lớn duy nhất của cùng một thiết bị
16
Trang 28Hiện tại, hai mô hình MobileNet mới được phát hành: MobileNetV3-Large và
MobileNetV3-Small được nhắm mục tiêu cho các trường hợp sử dụng tài nguyên cao
và thấp Các mô hình sau đó được điều chỉnh và áp dụng cho các nhiệm vụ Object
Detection và Semantic Segmentation Khóa luận sử dụng kiến trúc mạng
MobileNetV3-Small như một encoder trong model Semantic Segmentation Bảng 2.1
dưới đây là thông số kỹ thuật của kiến trúc MobineNetV3-Small
Bảng 2.1: Thông sỐ kỹ thuật của MobileNetV3-Small [1]
Input Operator exp size | #out | SE | NL | s
12 x 1024 | conv2d 1x1, NBN 2 k - - J1
2.5 Lite Reduced Atrous Spatial Pyramid Pooling (LR-ASPP)
R-ASSP là một thiết kế rút gon của mô-đun Astrous Spatial Pyramid Pooling
chỉ áp dụng hai nhánh bao gồm một tích chập 1 x 1 và global-average pooling
Lite R-ASPP (LR-ASPP), cải tiến hơn R-ASPP, triển khai tính năng
global-average pooling theo cách tương tự như mô-đun Squeeze-and-Excitation, trong đó
tác giả sử dụng một kernel tổng hợp lớn với một bước tiến lớn (dé lưu một số phép
17
Trang 29tính) và chỉ một phép chập | x 1 trong mô-đun Tác giả áp dụng phép tích chập cho
khối cuối cùng của MobileNetV3 dé trích xuất các tinh năng dày đặc hon và thêm kết
nối bỏ qua từ các tinh năng cấp thấp dé nam bắt thông tin chỉ tiết hơn
Lite R-ASPP là một bộ giải mã phân đoạn mới với hiệu quả rõ rệt, nó đã đạt
được kết quả SOTA mới về phân loại, phát hiện và phân đoạn di động [9]
l
| 1 1 1
| 1 I
| l
!
wee eee ee eee ee See Ee eee @ ee - @ oe gw ow ww nw ww ew ee ee ee ee ee ee eee
Hình 2.7: Cấu trúc Lite R-ASPP - Segmentation Head [1]
Qua Hình 2.7, một Segmentation Head được đề xuất xây dựng trên
MobileNetV3, Lite R-ASPP, mang lại kết quả phân đoạn ngữ nghĩa nhanh chóngtrong khi kết hợp các tính năng từ nhiều độ phân giải
MobleNetV3-Large LR-ASPP nhanh hơn 34% so với MobileNetV2 R-ASPP
với độ chính xác tương tự đối với phân đoạn Cityscapes [9]
2.6 Tổng quan về CNN và các khái niệm liên quan
2.6.1 CNN - Convolutional Neural Network
Convolutional Neural Network (CNNs — Mang nơ-ron tích chập) là một lớp của
Mạng noron nhân tao sâu thường được áp dụng cho các tác vụ xử lý hình ảnh như
phát hiện và nhận dạng đối tượng [10]
18
Trang 302.6.2 Padding
Về cơ ban, padding làm cho các ảnh đặc trưng (feature map) được tạo bởi các
nhân bộ lọc có cùng kích thước với hình ảnh gốc [14]
Có ba loại Layers trong mạng nơ-ron tích chập: convolutional layer, pooling
layer, and fully connected layer Mỗi lớp này có các tham số khác nhau có thé được
tôi ưu hóa và thực hiện một tác vụ khác nhau trên dữ liệu đâu vào.
Convolutional layers là các lớp mà các bộ lọc được áp dụng cho hình ảnh gốc
hoặc cho các ảnh đặc trưng trong một mạng CNN sâu Đây là nơi chứa hầu hết cáctham số do người dùng chỉ định trong mạng Các tham số quan trọng nhất là số lượng
nhân và kích thước của các nhân.
Pooling layers tương tự như convolutional layers, nhưng chúng thực hiện một
chức năng cụ thê như max pooling (lấy giá trị lớn nhất trong một vùng lọc nhất định)
hoặc average pooling (lấy giá trị trung bình trong một vùng lọc) Chúng thường được
sử dụng dé giảm kích thước của mạng nhưng vẫn giữ được các thuộc tính quan trọng
Kích thước dữ liệu giảm giúp giảm việc tính toán trong model.
Fully connected layers được đặt trước đầu ra phân loại của CNN va được sửdụng đề làm phăng kết quả trước khi phân loại Điều này tương tự như lớp đầu ra của
một MLP [14]
19
Trang 312.7 Mask RCNN và các khái niệm liên quan
2.7.1 Dinh nghĩa
Mask RCNN là một mạng thần kinh sâu nhằm giải quyết vấn đề Instance
Segmentation trong Machine Learning hoặc Computer Vision Nói cách khác, nó có
thé tách các đối tượng khác nhau trong một hình ảnh hoặc một video Với một hìnhảnh, nó cung cấp cho ta các thông tin của đối tượng: bounding box, lớp đối tượng và
mặt nạ [20]
Hình 2.8: Ví dụ về Mask RCNN [26]
Có hai giai đoạn của Mask RCNN Đâu tiên, nó tạo đê xuât vê các khu vực có
thể có một đối tượng dựa trên hình ảnh đầu vào Thứ hai, nó dự đoán lớp của đối
20
Trang 32tượng, tinh chỉnh bounding box và tạo mặt nạ ở mức pixel của đối tượng dựa trên đề
xuât ở giai đoạn đâu tiên Cả hai giai đoạn đêu được kết nôi với câu trúc backbone.
Backbone là một mạng nơ-ron sâu kiểu FPN (Feature Pyramid Networks) Nó
bao gồm một con đường từ dưới lên, một con đường từ trên xuống dưới và các kếtnối bên Đường dẫn từ dưới lên có thé là bat ky ConvNet nao, thường là ResNet hoặc
VGG, trích xuất các tính năng từ hình ảnh thô Đường dẫn từ trên xuống tạo bản đồhình kim tự tháp có kích thước tương tự như đường dan từ dưới lên Các kết nối bên
là phép toán chập và cộng giữa hai mức tương ứng của hai con đường FPN hoạt động
tốt hơn các ConvNets đơn lẻ khác chủ yếu vì lý do nó duy trì các tính năng ngữ nghĩa
mạnh mẽ ở các thang độ phân giải khác nhau [20]
2.7.2 Region of Interset (RoI)
Các bounding box từ các khu vực phat hiện đối tượng sẽ có những kích thước
khác nhau nên qua bước này sẽ gộp toàn bộ các bouding box đó về một kích thướcnhất định tại một đối tượng tiếp theo, các vùng này được chuyển qua một Fully
Connected Layer dé dự đoán nhãn lớp và bounding box Một đối tượng sẽ có rất nhiềubounding box với các kích thước khác nhau sau đó nó sẽ được loại bỏ dần qua việc
tính toán IOU như sau: [26]
IoU = Area of the intersection/Area of the union (2.1)
Vùng giao nhau giữa bouding box dự đoán va bounding box thực tế chia cho
bouding box thực tế Nếu IoU lớn hơn hoặc bang 0.5 thì sẽ quan tâm còn nhỏ hơn thì
sẽ loại bỏ Có thể hiéu thêm qua cách tính IoU qua hình minh họa Hình 2.9
21