Hình 1.1 trình bày kết quả của QuantLaneNet [6], một nghiên cứu sử dụng mô hình CNN để phát hiện làn đường và kiểm thử trênFPGA thông qua việc đối chiếu kết quả với nhãn của tập dit liệu
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
VÕ ĐĂNG NHẬT VY - 19521125 PHAM XUAN TUÁN ANH - 19521208
KHÓA LUẬN TÓT NGHIỆP
HIỆN THỰC PHƯƠNG THỨC ĐỊNH HƯỚNG TỰ
DONG CHO XE TU HANH BANG FPGA
IMPLEMENT FPGA BASED AUTONOMOUS CAR WITH
CNN HARDWARE
KY SU KY THUAT MAY TINH
GIANG VIEN HUONG DAN
TS LAM DUC KHAI
TP HO CHÍ MINH, 2023
Trang 2LỜI CẢM ƠN
Đầu tiên chúng em muốn cảm ơn các thay, cô tại Dai học Công nghệ Thông tin
— Đại học Quốc gia Thành phó Hồ Chí Minh đã giúp đỡ và chỉ dạy tận tình trong
quá trình học tập và làm việc tại trường Từ đó, em nhận được những kiến thức,
kinh nghiệm cũng như có những trải nghiệm quý báu trong thời gian học đại học cũng như đê tiêp bước cho cuộc sông sau này.
Tiếp theo, em xin cảm ơn các thầy cô thuộc Khoa Kỹ thuật Máy tính đã giúp đỡ,
chỉ bảo tận tình trong quá trình học tập và làm việc tại khoa Đặc biệt trong quá
trình thực hiện khóa luận tốt nghiệp đã nhận được sự quan tâm, giúp đỡ từ các thầy,
cô dé giúp hoàn thiện dé tài một cách tốt nhất
Đề có thê hoàn thành tốt khoá luận tốt nghiệp này, em xin cảm ơn thầy Lâm Đức
Khải đã luôn giúp đỡ, chỉ dạy tận tình để giúp em có được những kinh nghiệm về
chuyên môn cũng như kỹ năng mềm giúp ích cho quá trình làm khóa luận cũng như
cuộc sông sau này.
Sau cùng, em muốn gửi lời cảm ơn đến gia đình và bạn bè đã luôn ủng hộ, tintưởng, động viên nhiệt tình để em có thể yên tâm, hoàn thành tốt khóa luận tốt
Trang 3MỤC LỤC
Chương 1 GIỚI THIỆU TONG QUAN DE TAL 5-5°5°< 5
In ee 5
1.2 Cac nghiên cứu liên quam - 5 52+ + + EeExeereeerrserrererrree 6
1.2.1 Cac nghiên cứu về giải thuật dự đoán góc lái xe 61.2.2 Cac nghiên cứu về giải thuật phát hiện làn đường 8
1.3 Mục tiêu đề tabc ccccccccccccccecscsssessessessesssessessessusssessessussussseesessssneeseess 9
Chương 2 CƠ SỞ LÝ THUYTT 5-2 ss©sssssvsserssesssessecse 12
2.1 Mang nơ-ron nhân tao (Artificial Neural Networks) 12
2.2 Mạng nơ-ron (ích chap (Convolutional Neural Networks) 14 2.3 Thi giác máy tinh cececeeeseeseeaeeeeeseeaeeaeeseeseeeeeeeeeseeaeeaees 18 2.4 Xe tự hành -ẶSSnn2H HH HH HH tt 20
2.5 Field-Programmable Gate Arrays (FPGAs) «- 21
2.6 Cong nghệ Etherne( - ng ng ng rệt 22
2.6.1 Giới thiệu về Ethernet 2: 5¿©52+c++cxzxczrerxerxerreee 22
2.6.2 Mô hình OSI và giao thức Ethernet TCP/IP 23
2.6.3 Cấu trúc gói tin TCP - - se 2 2E E111 11111 ctee 25
2.6.4 Hoạt động của giao thức TCP css + sirssrrreresrrrsee 29
Chương 3 HIEN THỰC TREN FPGA s°-s°ssecssesssessecse 32
3.1 Mo hình CNN xác định làn đường 55c cscsecresereres 32
3.2 Giải thuật điều khiển góc lái 2- 2©22 xecxczxerxerxerreres 34
3.2.1 Quy tắc dự đoán góc lái -©5¿©cc+cectertrrrrrerkerrees 34
3.2.2 Thực hiện phần mềm - - 2-2 + £+E£+E£+E££EerEerxerxerxrree 37
3.3 Tiền xử lý ảnh, huấn luyện dữ liệu và kiểm thử 38
Trang 43.3.1 Tập dữ liệu môi trường UÏF - - 5c SĂs£+ssesserssesres 38
3.3.2 Tiền xử lý Ambon eee cccecseessessesseeseessessessesseessessessesseesseeseesees 39
3.3.3 Thực hiện phần mềm và chỉ tiết huấn luyện - 39
3.4 Hiện thực Ethernet trên FPGA - ceeceeeeeeeeeeeeeeeeeeeaees 40
4.3 _ Hiện thực Ethernet trên FPGA 2< c5 2+2 E‡++2cvsseeeese 45
Chương 5 TONG KET s-° 5< ©s°SseSsEseSsesseseeseEsersersersese 48
51 Ket nan, Ê đ@ ‹@ / 48
5.2 Khó khăn gặp phải - - c1 nh Hy Hy g ret 49
5.3 Hướng phát triễn -©E2Ec2EEeEEeEEerkrrxrrkerkeres 50
TÀI LIEU THAM KHẢO 2-2 5£ s£ss£EsseSssessetssezssessessecse 5
PHULUC 55
Trang 5DANH MỤC HÌNH
Hình 1.1 Một số kết quả trong tập TuSimple của QuantLaneNet [6] 6
Hình 1.2 Các phương pháp nghiên cứu chính cho giải thuật góc lái [7] 7
Hình 1.3 Đồ thị dao động của góc lái đối với sự thay đôi khung hình [§] 8
Hình 1.4 Thiết kế tổng quan của đề tie eeeeececcecsesseessessessessecssessessessessessesseeaes 10 Hình 2.1 Neural sinh hỌC - - -<Ă E2 20101111113153111 11111 811111111 8231111 ky, 12 Hình 2.2 Neural nhân tạo - - Ă E2 0111111321111 11 111 8111111111992 11 kg yy 13 Hình 2.3 Neural nefWOT - s19 HH HH ng nền 13 Hình 2.4 Ví dụ về số lượng trọng số khi đưa một ảnh RGB kích thước 64 x 6414 Hình 2.5 Convolution cho ma trận 2D - - 2c 3+2 E‡+2££E++seekssseeesse 15 Hình 2.6 Convolution cho ma trận 3D - - - - << 5522322 E‡+++seeeeeeeeszes 16 Hình 2.7 Kiến trúc mô hình AlexNet [14] - ¿52 2s se +e+e+E+E+E+EvEszexerezersss 16 Hình 2.8 Ví dụ về kĩ thuật max pooling s2 ss+s++xz+xezxerxerxerssree 17 Hình 2.9 Đồ thị của một số hàm kích hoạt phố biến [18] -5- 18 Hình 2.10 Ung dụng thị giác máy tính trong nhận diện làn đường 19
Hình 2.11: Xilinx Virtex-7 FPGA VC707 Evaluation Kit . - 22
Hình 2.12 Các lớp của mô hình TCP/IP so với mô hình OST 23
Hình 2.13 Các trường được thêm vào gói tin khi đi qua các lớp - 26
Hình 2.14 Preamble trong gói tin Etherne( - - - + + + +*eexeseesesereeee 26 Hình 2.15 MAC Header trong gói tin Ethernet - s5 + ++< sex 27 Hình 2.16 IP Header trong gói tin Etherne( - s5 + *++veeseseseresee 28 Hình 2.17 TCP Header trong gói tin Ethernet -. «+ sxcsxcssessesserseree 29 Hình 2.18 Sơ đồ trạng thái của giao thức TCP [34] «<< <++sx+sses 31 Hình 3.1 Kiến trúc mô hình QuantLaneNet [6] -. - + - + s+s+x+£ez+zxzxezezxz 32 Hình 3.2 Cấu trúc của một tầng encođer [Õ ] - -+++ + ceesseeeeeeces 33 Hình 3.3 Nhánh classification [Ó]| - - - - +55 22111 E 3332221 EkSesreeeeeezse 33 Hình 3.4 Nhánh vertical [O ] - - - - + 11111111 223111111 1 953111 11992111 key, 33 Hình 3.5 Các biến giá trị trong một khung ảnh 2- ¿ 2©++cs++csz2 35 Hình 3.6 Một số hình vẽ được từ giải thuật xác định góc lái [8] 36
Trang 6Hình 3.7 Làn đường ảo (mau dO) [8 ] - 5 Ă 25 21121 E +3 ESEESEsesersrkrske 36
Hình 3.8 Góc lái được tính toán dựa trên làn đường ảo [8] - - 37
Hình 3.9 Lưu đồ thuật toán của giải thuật tìm góc lái -s¿-s+ 38Hình 3.10 Tập dữ liệu gồm trainset và testset ở định dang pickle 39
Hình 3.11 Tiền xử lý nhãn của tập dữ liệu môi trường UTT 39
Hình 3.12 Hệ thống phần cứng kiểm thử Ethernet 2 ¿5 s2 +2 +2 41Hình 4.1 Một số kết quả tốt trong tập tập dữ liệu môi trường UIT 44Hình 4.2 Kết nối của FPGA VC707 với PC demo Ethernet - 46
Hình 4.3 Kết quả truyền nhận 1 tắm hình sử dụng IP Ethernet - 46
Trang 7DANH MỤC BANG
Bang 1.1 Độ chính xác trên tap TuSimple của phần cứng QuantLaneNet [6] 9
Bang 2.1 Một số loại Ethernet trong trường MAC Header 5: 5- 27 Bang 2.2 Các trạng thái quan trọng khác nhau của một socket: 30
Bang 3.1 Điều kiện cho các tình huống làn đường khác nhau - 35
Bảng 4.1 Kết quả đánh giá tập dữ liệu trên model QuantLaneNet [6] 43
Bảng 4.2 Kết quả so sánh phần mềm và phần cứng khi kiểm thử trên tập UIT 45
Bang 4.3 Thông số hệ thống sử dung Ethernet sau khi chạy implement 46
Bang 4.4 Tốc độ truyền nhận trung bình 1 tắm anh 512x256 trên 100 tắm 46
Bảng 0.1 Kết quả đánh giá tập dữ liệu môi trường mưa . -:- 55
Bang 0.2 Kết quả tốc độ phan cứng trung bình trên 100 lần thử (mưa) 55
Bang 0.3 Kết quả đánh giá tập dữ liệu môi trường sương mù - 56
Bảng 0.4 Kết quả tốc độ phần cứng trung bình trên 100 lần thử (sương mù) 56
Trang 8DANH MỤC TỪ VIET TAT
ADAS Advanced Driver Assistance Systems ANN Artificial Neural Network
ASIC Application Specific Integrated Circuit BRAM Block Random Access Memory
CNN Convolutional Neural Network CPU Central Processing Unit
FF Flipflops
FN False Negative
FP False Positive FPGA Field-Programmable Gate Array FPS Frames per Second
GPU Graphics Processing Unit
IEEE Institute of Electrical and Electronics Engineers
IP Intellectual Property LUT Look Up Table
IwIP Lightweight IP PCle Peripheral Component Interconnect Express ReLU Rectified Linear Unit
RGB Red, Green and Blue RTL Register-Transfer Level SAE Society of Automotive Engineers
TCP/IP Transmission Control Protocol/Internet Protocol
DSP Digital Signal Processor
Trang 9TOM TAT KHÓA LUẬNTrong khóa luận này, nhóm nhắm đến việc hiện thực mô hình xe tự hành sửdụng mô hình máy học Dé giải quyết van đề trên, nhóm đề xuất một mô hình CNN
đã kiểm thử trên phần cứng Kiến trúc CNN này có kích thước nhỏ gọn, được thiết
kế để giải quyết bài toán phân loại làn đường Do không có kích thước quá lớn, môhình CNN được đề xuất có tốc độ xử lý rất nhanh trên FPGA Nhóm sẽ sử dụng vàhiện thực mô hình này trên nền tảng FPGA Virtex-7 VC707
Mô hình sẽ được huấn luyện qua tập dữ liệu ở môi trường UIT để lấy trọng số.Trọng số sẽ được đưa vào FPGA để chạy kiểm thử trên phần cứng qua các video ởmôi trường thực tế Dữ liệu huấn luyện sẽ được cập nhật liên tục dé cho ra được môhình có kết quả tốt
Phần cứng FPGA sẽ kết nối với PC thông qua chuẩn giao thức Ethernet Cácchương trình phần mềm được viết cho CPU sẽ phục vụ cho việc gửi nhận dữ liệuhình anh dé kiểm chứng tính khả thi của giao thức Nếu việc giao tiếp khả thi, nhóm
sẽ chuyên sang kết nối FPGA với kit phát triển Jetson TX2 nhằm xây dựng mô hình
xe tự hành và chạy thử nghiệm xe Một giải thuật xác định góc lãi cũng được đềxuất kèm theo, đóng vai trò làm phần mềm dé Jetson TX2 xử lý khi phát hiện làn
đường Các kết quả tóm tắt của khóa luận bao gồm:
e Mô hình CNN sau khi được huấn luyện bằng tập dữ liệu quanh khu vực
trường UIT và đánh giá qua thang đo của TuSimple [1] đạt được độ chính
xác là 92.57% Sau khi chạy kiểm thử video trên FPGA Virtex-7 VC707,
mô hình đạt được tốc độ xử lý trung bình là 624 FPS trên FPGA Virtex-7
VC707.
e Sử dụng thiết kế có sin do Xilinx cung cấp, nhóm đã thực hiện chương
trình để kết nối FPGA với PC thông qua Ethernet và truyền nhận thôngtin hình ảnh qua lại giữa hai thiết bị
Trang 10e_ Mã nguồn phần mềm cho giải thuật góc lái đã được viết và kiểm thử trên
video băng phần cứng FPGA, với tốc độ xử lý video trung bình là 93
FPS.
Trang 11MỞ ĐẦU
Xe tự hành là một loại phương tiện có khả năng nhận biết môi trường xungquanh và thực thi mà không cần sự can thiệp của con người Nó có thê đến bất cứ
nơi nào mà xe truyền thống có thể đến và làm mọi việc như một tài xế có kinh
nghiệm làm Xe tự hành hiện nay đang được chú trọng đầu tư và phát triển, được dựbáo có tiềm năng vô cùng lớn trong tương lai gần Công nghệ này không còn xa lạvới các nước phát triển trên thế giới nhưng với Việt Nam thì nó vẫn còn nhiều batcập khiến chúng chưa phù hợp với số đông Giải thuật đóng vai trò rất quan trọngkhi phát triển bất cứ loại hình xe tự lái nào Các nghiên cứu về công nghệ xe tự
hành gần đây tập trung chủ yếu vào phát hiện làn đường và nhận dạng đối tượng
xung quanh với nhiều thiết bị hỗ trợ Đây cũng chính là lí do mà nhóm thực hiện đềtài này, nhằm ứng dụng các giải pháp về xe tự hành và hiện thực chúng
Dựa trên kêt quả nghiên cứu của đê tài, nhóm đưa ra bô cục của khóa luận như
sau:
e_ Chương 1: Giới thiệu tông quan đề tài
Trinh bay tổng quát van dé của xe tự hành, tiếp đến là liệt kê các nghiên cứu
có liên quan đến giải pháp, cuối cùng là mục tiêu của đề tài mà nhóm muốn
hướng đến
e Chương 2: Cơ sở lý thuyết
Nền tảng lí thuyết có liên quan đến đề tài sẽ được trình bày Mỗi mục trìnhbày bao gồm cơ sở lý thuyết, ví dụ và hình ảnh nếu có
e Chương 3: Kiến trúc CNN đề xuất
Trình bày kiến trúc của mô hình CNN được đề xuất Đưa ra chỉ tiết về kiếntrúc của mô hình cùng với lý giải về các lựa chọn trong thiết kế
e_ Chương 4: Tiền xử lý ảnh và huấn luyện dữ liệu
Đưa ra phân tích về việc tiền xử lý ảnh trước khi huấn luyện Ngoài ra còngiới thiệu về tập dữ liệu môi trường UIT và phần mềm dùng cho tiền xử lý
kèm huân luyện.
Trang 12Chương 5: Giải thuật điều khiến góc lái đề xuất
Trình bày quy tắc xác định góc lái của giải thuật và đưa ra chỉ tiết về cáctrường hợp nhận diện làn đường Ngoài ra còn giới thiệu đôi chút về phầnmềm
Chương 6: Hiện thực trên FPGA
Trình bày cách hiện thực hóa kiến trúc phần cứng đã đề ra lên FPGA Trìnhbay cách xây dựng hệ thống và các phương pháp dé vận hành, kiêm tra
Chương 7: Kết quả
Đưa ra kết quả về độ chính xác và tốc độ khung hình của mô hình phần mềm
va phan cứng Ngoài ra, trình bày kết quả của phương thức định hướng xe tự
hành và các video demo, hình ảnh thực tế
Chương 8: Tong kết
Dua ra kết luận cho dé tài Các van đề, khó khăn gặp phải và hướng phát
triên của đê tài cũng sẽ được đê cập đên.
Trang 13Chương 1 GIỚI THIỆU TONG QUAN DE TAI
1.1 Giới thiệu
Một trong những công nghệ đang được phát triển liên tục hiện nay là các hệ
thống hỗ trợ tài xế nâng cao — Advanced Driver Assistance Systems (ADAS) Côngnghệ này đóng một vai trò quan trọng trong việc giảm thiêu rủi ro và tai nạn giaothông [2] [3] Trong vài năm gần đây, sự phát triển của ADAS lại càng được thúcđây nhờ các cải tiến trong lĩnh vực deep learning, cụ thê là các mạng nơ-ron tích
chập — Convolutional Neural Networks (CNNs) Mạng thần kinh tích chập là giải
pháp có độ chính xác cao cho các vân đê về xe tự hành [4].
Tuy nhiên, một mang CNN điền hình cần một lượng lớn chi phí tính toán, từ đó
có thể dẫn tới độ trễ cao Điều này tạo ra nhiều khó khăn trong việc sử dụng chúngcho các vấn đề real-time như xe tự hành Ngoài ra, một loại thiết bị thường được sửdung cho CNN là bộ xử lý đồ họa — Graphics Proccessing Unit (GPU), nhờ vào khanăng xử lý song song cực lớn của chúng Nhung các GPU lại cần một lượng lớnnăng lượng dé hoạt động, từ đó khiến chúng không phù hợp cho các hệ thống nhúng
di động trên xe tự hành.
Một giải pháp có trién vọng cho CNNs là thiết kế trên FPGA Các thiết bị này cókiến trúc phan cứng có thé được dé dang cấu hình lại dé trở thành các kiến trúc phancứng khác nhau, từ đó cho phép các kỹ sư có thê thiết kế các mạch tối ưu cho CNN
và tiết kiếm năng lượng hơn [5] Hình 1.1 trình bày kết quả của QuantLaneNet [6],
một nghiên cứu sử dụng mô hình CNN để phát hiện làn đường và kiểm thử trênFPGA thông qua việc đối chiếu kết quả với nhãn của tập dit liệu TuSimple [1] Tómlại, hiện thực CNN bằng FPGA là một đề xuất tốt cho nghiên cứu về xe tự hành
Trang 14Hình 1.1 Một số kết quả trong tập TuSimple của QuantLaneNet [6]
1.2 Các nghiên cứu liên quan
1.2.1 Cac nghiên cứu về giải thuật dự đoán góc lái xe
Nghiên cứu [7] trình bày về kĩ thuật dự đoán góc lái cho xe tự hành Nghiên cứunhắn mạnh thử thách to lớn là phải làm cho hệ thống vững mạnh khi xử lý trong cáctrường hợp khác nhau, chăng hạn như sự thay đổi ánh sáng, tình trạng giao thông,thời tiết Đề giải quyết thử thách này, các nhà nghiên cứu đề xuất ra các phươngpháp khác nhau Các phương pháp đưa ra được chia làm hai hướng chính, đều có ưu
nhược và đáp ứng tùy nhu cầu của người nghiên cứu Hai hướng chính được chia ra
và biểu diễn ở Hình 1.2:
e Hướng tiếp cận lấy nên tảng thị giác máy tính, giải quyết van dé bằng tiền
xử lý hình ảnh và các phép biến đổi ảnh đề tìm ra góc lái Bước đầu tiêncủa hướng tiếp cận này là thu được hình ảnh môi trường trên xe bằngcamera Ảnh thu được sẽ được tiền xử lý dé làm rõ các đặc trưng Bức
ảnh sau đó được dùng cho hệ thống dò tìm và phát hiện làn đường Bằngcách phân tích dựa vào tình trạng của xe và làn đường, ta có thê tính ragóc lái và các biến đầu ra khác Controller dùng các biến để liên tục gửilệnh cho actuator trong xe nhằm điều hướng xe chạy trong ranh giới làn
đường.
e Hướng tiếp cận theo kiểu học tập bắt chước, sẽ sử dụng các mô hình
mang neural nhân tạo (ANN, artificial neural network) có kha năng dự
Trang 15đoán góc lái xe một cách chính xác Góc lái được tính toán bằng cách đưa
các chuỗi hình ảnh vào mà không cần triết xuất khu vực làn đường như
hướng tiếp cận thị giác máy tính Góc lái và các biến đầu ra khác sẽ được
controller của xe sử dụng đề điều hướng Một mô hình mạng neural bắt kì
đều cần huấn luyện qua tập dữ liệu trước khi thực hiện một tác vụ cụ thể.Đối với mang neural thiết kế dé dự đoán góc lái, tập dữ liệu được lấy dựatrên hành vi lái xe của con người Sau khi thiết kế mô hình, cần phải có
sự tôi ưu hóa đê đạt được kêt quả mong muôn.
Steering Angle Prediction
Feature Feature Feature Transform
v
Kalman Filter <——Lane Tracking ——> Particle Filter Hynerparamster Eavameter
Tuning Tuning
Steering Angle Estimation
Optimizing Neural Network
Hình 1.2 Cac phương pháp nghiên cứu chính cho giải thuật góc lái [7]
Nghiên cứu [8] trình bày phương pháp theo hướng thị giác máy tính, xác định
góc lái dựa trên hai bên làn trái phải từ hình ảnh Bên cạnh đó, phương pháp còn xử
lý trường hợp nếu không phát hiện đủ hai làn đường Giải thuật đã được thử nghiệmtrên các mẫu video thật và cho thấy độ hiệu quả của nó khi xe chạy trong các trường
hợp ban ngày lẫn ban đêm Góc lái tính được từ giải thuật thé hiện đúng góc lái mà
xe cần phải rẽ Tuy nhiên, phương pháp này chưa được kiểm thử trong các điều kiệnthời tiết ngặt nghèo như mưa, sương mù Việc nghiên cứu giải thuật này sâu hơn vàhiện thực phần cứng là cần thiết nếu muốn sử dụng thực tiễn trên đường thật Hình
Trang 161.3 trình bày kết quả mà giải thuật đạt được khi kiêm thử trên video, trong đó giá trị
của góc lái (trục hoành) chuyên dịch từ dương (ảnh (a), thể hiện hướng rẽ phải)
sang âm (ảnh (b), thé hiện hướng rẽ trái) khi giá tri thời gian (trục tung) tăng dần.
mm “Tat “100 -£0
(c)
Hình 1.3 Đồ thị dao động của góc lái đối với sự thay đôi khung hình [8]
1.2.2 Cac nghiên cứu về giải thuật phát hiện làn đường
Các phương pháp truyền thống để phân tích hình ảnh đường xe chạy sử dụng
các giải thuật được thiết kế tay như Hough Transform, Edge Detection [9] [10] để
trích xuất các đặc trưng từ hình ảnh đầu vào Nghiên cứu [11] đã xây dựng một kiếntrúc phần cứng dé phát hiện làn đường dựa trên thuật toán Hough Transform và đã
Trang 17hiện thực lên FPGA Nhưng các phương pháp này thường không được linh hoạt, dễ
bị lỗi do tính đa dạng của hình ảnh như ánh sáng thấp, vạch phân cách không rõràng Ngược lại, sự phát trién của CNNs cho phép các mô hình được huấn luyệntrên một số lượng lớn hình ảnh, từ đó chúng có thé tự học ra được những đặc trưngcần phải trích xuất từ ảnh, thay vì cần được cụ thé bởi con người Do đó, CNNs làgiải pháp có độ chính xác cao nhất cho bài toán nhận diện làn đường [4]
Nghiên cứu [6] đã thiết kế một kiến trúc phần cứng cho CNN và triển khai thànhcông trên FPGA trên tập dữ liệu TuSimple theo kết quả ở Bảng 1.1 (Các thông sốaccuracy, FP và FN được trình bày ở phần 4.1) Nghiên cứu hiện tại vẫn chưa triểnkhai trên mô hình xe tự hành cũng như chưa nghiên cứu phương thức điều khién tựđộng Đây chính là lí do nhóm đề xuất tiếp tục phát triển nghiên cứu này bằng cáchhiện thực thiết kế trên xe mô hình
Bảng 1.1 Độ chính xác trên tập TuSimple của phần cứng QuantLaneNet [6]
Acc FP FN
Software 32-bit float | 93.53% | 10.25% | 8.89%
Software 8-bit quant | 93.47% | 10.38% | 9.03%
Hardware 8-bit quant | 93.43% | 10.53% | 9.29%
1.3 Mục tiêu dé tài
Dé giải quyết bài toán phân loại làn đường và hiện thực xe tự hành thông qua
mô hình CNN trên FPGA, trong khóa luận nay, nhóm đưa ra ba mục tiêu chính:
1 Kế thừa đề tài và đánh giá: Tìm hiểu và tái sử dụng kiến trúc phần cứng từ
đã hiện thực trên FPGA Virtex-7 VC707 từ nghiên cứu [6] Tan dụng các
source code cũ dé xây dựng cách huấn luyện mới cho các tập dữ liệu khácnhau ngoài tập TuSimple Nhóm sẽ tiếp tục thử nghiệm khả năng nhận diện
cũng như độ chính xác của model trên các tập dữ liệu tự thu tại khu vục làng
đại học hoặc qua các video có sẵn trong các môi trường thời tiết khác nhau
Độ chính xác sẽ tiếp tục được đánh giá theo phương pháp của TuSimple
được đề cập trong nghiên cứu [6], bao gồm 3 thang đo: Accuracy, EP (False
Trang 18Positive) và FN (False Negative) [6] Bởi vì các tập dữ liệu sẽ có khác biệt so
với TuSimple, nhóm đưa ra mục tiêu là Accuracy sẽ nằm trong khoảng 94 +3%, FP va FN sẽ nằm trong khoảng 10 + 5%
Thiết kế hệ thống cho xe tự hành: Ở phần này, nhóm muốn phát triển
nghiên cứu [6] bằng cách thiết kế một hệ thống xe tự hành Trong quá trình
nghiên cứu, nhận thấy sự tiện lợi của việc thiết kế nhúng khi sử dụng các kit
phát triển nhúng như việc hỗ trợ các thư viện điều khiển động cơ, camera, hệ
điều hành, cũng như sự sẵn có và đa dạng về tài nguyên do khoa cung cấp
Nhóm quyết định chọn ra hướng sử dụng FPGA kết nối với kit phát triển
nhúng để thiết kế xe tự hành Trong quá trình thử nghiệm, nhóm gặp khókhăn trong việc kết nối thiết bị với chuẩn giao tiếp PCI-E Dù tốc độ nhanhnhưng lại không tương thích giữa các thiết bị khiến cho việc hiện thực xe mô
hình khó khăn hơn Vì vậy nhóm lựa chọn giải pháp sử dụng Ethernet làm
kết nối trung gian giữa kit nhúng và FPGA dé giao tiếp Hình 1.4 thé hiện
thiết kế tổng quan của đề tài khi sử dụng Ethernet
bà ^>
Developer
Kit
Thiết kế bao gồm:
© Một vi xử lý mềm kiến trúc RISC MicroBlaze
e©_ Khối giao thức AXI
10
Trang 19e Model CNN QuantLaneNet.
e IP AXI Ethernet Subsystem.
e DDR3 SDRAM
e Kit phát triển ứng dụng nhúng (Jetson Nano, Jetson TX1, Jetson TX2, )
va các ngoại Vi can thiét (Camera, động cơ, servo )
Thuật toán điều khiến xe tự hành: Giải quyết bài toán điều hướng tự động
cho xe tự hành bằng một giải thuật tìm góc lái có độ chính xác cao, hiện thực
trên xe mô hình ở khu vực trường UIT:
e Tốc độ xử lý ảnh của xe mục tiêu đạt > 25 FPS (Phụ thuộc camera)
e_ Tốc độ tối thiểu xe có thể chạy > 10km/h
e_ Xe phải bám sát làn đường và xử lý ổn khi ở trong các điều kiện thời tiết
khác nhau.
lãi
Trang 20Chương2 CƠ SỞ LÝ THUYET
2.1 Mạng nơ-ron nhân tạo (Artificial Neural Networks)
Mạng neural là một kỹ thuật xử lý lây cảm hứng từ bộ não người Một neural
sinh học nhận các tín hiệu đâu vào từ các dendrites và xuât ra các tín hiệu đâu ra
dọc trên các axon Các axon sau đó rẽ nhánh vào dendrites của các neural khác thông qua các synapses [12] Hình 2.1 minh họa cho một neural sinh học.
Cell body
Myelin sheath
Axon Terminal Schwann cell ,
Node of Ranvier))
Axon
Hinh 2.1 Neural sinh hoc
Phuong thức này tạo ra một hệ thống thích ứng được máy tính sử dung dé hochỏi từ sai lầm của chúng và liên tục cải thiện Vì vậy, mạng nơ-ron nhân tạo nhắm
tới giải quyết các van dé phức tạp, chang hạn như tóm tắt tài liệu hoặc nhận diện làn
đường, với độ chính xác cao hơn.
Dựa trên cơ chế này, một mạng neural nhân tạo bao gồm nhiều layer, thường
được gọi là các fully connected layers, và mỗi layer bao gồm nhiều nodes Mạngneural là sự kết hợp của những lớp perceptron hay còn gọi là perceptron đa lớp.Theo Hình 2.3 biểu diễn, mỗi một mang neural thường gồm 3 lớp, bao gồm:
e_ Input layer (lớp vào): lớp này nằm bên trái cùng của mạng, thể hiện cho
các đầu vào của mạng
e_ Output layer (lớp ra): là lớp bên phải cùng va nó thé hiện cho các dau ra
của mạng.
12
Trang 21e Hidden layer (lớp ẩn): tang này năm giữa tang vào và tang ra, thé hiện
cho quá trình suy luận logic của mạng.
Một node nhận đầu vào từ tất cả mọi node ở layer trước, và mỗi đầu vào sẽ được
nhân với một trọng sỐ (weight) Giá tri của các trọng SỐ này không được người thiết
kế chọn mà phải được học thông qua một quá trình huấn luyện (training) Gia tricủa các trọng số có vai trò như các synapse sinh học, chúng có thé khuếch dai input
từ một node trước hoặc làm yếu nó di [13] Sau đó, một giá tri bias được cộng vào
và tổng của cả node đó được đưa vào một hàm kích hoạt phi tuyến tính Hình 2.2
minh họa cho một neural nhân tạo.
Trang 222.2 Mang nơ-ron tích chập (Convolutional Neural Networks)
Cho các bài toán xử lý ảnh, các neural networks gặp phải một van dé lớn: gia sửinput là một ảnh RGB kích thước 64 x 64 x 3 pixels va layer an đầu tiên chứa 1000nodes, số lượng trọng số của layer nay sẽ là 64 x 64 x 3 x 1000 + 1000 =
12289000 triệu trọng số Hình 2.4 mô tả ví dụ trên Từ ví dụ này ta có thê thấy sốlượng trọng số của một neural network tăng vô cùng nhanh khi nhận input từ anh,
dù kích thước ảnh không lớn Một vấn đề khác gặp phải bởi các mô hình có nhiềutrọng số là hiện tượng overfitting, khi mô hình “học thuộc” và có độ chính xác caovới dữ liệu huấn luyện, nhưng lại có độ chính xác thấp đối với các dit liệu mới màchưa gặp qua trong lúc huấn luyện
\ xl 2 ụ al )
x12289000
Input layer Hidden layer 1
Hình 2.4 Ví du về số lượng trọng số khi đưa một ảnh RGB kích thước 64 x 64
Nhưng may mắn công việc xử lý ảnh thường không yêu cầu cả một neuralnetwork nhờ vào tính lân cận của hình ảnh Ý nghĩa của một ảnh không nằm ở việc
nó có bao nhiêu pixel và mỗi pixel có giá trị là bao nhiêu, mà nằm ở các nhóm pixel
lân cận với nhau được sắp xếp theo các cấu trúc cụ thé Dé phát hiện có một chiếc
xe trong ảnh hay không, các pixel ở các góc ngoài cùng của ảnh thường không quan
14
Trang 23trọng, mà ta quan tâm đên từng nhóm pixel bên trong ảnh, khi mà nơi có độ tương phản cao phản ánh cạnh, các cạnh dài liên tục chỉ ra các đường, và nhiêu đường sẽ
vẽ ra hình anh chiéc xe.
Tích chập (convolution) là một kỹ thuật sử dụng các bộ lọc, gọi là các kernels,
dé trượt qua tấm ảnh Các kernels này lấy giá trị của những pixel lân cận với nhau
và nhân chúng với các giá trị trong kernel dé tạo ra pixel cho output Kỹ thuật nàycho phép tính lân cận của các pixel được tận dụng Tương tự với các trọng số củaneural network, giá trị của các kernel này cũng là các trọng số, chúng không đượcquyết định từ trước mà phải được học qua quá trình huấn luyện Từ dữ liệu huấnluyện, mô hình sẽ có thể tự học các giá trị phù hợp cho các kernels
Cho một ma trận 2D, một kernel 2D được đặt lên một phần nhỏ của ảnh đầuvào, gọi là cửa số trượt (sliding window) Mỗi pixel trong sliding window này được
nhân với các giá trị tương ứng trong kernel và tất cả các tích được cộng lại với
nhau Sau đó kernel sẽ trượt sang sliđing window tiếp theo và quá trình này đượclặp lại, tạo ra pixel output tiếp theo Hình 2.5 minh họa cho convolution trên ma
112|1-21010-I1
Hình 2.5 Convolution cho ma trận 2D
Cho ma trận 3D, nói cách khác một ảnh có nhiều kênh (channels), các kernelscũng sẽ có nhiều channels tương đương với ảnh đầu vào Một ma trận đầu vào kích
thước (C, x H, x W,) tích chập với một kernel kích thước (Œ„ x H, x W„) sẽ tao
ra một output 2D kích thước (1 x Hy x W,) ĐỀ tạo ra một output 3D kích thước
15
Trang 24(C, x Hy x W,), ta can Cy kernel 3D Tổng cộng, kích thước của kernel va bias sẽ
lần lượt là (C, x C, x Hy x W,) va (Cy x 1) Hình 2.6 minh họa cho convolution
trén ma tran 3D.
-4J4|212|10| |4|-2/3/-4/-2} |0]1|3|-1|-2 2|1|12|-23| f-4]-1|-1]-3] 4) 3|2|22|¬3
-4+|1|-30|31 |) -2|-1|-4]}-2| 0 1| 1] 0 4|-3 1/1/30] 0| J|-2|-+2|2 4|-+| |-4]2|-2]J2)2
Hinh 2.6 Convolution cho ma tran 3D
Một convolutional neural network (CNN) sẽ bao gom nhiéu convolution layers
cùng với một số loại layer khác Một kiến trúc CNN cô điển sẽ bắt đầu bởi nhiềuconvolution layers đề trích xuất các đặc trưng quan trọng (mô hình tự học cách chiết
xuất), và theo sau bởi các fully connected layers dé phân loại ảnh thành các classkhác nhau Hình 2.7 trình bày kiến trúc mô hình AlexNet [14], một mô hình đóngvai trò quan trọng trong việc khiến lĩnh vực deep learning trở nên phổ biến như
ngày nay.
3
CONV Overlapping CONV
i 256
1IxH Max Pooling 5x5 l
stride =4 3x3 padding = 2 TH HE 256 CONV= : ax Pooling
96 kernels stride = 2 256 kernels na 3x3
stride = 2 padding = 1
aa 384 kernels
—
27 ” B 227
Overlapping
256 Max Pooling 256 un
padding = 1 h 3x3 Fully Fully ully
384 kernels padding = 1 stride =2 Flatten connected connected connected
13 6
9216 ReLU ReLU ortma
Hình 2.7 Kiến trúc mô hình AlexNet [14]
16
Trang 25Ngoài convolution layer va fully connected layer, một số loại layer phô biến
trong các CNNs bao gồm:
¢ Pooling: Được dùng để giảm kích thước của input, từ đó giảm chi phí tính
toán cho layer sau mà không cần sử dung trọng số Các lựa chọn phổ biến là
average/mean pooling và max pooling Hình 2.8 minh họa cho kĩ thuật max
pooling, thuật toán chỉ lấy giá trị cao nhất trong cửa số trượt 2x2
2 by 2 filter with stride = 1
Hình 2.8 Ví dụ về kĩ thuật max pooling
e Upsampling: ngược lại với pooling layers, upsampling layer được dùng để
tăng kích thước của input mà không cần dùng tới trong số
¢ Batch normalization: được nghiên cứu và công bố năm 2015 bởi các nhà
nghiên cứu tại Google [15], là một kỹ thuật được dùng dé giam hién tuong
internal covariate shift, khi mà khoảng giá tri trong các layer khác nhau qua
nhiều, từ đó ôn định mô hình và tăng tốc quá trình huấn luyện
e Dropout: được trình bày lần đầu ở [16], dropout là một kỹ thuật dùng để
giảm overfitting bằng cách “tắt đi” một số neural hoặc feature maps trong
quá trình huấn luyện, buộc mang CNN phải học được các đặc trưng trong tập
dữ liệu một cách khái quát hơn.
Da số các layer sau khi xử lý dit liệu ở input thì giá trị sẽ được đưa qua một hàm
kích hoạt phi tuyến tính (non-linear activation function) Một số lựa chọn phổ biến
phải ké đến là Rectified Linear Unit (ReLU), Sigmoid and Hyperbolic Tangent(tanh) Nếu không có các hàm nay, khả năng dự đoán của mô hình CNN sé bị giới
17
Trang 26hạn và giảm đi rất nhiều, sự kết hợp của các hàm kích hoạt phi tuyến tính giữa các
tang ân là dé giúp mô hình học được các quan hệ phi tuyến phức tạp tiềm an trong
dữ liệu [17] Hình 2.9 trình bày một số loại hàm kích hoạt phi tuyến tính phô biến
y=1/(1+e"*) y=(e*-e *)/(e*+e-X)
Reet RLU) Unit LeakyReLU ExponentialLU
1 1 | 1
Modern |
Non-Linear o ie 0 0 Activation
y=max(@, x) y=max (ax, x) Y=5(e'-1) ,xeô
a = small const (e.g 0.1)
Hình 2.9 Đồ thị của một số hàm kích hoạt phổ biến [18]
2.3 Thị giác máy tính
Thị giác máy tính (tiếng Anh: computer vision) là một lĩnh vực bao gồm các
phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh,
hay nói chung là dữ liệu đa chiều từ thế giới thực dé cho ra các thông tin số hoặc
biểu tượng, ví dụ trong các dạng quyết định [19] Việc phát triển lĩnh vực này có
bối cảnh từ việc sao chép các khả năng thị giác con người bởi sự nhận diện và hiểubiết một hình ảnh mang tính điện tử [20] Sự nhận diện hình ảnh có thé xem là VIỆCgiải quyết van đề của các biéu tượng thông tin từ dữ liệu hình anh qua cách dùng
các mô hình được xây dựng với sự giúp đỡ của các ngành lý thuyết học, thống kê,vật lý và hình học [21] Thị giác máy tính cũng được mô tả là sự tổng thể của một
18
Trang 27dải rộng các quá trình tự động, tích hợp và các thể hiện cho các nhận thức thị giác
[22].
Thị giác máy tinh là một môn hoc khoa học liên quan đến lý thuyết đăng sau các
hệ thống nhân tạo có trích xuất các thông tin từ các hình ảnh Dữ liệu hình ảnh cóthể nhiều dang, chang hạn như chuỗi video, các cảnh từ đa camera, hay dữ liệu đa
chiều từ máy quét y học Thị giác máy tính còn là một môn học kỹ thuật, trong đó
tìm kiếm việc áp dụng các mô hình và các lý thuyết cho việc xây dựng các hệ thống
thị giác máy tính Các lĩnh vực con của thị giác máy tính bao gồm tái cấu trúc cảnh,
dò tìm sự kiện, theo dõi video, nhận diện bố cục đối tượng, học, chỉ mục, đánh giá
chuyên động và phục hồi ảnh [23] Hình 2.10 dưới đây là kết quả nhận diện làn
Hình 2.10 Ứng dụng thị giác máy tính trong nhận diện làn đường
19
Trang 282.4 Xe tự hành
Xe tự hành là một loại xe có khả năng tự di chuyền mà không cần sự can thiệp
của con người [24] Tự hành trong xe thường được chia làm 6 cấp, dựa trên hệ
thống phát triển bởi SAE quốc tế (SAE J3016) [25] Các cấp tự hành của SAE baogồm cấp 0 (hoàn toàn lái thủ công) đến cấp 5 (hoàn toàn tự động)
Xe tự hành phụ thuộc vào sensors, actuators, giải thuật phức tạp, hệ thống máyhọc và bộ vi xử lý mạnh mẽ đề thực thi phần mềm Khi vận hành, xe tự hành sẽ tái
tạo môi trường xung quanh nó va duy tri môi trường dựa vào các loại sensors có
trên các bộ phận khác nhau của xe [26] Radar sensors theo dõi vi trí của các xe
khác Camera hình anh phát hiện đèn giao thông, đọc biển báo giao thông, đò tìm xe
khác và tìm kiếm người qua đường Lidar sensors phản xạ tia sáng xung quanh xe
để tính toán khoảng cách, nhận diện vạch kẻ đường Sensors siêu âm ở trong bánh
xe phát hiện gờ đường và các xe khác khi đậu xe Phần mềm sau đó sẽ xử lý các
cảm biến đầu vào, vẽ ra đường đi, và gửi chỉ thị cho actuators của xe Các actuators
này điều khiến gia tốc, phanh và góc lái Chúng ta có thé bổ sung cho phần mềmbằng các giải thuật tránh né vật thể, các mô hình dự đoán và nhận diện vật thé dé hỗtrợ cho phần mềm tuân thủ đúng luật giao thông và định vi được trở ngại
Những thách thức của xe tự hành bao gồm [27]:
e Lidar và radar: chi phí sản xuất lidar rất đắt đỏ và người thiết kế vẫn đang
có gắng cân bằng các tiêu chí của lidar như độ phân giải, khoảng cáchquét Bên cạnh đó, nếu nhiều xe tự hành cùng lái trên một con đường,liệu tín hiệu lidar của chúng có làm ảnh hưởng nhau? Và nếu nhiều tần sốradio cùng tôn tại, liệu dai tần số có đủ hỗ trợ cho một lượng xe tự hànhrất lớn không?
e_ Điều kiện thời tiết: xe tự hành sẽ xử lý như nào khi lái trong điều kiện
thời tiết không tốt như mưa, tuyết, sương mù Camera và sensors lúc này
sẽ theo dõi vạch kẻ đường như nào nếu chúng bị che lấp bởi nước, dau,băng tuyết hoặc mảnh vụn
20
Trang 29e Điều kiện giao thông và luật pháp: liệu xe tự hành có gặp khó khăn khi đi
qua đường ham hoặc cầu Chúng sẽ xử lý thé nào khi có kẹt xe Liệu xe
tự hành có được ứng dụng và đưa vào chạy trong một làn đường riêng
không?
e_ Trí tuệ nhân tạo với trí tuệ xúc cảm: người tài xế dựa vào giao tiếp không
qua lời nói, chăng hạn như giao tiếp bằng mắt hoặc đọc vị biểu cảm và
ngôn ngữ cơ thê dé đưa ra phán đoán và quyết định trong phút chốc Việcthiết kế để xe tự hành mô phỏng được như thế là một vấn đề rất nan giải
2.5 Field-Programmable Gate Arrays (FPGAs)
Field Programmable Gate Arrays (FPGAs) 1a thiết bi bán dẫn dựa trên cấu trúccác khối logic có thé cấu hình lại (CLB, Configurable Logic Block) được kết nốivới nhau thông qua các interconnect có thể lập trình được [28] FPGA có thể đượclập trình lại để thỏa mãn một ứng dụng hoặc chức năng yêu cầu Đặc tính này phânbiệt FPGA với Application Specific Integrated Circuits (ASICs) được sản xuất đểphục vụ cho một mục đích cụ thể FPGA được cấu thành từ các bộ phận [28]:
e Các khối logic cơ bản lập trình được (logic block)
e Hệ thông mạch liên kết lập trình được
e Khối vào/ra (IO Pads)
e Phan tử thiết kế san khác như DSP slice, RAM, ROM, nhân vi xử lý
FPGA cũng được xem như một loại vi mach bán dẫn chuyên dung ASIC, nhưng
nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thưviện logic thi FPGA không đạt dugc mức độ tối ưu như những loại này, và hạn chế
trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn
ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy
chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng [5] Còn nếu so sánh vớicác dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phần tử logic nhưPLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụ tái lập trình của FPGA
thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và khác biệt quan trọng
21
Trang 30nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn công
logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước nó Hình 2.11
giới thiệu hình ảnh của board FPGA Virtex-7 VC707.
2.6.1 Giới thiệu về Ethernet
Ethernet là một họ các công nghệ mạng máy tính thường dùng trong các mạng
local area network (LAN), metropolitan area network (MAN) va wide area network
(WAN) [29] So sánh với công nghệ LAN không day (WLAN), Ethernet có lợi théhon về khả năng chống nhiễu Nó còn cung cấp kha năng điều khiển va bao mật caohơn công nghệ không dây bởi vì các thiết bị Ethernet sử dụng dây cáp vật lý để kết
z
he
nol.
22
Trang 31Ethernet được giới thiệu thương mại vào năm 1980 và lần đầu tiên được tiêu
chuẩn hóa vào năm 1983 thành IEEE 802.3, [30], ké từ đó nó được chỉnh sửa dé hỗ
trợ bit rate cao hơn và khoảng cách kết nối dài hơn Theo thời gian, Ethernet đã thay
thế hoàn toàn các công nghệ LAN nối dây như token ring, FDDI và ARCNET Từ
khi được phát hành thương mại, Ethernet đã giữ lại tính tương thích ngược
(backward compatibility) khá tốt Công nghệ Ethernet dần phát triển để đáp ứng cácyêu cầu về thị trường va bandwidth mới [31] Ngày nay, ngoài máy tinh, Ethernetcòn được sử dụng để liên kết các appliance (công cụ, dụng cụ) và các thiết bị di
động cá nhân Ethernet được sử dụng trong các ứng dụng công nghiệp và đang
nhanh chóng thay thế các hệ thống truyền dữ liệu hiện có trong các mạng viễn
thông trên thé giới
2.6.2 Mô hình OSI và giao thức Ethernet TCP/IP
Mô hình OSI cung cấp một phương thức chuân hay mô hình tham khảo mà dựa
vào đó ta có thé xây dựng một phương thức truyền giữa 2 mạng bat kỳ trong mạng
Trong mô hình này, mạng được chia thành các lớp Giao thức Ethernet TCP/IP cũng
được xây dựng dựa vào mô hình này Nó được rút gọn lai còn 4 lớp tham khảo như
Hình 2.12 biểu diễn Các lớp trong mô hình TCP/IP bao gồm:
NES Layer OSI Model TCP/IP Model TCP/IP Protocols
1 Physical Twisted | Optical Coaxial Cable
Layer Pair Fiber
Hình 2.12 Cac lớp của mô hình TCP/IP so với mô hình OSI
23
Trang 321 Network Access layer (lớp truy cập mạng)
Lớp này là sự cộng gộp của lớp Data Link và Physical Nó quản lý dạng tín hiệu
điện, cáp xoắn, thiết bị kết nối vật lý va Ethernet Media Access Control (MAC).Một số giao thức tiêu biểu trong tang này gồm:
e ATM (Asynchronous Transfer Mode).
e Ethernet.
e Token Ring.
e FDDI (Fiber Distributed Data Interface).
e Frame delay.
2 Internet layer (lớp mang)
Nam bên trên lớp truy cập mang, tang này có chức năng gan địa chi, đóng gói vàđịnh tuyến (Route) dữ liệu Bốn giao thức quan trọng nhất của tang này như sau:
e IP (Internet Protocol): có chức nang gan địa chỉ cho dữ liệu trước khi
truyền và định tuyến chúng tới dich
e ARP (Address Resolution Protocol): có chức năng biên dịch địa chỉ IP
của máy đích thành địa chỉ MAC (khi nhận dữ liệu) và chuyên địa chỉMAC thành địa chỉ IP khi truyền dir liệu đi
e ICMP (Internet Control Message Protocol): có chức năng thông báo lỗi
trong trường hợp truyền bị hỏng
e IGMP (Internet Group Management Protocol): có chức năng điều khiển
truyền đa hướng (Muticast)
3 Transport Layer (lớp giao vận)
Có trách nhiệm thiết lập phiên truyền thông giữa các máy tính và quy định cáchtruyền dit liệu [32] Hai giao thức chính trong lớp này gồm:
e UDP (User Datagram Protocol): còn gọi là giao thức gói người dùng.
UDP cung cấp các kênh truyền thông phi kết nối nên nó không đảm bảo
truyền dit liệu đáng tin cậy các ứng dụng dùng UDP thường chỉ truyền
24
Trang 33các gói tin có kích thước nhỏ, yêu cầu tốc độ nhanh (yêu cầu độ trễ nhỏ),
độ tin cậy dữ liệu phụ thuộc từng ứng dụng.
TCP (Transmission Control Protocol): ngược lại với UDP, TCP cung cấpcác kênh truyền thông hướng kết nối và đảm bảo truyền dit liệu một cáchđáng tin cậy TCP thường truyền các gói tin có kích thước lớn và yêu cầu
phía nhận xác nhận các gói tin đã nhận.
DNS (Domain Name System): hệ thống tên miền
SNMP (Simple Network Management Protocol): giao thức quản lý mang
don gian.
TFTP (Trivial File Transfer Protocol): giao thức truyền tập tin bình
thuong.
TELNET.
Cấu trúc gói tin TCP
Hình 2.13 biểu diễn cấu trúc của gói tin qua các lớp Có thé thay rang, tat cả
những gì ở lớp trên đưa xuống lớp dưới thì lớp đưới xem toàn bộ đó là data, sau đó
nó găn thêm header của riêng nó và đưa xuông lớp dưới hơn nữa xử lý.
25
Trang 34Data application layer
Preamble/SFD | Header IP Header Header Data FCS physical layer
Hình 2.13 Các trường được thêm vào gói tin khi di qua các lớp
Cấu trúc gói tin Ethernet được định nghĩa theo chuẩn IEEE 802.3 [30] xác định
các trường như sau:
a Preamble: chứa 8 bytes dé chuan bi truyén dữ liệu, trong đó 7 bytes cho việc
đồng bộ lớp vật lý, byte thứ 8 báo bat đầu frame SFD (Start of Frame Delimiter)
Trường này được biéu diễn qua Hình 2.14 bên dưới
MAC Header
Preamble Header Data | Trailer
b MAC Header: dài 14 bytes, gồm 2 bytes EtherType đứng sau 6 bytes địa chỉ
MAC nguồn va MAC đích theo như Hình 2.15 biéu diễn EtherType định nghĩa một
giao thức lớp trên đóng gói dt liệu trong khung Ví dụ: giá trị EtherType là 0x0800
chỉ ra rằng khung chứa một sơ đồ dữ liệu IPv4 Tương tự như vậy, giá trị EtherType
26