Tải bản đầy đủ (.pdf) (100 trang)

nghiên cứu thiết kế chế tạo chức năng tự hành cho xe điện dựa trên deep learning

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.09 MB, 100 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>THÀNH PHỐ HỒ CHÍ MINH</b>

BỘ GIÁO DỤC VÀ ĐÀO TẠO

<b>TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT </b>

<b> </b>

<b> <sup> </sup> <sup> </sup> </b>

<b> </b>

<b> </b>

<b> </b>

<b>KHÓA LUẬN TỐT NGHIỆP</b>

<b>NGÀNH CÔNG NGHỆ KỸ THUẬT Ô TÔ </b>

<b> NGUYỄN HOÀNG ANH TUẤN </b>

S K L 0 1 2 2 4 6

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH

<b>KHOA CƠ KHÍ ĐỘNG LỰC </b>

<b>ĐỒ ÁN TỐT NGHIỆP </b>

<b>SVTH: TRẦN VĂN HỒ MSSV: 19145385 </b>

<b>SVTH: NGUYỄN HOÀNG ANH TUẤN MSSV: 19145501 </b>

<b>GVHD: PGS.TS. LÊ MỸ HÀ </b>

Tp. Hồ Chí Minh, tháng 12 năm 2023

<b>NGHIÊN CỨU, THIẾT KẾ, CHẾ TẠO CHỨC NĂNG TỰ HÀNH CHO XE ĐIỆN DỰA TRÊN DEEP LEARNING </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH

<b>SVTH: NGUYỄN HOÀNG ANH TUẤN MSSV: 19145501 </b>

<b>GVHD: PGS.TS. LÊ MỸ HÀ </b>

Tp. Hồ Chí Minh, tháng 12 năm 2023

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Chúng em cũng xin gửi lời cảm ơn chân thành đến thầy Lê Mỹ Hà đã hướng dẫn, chỉ bảo và hỗ trợ chúng em trong suốt quá trình nghiên cứu. Thầy khơng chỉ giúp chúng em tiếp thu kiến thức một cách hiệu quả mà còn truyền đạt cho chúng em những kinh nghiệm quý báu và tinh thần trách nhiệm trong học tập và nghiên cứu.

Cuối cùng, chúng em xin gửi lời cảm ơn đến ba mẹ, người đã luôn động viên, khuyến khích và hỗ trợ trong suốt q trình học tập và nghiên cứu. Ba mẹ là nguồn động lực lớn nhất giúp chúng em vượt qua những khó khăn và trở ngại để hoàn thành đồ án này.

Một lần nữa, chúng em xin cảm ơn sự hỗ trợ và giúp đỡ của Ban giám hiệu, thầy Lê Mỹ Hà và các thầy cơ khác trong suốt q trình học tập và nghiên cứu. Em sẽ luôn ghi nhớ và trân trọng những kinh nghiệm và kiến thức mà chúng em đã học được tại trường Đại học Sư phạm Kỹ thuật Tp. Hồ Chí Minh.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>TÓM TẮT </b>

Đề tài “Nghiên cứu, thiết kế, chế tạo chức năng tự hành cho Xe điện dựa trên Deep Learning” tập trung vào Phát tiển và ứng dụng công nghệ xe tự hành, một lĩnh vực đang phát triển nhanh chóng trong ngành cơng nghiệp ơ tơ. Mục tiêu chính của nghiên cứu là nghiên cứu, thiết kế và thử nghiệm một hệ thống xe tự hành có khả năng tự định hình, tự động lái và tương tác an tồn với mơi trường xung quanh. Nghiên cứu này để xuất sử dụng một mơ hình đa tác vụ để giúp vừa có thể nhận diện được làn đường bằng phân đoạn hình ảnh (Image Segmentation) và nhận diện các yếu tố khác trong giao thông (Object Detection) từ Camera và các thông tin này sẽ được xử lý bởi các thuật toán để đưa ra quyết định và điều khiển xe, việc sử dụng mô hình đa tác vụ sẽ giảm đi áp lực tính toán lên các phần cứng và đảm bảo hệ thống có thể hoạt động với thời gian thực. Ngồi ra nhóm cũng xây dựng ứng dụng chỉ đường cho xe tự hành nhằm cung cấp thông tin hướng đi của xe, cho phép nhận biết một cách toàn cục về vị trí của xe, từ đó đưa ra các xử lý cục bộ một cách chính xác hơn. Ứng dụng tận dụng GPS từ điện thoại với độ chính xác cao, nhóm cũng đã xây dựng thuật tốn tìm đường trên app nhằm tăng thêm khả năng xử lý tình huống khi xe gặp vấn đề khi di chuyển trên đường. Cuối cùng nhóm sử dụng vi điều khiển STM32 để xây dựng hệ thống điều khiển tốc độ và góc lái của xe đồng thời giao tiếp nó với Jetson Tx2, là phần cứng được nhóm triển khai mơ hình đa tác vụ của mình. Bằng cách tận dụng nhiều thơng tin từ Camera và GPS, xe có thể nhận biết và tự di chuyển một cách an toàn và chính xác đến điểm đến của mình.

Kết quả thực nghiệm của nhóm trong khuôn viên trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh đã chứng minh tính hiệu quả và chính xác của hệ thống. Hệ thống hoạt động với FPS là 25-26 fps là một tốc độ hoàn toàn phù hợp với các ứng dụng thời gian thực.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

1.4.1. Tình hình nghiên cứu trong nước ... 2

1.4.2. Tình hình nghiên cứu ngồi nước ... 3

1.5. Phương pháp nghiên cứu ... 4

<b>CHƯƠNG 2: CƠ SỞ LÝ THUYẾT ... 5</b>

2.1 Tổng quan về trí tuệ nhân tạo ... 5

2.1.1 Học máy (Machine Learning) ... 5

2.1.2 Học sâu (Deep Learning) ... 6

2.2 Xe tự hành ... 17

2.2.1 Khái niệm ... 17

2.2.3 Tiêu chuẩn an tồn của cơng nghệ xe tự lái ... 19

2.3 Framework Pytorch và TensorRT ... 20

2.4 Thuật toán tìm đường tối ưu Dijkstra ... 22

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

2.5 Thuật toán điều khiển PID ... 23

2.6 Hệ thống định vị toàn cầu GPS, AGPS ... 25

<b>CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ... 27</b>

3.5.2 Thuật tốn tìm đường tối ưu Dijkstra ... 50

3.5.3 Tín hiệu dẫn đường và các chức năng khác ... 52

3.6 Thuật toán điều khiển... 55

3.6.1 Điều khiển góc lái với PID ... 55

3.6.2 Phát hiện vật cản ... 58

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

3.6.3 Kết hợp với tín hiệu GPS ... 60

3.6.4 Chiến thuật đánh lái ... 61

<b>CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM ... 64</b>

4.1. Môi trường đánh giá ... 64

4.2. Huấn luyện mơ hình đa tác vụ ... 64

4.2.1. Thu thập và đánh nhãn dữ liệu ... 64

4.2.2. Kết quả huấn luyện ... 67

4.3. Kết quả thực nghiệm xe tự hành trong khuôn viên trường Đại học Sư phạm Kỹ Thuật ... 69

4.3.1 Kết quả dự đốn của mơ hình ... 69

4.3.2 Kết quả thực nghiệm khả năng tự hành của xe ... 72

<b>CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ ... 76</b>

5.1. Kết luận ... 76

5.2 Hướng phát triển của đề tài ... 76

<b>TÀI LIỆU THAM KHẢO ... 78</b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU </b>

GPS: Global Positioning System FPS: Frames-per-second

IoT: Internet of Things AI: Artificial intelligence

PID: Proportional Integral Derivative SAE: Society of Automotive Engineers SAGR: Compounded Annual Growth rate RPN: Region Proposal Network

CPU: Central Processing Unit GPU: Graphics Processing Unit A-GPS: Assisted GPS

IMU: Inertial Measurement Unit MCU: Microcontroller Unit

PAFPN: Feature Pyramid Attention Module with Positional Encoding for Object Detection

SPPF: Spatial Pyramid Pooling - Fast

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>DANH MỤC CÁC HÌNH </b>

Hình 2.1 Hình ảnh mơ phỏng của một tế bào thần kinh của con người ... 6

Hình 2.2 Cấu trúc của một tế bào nhân tạo ... 7

Hình 2.3 Cấu trúc mạng CNN cơ bản ... 8

Hình 2.4 Ảnh minh họa cho lớp tích chập, trong đó lớp màu vàng là Filer map ... 9

Hình 2.5 Kết quả của Features map khi Stride bằng 1 và Stride bằng 2 ... 9

Hình 2.6 Padding ... 10

Hình 2.7 Pooling ... 11

Hình 2.8 Một số hàm kích hoạt phổ biến ... 12

Hình 2.9 Fully Connected Layer ... 13

Hình 2.10 Sự khác nhau giữa Object detection và Image segmentation ... 15

Hình 2.11 Những bài tốn của Image Segmentation ... 15

Hình 2.12 Minh họa cho mơ hình đa tác vụ... 17

Hình 2.13 Các cấp độ của xe tự hành ... 19

Hình 2.14 Quy trình cơ bản của Pytorch gồm các module quan trọng và được kết nối với nhau qua từng giai đoạn. ... 20

Hình 2.15 Minh họa 5 loại tối ưu của thư viện TensorRT ... 21

Hình 2.16 Minh họa thuật tốn tìm đường ngắn nhất Dijkstra ... 22

Hình 2.17 Thuật tốn điều khiển PID ... 24

Hình 2.18 Hệ thống định vị tồn cầu GPS ... 25

Hình 3.1 Tổng quan hệ thống ... 27

Hình 3.2 Xe Golf Ezgo ... 28

Hình 3.3 Một số loại động cơ Servo ... 29

Hình 3.4 Động cơ Ezi Servo và Ezi Driver trên Xe Golf Ezgo ... 29

Hình 3.5 Encoder loại đo tuyệt đối ... 31

Hình 3.6 Cơ cấu lái ... 32

Hình 3.7 Bộ phát Devo 7 ... 32

Hình 3.8 Bộ thu RX-601 ... 33

Hình 3.9 Camera Astra ... 33

Hình 3.10 Sơ đồ kết nối giữa Relay và Cơ cấu điều khiển ... 36

Hình 3.11 Kiến trúc học của mơ hình đa tác vụ ... 36

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Hình 3.12 Khối phát hiện đối tượng của mơ hình đa tác vụ ... 38

Hình 3.22 Khối cảm biến khoảng cách ... 45

Hình 3.23 Khối điều khiển cơng suất động cơ Servo ... 45

Hình 3.24 Khối điều khiển hướng của động cơ Servo... 46

Hình 3.25 Khối điều khiển tốc độ xe ... 46

Hình 3.26 Bảng mạch PCB 3D ... 47

Hình 3.27 Bảng mạch điều khiển thực tế ... 47

Hình 3.28 Xây dựng map cho ứng dụng dẫn đường ... 49

Hình 3.29 Xây dựng các điểm node trong Graph ... 50

Hình 3.30 Đánh trọng số đối với đường hai chiều và một chiều trong Graph ... 50

Hình 3.31 Lưu đồ thuật tốn của thuật tốn Dijkstra... 51

Hình 3.32 Kết quả tìm đường tối ưu và đường dự phòng của ứng dụng dẫn đường ... 52

Hình 3.33 Giao diện của ứng dụng ... 53

Hình 3.34 Minh họa góc hướng Bearing của các điểm trên bản đồ ... 54

Hình 3.35 Vùng cung cấp tín hiệu cho xe tự hành ... 55

Hình 3.36 Ảnh dự đốn từ mơ hình ... 56

Hình 3.37 Thuật toán điều khiển cho xe tự hành ... 57

Hình 3.38 Lưu đồ thuật tốn PID... 58

Hình 3.39 Kết quả dự đốn của mơ hình khi gặp các vật thể ... 58

Hình 3.40 Hướng di chuyển của xe khi gặp vật cản ... 59

Hình 3.41 Hướng di chuyển của xe khi kết hợp bounding box vào né vật cản ... 60

Hình 3.42 Xử lý đa luồng trên hệ thống ... 60

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Hình 3.43 Lưu đồ thuật toán kết hợp GPS trong điều khiển xe tự hành ... 61

Hình 3.44 Chiến thuật đánh lái của xe ... 62

Hình 3.45 Lưu đồ thuật tốn chiến thuật đánh lái ... 63

Hình 4.1 Sơ đồ khối của hệ thống ... 64

Hình 4.2 Dữ liệu thu thập được từ khuôn viên trường Đại học Sư phạm Kỹ thuật thành phố Hồ Chí Minh ... 65

Hình 4.3 Gán nhãn dữ liệu cho tác vụ phân đoạn làn đường bằng Labelme ... 66

Hình 4.4 Gán nhãn dữ liệu cho tác vụ phát hiện đối tượng bằng LabelImg ... 66

Hình 4.5 Giá trị của hàm mất mát trong q trình huấn luyện mơ hình ... 67

Hình 4.6 Giá trị mAP trong q trình huấn luyện mơ hình ... 68

Hình 4.7 Giá trị mIoU trong quá trình huấn luyện mơ hình ... 68

Hình 4.8 Kết quả thực nghiệm khả năng dự đốn của mơ hình ... 70

Hình 4.9 Dự đốn của mơ hình khơng được tốt ở các đoạn đường vào cua ... 71

Hình 4.10 Dựa đốn của mơ hình khơng được tốt khi vào cua ... 71

Hình 4.11 Thực nghiệm chức năng né vật cản của xe ... 72

Hình 4.12 Khả năng né vật cản của xe tự hành ... 73

Hình 4.13 Xe tự hành khi đến giao lộ và cua ... 74

Hình 4.14 Xe tự hành khi đến giao lộ và đi thẳng ... 74

Hình 4.15 Xe tự dừng lại khi đã đến vị trí cần đến ... 75

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>DANH MỤC CÁC BẢNG </b>

Bảng 3.1 Thông số kỹ thuật của xe Golf Ezgo ... 28

Bảng 3.2 Thông số kỹ thuật của động cơ Ezi Servo ... 30

Bảng 3.3 Thông số kỹ thuật của driver Ezi Driver ... 30

Bảng 3.4 Thông số kỹ thuật của Encoder loại đo tuyệt đối ... 32

Bảng 3.5 Thông số kỹ thuật của Devo 7 ... 33

Bảng 3.6 Thông số kỹ thuật của RX-601 ... 33

Bảng 3.7 Thông số kỹ thuật của Camera Astra ... 34

Bảng 3.8 Thông số kỹ thuật của Jetson TX2 ... 35

Bảng 3.9 Thông số kỹ thuật của STM32 ... 41

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1. Lý do chọn đề tài </b>

Trong những năm gần đây, ngành công nghiệp ô tô đã có nhiều biến chuyển với sự xuất hiện của các xu hướng mới, nổi bật là xe tự hành. Bằng việc được trang bị những tính năng ưu việt và bộ xử lý thông minh, xe tự hành có khả năng "cảm nhận" mơi trường xung quanh và tự vận hành mà ít phải phụ thuộc vào sự can thiệp của con người. Và để bắt kịp xu hướng tồn cầu, nền cơng nghiệp ơ tơ ở Việt Nam cũng đang nỗ lực nghiên cứu, áp dụng các công nghệ và thiết bị hiện đại.

Hiện nay, khi mà thế giới bước vào cuộc cách mạng công nghiệp lần thứ 4, các cơng nghệ robot ngày càng được tích hợp rộng rãi trong nhiều lĩnh vực, và trong trường hợp của xe tự hành, sự kết hợp của các mơ hình tiên tiến như điện tốn biên, Internet of Things (IoT), và đặc biệt là Trí tuệ Nhân tạo (AI) đã mở ra nhiều khả năng mới. Xe tự hành không chỉ thu thập dữ liệu từ cảm biến mà cịn có khả năng quan sát, học hỏi từ kinh nghiệm và đưa ra quyết định tự động khi tham gia giao thông.

Ứng dụng của xe tự hành không chỉ giải quyết vấn đề tai nạn giao thơng mà cịn mang lại nhiều lợi ích khác. Dự kiến số lượng tai nạn giao thông sẽ giảm đến 90% khi thay thế lái xe bằng xe tự hành. Đồng thời, sự phát triển của xe điện kết hợp với tính năng tự hành sẽ cải thiện môi trường và giảm tắc nghẽn giao thông, tiết kiệm nhiên liệu và giảm thiểu khí thải.

Nhận thức về tầm quan trọng và xu hướng của xe tự hành, chúng em đã chọn đề tài “Nghiên cứu, thiết kế, chế tạo chức năng tự hành cho xe điện dựa trên Deep Learning”. Với mục đích phát triển một mơ hình xe tự hành chạy trong các khuôn viên rộng lớn như trường học, bệnh viện, khu du lịch,… mà trong đó người dùng chỉ cần lựa chọn điểm đến, thì xe có thể tìm và di chuyển một cách an toàn, tối ưu đến điểm đến của mình.

<b>1.2. Mục tiêu đề tài </b>

- Thiết kế và triển khai mơ hình máy học đa tác vụ lên các phần cứng Jetson Tx2. Kết nối với camera và đảm bảo có thể hoạt động với thời gian thực.

- Thiết kế và chế tạo bộ điều khiển cho xe tự hành bằng STM32.

- Thiết kế một ứng dụng android có thể tìm đường tối ưu, đường dự phịng trong khng viên trường bằng thuật toán Dijkstra và đưa ra các chỉ dẫn rẻ hay đi thẳng cho xe tự hành.

- Xây dựng thuật tốn điều khiển góc lái cho xe dựa trên thuật toán điều khiển PID - Triển khai, hoàn thiện các hệ thống trên Xe Golf Ezgo và tiến hành thực nghiệm trong khuôn viên trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>1.3. Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu: </b>

Ngôn ngữ Python, Java, C/C++ và các framework Pytorch, Tensorflow. Mạng phân đoạn, phát hiện và nhận diện bối cảnh và vật thể.

Mạng học đa tác vụ. Xe Golf Ezgo.

Thuật toán điều khiển PID và thuật toán tối ưu Dijkstra. Thiết kế xây dựng ứng dụng android chỉ đường.

<b>1.4. Tình hình nghiên cứu </b>

<b>1.4.1. Tình hình nghiên cứu trong nước </b>

Cơng nghệ xe tự lái trong nước đang có những bước phát triển tích cực và ngày càng đáp ứng tốt hơn với yêu cầu của ngành giao thông thế hệ mới. Các doanh nghiệp Việt như FPT, Phenikaa-X và VinFast đã đưa ra những giải pháp tiên tiến, đặt nền móng cho sự phát triển của xe tự hành trong thị trường nội địa, chủ động tham gia vào cuộc cách mạng công nghiệp 4.0 và xu hướng phát triển xe tự hành trên thế giới.

FPT đã thành công trong việc thử nghiệm công nghệ xe tự hành trên các loại xe thương mại 4 chỗ và xe điện sân golf tại khu công nghệ cao TP. HCM và FPT Complex ở Đà Nẵng. Đến năm 2019, xe tự hành của FPT đã được thử nghiệm tại khu đô thị Ecopark, mở ra khả năng đặt xe từ xa thông qua ứng dụng trên điện thoại do FPT Software phát triển.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

Phenikaa-X, vào tháng 5/2021, cũng giới thiệu mẫu xe tự hành đầu tiên của mình, với mục tiêu trở thành cơng ty cơng nghệ hàng đầu trong lĩnh vực xe tự hành và robot công nghiệp tại Việt Nam. Mẫu xe của Phenikaa-X được trang bị công nghệ xe tự lái ở cấp độ 4, theo thang đo 5 cấp độ của Hiệp hội Kỹ sư xe hơi (SAE), nơi chiếc xe được coi là hoàn toàn tự động, cho phép người lái thoải mái nghỉ ngơi hoặc rời khỏi ghế lái trong khu vực nhất định.

VinFast cũng là một đối thủ đáng chú ý, khi vào tháng 8/2021, họ đã thử nghiệm thành công mẫu xe tự hành cấp độ 4 có khả năng di chuyển với tốc độ tối đa 30 km/h. VinFast đã tích hợp cơng nghệ tự lái vào các mẫu xe điện thông minh mới và sẽ triển khai trên các xe buýt điện trong thời gian sớm nhất, điều này là một bước quan trọng cho sự phát triển của ngành công nghiệp xe tự hành trong nước.

Ngoài ra, sự gia tăng của các cuộc thi về xe tự hành cũng làm tăng cường môi trường cho việc phổ biến công nghệ này, đồng thời tạo điều kiện cho sự đổi mới và phát triển trong lĩnh vực xe tự hành, giúp nó ngày càng hồn thiện và đáp ứng đúng xu hướng phát triển công nghệ tồn cầu trong lĩnh vực này.

<b>1.4.2. Tình hình nghiên cứu ngoài nước </b>

Lĩnh vực xe tự hành đang phát triển mạnh mẽ trên toàn cầu với sự tham gia của nhiều công ty lớn như Uber, Tesla và Waymo (công ty xe tự lái của Google) tại Mỹ, cũng như Auto-X, Baidu, Pony.AI và Xpeng tại các quốc gia khác. Uber, với cơng nghệ tầm nhìn 360 độ kết hợp giữa camera, radar và cảm biến khác, đang dẫn đầu với số lượng phương tiện trên đường. Tesla sử dụng 8 camera, cảm biến siêu âm và radar để phát triển công nghệ xe tự hành của mình. Waymo tập trung vào việc tạo ra người "tài xế ảo" giàu kinh nghiệm nhất thế giới với hàng triệu km trải nghiệm lái xe trong thực tế và hàng tỷ tình huống mơ phỏng.

Aptiv, thông qua giải pháp phần cứng và phần mềm cảm biến, đang đóng vai trị quan trọng trong việc triển khai các tính năng lái xe tự động như kiểm sốt hành trình và cơng nghệ hỗ trợ giữ làn đường. Aurora, tập trung vào phát triển công nghệ tự lái cấp độ

<b>4 trợ lên. </b>

Và theo một nghiên cứu thị trường gần đây của New-Journal [1], thị trường xe tự hành được dự đoán sẽ tăng trưởng với tốc độ nhanh chóng trong những năm tới. Quy mô thị trường dự kiến sẽ tăng thêm 319,41 tỷ USD, tăng tốc với tốc độ CAGR là 38,45% từ

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

năm 2022 đến năm 2027. Nhu cầu tự lái phương tiện ngày càng tăng để thúc đẩy thị trường xe tự lái. Các nhà sản xuất lớn và các công ty công nghệ đều đang đầu tư vào lĩnh vực này.

Tuy hiện tại vẫn còn nhiều hạn chế trong các thuật toán xử lý và các hạn chế về mặt pháp lí và đạo đức song đây vẫn là một trong những lĩnh vực đầy hấp dẫn và đáng mong đợi trong tương lai

<b>1.5. Phương pháp nghiên cứu </b>

- Tìm hiểu và tổng hợp những nghiên cứu về các mạng cho bài toán nhận diện và phân đoạn ứng dụng cho xe tự hành.

- Tìm hiểu và tổng hợp những nghiên cứu về bài toán đa tác vụ. - Nghiên cứu và thiết kế mơ hình đa tác vụ ứng dụng cho xe tự hành. - Viết chương trình cho hệ thống và huấn luyện mạng.

- Nghiên cứu, xây dựng thuật toán điều khiển và thử nghiệm chúng trong các cuộc thi đua xe tự hành mô phỏng và thực tế với xe mơ hình nhỏ

- Nghiên cứu, thiết kế bộ điều khiển cho xe tự hành

- Xây dựng và thử nghiệm tính chính xác của GPS cũng như là khả năng chỉ đường của ứng dụng

- Sử dụng các nguồn tài liệu khác từ Internet

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về trí tuệ nhân tạo </b>

Trí tuệ nhân tạo (Artificial Intelligence - AI) là một lĩnh vực trong khoa học máy tính nhằm phát triển các hệ thống có khả năng thực hiện các nhiệm vụ yêu cầu sự hiểu biết, quyết định, và học hỏi mà thơng thường địi hỏi sự tham gia của con người. Mục tiêu của trí tuệ nhân tạo là tạo ra máy tính hoặc hệ thống có khả năng tự động hóa cơng việc thơng minh mà trước đây chỉ có con người mới có thể thực hiện được.

<b>2.1.1 Học máy (Machine Learning) </b>

Học máy, hay Machine Learning (ML) trong tiếng Việt, thuộc lĩnh vực quan trọng của trí tuệ nhân tạo (AI), tập trung vào phát triển thuật tốn và mơ hình máy tính có khả năng tự học và cải thiện dựa trên dữ liệu xử lý. Khác với cách truyền thống lập trình máy tính để thực hiện cơng việc cụ thể, học máy cho phép máy tính tự học từ dữ liệu và trải nghiệm để tự động cải thiện hiệu suất theo thời gian.

Các phương pháp chính của học máy bao gồm:

- Học giám sát (Supervised Learning): Mơ hình được đào tạo trên tập dữ liệu có đầu vào và đầu ra mong muốn. Mục tiêu là học cách ánh xạ từ đầu vào đến đầu ra, giúp mơ hình có thể dự đốn đầu ra cho các đầu vào mới.

- Học không giám sát (Unsupervised Learning): Mơ hình được đào tạo trên tập dữ liệu chỉ có đầu vào mà khơng có đầu ra mong muốn. Mục tiêu của học không giám sát là khám phá cấu trúc hoặc mối quan hệ trong dữ liệu, như phân cụm hoặc giả định về cấu trúc ẩn.

- Học tăng cường (Reinforcement Learning): Mơ hình hoạt động trong một môi trường động và học từ trải nghiệm bằng cách thực hiện hành động và nhận phản hồi từ môi trường. Mục tiêu là tối ưu hóa một hàm thưởng hoặc minh họa.

Học máy có ứng dụng rộng rãi trong nhiều lĩnh vực như nhận dạng hình ảnh, xử lý ngơn ngữ tự nhiên, dự đoán chuỗi thời gian, tư vấn cá nhân, và nhiều lĩnh vực khác. Phần lớn các vấn đề mà học máy giải quyết là các vấn đề phân loại và hồi quy, và sự lựa chọn giữa các phương pháp phụ thuộc vào bản chất của vấn đề và loại dữ liệu được sử dụng.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>2.1.2 Học sâu (Deep Learning) 2.1.2.1 Tổng quan </b>

Học sâu là một nhánh của máy học, đặt ra khả năng cho máy tính tự huấn luyện để thực hiện các tác vụ phức tạp. Phương pháp này hoạt động dựa trên cấu trúc của các mạng lưới thần kinh sâu, được thiết kế để mô phỏng cách con người suy nghĩ và học hỏi.

Trong lĩnh vực học sâu, mạng Nơ-ron đóng một vai trò quan trọng trong nhiều thuật tốn hiệu quả. Điều này đã đóng góp quan trọng trong việc cho phép máy tính mơ phỏng khả năng tư duy và hiểu biết giống như con người. Cụ thể, một mạng Nơ-ron trong học sâu được xây dựng để sao chép chức năng của não bộ người, trong đó não bộ bao gồm các nơ-ron liên kết thơng qua các synapse.

Phương pháp trừu tượng hóa khái niệm này thành đồ thị, trong đó các nút đại diện cho các nơ-ron và các cạnh có trọng số đại diện cho các synapse. Trong quá trình học sâu, mạng Nơ-ron này không chỉ giúp giải quyết những thách thức của thị giác máy tính, mà cịn vượt qua những hạn chế của các phương pháp truyền thống trong việc nhận diện vật thể, nơi các đặc trưng có thể bị ảnh hưởng bởi nhiều yếu tố như góc nhìn, ánh sáng, và che khuất. Học sâu đang được ứng dụng mạnh mẽ và ngày càng trở thành một công cụ quan trọng trong lĩnh vực thị giác máy tính.

<i>Hình 2.1 Hình ảnh mơ phỏng của một tế bào thần kinh của con người </i>

Dựa trên cấu trúc nói trên, một tế bào thần kinh nhân tạo thường hoạt động theo cách tương tự. Trong hình dưới đây, mô tả một tế bào thần kinh nhân tạo, được mơ hình

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

