1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Hiện thực phương thức định hướng tự động cho xe tự hành bằng FPGA

68 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hiện thực phương thức định hướng tự động cho xe tự hành bằng FPGA
Tác giả Vũ Đăng Nhật Vy, Phạm Xuân Tuấn Anh
Người hướng dẫn TS. Lâm Đức Khải
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 68
Dung lượng 41,03 MB

Nội dung

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 2

LỜ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 3

MỤ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 4

3.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 5

DANH 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 6

Hì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 7

DANH 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 8

DANH 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 9

TOM 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 10

e_ 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 11

MỞ ĐẦ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 12

Chươ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 13

Chươ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 14

Hì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 16

1.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 17

hiệ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 18

Positive) 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 19

e 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 20

Chươ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 21

e 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 22

2.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 23

trọ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 25

Ngoà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 26

hạ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 27

dả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 28

2.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 29

e Đ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 30

nhấ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 31

Ethernet đượ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 32

1 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 33

cá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 34

Data 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

Ngày đăng: 02/10/2024, 04:23

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN