Trong quá trình học tap và rèn luyện tại trường, với sự dạy dỗ, chi bảo tận tình của quý thầy cô đã trang bị cho em những kiến thức về chuyên môn cũng như kỹ năng mềm, tạo cho em hành tr
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
LÝ HÒNG PHONG
KHÓA LUẬN TÓT NGHIỆP
TRIEN KHAI CAC TÁC VỤ NHẬN DẠNG VA LAP KE HOẠCH CHO XE TU HANH TREN HE THONG DA
MAY TÍNH NHÚNG
Deploy autonomous vehicles perception and planning tasks on an
Embedded multi-computer system
KỸ SƯ NGANH KY THUAT MAY TÍNH
TP HO CHÍ MINH, 2023
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
LÝ HÓNG PHONG -18520331
KHÓA LUẬN TÓT NGHIỆP
TRIEN KHAI CÁC TÁC VỤ NHAN DẠNG VÀ LAP KE HOẠCH CHO XE TU HANH TREN HE THONG DA
MAY TÍNH NHUNG
Deploy autonomous vehicles perception and planning tasks on an
Embedded multi-computer system
KỸ SU NGÀNH KY THUAT MAY TÍNH
GIANG VIEN HUONG DAN THS PHAM MINH QUAN
TP HO CHi MINH, 2023
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ĐHCNTT ngày 15 tháng 02 năm 2023 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 471/QD-LOI CAM ON
Dau tién, em xin gửi lời cảm on đến quý thầy cô trường Đại Học Công Nghệ Thông
Tin Trong quá trình học tap và rèn luyện tại trường, với sự dạy dỗ, chi bảo tận tình
của quý thầy cô đã trang bị cho em những kiến thức về chuyên môn cũng như kỹ năng mềm, tạo cho em hành trang vững chắc trong cuộc sống cũng như công việc sau
viên Chế Quang Huy, Nguyễn Văn Tín, Lê Đại Quốc và các sinh viên khác trong
CLB CEEC đã giúp đỡ em hiện thực hệ thống này lên được phương tiện thực tế.
Em cũng muốn cảm on tat cả các công ty và nhà phát triển cung cấp các dịch vụ miễn
phí cũng như các thư viện và dự án mã nguồn mở Không có những công cụ và thư viện nay khoá luận của em sẽ không thê hoàn thành được như bây giờ.
Cuối cùng, em xin cảm ơn đến gia đình, những người luôn dành những sự động viên đến em trong suốt quá trình thực hiện khóa luận.
Thành phó Hồ Chí Minh, tháng 01 năm 2023
Sinh viên thực hiện
Lý Hồng Phong
Trang 5MỤC LỤC
Chương 1 TONG QUAN ĐÊ TÀI 22-22222+22222E22E22EEEE2EEEcrrrrkrcree 1
1.1 Giới HhiQU oe eee ec eeseesnesneseesesseeseesessessssesesseesessessnseneeseeseesessneenes 1
1.2 Tình hình hành công nghiệp Automotive eee +=++++x+xe++ 2
1.2.1 Tình hình nghiên cứu trên thế giới .-c-: -22ccvvcccce+rcrree 4
1.2.2 Tình hình nghiên cứu trong nước
1.3 Mục tiêu để tài Hee 6
1.4 Phương pháp thực hiỆn - - ¿<6 S2 SE HH rưy 7
1.5 Nội dung báo cáo -c<ccẶS SH 8
Chương 2 CƠ SỞ LÝ THUYET DE TÀI -c¿¿522222c+2cvxszrvrrvecree 9
2.1 Stream Socket và Datagram SOCK€K - 6-6 SEvskeekrrerrreree 9
2.1.1 Sooke là DẤU ấn TỐ ẾT oĂeieieiecieee 9
2.2.3 Mô hình Pub/Sub - - tt HH Hước 4
2.3 Kiến trúc Entity Components System -ccc+++22vcvxe+ 4
2.4 Kinematic Bicycle model
2.5 TensorRT [22] ccccccccssscesessesesssseeseseesescsesecsessesecseeesseeesessesesseeeeseeaeeees 7
2.6 Mô hình YOLOPP 1S S221 TH HH Hi 9
Trang 62.6.1 Kiến trúc 2c tt E2 ST S111 1E1E151111111 1511 SEEErrrree 19
2.6.2 Bộ mã hoOá - G2 KH TH TH HH HH nh ng 20 2.6.3 BỘ giải mã HH HH TH TH TH HH HH nh ng 20
2.6.4 Ham độ lỗi và phương pháp huấn luyện . : : 21
">n‹.n :.ô': ÔỎ 22 2.7 tivi ẰẰẰ 22
Chương 3 GIẢI PHÁP ĐỀ XUẤTT 2° E+EE+EE£EE+EEEEEEeEEerkerkerxres 24 3.1 Thiết kế kiến trúc hệ thống - 2 2 ++E++EE£+E++EE+EEeEEzEEerxerxerxee 24 3.2 Cơ chế giao tiếp trong MULTI-COMP -2- 2 sccc+z+zerxersee 25 3.2.1 Thiết kế cơ chế truyền tensor sử dung Stream Sockets 26
3.2.2 Sử dụng MQTT trong điều phối hệ thống -: 5252 28 3.2.3 Giao tiếp giữa Node Master Controller với Node Vehicles 29
3.3 Thiết kế kiến trúc phần mềm - - 2 + + ££+E£+E£+E£+E+£E+EE+EEzrsvez 31 3.3.1 Thiết kế Node Backbone chạy Pipelines trên mô hình ECS 31
3.3.1.1 SySfem SH HH T HH HH HH HH HH 32 3.3.1.2 COImPOTH( G1 1E 1* KH ng, 34 “ha 35
3.3.2 Thiết kế Node Segment chạy pipeline trên mô hình ECS 36
“` e 37
3.3.3 Thiết kế node Master Controller trong hệ thống - 38
3.3.3.1 Car Controller SySf€m cv HknH grg 40 3.3.3.2 MỘT Controller Šysfem c5 + SSs+ssseereseeeesere 41
3.4 Thiết kế giải thuật điều khiển Ultra-Fast Control 5-2 s2 43
Trang 73.4.1 Phương pháp tìm kiếm lộ trình di chuyỀn -. - 5: 5552 5+ 45
3.4.2 Phương pháp Ultra-Fast Control - -++-s + ssscxseseersserssss 49
3.5 Thiết kế hệ thống phần cứng -2- 2+++£+£++E++EEerE++Eezrxerxerxee 55
Chương 4 Kết quả thực hiện -2-©2¿©+¿22++2E+£EE+2EE+2EEeEErerkesrxerrrees 59
4.1 Kết quả tốc độ xử lý và độ trễ hệ thống . ¿ + ¿+cx+cz+sc+z 59
4.1.1 Tốc độ truyền TensOr -¿ 2¿+¿©++2+++x+2E++rx+zrxezrxrrresres 594.1.2 Tốc độ xử lý Node Backbone cececcscceccssessessessessessesessessessessessesseaes 62
4.1.3 Tốc độ xử lý Node Segment cececccccesscesessessesstesessesseessesesseesees 63
4.2 Điện năng tiêu thỤ - G Sc 1x11 TH TH HH TH ng Hy 64
4.3 Kết quả giải thuật điều khiển trên môi trường mô phỏng 65
44 Kết quả chạy hệ thống trên phương tiện thực TẾ TH TH ng crey 67Chương 5 KET LUẬN 2© SE SE 2112121111111 ce, 70
5.1 Kết 801;85:-108010002220 705.2 Ưu điểm và nhược điểm của đề tài -2- 5+ ©5225z+cxecxvxsrxerxersee 70
5.2.1 Ưuđiểm -2c 2c 222 E221 2112112121211 1E cEEcrree 705.2.2 Nhược điỂm +2+2t2E2E1EEEE2121122171 112111 1x 70
5.3 Kho khan gap phat ccc 71
5.4 Hướng phát triển đề tai cccseseseescssesscssesscssessesesestssessessesneaee 71
Trang 8DANH MỤC HÌNH
Hình 1.1: Sơ đồ luồng dữ liệu trong điều khiển xe tự hành -2- 5-2 252 3Hình 1.2: Hình ảnh từ phần mềm đội MIT trong cuộc thi DARPA Urban Challenge
— 5
Hình 1.3: Mini bus tự hành cấp độ 4 thuộc tập đoàn Phenikaa - 6
Hình 2.1: Mô hình OSI [ 13] - c6 2222133121 E51351 1511511111 111.1 111 kg rưy 9
Hình 2.2: Cau trúc Stream Socket +- + + +x+E+EE+EEtEEEEEEEEEEEEEErrkrrkerkrres 10Hình 2.3: Cau trúc Datagram Socket - 2© ++2£+EE£EEtEE2EEEEEEEECEErrkerkerkrree 11Hình 2.4: Kiến trúc thành phần MQTT ¿2 2 E+EE+EE2EE+EE£E£EerEerkerxrrexee 13Hình 2.5: Chuyên mô hình xe 4 bánh về 2 bánh 2 2 22+ +x+£++z++zs2s+2 l6
Hình 2.6: Kinematic bicycle model của phương tIỆn - 55-5 +5<*>+<<++ss2 17
Hình 2.7: Ứng dụng của TensorR'T -: s- 2¿22+++++£x++EE+2Ex2EEerxeerxezrxerrecree 18Hình 2.8: Kiến trúc mô hình YOLOP [27] -2- 2 252 ££££2££+E+Ee£EeExerxzrszxe2 20Hình 2.9: Các thuật toán tối ưu eng-to-end so với thuật toán xen kẽ 21
Hình 2.10: Phương pháp Quantization trong ứng dụng giảm kích thước mô hình 22
Hình 3.1: Sơ đồ luồng đữ liệu trong mô hình YOLOP từ lúc nhận ảnh tới khi ra được
[00 - 4 24
Hình 3.2: Tổng quan hệ thống MULTI-COMP - 2-2 2 2+E££xe£Ee£xerxzrszxez 25
Hình 3.3: Giao thức truyền nhận Tensor thông qua Socket 2- 5 s2 s2 26
Hình 3.4: Mô tả khung truyền và nhận Tensor data từ Server tới Client 27Hình 3.5: Sơ đồ kết nối các Topic trong hệ thống 2-2 +2z+s+z++zxzsz 28Hình 3.6: Kiến trúc phần mềm của Backbone Nodđe 2-2 ¿55 s2 s+£s2 5+2 32Hình 3.7: Các System chạy độc lập trên từng thread và chuyên đữ liệu qua các Queue
Trang 9Hình 3.8: Thành phan cấu trúc lên các Component trong Node - 34Hình 3.9: Kiến trúc phần mềm của Segment Node 2-2 2 2 se +x+£x£+£+2 +2 36Hình 3.10: Các System chạy độc lập trên từng thread và chuyên dữ liệu qua các Queue
trong Note S€BðIm€TIE - - G2 1n TH TH TH HH nh 38
Hình 3.11: Kiến trúc phần mềm của Master Controller Node -: 39
Hình 3.12: Các System chạy song song trên các Thread riêng biệt trong Node Master
Controller oo eee 40
Hình 3.13: Một số sự kiện đọc ban phím tiêu biéu của Car Controller System 40
Hình 3.14: Các sự kiện được xử lý trong MQTT Controller System trong Node Master
09/4011 42
Hình 3.15: Ví dụ về việc tính toán lộ trình cho phương tiện trên Simulink 44
Hình 3.16: Lộ trình của phương tiện trên các đoạn đường cong nhẹ 45
Hình 3.17: Kết quả quá trình biến đổi hình thái học - 2 2 2 s2 s2 sz£s2 5+2 46Hình 3.18: Tìm lộ trình dựa trên các điểm trọng tâm làn đường 47Hình 3.19: Biểu dién các điểm trung tâm làn đường trên hệ trục của Opencv 48
Hình 3.20: Các điểm trung tâm làn đường sau khi được biến đổi không gian toa độ
Hình 3.21: Quỹ đạo di chuyên dựa trên Bicycle Model trong 2s - 50Hình 3.22: Quỹ đạo di chuyền thay đổi theo góc [-20, 20] với vận tốc 5km/h trong
Trang 10Hình 3.26: Bộ chia mang Switch TPLink 5 TL-SG105 5 555 S<<++<<++ss+ 56
Hình 3.27: Hoàn thiện thiết kế của hệ thống MULTI-COMP 2-52 58
Hình 4.1: Tốc độ truyền tải trung bình trong 10s giữa 2 node với kích thước gói tintăng dan (1kb — 1OOkb), - ¿2E SE+SE+EE+EE2EE2EE2EEEEEEEEEEEEEEE12121121121 7111111 xe 59
Hình 4.2: Tốc độ truyền tải trung bình trong 10s giữa 2 node với kích thước gói tin
Hình 4.3: Truyền Tensor song SOng cccccccsssssessesessesesessessessesscsscssssecscsessessessessease 61
Hình 4.4: Xe mô phỏng đánh lái trên đường cong csSc se s+sseersserees 65
Hình 4.5: Xe mô phỏng khi di chuyển trên cầu 2-2 2 52£2+£s+£xerxcrsz 66Hình 4.6: Xe mô phỏng mất lái khi vào cua lớn nhưng van quay trở lại được 1an 66Hình 4.7: Tổng điểm phần mềm mô phỏng chấm -2- 2 2 2 52 £E£E2£++££2 5+2 67Hình 4.8: (a) Anh góc, (b) Anh Segment, (c) Sau khi tính góc lái 68Hình 4.9: Hệ thống MULTI-COMP được lắp đặt lên xe golf - 69
Trang 11DANH MUC BANG
Định dạng khung dữ liệu - 5c 222132332 EEEesrreresrrrsrrres 29
Chi tiết nội dung khung truyên ¿2-55 5SSE£SE+E£2E££E££EerEerxersrree 30
Các thông số khung truyễn -2- 2-22 2+E£EE£EE£2EE2EEEEEEEEEEEErrxrrkerreee 30
Thông số kỹ thuật máy tính nhúng Jetson Tx2 ¿5c 5z s2 522 55Thông số kỹ thuật máy tính nhúng Raspberry Pi B3+ 55Thông số kỹ thuật TL-SG lO5 -¿- ¿2£ ESE+EE+E£+E£2E££E££EeEEerxerszxee 56Thống kê tốc độ truyền Tensor trong hệ thống - 5-52 52 61
Kết quả đo tốc độ thực hiện trung bình của Backbone trên Jetson Tx2 62
Thời gian xử lý cua từng System trong Note Backbone 63
Kết quả đo tốc độ thực hiện trung bình của Segment trên Jetson Tx2 63
Thời gian xử lý của từng System trong Node Segment - 64
Thống kê điện năng tiêu thu của mô hình -2- 2 2 52 s2 =s+£s2 5+2 64
Trang 12DANH MỤC TỪ VIET TAT
AI Artificial Intelligent
DOD Data Driented Design
ECS Entity Components System
I2C Inter-Integrated Circuit
IoT Internet of Things
LAN Local area network
MPC Model Predictive Control
MỌTT Message Queuing Telemetry Transport
OOP Object-oriented programming
OSI Open Systems Interconnection
SAE Society of Automotive Engineers
TCP Transmission Control Protocol
UDP User Datagram Protocol
YOLOP | You Only Look One for Panoptic Perception
Trang 13TÓM TẮT
Dé tai “TRIEN KHAI CÁC TÁC VỤ NHẬN DẠNG VÀ LẬP KE HOẠCH
CHO XE TỰ HANH TREN HE THONG DA MAY TÍNH NHÚNG còn được gọi làMULTI-COMP” do nhóm nghiên cứu phát triển, dé tài sử dụng ba máy tính nhúngbao gồm hai máy tính Jetson Tx2 và một máy tính Raspberry Pi kết nối với nhautrong mạng LAN dé xử lý các tác vụ Nhận dang và Lập lịch trong điều khiển xe tự
hành Tác vụ nhận diện sử dụng mô hình YOLOP được chia cho 2 máy tính Jetson
Tx2 thực hiện và tác vụ Lap lịch va điều khiến sử dụng giải thuật Ultra-Fast Control
do nhóm tự phát triển được chạy trên máy tính Raspberry Pi Hệ thống được thửnghiệm trên môi trường mô phỏng và cả trên phương tiện thực tế trên các đoạn đường
trong trường Đại học Công nghệ Thông tin.
Trang 14Chương 1 TONG QUAN DE TÀI
1.1 Giới thiệu
Công nghệ đang cải tiễn từng ngày với 2 xu hướng công nghệ chủ đạo là Trí tuệnhân tạo (AI) và Kết nối van vật (IoT), nó đã thay đôi hầu hết mọi mặt đời sống củachúng ta từ cách ta trò chuyện với nhau, mua sắm thường nhật hay di chuyền giữacác địa điểm Nếu chỉ cần xét tới mảng công nghệ trong vận chuyền hàng hóa, đi lại
cá nhân thì cũng đã làm cho chúng ta choáng ngợp với sự xuất hiện của hàng tá nhữnggiải pháp công nghệ mới, điển hình là sự xuất hiện của Xe tự hành (Autonomous
Vehicles).
Trước kia, ta chỉ có thé nhìn thấy những chiếc xe bus tự động đưa đón khách,những con robot giao hàng trong các bộ phim khoa học viễn tưởng về tương lai
Nhưng hiện tại, tương lai đó đang ở nơi đây, khi mà các công ty công nghệ lớn như
Amazon, Tesla, Google, dang tung ra thị trường hàng loạt các sản phẩm “đỉnh caocông nghệ” trong mảng xe tự hành và lĩnh vực vận chuyền hàng hoá trong nhà kho,tạo ra một xu thé phát trién công nghệ trên toàn cầu Sự bùng né của công nghệ nàylại làm cho các công nghệ phụ trợ xoay quanh nó cũng phát triển theo Họ sản xuất
ra các cảm biến như lidar, radar phù hợp dé lap đặt trên xe tu hành, những bộ camera
chuyên dụng hay như NVIDIA, họ tung ra những nền tảng AI, những bộ xử lý trung
tâm dành riêng cho các tổ chức muốn nghiên cứu về xe tự hành và đang cần một phần
cứng đủ mạnh mẽ [1].
Đánh đổi lại với sức mạnh lớn của các platform này lại là giá thành và chi phí nănglượng Tuy nó cung cấp cho người dùng con đường ngăn nhất dé tự phát triển mộtsản phẩm liên quan đến “Tự hành” nhưng mức chỉ phí phải bỏ ra là quá sức đối vớicác tô chức nghiên cứu nhỏ lẻ như các phòng nghiên cứu trong các trường đại học
Vi vậy, chúng ta cần một giải pháp tiết kiệm chi phí hơn, tiết kiệm năng lượng hơn,
có tính linh động cao hơn và phù hợp với quy mô sản phẩm mà các nhóm nghiên này
hướng tới.
Trang 15Do cũng là thành viên trong một nhóm nghiên cứu phát triển xe tự hành trongtrường, chúng em hiểu được những giới hạn về phần cứng khi giải quyết nhiều bài
toàn AI cùng lúc Chủ yếu nhóm chỉ đang phát triển giải thuật điều khiển cho mô hình
xe tự hành tự thiết kế trên các board máy tính nhúng như Jetson Nano, Jetson Tx2.Khi tiễn tới phát triển trên xe thật, đòi hỏi lượng tính toán thông tín lớn hơn thì nhữngchiếc máy tính nhúng này lại không đạt được hiệu quả cao khi hoạt động riêng lẻ,
chính vì vậy nhóm chúng em bắt đầu nghiên cứu cách thức kết hợp nhiều máy tính
nhúng lại, cùng nhau xử lý dữ liệu và tính toán đường đi cho xe Nghiên cứu này vừa
tận dụng được những board đang có sẵn của nhóm, tăng tốc được khả năng xử lý của
xe khi những tác vụ cần thiết được phân ra cho từng board xử lý Và từ giờ, nhóm sẽđặt tên hệ thống này bằng tên MULTI-COMP
1.2 Tình hình hành công nghiệp Automotive
Khởi nguyên của cuộc chạy đua công nghệ này được bắt nguồn từ cuộc thi DARPA
Challenge từ những năm 2004, rồi được đổi tên thành DARPA Urban Challenge [2]vào năm 2007 với những thử thách chạy xe trong môi trường đô thị Từ đó, rất nhiềucuộc thi về xe tự hành đã được tổ chức và được nhiều phòng nghiên cứu và nhà sảnxuất đầu tư phát triển các hệ thống tự hành thêm vào những chiếc xe trên thị trường
Ví dụ như Waymo, được phát triển bởi Google, trước đó đã sử dụng những chiếc xe
như Toyota Prius, Fiat Chrysler Pacifica, Audi TT va Lexus RX450h dé lắp đặt lênchúng hệ thống tự hành thử nghiệm, nhưng hiện tại họ đã đưa hệ thống này trên nhữngchiếc xe riêng của mình
Kha năng tự hành của một loại xe được chia làm 5 cấp độ, dựa theo hệ thống doSAE International (SAE J3016) phát triển
s* Các cấp độ SAE có thé được biết đến như sau: [3]
- Level 0 (Không hỗ trợ - No automation): Người lái tự điều khiến tay lái,
phanh, tăng tốc và tự phản ứng với môi trường giao thông xung quanh
Trang 16- Level 1 (Hỗ trợ người lái - Driver Assistance): Trong những điều kiện cố
định, chiếc xe có thé tự điều khiển tay lái hoặc tốc độ nhưng không thể đồng
thời điều khiển cả hai
- Level 2 (Hỗ trợ từng phần — Partial Automation): Chiếc xe có thé tự điều
khiến tay lái, tăng tốc, phanh ở trong những trường hợp nhất định
- Level 3 (Tự động hóa có điều kiện — Conditional Automation): Ở trong
điều kiện phù hợp, chiếc xe có thể tự thực hiện hầu hết các tác vụ trong điềukhiển xe, bao gồm cả giám sát môi trường xung quanh Hệ thống sẽ nhắc nhởngười lái can thiệp khi gặp tình huống mà nó không thể xử lý
- Level 4 (Tự động hóa cao — High Automation): Chiếc xe có thé hoạt động
mà không cần sự tham gia hoặc sự giám sát của con người ở trong những môi
trường hoặc loại đường đã được khảo sát.
- Level 5 (Tự động hoàn toàn): Chiếc xe có thé tự vận hành trên bat cứ loại
đường hay môi trường mà không cân có sự giám sát của con người.
Từ level 3 trở đi, nhiệm vụ di chuyên trên đường đã được chiéc xe kiêm soát gan
như hoàn toàn với sự giám sát hoặc không có giám sát của con người Kiên trúc luông
dữ liệu từ các sensor đên điêu khiên xe được phát triên theo kiên trúc chung như trong
Hình 1.1
Hình 1.1: Sơ đồ luồng đữ liệu trong điều khiển xe tự hành
- Perception: Có nhiệm vụ thu nhận thông tin từ các sensor, nhận biết làn
đường, biển báo, vật cản xung quanh xe
- Localization: Sử dụng những thông tin phát hiện được ở lớp trên để dự đoán
vị trí và tình trạng hiện tại của xe trong môi trường.
Trang 17- Planning: Khi đã xác định được vị trí và môi trường xung quanh ta sẽ chuyên
đến lớp planning, có nhiệm vụ tính toán lộ trình di chuyên sắp tới Lớp nàycho ra 2 loại kết quả là: lộ trình ngắn hạn và lộ trình dài hạn, mục đích cuốicùng vẫn là đưa ra lối đi an toàn nhất dé xe đến được điểm chỉ định
- Control: Lớp này có nhiệm vụ điều khiến xe theo lộ trình đã được thiết lập ở
lớp trên.
1.2.1 Tinh hình nghiên cứu trên thế giới
Sau khi cuộc th DARPA Urban Challenge được tô chức vào năm 2007 kết thúc,rất nhiều bài báo của các nhóm tham gia thử thách này được công bồ rộng rãi chocộng đồng học thuật trên thế giới Những chiếc xe tham gia thử thách này được cácđội tham gia thiết kế, cải tiến lại từ những chiếc xe hơi đang có sẵn trên thị trường
lúc đó Ví dụ như đội thi từ trường đại hoc MIT đã chon chiếc Land Rover LR3 và
lắp đặt lên đó những thiết bị trong hệ thống tự lái của họ [4] Hệ thống tự lái của MITđược đề cập trong [4] va [5] được trang bi gom 5 camera, 7 lidar 180°, radar dat xungquanh xe va tất cả đều được xử lý tại bộ 10 chiếc máy tính 4 nhân, kết nối với nhau
thông qua Ethernet.
Trang 18Hình 1.2: Hình anh từ phần mềm đội MIT trong cuộc thi DARPA Urban Challenge [5]
Đối với những nhóm nghiên cứu nhỏ khác, ho chọn cách thiết kế hệ thống tự hành
của mình trên những chiếc xe mô hình nhỏ và sử dụng mô phỏng đề phát triển giải
thuật [6] Tiếp sau đó là các nghiên cứu đưa công nghệ tự hành lên những chiếc xe
điện giống trong bài báo của H Hafez và các cộng sự [7], họ đã tự phát triển hệ thống
của mình trên chiếc xe golf 14 chỗ chạy bằng điện, với phần cứng trước đó có cấp độ
tự hành là 0 (theo SAE), thành một chiếc xe tự hành đạt được cấp độ tự hành là 3
bằng cách thay đôi về phần trợ lực cho bánh lái, hệ thống phanh điện và các cảm biến
liên quan đặt xung quanh xe Công nghệ tự hành không những xuất hiện trong ngành
công nghiệp ô tô mà còn len lỏi vào những bài giảng ở các trường đại học chỉ sau hơn
15 năm bùng nổ, dan biến nó trở thành một mảng nghiên cứu vững chắc trong hiện
tại và tương lai.
1.2.2 Tình hình nghiên cứu trong nước
Mang nghiên cứu về xe tự hành bao gồm phần mềm va phần cứng phụ trợ cũng
được phát triển mạnh tại Việt Nam trong những năm gần đây nhưng vẫn còn khá mới
Trang 19mẻ Nhiều công ty tại đây đã bắt đầu đầu tư vào đội ngũ nghiên cứu của họ hoặc các
trường đại học đề ra được những sản phẩm đầu tiên trong mảng nghiên cứu này
Như phía tập đoàn FPT tổ chức cuộc thi về xe tự hành “Cuộc đua số” [8] để khởinguồn đam mê nghiên cứu về công nghệ tự hành trong các trường đại học Một công
ty sản xuất xe hơi non trẻ như VinFast hiện dang dau tư rất mạnh vào mục tiêu dao
tạo những kỹ sư tài năng trong mang tự hành này và gan đây họ đã đưa ra được thành
quả đầu tiên của mình là một sản phẩm đạt được cấp độ tự hành 4 (thang đo SAE)
đang chạy thử nghiệm tại các khu nghiên cứu của VinBigdata [9].
Còn về sản phẩm thương mại thì hiện tại chỉ có Mini bus tự hành của công ty
Phenikaa-X thuộc tập đoàn Phenikaa [10], [11] là đang được thương mại hóa trên thị
trường với khả năng tự hành theo nhà sản xuất đưa ra thuộc cấp độ 4, hiện đang hoạt
động tại các khu Resort hợp tác với họ.
1.3 Mục tiêu đề tài
Đề tài “TRIEN KHAI CÁC TAC VU NHAN DẠNG VA LAP KE HOẠCH
CHO XE TU HANH TREN HE THONG DA MAY TÍNH NHÚNG” của nhóm
Trang 20sẽ hướng tới xây dựng một nền tang phần cứng lẫn phần mềm cho xe tự hành với chi
phí thấp, dé thay đổi và dé lắp đặt Những dòng máy tính nhúng tầm trung bình — yếu
như Jetson Tx2 hay Jetson Nano đều cảm thấy đuối sức khi một mình vận hành cả một
khối lượng công việc khống 16 để điều khiển một chiếc xe chạy được trongmôi trường thực tế, nhưng khi ta kết hợp nhiều chiếc máy tính này lại với nhau vàchia công việc cụ thé cho từng máy thực hiện thì việc vận hành này sẽ không còn là
bài toán khó, tưởng chừng chỉ có thê giải quyết được khi chạy trên những dòng máy
cực mạnh như Jetson Orin nx hay các dòng Full Self-Driving Chip — Tesla mới có
thê lam được Mục tiêu cụ thé của dé tài như sau:
- Có khả năng kết nối và chia sẻ dữ liệu tính toán giữa các máy tính trong hệ
thống thông qua mang LAN với độ sai lệch dữ liệu < 10%
- Hé thống dé dàng lắp đặt trên phương tiện mới và dé thao tác khi sử dụng
- Hệ thống tự động thực hiện các tác vụ nhận dạng làn đường dang di va tính
toán lộ trình di chuyền ngắn hạn bao gồm: Góc lái cần đánh và tốc độ cần đạt
tại thời điểm đó Từng tác vụ nhận dang, tính toán lộ trình, điều khiển, được
chia ra xử lý độc lập trên nhiều máy tính nhúng
- Phuong tiện lap hệ thong có khả năng tự vận hành với kịch ban: di chuyển
trên đường thang, di chuyên trên đường cong nhẹ
1.4 Phương pháp thực hiện
Đề tài tập trung vào việc phát triển phương thức giao tiếp hiệu quả giữa các máy
tính nhúng sao cho tốc độ chia sẻ đạt cao nhất nhưng độ mat mát dữ liệu không được
quá lớn Các tác vụ liên quan đến nhận dạng và lập kế hoạch sẽ được nhóm sử dụng
lại những nghiên cứu có mã nguồn mở được chia sẻ trên Internet Ngoài ra, hệ thống
sẽ phải qua hai giai đoạn thử nghiệm gồm: thử nghiệm trên phần mềm mô phỏng xe
tự hành đo chính nhóm phát triển và thử nghiệm trên phương tiện thực tế - xe golf
chạy điện.
Trang 211.5 Nội dung báo cáo
Nội dung đề tài bao gồm 5 Chương:
Chương 1: Tổng quan đề tàiChương 2: Cơ sở lý thuyết đề tài
Chương 3: Nội dung thực hiện
Chương 4: Kết quả thực hiện
Chương 5: Kết luận
Trang 22Chương 2 CƠ SỞ LÝ THUYET DE TÀI
2.1 Stream Socket và Datagram Socket
2.1.1 Socket là gi?
Socket là giao diện lập trình ứng dụng mạng được dùng dé truyén và nhận dữ liệu
trên Internet Giữa hai chương trình chạy trên mạng cần có một liên kết giao tiếp haichiều, hay còn gọi là two-way communication dé kết nối 2 process trò chuyện với
nhau Điểm cuối (endpoint) của liên kết này được gọi là Socket [12]
Socket hoạt động trên cả giao thức TCP và UDP và được định nghĩa bằng công
thức ( 2.1), với Portnumber ở đây chính là Port logic của máy tính (16 bits = 65535 ports).
Socket = IP Address + Portnumber (2.1)
Data Link =—— Data Link Layer
Physical Layer — Physical
Hình 2.1: Mô hình OSI [13]
Có 2 loại Socket chính ma ta cần quan tâm trong đề tài này bao gồm:
- Stream Socket
- Datagram Socket
Trang 232.1.2 Stream Socket
Stream Socket hay còn gọi là socket hướng kết nối, là socket hoạt động thông
qua giao thức TCP (Transmission Control Protocol) Stream Socket chỉ hoạt động khi
server và client đã kêt nôi với nhau, ta có thê thay miêu ta của giao thức ở Hình 2.2.
- _ Dữ liệu truyền đi được đảm bảo truyền đến đúng nơi nhận, đúng thứ tự với
thời gian nhanh chóng.
- Mỗi thông điệp gửi đi đều có xác nhận trả về dé thông báo cho người dùng
thông tin về quá trình truyền tải
Nhược điểm:
- Gitta máy chủ và máy nhận chỉ có 1 IP, nên khi kết nối, 1 máy phải chờ may
còn lai chap nhận kết nôi.
10
Trang 252.2 Giao thức MQTT
2.2.1 Dinh nghĩa
MQTT (Message Queuing Telemetry Transport) [14] là giao thức truyền thôngđiệp (message) theo mô hình publish/subscribe (cung cấp / thuê bao), được sử dung
cho các thiết bị loT với băng thông thấp, độ tin cậy cao và khả năng được sử dụng
trong mạng lưới không ồn định Nó dựa trên một Broker (tạm dich là “Máy chủ môigiới”) “nhẹ” (khá ít xử lý) và được thiết kế có tính mở (tức là không đặc trưng choứng dụng cụ thể nào), đơn giản và dễ cài đặt
Một số ưu điểm nồi bật của MQTT như: băng thông thấp, độ tin cậy cao va có thể
sử dụng ngay cả khi hệ thống mạng không ồn định, tốn rất it byte cho việc kết nối với
server và connection có thê giữ trạng thái open xuyên suốt, có thể kết nối nhiều thiết
bị (MQTT client) thông qua một MQTT server (broker) Bởi vì giao thức này sử dụng
băng thông thấp trong môi trường có độ trễ cao nên nó là một giao thức lý tưởng chocác ứng dụng IoT va sử dụng như một bộ điều phối thông tin tin cậy trong các hệthống lớn như xe tự hành
2.2.2 Kiến trúc thành phần
Kiến trúc thành phần của giao thức MQTT được mô tả chỉ tiết trong Hình 2.4
12
Trang 26Thành phần chính của MQTT là Client (Publisher/Subscriber), Server
(Broker), Sessions (tạm dịch là Phiên làm việc), Subscriptions va Topics.
MỌTTT Client (Publisher/Subscriber): Clients sẽ subscribe một hoặc nhiều
topics để gửi và nhận thông điệp từ những topic tương ứng
MQTT Server (Broker): Broker nhận những thông tin subscribe
(Subscriptions) từ client, nhận thông điệp, chuyên những thông điệp đến các
Subscriber tương ứng dựa trên Subscriptions từ client.
Topic: Có thé coi Topic là một hàng đợi các thông điệp, và có săn khuôn mẫu
dành cho Subscriber hoặc Publisher Một cach logic thì các topic cho phép
Client trao đồi thông tin với những ngữ nghĩa đã được định nghĩa sẵn Ví dụ:
Dữ liệu cảm biến nhiệt độ của một tòa nhà
Session: Một session được định nghĩa là kết nối từ client đến server Tất cả
các giao tiép giữa client và server đêu là 1 phân của session.
13
Trang 27- Subscription: Không giống như session, subscription về mặt logic là kết nối từ
client đến topic Khi đã subscribe một topic, Client có thê nhận/gửi thông điệp
(message) với topIc đó.
2.2.3 Mô hình Pub/Sub
- Client:
o Publisher : Nơi gửi thông điệp
o Subscriber : Nơi nhận thông điệp
- Broker : May chủ môi giới
Trong đó Broker được coi như trung tâm, nó là điểm giao của tất cả các kết nốiđến từ Client (Publisher/Subscriber) Nhiệm vụ chính của Broker là nhận thông điệp(message) từ Publisher, xếp vào hàng đợi rồi chuyên đến một địa điểm cụ thể Nhiệm
vụ phụ của Broker là nó có thể đảm nhận thêm một vài tính năng liên quan tới quátrình truyền thông như: bảo mat message, lưu trữ message, logs,
Client thì được chia thành hai nhóm là Publisher va Subscriber Client chi làm ít
nhất một trong 2 việc là publish các thông điệp (message) lên một/nhiều topic cụ thể
hoặc subscribe một/nhiêu topic nào đó đê nhận message từ topic nay.
2.3 Kiến trúc Entity Components System
Entity Components System - ECS [16] là một kién tric phan mềm được thiết kếtheo cầu tric DOD (Thiết kế hướng dit liệu — Data Driented Design) thay vì hướngđối tượng - OOP (Object-oriented programming) trong các ứng dụng thông thường
khác Kiến trúc này được tông hợp lên từ 3 thành phần chính:
- Component: Chia tính chat, đặc điểm của một đối tượng hay còn gọi là đữ
liệu của đối tượng đó và thường được thêm vào đối tượng để hỗ trợ thực hiện
hành vi Một component được thêm vào đối tượng nó sẽ thể hiện một tính chất
duy nhất, một component tự nó sẽ không có hành vi
14
Trang 28- System: Là những module con, hoạt động độc lập với nhau, xử lý một
“behaviour” nào đó trong hệ thống Có thé ké đến như các System tìm đường
đi, System nhận diện vat thê
- Entity: Entity như là một thực thé được triển khai dưới dạng liên kết duy nhất
của các components Entity sẽ không có dữ liệu hay hành vị thực tế nào, nóchỉ là nơi liên kết các tính chất của component tới các System dé hỗ trợ một
hành vi nào đó.
Về cơ bản, ECS giúp ta phân tách chương trình thành các phần riêng lẻ có thê chạy
độc lập với nhau Mỗi System có thé sử dụng một hoặc nhiều Component và ta có thểthay đôi thêm bớt bất cứ Component nào ta muốn mà không gây ảnh hướng tới các
System khác.
Ví dụ, trong đề tài này, các chương trình liên quan đến tác vụ nhận dạng hoặc lập
lịch có thể được tách thành nhiều System nhỏ khác chạy độc lập với nhau, chúng cóthé liên kết với nhau thông qua các Component chứa dữ liệu của toàn bộ hệ thống.Bằng cách này, ta có thê thiết kế một hệ thống chạy đa luồng và đạt tới khả năng đa
nhiệm.
2.4 Kinematic Bicycle model
Mô hình động học của phương tiện thường được sử dụng trong các ứng dụng liên
quan đến Motion Planning [17], [18] Khi áp dụng các mô hình động hoc của xe trong
lập lịch, ta có thể biết được sự thay đôi trạng thái của xe mỗi khi đánh lái hoặc thay
đổi tốc độ Các thay đối này có ý nghĩa như việc dự đoán trước tương lai của xe vậy
Ta có thé đưa vào day giá trị của vận tốc, góc lái và cho mô hình vẽ lên chuyên động
của xe.
Đối với các mô hình xe 4 bánh, ta có thé làm đơn giản hoá nó lại bằng cách kếthợp 2 bánh trước và 2 bánh sau lại giống Hình 2.5, ta sẽ được mô hình xe hai bánhmang tên Kinematic Bicycle model và phải thoả những điều kiện sau:
- Phuong tiện hoạt động trên mặt phăng 2D.
15
Trang 29- Gia sử toan bộ trọng lượng của phương tiện được đặt ở trọng tâm.
- Chico bánh trước của xe mới được bẻ hướng.
Hình 2.5: Chuyên mô hình xe 4 bánh về 2 bánh
Mô hình Kinematic bicycle model này còn được gọi với cái tên là Mô hình bánh
lái trước (Font wheel steering model) vì hướng của bánh xe tác động trực tiếp tớihướng của cả xe Và khi nhìn vào Hình 2.6, ta có thé viết được phương trình của mô
hình này như sau:
Trang 30- L: Chiều dai phương tiện
- ww: Hướng của phương tiện
- ¢: Góc đánh lái
2.5 TensorRT [22]
Cốt lõi của NVIDIA® TensorRTTM là thư viện C++ hỗ trợ suy luận hiệu suất cao
trên các đơn vị xử lý đồ họa NVIDIA (GPU) Nó được thiết kế dé hoạt động theo
kiểu bổ sung với các khung đảo tạo như TensorFlow, Caffe, PyTorch, MXNet, v.v
17
Trang 31Nó tập trung đặc biệt vào việc chạy một mạng đã được đảo tạo một cách nhanh chóng
và hiệu quả trên GPU nhằm mục đích tạo ra một kết quả (một quy trình được gọi ởnhiều nơi khác nhau như cho điểm, phát hiện, hồi quy hoặc suy luận) Một số khuônkhổ dao tạo như TensorFlow đã tích hợp TensorRT để nó có thể được sử dụng détăng tốc suy luận trong khuôn khổ Ngoài ra, TensorRT có thé được sử dung như mộtthư viện trong ứng dụng người dùng Nó bao gồm các trình phân tích cú pháp dé nhập
các mô hình hiện có từ Caffe, ONNX hoặc TensorFlow và các API C++ và Python
dé xây dựng các mô hình theo chương trình
Trained TheFET TensorRT
Neural Optimizer Runtime
Sar
Automotive Data center
Jetson Drive Tesla
Hình 2.7: Ứng dụng của TensorRT
18
Trang 32Hình 2.7 cho thấy TensorRT là một công cụ tối ưu hóa suy luận mạng thần kinh
hiệu suât cao và công cụ thời gian chạy đê triên khai sản xuât.
2.6 Mô hình YOLOP
Trong bài toán nhận dạng cho xe tự hành thường có các các tác vụ như:
- Nhận diện làn đường.
- Phat hiện vật.
- Phat hiện vạch kẻ đường.
Các giải thuật hoặc mô hình đã được phát triển mạnh dé việc nhận diện này trở lênnhanh hơn với độ chính xác cao hơn Lấy một vài ví dụ như Mask R-CNN [23]va
YOLOR [24] được dùng trong phát hiện vật Hoặc các mô hình như UNet [25] và
PSPNet [26] cho các tác vụ phân đoạn ảnh làn đường Và mặc dù các mô hình này có
hoạt động hiệu quả đến đâu nhưng khi phải chạy lần lượt từng mô hình trong bài toán
nhận diện lớn hơn cho xe tự hành sẽ tốn rất nhiều thời gian.
Thấy được hạn chế khi phải chạy nhiều mô hình để ra được nhiều kết quả chonhiều mục đích khác nhau nên YOLOP [27] đã được ra đời YOLOP, You Only Look
One For Panoptic Perception, được áp dụng công nghệ đa tác vụ trong học sâu có khả
năng sử dụng những thông tin có liên quan đến nhau dé xây dựng lên một mô hình
nhanh hơn và có độ chính xác cao hơn.
2.6.1 Kiến trúc
YOLOP có một bộ mã hoá dùng chung (backbone) và ba đầu giải mã dé giải quyếtcác tác vụ riêng biệt, Hình 2.8 Không có bat kỳ khối chia sẻ đặc trưng phức tạp nào
giữa các bộ giải mã dé giữ cho quá trình tính toán được đơn giản và có thé huấn luyện
từ đầu đến cuối dễ dàng hơn.
19
Trang 33: Neck + Detect head :
AD
Backbone
Hình 2.8: Kiến trúc mô hình YOLOP [27]
2.6.2 Bộ mã hoá
Bộ mã hoá bao gom một mang Backbone va một mang Neck YOLOP sử dụng
một bộ CSP-Darknet dé làm Backbone, được sử dung dé trích xuất các đặc trưng từ
ảnh đầu vào Nó hỗ trợ truyền tài và tái sử dụng các đặc trưng, giúp giảm lượng lớn
tham số và tính toán Mạng Neck chịu trách nhiệm về các kỹ thuật đặc trưng (feature
engineering), nó điều khiến và trích xuất tối đa các đặc trưng của ảnh Nó bao gồm
một module Spatial Pyramid Pooling (SPP) và một module Feature Pyramid Network
(FPN) Mô hình SPP có thé tao va hop nhất các đặc trưng ở các tỉ lệ khác nhau và
FPN hợp nhất các đặc trưng đó ở các cấp độ ngữ nghĩa khác nhau Do đó mạng Neck
tao ra các đặc trưng phong phú ở nhiều tỉ lệ, nhiều ngữ nghĩa khác nhau
2.6.3 Bộ giải mã
Trong tác vụ nhận diện vật, YOLOP sử dụng công nghệ anchor-based multi-scale
detection tương tự trong mô hình YOLOPv4 và kết hợp với mạng Path Aggregation.Mang FPN ở mạng Neck truyền các phân đoạn đặc trưng top-down còn PAN chuyêncác đặc trưng bottom-up YOLOP sẽ kết hợp chúng lại dé ra được đặc trưng tong hợp
20
Trang 34có hiệu quả cao hơn và kết quả của quá trình tổng hợp này là ban đồ đặc trưng hợp
nhất đa tỷ lệ được sử dụng cho tác vụ nhận diện
Tác vụ phân đoạn ảnh làn đường và phân đoạn ảnh vạch kẻ đường sử dụng chung
một kiến trúc mạng Các đặc trưng có kích thước (W/8, H/8, 256) từ lớp bottom của
EPN được đây vào segmentation branch Nó áp dụng qua ba bước upsampling và lưutrữ bản đồ đặc trưng thành (W, H, 2), có khả năng thé các pixel cho vùng làn đườngđược phép di chuyên và vạch kẻ đường từ ảnh đầu vào Trong khi các mạng phân
đoạn khác sử dụng module SPP thì phía phân đoạn ảnh của YOLOP không cần do nó
đã được tích hợp trong phần module SPP chia sẻ ở trong mạng Neck
2.6.4 Hàm độ lỗi và phương pháp huấn luyện
YOLOP sử dụng các hàm mat mát đơn giản, nó có ba hàm mắt mát riêng ở ba đầugiải mã Hàm mat mát của phần nhận diện là tổng hợp của mat mát phân loại, mat
mát đối tượng và mat mát hộp giới hạn Ca hai hàm mat mát của đầu phân đoạn làn
đường và vạch kẻ đường đều chưa mat mát cross-entropy với logits Về phía phânđoạn ảnh vạch kẻ đường có thêm hàm mat mát IoU vi tính hiệu quả cua nó trong việc
dự đoán các danh mục dự phòng Hàm độ lỗi tổng thể của mô hình là tổng trọng số
của cả ba hàm mât mát trên.
Training method Recall(%) AP(%) mloU(%) Accuracy(%) IoU(%)
ES-W 87.0 75:3 90.4 66.8 26.2 ED-W 87.3 76.0 91.6 1Ì.2 26.1
ES-D-W 87.0 75.1 91.7 68.6 27.0 ED-S-W 87.5 76.1 91.6 68.0 26.8
End-to-end 89.2 76.5 91.5 70.5 26.2
Hình 2.9: Các thuật toán tối ưu eng-to-end so với thuật toán xen kẽ
Nhóm tác giả của mô hình YOLOP đã thử nghiệm các phương pháp đảo tạo khác
nhau Họ đã thử đảo tạo end-to-end, điều này khá hữu ích trong trường hợp tất cả các
tác vụ điều liên quan đến nhau Hơn nữa, trong Hình 2.9, họ cũng đã thử nghiệm một
số thuật toán tối ưu hoá xen kẽ dé dao tạo mô hình từng bước Trong đó, mỗi bướctập trung vào một hoặc nhiều nhiệm vụ liên quan Những gì họ quan sát được là các
thuật toán tôi ưu hoá xen kẽ mang lại cải tiên không đáng kê về hiệu suât.
21
Trang 352.6.5 Kết quả
YOLOP được thử nghiệm trên một bộ dữ liệu BDD100k day thách thức so với các
mô hình hiện đại nhất cho ba nhiệm vụ Nó đánh bại Faster RCNN, MultiNet va
DLT-Net về độ chính xác của tác vụ nhận diện và ca thời gian thực hiện inference về phía
phân đoạn ảnh, YOLOP cho ra kết quả tốt hơn so với MultiNet và DLT-Net từ 19.9%đến 20.2% và còn nhanh hơn từ 4 đến 5 lần so với cả 2 Và tác vụ phân đoạn ảnh vạch
kẻ đường cũng cho ra kết quả tương tự
2.7 Quantization
Phương pháp Quantization, Hình 2.10, là phương pháp hữu hiệu giúp tăng tốc thờigian xử ly của các mô hình học sâu mà đảm bảo độ chính xác không giảm đi đáng kếbang cách tính toán và lưu trữ các Tensor ở kiêu đữ liệu số Bit thấp hơn kiêu Float(Hiện tại các Tensor output của Backbone đang ở kiêu dit liệu Float)
ite ES ô: ¬ :
Quantization
FP32 INT8
Hình 2.10: Phương pháp Quantization trong ứng dụng giảm kích thước mô hình
Dựa vào tính chất giảm kích thước Tensor của phương pháp Quantization trên, ta
có thê ứng dụng nó nhằm giảm kích thước của Tensor 3 xuống kích thước thích hợp
22
Trang 36cho quá trình truyền Tensor trong môi trường mạng LAN Ta có thể sử dụng công
Trong công thức ( 2.3), ta có Tensor3 là Tensor cần được Quanta và out là kết quả
của quá trình quanta này Khi thực hiện phương pháp Quantization, phần chiếm nhiềuthời gian xử lý nhất chính là tìm kiếm MaxT và MinT trong Tensor, vì phải duyệt quatoàn bộ phần tử trong Tensor và lựa ra giá trị lớn nhất và nhỏ nhất trong chúng Nhóm
đã đưa ra giải pháp cải thiện tốc độ quy trình này bằng cách chạy Backbone qua tất
cả Dataset và tìm ra giá trị lớn nhất và nhỏ nhất trong tat cả các Tensor này, ta sẽ laynhững giá trị này làm mốc cho những lần chạy sau và sẽ không cần phải tìm lại cácgiá trị này trong lúc chạy hệ thống nữa
23
Trang 37Chương 3 GIẢI PHÁP ĐÈ XUẤT
3.1 Thiết kế kiến trúc hệ thống
Khi nghiên cứu phat trién hệ thống MULTI-COMP, nhóm hướng tới việc sử dung
nó trong các ứng dụng có yêu cầu mức độ tính toán cao và trải qua nhiều bước tính
toán dé cho ra kết quả Ví dụ như mô hình YOLOP, trong Hình 3.1 mô tả luồng ditliệu trong mô hình khi nó phải được di chuyên qua nhiều bước Inference dé cho ra
được phân đoạn ảnh làn đường.
được kết quả
Dé tận dụng tối da tài nguyên của máy tinh trong các ứng dụng như trên, hệ thốngcung cấp cho người dùng khả năng chạy độc lập các tác vu dé đảm bảo dit liệu đượcliên tục xử lý và cho ra kết quả có độ trễ thấp nhất
24
Trang 38—> USB F——Ề SOCK STREAM
MQTT Controller Steering Control
Hình 3.2: Tổng quan hệ thong MULTI-COMP
Hệ thống MULTI-COMP trong Hình 3.2 được nhóm xây dựng dé tối ưu cho quátrình sử dụng mô hình YOLOP dé ra được phân đoạn anh làn đường và sử dụng nócho tác vụ tính toán góc lái điều khiến chiếc xe đi chuyền trên đường Trong Hình 3.2
ta sẽ thay có nhiều Node bao gồm: Backbone Node, Segment Node, Master ControllerNode va Vehicles Node 3 Node đầu tiên được liệt kê ở trên sẽ được chia ra sử dụngtại 3 máy tính nhúng độc lập và được kết nối với nhau trong môi trường mạng LAN,riêng Vehicles Node là một node tách biệt vì nó được chạy trên MCU và chỉ kết nối
với Master Controller Node thông qua giao tiếp Serial
“+ Input/Output hệ thống MULTI-COMP:
- Input: Anh đọc từ Camera.
- Output: Góc lái cần thực hiện
3.2 Cơ chế giao tiếp trong MULTI-COMP
25
Trang 393.2.1 Thiết kế cơ chế truyền tensor sử dung Stream Sockets
Như đã trình bày ở Chương 2 về tác dụng của Stream Sockets và ứng dụng của nótrong thực tế thì ở phần này ta sẽ đi vào thiết kế của giao thức truyền tensor từ Node
Backbone qua Node Segment thông qua Stream Sockets.
Trong hé thống MULTI-COMP, Backbone Node đảm nhiệm nhiệm vụ tính toán
ra đặc trưng của ảnh (từ camera) được lưu dưới dạng các Tensor Khi có yêu cầu nhận
Tensor từ phía Segment Node thì MULTI-COMP sẽ lấy các Tensor được yêu cầu vàtruyền nó cho client thông qua Socket
Server Client
©
‘ Create socket / ‘ Create socket /
Connect 'Waiting for connection Connect server
Hình 3.3: Giao thức truyền nhận Tensor thông qua Socket
Hình 3.3 cho ta thấy được cái nhìn chỉ tiết về quy trình truyền nhận Tensor trong
hệ thống, với Server làm một phần của Backbone Node và Client là một phần của
Segment Node Khi nhận được tín hiệu bắt đầu truyền của Master Controller Node
thông qua MQTT, phía Server va Client sẽ cùng khởi tạo Socket, chuẩn bi cho quátrình truyền theo quy trình sau:
26
Trang 40Server tiến hành đợi Client kết nối tới nó, Node sẽ giữ nguyên trạng thái chờ
và chỉ chờ nên các chương trình phía sau nó sẽ không thê chạy nếu không được
tách một luỗng riêng hoặc sử dung cơ chế Asynch dé xử lý
Client sau khi khởi tạo xong sẽ chờ khoảng 0.5s rồi mới gửi sự kiện connecttới Server Nếu quá trình connect thất bại, hệ thống sẽ gửi một sự kiện thoáttoàn bộ dé người dùng tiến hành sửa chữa Nếu thành công kết nối, hệ thống
sẽ tiến đến phần truyền Tensor giữa 2 máy
Sau khi xác nhận kết nối thành công, phía Client sẽ gửi tới Server một Client
ID để kích hoạt quá trình truyền Tensor Nếu Client ID được nhận là hợp lệ,quá trình truyền sẽ được thông qua
Phía Server gửi trước một chuỗi chứa kích thước của Tensor chuẩn bị gửi(Tensor length), Hình 3.3 (1) Ngay sau đó sẽ gửi tiếp Tensor, đã được chuyền
về dạng Bytes, Hình 3.3 (2)
Về phía Client, sau khi nhận được kích thước của Tensor, ta sẽ tạo một vòng
lặp nhận dữ liệu Mỗi một vòng lặp sẽ cho phép nhận một sỐ lượng Buffer nhất
định và sẽ cộng dồn dit liệu nhận được cho tới khi kích thước của nó bằng với
kích thước Tensor gửi trước đó Hình 3.4.
(1) : Tensor lenght - recv data lenght
< Tensor lenght >
Send Tensor Bytes array
+m —— ——\— Tensor lenght ———————————————— »>
Recv Tensor Bytes array [1] Tensor Bytes array [2] fe
< — Buffer Size ———»<—_ Buffer Size >< (1) >
Hình 3.4: Mô tả khung truyền và nhận Tensor data từ Server tới Client
27