hóa tốn học là một hàm tuyến tính kết hợp với một hàm kích hoạt (Activation function). Hàm kích hoạt chịu trách nhiệm biến đổi đầu ra của hàm tuyến tính, thường được áp dụng để nén giá trị trong khoảng từ 0 đến 1 (sigmoid activation), -1 đến 1 (tanh activation), hoặc lớn hơn 0 (ReLU). Ý tưởng của hàm kích hoạt là khám phá mối quan hệ phi tuyến tính giữa đầu vào và đầu ra. Mỗi nơ-ron có thể được xem xét như một bộ phân loại tuyến tính, ví dụ như hồi quy logistic.

<i>Hình 2.2 Cấu trúc của một tế bào nhân tạo </i>

Một số kiến trúc deep learning phổ biến bao gồm mạng nơ-ron đa tầng (Multilayer Perceptron - MLP) cho học giám sát, mạng nơ-ron hồi quy (Recurrent Neural Network - RNN) cho dữ liệu chuỗi, và mạng nơ-ron tích chập (Convolutional Neural Network - CNN) cho thị giác máy tính.

<b>2.1.2.2 Mạng Nơ-ron tích chập (Convolutional Neural Network) </b>

Mạng thần kinh tích chập (CNN) là một kiến trúc học sâu được thiết kế đặc biệt cho xử lý dữ liệu hình ảnh, đạt hiệu suất cao. Cách hoạt động của CNN được lấy cảm hứng từ cách vỏ não thị giác của động vật hoạt động. Trong vỏ não thị giác, tế bào thần kinh thị giác phản ứng với kích thích thị giác trong một tiểu vùng của trường thị giác. Các tế bào thần kinh khác nhau đảm nhiệm việc bao phủ các trường con khác nhau, tạo thành một sự chồng lớp để bao phủ toàn bộ trường thị giác. Trong CNN, cách tiếp cận này được mô phỏng thông qua việc sử dụng các bộ lọc tương tác với tiểu vùng trong hình ảnh và truyền thơng tin trong vùng đó.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

CNN bao gồm nhiều lớp lặp lại, mỗi lớp đảm nhận một chức năng cụ thể. Lớp tích chập chịu trách nhiệm trích xuất các đặc trưng từ hình ảnh đầu vào bằng cách sử dụng bộ lọc tích chập. Các lớp này nhận đầu vào từ hình ảnh và sản xuất đầu ra, chứa các đặc trưng được trích xuất, được chuyển giao đến lớp tiếp theo.

Lớp tổng hợp giúp giảm kích thước của các đặc trưng bằng cách kết hợp nhiều đầu ra thành một đầu ra duy nhất. Các phương pháp tổng hợp phổ biến bao gồm tổng hợp tối đa (lấy giá trị tối đa từ đầu ra) và tổng hợp trung bình (tính trung bình các đầu ra).

Sau một hoặc nhiều lớp tích chập và lớp tổng hợp, lớp kết nối đầy đủ được sử dụng để kết hợp và làm phẳng các đầu ra từ lớp trước đó, trước khi chúng được đưa vào lớp đầu ra để phân loại hình ảnh. Điều này tạo ra một kiến trúc mạng thần kinh tích chập hiệu quả cho việc nhận diện và phân loại hình ảnh.

<i>Hình 2.3 Cấu trúc mạng CNN cơ bản </i>

<b>2.2.1.2.1 Lớp tích chập (Convolutional Layer) </b>

Tích chập đóng vai trị quan trọng trong mơ hình CNN bởi nó cho phép mơ hình chia sẻ trọng số và học các đặc trưng từ dữ liệu. Trong q trình tích chập, các bộ lọc (filter) được trượt qua từng phần của hình ảnh để tạo ra các feature map. Lớp tích chập được coi là phần quan trọng nhất của toàn bộ mạng CNN, thực hiện nhiệm vụ quan trọng trong q trình tính tốn. Các yếu tố quan trọng trong lớp tích chập bao gồm padding, stride, feature map và filter map.

Filter map: Trong mạng CNN, các filter được áp dụng lên các vùng của ma trận hình ảnh. Các filter map là các ma trận 3 chiều, trong đó chứa các tham số được gọi là parameters. Các tham số này được học từ dữ liệu và đóng vai trị quan trọng trong việc

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

trích xuất đặc trưng từ hình ảnh. Các filter map giúp chúng ta nhận biết các đặc trưng quan trọng trong hình ảnh, làm nổi bật những thơng tin quan trọng và giảm chiều của dữ liệu. Điều này giúp tăng hiệu suất của mơ hình CNN trong việc nhận diện và phân loại hình ảnh.

<i>Hình 2.4 Ảnh minh họa cho lớp tích chập, trong đó lớp màu vàng là Filer map </i>

Stride: tức là dịch chuyển filter map theo từng pixel dựa vào các giá trị từ trái qua phải.

<i>Hình 2.5 Kết quả của Features map khi Stride bằng 1 và Stride bằng 2 </i>

Padding: Thường, giá trị viền xung quanh của ma trận hình ảnh sẽ được gán các giá trị 0 để có thể tiến hành nhân tích chập mà khơng làm giảm kích thước ma trận ảnh ban đầu.

Feature map: Là kết quả sau khi đưa ảnh qua các lớp tích chập, mơ hình có càng nhiều lớp tích chập thì các đặc trưng từ ảnh lấy được sẽ càng sâu và mang đậm thơng tin ngữ nghĩa hơn.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<i>Hình 2.6 Padding </i>

<b>2.2.1.2.2 Lớp gộp (Pooling Layer) </b>

Khi ma trận ảnh đầu vào có kích thước lớn, các lớp Pooling được đặt giữa các lớp Convolutional để giảm kích thước của dữ liệu và số lượng tham số, làm cho mơ hình trở nên hiệu quả hơn. Hiện tại, hai loại lớp Pooling phổ biến là Max Pooling và Average

<b>Pooling. </b>

Max Pooling: Trong Max Pooling, với mỗi vùng không chồng lên nhau trên ma trận đầu vào, giá trị lớn nhất sẽ được chọn để đại diện cho vùng đó. Các lớp Max Pooling

<b>giữ lại thơng tin quan trọng nhất từ mỗi vùng và loại bỏ các chi tiết không quan trọng. </b>

Average Pooling: Trong Average Pooling, giá trị trung bình của mỗi vùng khơng chồng lên nhau trên ma trận đầu vào được chọn. Điều này giúp giảm kích thước của dữ

<b>liệu và giảm độ phức tạp của mơ hình mà vẫn giữ lại một lượng lớn thông tin. </b>

Cả hai loại Pooling đều giúp giảm kích thước của đầu ra từ lớp Convolutional, làm tăng tính hiệu quả và giảm độ phức tạp của mơ hình. Sự lựa chọn giữa Max Pooling và

<b>Average Pooling thường tùy thuộc vào loại bài toán cụ thể và yêu cầu của dữ liệu. </b>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<i>Hình 2.7 Pooling </i>

<b>2.2.1.2.3 Hàm kích hoạt (Activation function) </b>

Hàm kích hoạt (activation function) là một thành phần quan trọng trong mạng ron, được áp dụng vào đầu ra của mỗi nơ-ron trong tầng ẩn của mơ hình. Nhiệm vụ chính của hàm kích hoạt là chuẩn hóa đầu ra của mỗi nơ-ron và tạo ra đầu vào cho tầng tiếp theo của mạng. Dưới đây là một số hàm kích hoạt cơ bản:

nơ-Sigmoid Activation Function: Đưa giá trị đầu ra về khoảng (0, 1) và thường được sử dụng trong các tình huống cần ánh xạ đầu ra vào một phạm vi xác định, chẳng hạn như các tác vụ phân loại nhị phân.

Softmax Activation Function: Chuyển đầu ra thành một phân phối xác suất, thích hợp cho tác vụ phân loại nhiều lớp. Thường được sử dụng ở tầng đầu ra của mô hình phân loại nhiều lớp.

ReLU (Rectified Linear Unit) Activation Function: Đưa ra giá trị 0 nếu đầu vào là âm, ngược lại trả về chính giá trị đầu vào nếu là dương. Phổ biến và thường được sử dụng trong nhiều kiến trúc mơ hình CNN và mạng nơ-ron sâu.

Leaky ReLU Activation Function: Tương tự như ReLU, nhưng có một giá trị nhỏ khác 0 cho các đầu vào âm, giúp tránh tình trạng "neuron chết" khi đầu vào là âm.

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

Các hàm kích hoạt này giúp mơ hình nơ-ron học được các biểu diễn phức tạp và non-linear từ dữ liệu đầu vào, làm tăng khả năng của mạng trong việc học các mối quan hệ phức tạp. Sự chọn lựa giữa các hàm kích hoạt thường phụ thuộc vào bài tốn cụ thể và đặc điểm của dữ liệu..

<i>Hình 2.8 Một số hàm kích hoạt phổ biến </i>

<b>2.2.1.2.4 Lớp kết nối đầy đủ (Fully Connected Layer) </b>

Lớp Fully Connected là phần quan trọng trong kiến trúc mạng thần kinh tích chập (CNN), có nhiệm vụ chuyển đổi thơng tin đã được trích xuất từ lớp Convolutional và Pooling thành kết quả cuối cùng. Sau khi các lớp Convolutional và Pooling đã xử lý ảnh đầu vào, lớp Fully Connected sẽ đưa ra kết quả cho mơ hình, tạo thành một mơ hình có

<b>khả năng đọc thơng tin từ ảnh. </b>

Trong lớp Fully Connected, mọi nút (neuron) trong lớp này kết nối với tất cả các nút trong lớp trước đó, tạo ra một kết nối đầy đủ. Điều này giúp mơ hình có khả năng học được các mối quan hệ phức tạp giữa các đặc trưng đã được trích xuất từ ảnh. Các trọng số của các kết nối này được điều chỉnh trong q trình huấn luyện mơ hình để tối ưu hóa

<b>hiệu suất của nó. </b>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

Lớp Fully Connected là quan trọng để chúng ta có thể kết hợp thơng tin từ các phần khác nhau của ảnh và tạo ra đầu ra cuối cùng của mơ hình. Điều này giúp mơ hình

<b>có khả năng phân loại hoặc dự đốn đối với ảnh đầu vào. </b>

<i>Hình 2.9 Fully Connected Layer </i>

<b>2.1.2.3 Nhận diện vật thể (Object Detection) </b>

Phát hiện đối tượng (Object Detection) được coi là một lĩnh vực quan trọng trong sự phát triển của học sâu (Deep Learning) và xử lý hình ảnh (Image Processing). Các mơ hình phát hiện đối tượng thường được đào tạo để nhận diện và định vị sự hiện diện của các đối tượng cụ thể trong hình ảnh, video, hoặc thậm chí là trong thời gian thực.

Trước khi có sự xuất hiện của phương pháp học sâu và cơng nghệ xử lý hình ảnh hiện đại, phát hiện đối tượng đã thu hút sự quan tâm lớn. Các phương pháp truyền thống như SIFT và HOG, cùng với kỹ thuật trích xuất cạnh của vật thể, thường được áp dụng để thực hiện nhiệm vụ này.

Với sự xuất hiện của mạng nơ-ron tích chập (CNN) và các tiến bộ trong lĩnh vực thị giác máy tính (Computer Vision), đã mở ra nhiều cách tiếp cận mới và thuật toán phát hiện đối tượng hiệu quả hơn. Điều này giúp cải thiện đáng kể khả năng nhận diện và định vị các đối tượng trong ảnh và video, đồng thời mang lại sự linh hoạt và độ chính xác cao hơn trong các ứng dụng thực tế.

Dựa vào cách hoạt động của mơ hình mà các thuật toán phát hiện vật thể được chia là mạng One-Stage (một giai đoạn) và mạng Two-Stage (hai giai đoạn).

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

Với Two-Stage (R-CNN [2], Fast-RCNN [3],…): Giai đoạn đầu tiên là phát hiện vùng có chứa vật thể cịn có thể gọi là vùng được quan tâm bằng cách sử dụng các mơ hình đặc biệt như RPN, và dựa vào vùng chứa vật thể mơ hình cố gắng phân loại và xác định vị trí của vật. Điều này giúp mơ hình đạt được độ chính xác cao nhưng thay vào đó thời gian đáp ứng của chúng lại rất chậm và không phù hợp trong các dự án thực tế.

Với One-Stage (YOLO [4], SSD [5], Nanodet [6],...) Mạng này phát hiện vị trí và phân loại vật thể đồng thời. YOLO chia ảnh đầu vào thành các lưới SxS thay vì các mạng RPN khác, điều này giúp tăng tốc độ phát hiện vật thể một cách đáng kể. Tuy nhiên các mạng này quá nặng để cho các ứng dụng điện thoại hay các hệ thống nhúng và do đó hiện nay các phiên bản sau của YOLO nhẹ hơn như gần đây nhất là YOLOv8 [7], ngoài ra áp dụng thêm các kỹ thuật “nén model” như Quatization, Pruning,.. .Thì việc triển khai trên các thiết bị nhúng khơng cịn là vấn đề.

<b>2.2.1.4 Phân đoạn hình ảnh (Image Segmentation) [8] </b>

Lớp bài tốn Image Segmentation có nghĩa là phân đoạn hình ảnh, mục tiêu chính là chia một hình ảnh thành các vùng ảnh khác nhau. Trong Image Segmentation, không chỉ phát hiện vùng ảnh chứa vật thể mà còn gán nhãn cho từng pixel cụ thể trong hình ảnh. Điều này tạo ra một mức độ độ chính xác cao hơn so với bài tốn Object Detection, nơi chỉ cần xác định vùng chứa vật thể và gán một nhãn tổng quát.

Mục tiêu chính của Image Segmentation là phân biệt giữa các vùng ảnh khác nhau trong hình ảnh, thậm chí là tới mức pixel, nên địi hỏi một độ chính xác cao trong q trình dự đốn. Cụ thể, mỗi pixel trong hình ảnh cần được gán một nhãn phù hợp, tạo ra một mơ hình chi tiết và chính xác.

Bài tốn này thường được sử dụng trong nhiều ứng dụng thực tế như trong lĩnh vực y học (phân đoạn cơ quan trong hình chụp y khoa), tự động lái xe (phân biệt giữa đường và vỉa hè), và nhiều lĩnh vực khác nơi cần sự chi tiết cao trong việc hiểu cấu trúc của hình ảnh.

Image Segmentation là một bài tốn phức tạp hơn so với Object Detection do nó địi hỏi độ chính xác tới từng pixel, mục tiêu là phân đoạn và gán nhãn cho mỗi vùng ảnh một cách chính xác và chi tiết.

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<i>Hình 2.10 Sự khác nhau giữa Object detection và Image segmentation </i>

Có 2 bài tốn image segmentation chính:

Semantic segmentation: Chúng ta phân đoạn (segment) các vùng ảnh theo những nhãn khác nhau mà không phân biệt sự khác nhau giữa các đối tượng trong từng nhãn. Ví dụ trong hình ảnh bên trái chúng ta phân biệt được pixel nào thuộc về người và pixel nào thuộc về background. Tuy nhiên trong bức ảnh xuất hiện 5 người, mức độ phân chia sẽ không xác định từng pixel thuộc về người nào.

Instance segmentation: Chúng ta phân đoạn các vùng ảnh chi tiết đến từng đối tượng trong mỗi nhãn. Ví dụ: ở hình ảnh bên phải đối với nhãn người sẽ được phân chia chi tiết tới từng người 1, 2, … , 5.

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Image Segmentation có rất nhiều các ứng dụng trong y học, xe tự hành, xử lý ảnh vệ tinh.

Y học: Trong lĩnh vực y học, thuật tốn Image Segmentation đóng vai trị quan trọng trong việc hỗ trợ chuẩn đoán các khối u từ ảnh X-quang. Khơng chỉ xác định vị trí của các khối u mà cịn cung cấp thơng tin về hình dạng của chúng, từ đó, giúp bác sĩ đưa ra quyết định chính xác về điều trị.

Xe tự hành: Trong lĩnh vực xe tự hành, Image Segmentation đóng vai trò quan trọng trong việc nhận diện và phân loại các vật thể trong môi trường xung quanh. Điều này giúp xe tự hành hiểu rõ hơn về mơi trường di chuyển của mình và đưa ra quyết định an tồn và chính xác.

Xử lý ảnh vệ tinh: Trong lĩnh vực xử lý ảnh vệ tinh, Image Segmentation giúp phân loại đối tượng trên bề mặt trái đất từ các hình ảnh thu được từ vệ tinh. Điều này giúp tạo ra các bản đồ đa dạng và cung cấp thông tin quan trọng về địa lý và môi trường.

Nông nghiệp: Trong nông nghiệp, Image Segmentation được áp dụng để phân biệt giữa khu vực cây trồng và cỏ dại. Điều này hỗ trợ hệ thống tự động phun thuốc tập trung vào việc xử lý các khu vực cần thiết, giảm lượng thuốc trừ sâu được sử dụng.

Cảnh báo cháy rừng: Trong việc giám sát cháy rừng, Image Segmentation giúp xác định chính xác vị trí và diện tích của các đám cháy từ các hình ảnh vệ tinh, từ đó cung cấp thông tin cần thiết để quản lý cháy rừng một cách hiệu quả.

<b>2.1.2.5 Mơ hình đa tác vụ (Multitask learning) </b>

Multitask learning là một phương pháp học máy sử dụng cùng một mơ hình để học nhiều tác vụ khác nhau cùng một lúc. Lợi thể chính của multitask learning là:

- Tiết kiệm tài nguyên: sử dụng một mơ hình duy nhất cho nhiều tác vụ giúp tiết kiệm tài nguyên và chi phí hơn.

- Tăng khả năng generalization: học nhiều tác vụ cùng một lúc giúp mơ hình có khả năng generalization tốt hơn trong các tác vụ khác nhau.

- Tăng độ chính xác: học nhiều tác vụ cùng một lúc giúp mơ hình có thể học được thơng tin chung giữa các tác vụ, do đó tăng độ chính xác trong các tác vụ khác nhau. Tăng khả năng sử dụng thông tin: học nhiều tác vụ cùng một lúc giúp mơ hình có thể sử dụng thơng tin giữa các tác vụ để học tốt hơn.

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

Mục tiêu của việc học đa tác vụ là nâng cao khả năng khái qt hóa của mơ hình bằng cách tận dụng những thông tin chung cho các nhiệm vụ. Thông qua việc chia sẻ tham số, mơ hình có thể thu được sự biểu diễn dữ liệu nhỏ gọn và hiệu quả hơn.

Trong học sâu, học đa tác vụ thường được triển khai bằng cách dùng chung một bộ trích xuất đặc trưng sau đó đưa đến một lớp fully connected khác, ở đây sẽ đưa chia ra các nhánh nhằm đáp ứng từng tác vụ khác nhau

<i>Hình 2.12 Minh họa cho mơ hình đa tác vụ </i>

<b>2.2 Xe tự hành 2.2.1 Khái niệm </b>

Xe tự lái [11], hay còn gọi là xe tự hành (self-driving car), là loại xe có khả năng tự cảm nhận mơi trường xung quanh và di chuyển an tồn mà ít hoặc không cần sự can thiệp của con người.

Các xe tự lái tích hợp nhiều công nghệ cảm biến môi trường như radar, lidar, sonar, định vị GPS, và trí tuệ nhân tạo. Hệ thống điều khiển cao cấp phân tích thơng tin từ các cảm biến để xác định đường đi phù hợp, đồng thời nhận biết chướng ngại vật và biển báo giao thông.

Hoạt động của xe tự lái dựa vào sự kết hợp của cảm biến, bộ điều khiển, thuật toán, máy học và bộ xử lý mạnh mẽ. Một số công nghệ phổ biến trên xe tự lái bao gồm:

- Cảm biến radar: Theo dõi vị trí của các phương tiện xung quanh.

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

- Camera video: Phát hiện đèn giao thông, đọc biển báo, theo dõi phương tiện khác và nhận diện người đi bộ.

- Cảm biến LiDAR: Sử dụng xung ánh sáng để đo khoảng cách, phát hiện mép đường và xác định vạch kẻ đường.

- Cảm biến siêu âm: Lắp đặt trong bánh xe để phát hiện lề đường và các phương tiện khi đỗ xe.

Phần mềm của xe tự lái xử lý thông tin đầu vào để đề xuất một con đường và gửi hướng dẫn đến bộ điều khiển của xe để kiểm soát tốc độ, phanh và lái xe. Các quy tắc giao thông được định rõ trong phần mềm, và các thuật toán tránh chướng ngại vật, mơ hình dự đốn và nhận dạng đối tượng giúp xe tuân thủ quy tắc và tránh chướng ngại vật khi di chuyển trên đường.

<b>2.2.2 Các cấp độ của xe tự hành </b>

Đến thời điểm hiện tại, thuật ngữ "xe tự lái" đã trở nên phổ biến trong ngành công nghiệp sản xuất ô tô. Lĩnh vực xe tự hành đánh dấu sự xuất hiện của một phương tiện mới, và để áp dụng nó vào thực tế, cần thiết lập các quy chuẩn chung. Hiệp hội Kỹ sư Ơ tơ (SAE), tổ chức chịu trách nhiệm phát triển quy định và tiêu chuẩn cho ngành công nghiệp ô tơ tồn cầu, đã thiết lập một hệ thống phân loại gồm 6 cấp độ tự lái để xác định

<b>mức độ tự chủ của phương tiện và người lái trong quá trình vận hành. </b>

Hệ thống phân loại 6 cấp độ của SAE bắt đầu từ Cấp độ 0, trong đó khơng có sự hỗ trợ nào từ phương tiện, và tiến lên đến Cấp độ 5, đại diện cho việc phương tiện tự chủ hồn tồn mà khơng cần sự can thiệp của người ngồi sau vô-lăng. Các cấp độ này giúp xác định và đánh giá mức độ tự động hóa và khả năng điều khiển tự động của xe, đồng

<b>thời cung cấp hướng dẫn cho người tiêu dùng và các doanh nghiệp trong ngành ô tơ. </b>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<i>Hình 2.13 Các cấp độ của xe tự hành </i>

<b>2.2.3 Tiêu chuẩn an toàn của công nghệ xe tự lái </b>

Đúng, việc đảm bảo an tồn là một yếu tố quan trọng và khơng thể phủ nhận trong phát triển và triển khai các công nghệ xe tự lái. Dưới đây là một số tiêu chuẩn và yếu tố an toàn quan trọng mà những người làm trong lĩnh vực này cần xem xét:

- Tiêu chuẩn An toàn Phương tiện Cơ giới Liên bang (FMVSS): Các nhà sản xuất ô tô cần tuân thủ theo các tiêu chuẩn của FMVSS để đảm bảo rằng xe của họ đáp ứng các yêu cầu an toàn cơ bản. Điều này bao gồm các yêu cầu về hệ thống phanh, an toàn bám đường, hệ thống túi khí, v.v.

- Hệ thống Cảm biến và Nhận diện Đối tượng: Hệ thống cảm biến của xe tự lái phải có khả năng chính xác xác định và theo dõi các đối tượng xung quanh, bao gồm xe khác, người đi bộ, và cả cấu trúc đường.

- Quyết định Tức thì: Hệ thống phần mềm điều khiển xe tự lái cần có khả năng đưa ra quyết định tức thì và phản ứng nhanh chóng với các tình huống giao thơng khẩn cấp.

- An toàn Mạng và Phần mềm: Việc đảm bảo an toàn của hệ thống trước mọi rủi ro về an ninh mạng là quan trọng. Phần mềm điều khiển phải được thiết kế để ngăn chặn các tấn công và đảm bảo tính tồn vẹn của hệ thống.

- Hướng dẫn và Giáo dục Người Dùng: Người lái và người sử dụng các hệ thống xe tự lái cần được cung cấp hướng dẫn rõ ràng và đầy đủ về cách sử dụng, và họ cũng cần phải hiểu rõ về các hạn chế của hệ thống.

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

- Giám sát và Can thiệp của Người Lái: Ở các cấp độ thấp hơn của tự động hóa, việc giữ cho người lái giữ tinh thần giám sát và sẵn sàng can thiệp vào mọi lúc cần thiết là quan trọng để đảm bảo an toàn.

Các tiêu chuẩn và yếu tố an toàn này là những điểm cơ bản mà ngành công nghiệp

<b>đang nỗ lực đạt được để tạo ra các hệ thống xe tự lái an toàn và đáng tin cậy. </b>

<b>2.3 Framework Pytorch và TensorRT </b>

Pytorch [12] là framework được phát triển bởi Facebook. Với sự đầu tư đáng kể vào lĩnh vực Trí tuệ Nhân tạo, Facebook đã giới thiệu PyTorch như một công cụ mạnh mẽ. PyTorch là một dự án mã nguồn mở, điều này đã tạo ra một cộng đồng lớn quanh nó. Cộng đồng lớn khơng chỉ cung cấp nhiều tài nguyên học, mà còn giúp giải quyết vấn đề của bạn thông qua việc chia sẻ thông tin và kiến thức.

PyTorch, cùng với Tensorflow và Keras, là một trong những framework phổ biến nhất được sử dụng cho các bài toán Deep Learning hiện nay. Trong lĩnh vực nghiên cứu, đa phần các tác giả đều ưa chuộng PyTorch để triển khai bài toán của họ. PyTorch thể hiện sự ưu việt của mình trong lĩnh vực nghiên cứu bằng việc cung cấp khả năng debug và visualize dễ dàng. Ngoài ra, với cơ chế Dynamic Graphs, PyTorch giúp giảm thời gian huấn luyện mơ hình.

PyTorch sử dụng Tensor làm kiểu dữ liệu chủ yếu. Tensor là một mảng nhiều chiều với các phần tử có cùng loại dữ liệu. Đặc biệt, Tensor có thể thực hiện tính tốn trên GPU, giúp tăng tốc q trình tính tốn.

<i>Hình 2.14 Quy trình cơ bản của Pytorch gồm các module quan trọng và được kết nối với nhau qua từng giai đoạn. </i>

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

Các module quan trọng và cơ bản chúng tôi sẽ đề cập trong bài báo cáo này là torch.utils, torch.nn, torch.optim, torch.autograd.

Về thư viện TensorRT, TensorRT là một thư viện được phát triển bởi NVIDIA nhằm cải thiện tốc độ inference, giảm độ trì truệ trên các thiết bị đồ họa NVIDIA(GPU). Nó có thể cải thiện tốc độ suy luận lên đến 2-4 lần so với các dịch vụ real-time và nhanh hơn gấp 30 lần so với hiệu suất của CPU.

TensorRT [13] thực hiện 5 loại tối ưu để tăng hiệu suất bao gồm:

<i>- Precision Calibration: Trong suốt quá trình training, các tham số và hàm kích </i>

hoạt activations trong độ chính xác FP32(Float Point 32) sẽ được convert về độ chính xác FP16 hoặc INT8. Việc tối ưu nó sẽ giảm độ trì truệ và tăng tốc độ suy luận nhưng phải trả một cái giá là phải giảm độ chính xác của model mặc dù khơng đáng kể. Trong nhận diện real-time thì đơi khi vịệt đánh đổi độ chính xác so với tốc độ suy luận là cần thiết.

<i>- Layer & Tensor Fusion: TensorRT nó sẽ gộp layer and tensor để tối ưu hóa bộ </i>

nhớ GPU và băng thơng bởi việc gộp các nodel theo chiều dọc, chiều ngang hoặc cả hai.

<i>- Kernel auto-tuning: Trong quá trình tối ưu model, một vài kernel riêng dành cho </i>

việc tối ưu sẽ thực thi trong suốt tiến trình.

<i>- Dynamic Tensor Memory: Cho phép chỉ phân bổ bộ nhớ cần thiết cho mỗi tensor </i>

và chỉ trong thời gian sử dụng của nó giúp giảm dung lượng bộ nhớ và cải thiện việc sử dụng lại bộ nhớ

<i>- Multiple Stream Execution: Cho phép xử lý nhiều luồng đầu vào </i>

<i>Hình 2.15 Minh họa 5 loại tối ưu của thư viện TensorRT </i>

</div>

×