daigai

Well-Known Member
LINK TẢI LUẬN VĂN MIỄN PHÍ CHO AE KET-NOI

TÓM TẮT
Trong những năm gần đây, với sự phát triển mạnh mẽ của trí tuệ nhân tạo, đặc biệt là học sâu, ngành công nghệ thông tin đã gặt hái được rất nhiều thành công. Có thể kể đến một ứng dụng điển hình của các mô hình học sâu là “XE TỰ HÀNH”. Tuy nhiên, với ứng dụng này lại gặp nhiều xung đột về quy tắc đạo đức AI vì thế gần đây có nhiều phương pháp nghiên cứu về xe tự hành đã được đầu tư và phát triển để các mô hình học sâu có hiệu suất và độ chính xác cao có thể kể đến như phân đoạn làn đường, phát hiện đối tượng, nhận dạng biển báo giao thông, nhận dạng bối cảnh và đoán điều khiển góc lái. Ngoài ra, xe tự hành còn cho biết thông tin trạng thái của xe từ CANBUS và được trang bị thêm các cảm biến có độ chính xác và thời gian đáp ứng cao như LIDAR, cảm biến Laser,... nhằm mục đích có thêm nhiều thông tin hơn để tăng mức độ tin cậy cho hệ thống. Mặc dù đạt được hiệu suất cao, nhưng xử lý từng nhiệm vụ riêng lẻ mất nhiều thời gian hơn so với việc giải quyết tất cả nhiệm vụ cùng một lúc.Trong khi đó, các ứng dụng xe tự hành đòi hỏi phải chạy được trên thời gian thực và độ chính xác cao trên một phần cứng hạn chế. Do đó, vấn đề cấp bách là thiết kế một hệ thống đảm bảo cả hai yêu cầu này trong thực tế. Vì thế trong bài báo cáo này tui đề xuất một hệ thống đa tác vụ có thể giảm thời gian xử lý bằng cách xử lý nhiều nhiệm vụ cùng một lúc và hiệu năng cũng được cải thiện nhờ có thêm nhiều thông tin để xử lý.
Để thực hiện được đề tài, tui chia hệ thống thành ba phần nghiên cứu chính:
- Mô hình học sâu (phân đoạn làn đường, phát hiện đối tượng, nhận dạng bối cảnh) và được đánh giá qua ba giai đoạn: mô phỏng, xe mô hình, xe Renault Twizy.
- LIDAR (phát hiện vật cản).
- CANBUS (thông tin trạng thái của xe).
Sau thời gian nghiên cứu và thực hiện, hệ thống đã hoàn thành và thực nghiệm.
ii
MỤC LỤC
LỜI CẢM ƠN .......................................................................................................................i TÓM TẮT ............................................................................................................................ii MỤC LỤC ..........................................................................................................................iii DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU.........................................................ix DANH MỤC HÌNH.............................................................................................................x DANH MỤC BẢNG.........................................................................................................xiv Chương 1. TỔNG QUAN ĐỀ TÀI ...................................................................................1
1.1. Lý do chọn đề tài.......................................................................................................1 1.2. Tình hình nghiên cứu trong và ngoài nước...............................................................1 1.2.1. Tình hình nghiên cứu trong nước ......................................................................1 1.2.2. Tình hình nghiên cứu ngoài nước......................................................................2 1.3. Mục tiêu đề tài ..........................................................................................................3 1.4. Phương pháp nghiên cứu ..........................................................................................3 1.5. Đối tượng nghiên cứu ............................................................................................... 4 1.6. Giới hạn đề tài...........................................................................................................4 1.7. Bố cục đề tài..............................................................................................................4 Chương 2. CƠ SỞ LÝ THUYẾT......................................................................................5 2.1. Mô hình học sâu........................................................................................................5 2.1.1. Môi trường ......................................................................................................... 5 2.1.1.1. Hệ điều hành UBUNTU .............................................................................5 2.1.1.2. Ngôn ngữ PYTHON ................................................................................... 5 2.1.1.3. CUDA ......................................................................................................... 6 2.1.1.4. CUDNN ......................................................................................................6 2.1.1.5. Phần mềm mô phỏng UNITY ..................................................................... 7
iii

2.1.2. PYTORCH.........................................................................................................7 2.1.3. Máy học (Machine Learning) [4].......................................................................9 2.1.4. Học sâu (Deep Learning) [5] ............................................................................. 9 2.1.5. Mạng Nơron tích chập (Convolutional Neural Network)..................................9
2.1.5.1. Lớp tích chập (Convolution Layer) ..........................................................10 2.1.5.2. Lớp gộp (Pooling Layer) ..........................................................................12 2.1.5.3. Lớp kết nối đầy đủ ( Fully Connected Layer) ..........................................13
2.1.6. Hàm kích hoạt (Activation Function)..............................................................13 2.1.7. Các loại tích chập thay thế tích chập truyền thống..........................................13 2.1.7.1. Pointwise Convolution [13]......................................................................13 2.1.7.2. Grouped Convolution [13]........................................................................14 2.1.7.3. Depthwise Separable Convolution [13]....................................................15 2.1.8. Tăng cường dữ liệu (Data Augmentations) ..................................................... 16 2.1.9. Bài toán phát hiện vật thể (Object Detection) .................................................17 2.1.9.1. Kiến trúc YOLOv7 [19]............................................................................18 2.1.9.2. Label Assignment .....................................................................................20 2.1.10. Mô hình phân loại hình ảnh (Image Segmentation) ......................................20 2.1.11. Các phương pháp đánh giá ............................................................................22 2.1.11.1. IoU ..........................................................................................................22 2.1.11.2. Precision, Recall, AP, mAP [29] ............................................................23 2.1.12. Phương pháp tiếp cận đa tác vụ ..................................................................... 23 2.2. LIDAR ....................................................................................................................25 2.2.1. Nguyên lý hoạt động........................................................................................25 2.2.2. Ứng dụng trên LIDAR.....................................................................................25 2.2.2.1. SLAM .......................................................................................................25
iv

2.2.2.2. DATMO (Detection and tracking of moving object) ...............................26 2.3. Hệ thống thông tin ..................................................................................................26 2.3.1. Giới thiệu về mạng giao tiếp trên ô tô .............................................................26 2.3.2. Tổng quan về mạng CAN ứng dụng chuẩn giao tiếp trên ô tô........................27 2.3.2.1. Các khái niệm cơ bản về mạng CAN .......................................................27 2.3.2.2. Cấu trúc và các thành phần trong CAN BUS ........................................... 28 2.3.2.2.1. Cấu trúc mạng CAN........................................................................28 2.3.2.2.2. Cấu trúc Node hay Station...............................................................29 2.3.2.2.3. Tín hiệu trên BUS CAN .................................................................. 29 2.3.2.3. Cấu trúc các khung dữ liệu trong CAN [32]............................................31 2.3.3. Các toán tử bitwise...........................................................................................31 2.3.4. Các chuẩn giao tiếp khác ................................................................................. 32 2.3.4.1. Chuẩn giao tiếp UART [33]......................................................................32 2.3.4.2. Chuẩn giao tiếp SPI [34]..........................................................................33 2.4. GIAO DIỆN NGƯỜI DÙNG (UI) .........................................................................34 2.4.1. Ngôn ngữ front-end..........................................................................................34 2.4.1.1. Ngôn ngữ HTML......................................................................................35 2.4.1.2. Ngôn ngữ CSS ..........................................................................................35 2.4.1.3. Ngôn ngữ Java Script................................................................................36 2.4.2. API ................................................................................................................... 36 2.4.3. FLASK.............................................................................................................37 Chương 3. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG.................................................38 3.1. Thiết kế mô hình học sâu........................................................................................38 3.1.1. Tập dữ liệu ....................................................................................................... 39 3.1.2. Ứng dụng trên phần mềm mô phỏng UNITY..................................................39
v

3.1.2.1. Cài đặt môi trường....................................................................................40 3.1.2.1.1. Cài đặt CUDA .................................................................................40 3.1.2.1.2. Cài đặt cuDNN ................................................................................ 41
3.1.2.2. Cách tạo phần mềm mô phỏng Unity .......................................................42 3.1.2.2.1. Tạo và vẽ địa hình ...........................................................................42 3.1.2.2.2. Tạo đường đi ...................................................................................43 3.1.2.2.3. Tạo vật cản và checkpoints .............................................................45 3.1.2.2.4. Kiểm tra và xây dựng map ..............................................................46
3.1.2.3. Mô hình học sâu sử dụng..........................................................................47 3.1.2.3.1. Lane Detection.................................................................................48 3.1.2.3.1.1. Phân tích bài toán........................................................................48 3.1.2.3.1.2. Khảo sát ......................................................................................50 3.1.2.3.1.3. Vấn đề gặp phải ..........................................................................51 3.1.2.3.2. Object Detection..............................................................................52 3.1.2.3.2.1. Phân tích bài toán........................................................................52 3.1.2.3.2.2. Khảo sát ......................................................................................54 3.1.2.4. Đánh giá....................................................................................................55 3.1.3. Ứng dụng trên mô hình....................................................................................57 3.1.3.1. Những thách thức......................................................................................58 3.1.3.2. Thu thập thêm dữ liệu...............................................................................59 3.1.3.3. Thiết kế mô hình học sâu..........................................................................60
3.1.3.3.1. 3.1.3.3.2. 3.1.3.3.3.
Mã hóa ............................................................................................. 60 Giải mã (Heads)...............................................................................62 Hàm mất mát (Loss Function).........................................................62
3.1.3.4. Đánh giá....................................................................................................63 vi

3.1.4. Thử nghiệm trên xe điện RENAULT TWIZY ................................................65 3.2. LIDAR ....................................................................................................................66 3.2.1. Thông số kỹ thuật [50].....................................................................................67 3.2.2. Cấu hình thiết bị bằng phần mềm SOPAS ET.................................................69 3.2.3. Lấy dữ liệu từ LMS 511-PRO .........................................................................71 3.2.3.1. Phần cứng..................................................................................................71 3.2.3.2. Giải mã......................................................................................................73 3.2.4. Hiển thị dữ liệu ................................................................................................74 3.3. Thu thập thông số xe...............................................................................................75 3.3.1. Môi trường nghiên cứu .................................................................................... 76 3.3.2. Phương pháp thu thập dữ liệu CAN Model xe điện RENAULT TWIZY.......76 3.3.2.1. Kiểm tra tín hiệu mạng CAN bằng máy Hantek 6022BE ........................76 3.3.2.2. Thiết kế MODULE thu thập dữ liệu trực tiếp. .........................................77 3.3.3. Giải mã các ID gói dữ liệu...............................................................................79 3.3.4. Giao tiếp Arduino và Jetson Nano bằng Python [55]......................................82 3.4. Giao diện người dùng .............................................................................................83 3.4.1. Cấu trúc............................................................................................................84 3.4.2. Chức năng ........................................................................................................ 85 3.4.2.1. Bật/Tắt webcam của server.......................................................................85 3.4.2.2. Bật/Tắt webcam của client........................................................................86 3.4.2.3. Chọn/Tắt file video đã chọn......................................................................87 3.4.2.4. đoán kết quả trên thời gian thực .........................................................87 3.4.2.5. Hiển thị biểu đồ Lidar và Speed theo thời gian thực................................89 3.4.2.6. Cập nhật thông tin của xe theo thời gian thực .......................................... 89 Chương 4. KẾT QUẢ THỰC NGHIỆM ....................................................................... 91
vii

4.1. Môi trường đánh giá ...............................................................................................91 4.2. Kết quả mô hình học sâu.........................................................................................93 4.3. Kết quả LIDAR.......................................................................................................97 4.4. Kết quả thu thập thông số xe ..................................................................................98 4.5. Tổng kết toàn hệ thống ...........................................................................................99
Chương 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.................................................102
5.1. Kết quả..................................................................................................................102
5.2. Hướng phát triển ...................................................................................................102
TÀI LIỆU THAM KHẢO.............................................................................................103 PHỤ LỤC........................................................................................................................108
viii

DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU
CNN: Convolution Nerural Network
CPU: Central Processing Unit
CUDA: Compute Unified Device Architecture
FPS: Frames per second
GPUs: Graphics Processing Unit
MCU: Micro Controller Unit
IoU: Intersection over Union
AP: Average Precision
mAP: Mean Average Precision
ROI: Region Of Interest
R-CNN: Region - Convolutional Neutral Network YOLO: You only look Once
SSD: Single Shot Detetor
LiDAR: Light Detection and Ranging
USB: Universal Serial Bus
CAN: Universal Serial Bus
RS-232: Recommended Standard 232
UART: Universal Asynchronous Receiver / Transmitter SPI: Serial Perialpheral Bus
MISO: Master Input Slave Output
MOSI: Master Output Slave Input
SCLK: Serial Clock
SS / CS: Slave Select / Chip Select
ix

DANH MỤC HÌNH
Hình 2.1. Workflow của Pytorch [3] ...................................................................................8 Hình 2.2. Kiến trúc cơ bản của một Convolution Neural Network [7] .............................10 Hình 2.3. Minh họa Convolution Layer [8] .......................................................................11 Hình 2.4. Padding [9].........................................................................................................11 Hình 2.5. Stride [10] ..........................................................................................................12 Hình 2.6. Max pooling và Average Pooling [11] ..............................................................12 Hình 2.7. Minh họa về Fully Connected Layer [12]..........................................................13 Hình 2.8. Pointwise convolution [13]................................................................................14 Hình 2.9. Minh họa Grouped Convolution [13] ................................................................15 Hình 2.10. Minh họa Channel Shuffle [13] .......................................................................15 Hình 2.11. Minh họa cho Depthwise Separable Convolution [13]....................................16 Hình 2.12. Ví dụ về tăng cường dữ liệu.............................................................................17 Hình 2.13. So sánh YOLOv7 với những phiên bản YOLO khác......................................19 Hình 2.14. Backbone..........................................................................................................19 Hình 2.15. Phân đoạn ngữ nghĩa và phân đoạn cá thể [26] ...............................................21 Hình 2.16. Phát hiện khối Unet [26]..................................................................................21 Hình 2.17. Xe tự hành [26] ................................................................................................22 Hình 2.18. Kiến trúc Mask R-CNN [31] ...........................................................................24 Hình 2.19. Nguyên lý tính toán khoảng cách của thiết bị [29]..........................................25 Hình 2.20. Cấu trúc BUS và Node của mạng CAN...........................................................28 Hình 2.21. Dây cáp BUS CAN [8] ....................................................................................29 Hình 2.22. Mức điện áp trên đường CAN_H và CAN_L khi truyền dữ liệu ....................30 Hình 2.23. Xác định mức điện áp logic tqua sự sai lệch CAN_L và CAN_H ..................31 Hình 2.24. Sơ đồ giao tiếp Uart .........................................................................................33 Hình 2.25. Các chân giao tiếp SPI của Arduino Uno ........................................................34 Hình 3.1. Pipeline hệ thống đa tác vụ xe tự hành ..............................................................38 Hình 3.2. Pipeline bài toán xe tự hành...............................................................................38 Hình 3.3. Bộ dữ liệu Carla [36] .........................................................................................39 Hình 3.4. Tham số phù hợp với GeForce RTX 3090 ........................................................40 Hình 3.5. Xác định phiên bản CUDA................................................................................40
x

Hình 3.6. Các câu lệnh cần thiết để tải CUDA. .................................................................41 Hình 3.7. Chọn phiên bản của cuDNN ..............................................................................41 Hình 3.8. Một số package để tạo map mô phỏng ..............................................................42 Hình 3.9. Các công cụ vẽ địa hình.....................................................................................43 Hình 3.10. Các công cụ chỉnh sửa làn đường ....................................................................43 Hình 3.11. Thêm Lane mới................................................................................................44 Hình 3.12. Cập nhật địa hình .............................................................................................44 Hình 3.13. Điều chỉnh biến báo .........................................................................................45 Hình 3.14. Map đường đi...................................................................................................45 Hình 3.15. Tạo vật cản và Checkpoints .............................................................................46 Hình 3.16. Nền tảng xây dựng map ...................................................................................47 Hình 3.17. Phương pháp giải quyết bài toán xe tự hành trên phần mềm mô phỏng .........47 Hình 3.18. Phương pháp xử lí ảnh truyền thống................................................................49 Hình 3.19. Các bước huấn luyện một mô hình học sâu.....................................................50 Hình 3.20. So sánh kết quả giữa Bisenet [31] và Unet [27] .............................................51 Hình 3.21. Sử dụng mô hình Unet cho bài toán phân đoạn làn đường..............................51 Hình 3.22. Bắt được những đoạn đường rất xa gây nhiễu cho việc điều khiển.................51 Hình 3.23. Các trường hợp đối tượng nhỏ.........................................................................53 Hình 3.24. Trực quan hoá dữ liệu ......................................................................................53 Hình 3.25. Kết quả Yolov7................................................................................................55 Hình 3.26. Kết quả mô phỏng xe tự hành..........................................................................56 Hình 3.27. Xe mô hình.......................................................................................................57 Hình 3.28. Sa bàn xe tự hành.............................................................................................57 Hình 3.29. Vấn đề trong việc triển khai các mô hình học sâu lên các máy tính nhúng ....59 Hình 3.30. Bộ dữ liệu huấn luyện mô hình........................................................................59 Hình 3.31. Kiến trúc của mạng ..........................................................................................60 Hình 3.32. Cấu trúc BiFPN [45] .......................................................................................61 Hình 3.33. Kết quả ứng dụng trên xe mô hình ..................................................................65 Hình 3.34. Model xe điện thử nghiệm Renault Twizy ......................................................65 Hình 3.35. Bổ sung hai tác vụ LIDAR và CANBUS cho hệ thống...................................66 Hình 3.36. Sơ đồ giải thuật LiDAR ...................................................................................67
xi

Hình 3.37. Thông số kỹ thuật LMS511-PRO ....................................................................68 Hình 3.38. Sơ đồ dây nguồn LMS511 ...............................................................................68 Hình 3.39. Giao thức giao tiếp của LMS511.....................................................................69 Hình 3.40. Thiết lập cấu hình hoạt động LMS 511 ...........................................................70 Hình 3.41. Sơ đồ dây giao tiếp dữ liệu LMS511 ...............................................................72 Hình 3.42. Mạch giao tiếp LMS 511-PRO ........................................................................72 Hình 3.43. Điện tín yêu cầu gửi dữ liệu về máy tính.........................................................73 Hình 3.44. Mẫu dữ liệu phản hồi từ thiết bị.......................................................................74 Hình 3.45. Tam giác vuông ...............................................................................................75 Hình 3.46. Kết quả thiết bị LMS 511-PRO .......................................................................75 Hình 3.47. Sơ đồ tổng quan về phương pháp thu thập dữ liệu ..........................................76 Hình 3.48. Các chân trên cổng OBD .................................................................................76 Hình 3.49. Kết quả xung đo được......................................................................................77 Hình 3.50. CAN bus signal levels......................................................................................77 Hình 3.51. Module MCP 2515...........................................................................................78 Hình 3.52. Sơ đồ kết nối CAN BUS SHIELD...................................................................78 Hình 3.53. Dữ liệu từ CAN BUS.......................................................................................79 Hình 3.54. Giao diện người dùng ......................................................................................84 Hình 3.55. Các chức năng của giao diện người dùng........................................................85 Hình 3.56. Sơ đồ xử lý bật webcam server ........................................................................85 Hình 3.57. Sơ đồ xử lý tắt webcam server.........................................................................86 Hình 3.58. Sơ đồ xử lý bật webcam client.........................................................................86 Hình 3.59. Sơ đồ xử lý tắt webcam client..........................................................................87 Hình 3.60. Sơ đồ xử lý mở file ..........................................................................................87 Hình 3.61. Sơ đồ xử lý tắt file............................................................................................87 Hình 3.62. Sơ đồ xử lý khi người dùng gửi yêu cầu đoán bằng mô hình học sâu .......88 Hình 3.63. Sơ đồ xử lý khi người dùng gửi yêu cầu tắt đoán bằng mô hình học sâu ..89 Hình 3.64. Sơ đồ xử lý hiển thị biểu đồ LiDAR................................................................89 Hình 3.65. Sơ đồ xử lý hiển thị biểu đồ SPEED................................................................89 Hình 3.66. Sơ đồ xử lý cập nhật thông tin của xe..............................................................90 Hình 4.1. Sơ đồ mạch điện hệ thống..................................................................................92
xii

Hình 4.2. Sơ đồ phần cứng hệ thống..................................................................................92 Hình 4.3. Kết quả của mô hình học đa tác vụ....................................................................96 Hình 4.4. Kết quả của mô hình ở điều kiện xấu ................................................................97 Hình 4.5. Kết quả nhiệm vụ phát hiện vật cản...................................................................98 Hình 4.6. Gói dữ liệu ID 0x19F và ID 0x196 xử lý, mã hóa và xuất ra Monitor..............99 Hình 4.7. Chi phí tính toán của hệ thống .........................................................................100 Hình 4.8. Hệ thống đa tác vụ ứng dụng cho xe tự hành ..................................................100 Hình 4.9. Phần cứng hệ thống đa tác vụ ứng dụng cho xe tự hành .................................101
xiii

DANH MỤC BẢNG
Bảng 2.1. Phân loại đánh giá kết quả đoán của mô hình..............................................23 Bảng 2.2. Bảng tốc độ truyền bit .......................................................................................28 Bảng 2.3. Bảng chân trị cho AND .....................................................................................32 Bảng 2.4. Bảng chân trị của OR ........................................................................................32 Bảng 3.1. So sánh các mạng hiện đại về nhiệm vụ phân đoạn. .........................................50 Bảng 3.2. So sánh các phiên bản YOLO về phát hiện và nhận diện vật thể. ....................54 Bảng 3.3. Kết quả của các cấu hình khác nhau cho tất cả các tác vụ. ...............................63 Bảng 3.4. Bảng tốc độ truyền của chuẩn giao tiếp RS-232 [52] ......................................71 Bảng 3.5. Bảng giá trị ID 0x155........................................................................................79 Bảng 3.6. Bảng giá trị 0x196 .............................................................................................80 Bảng 3.7. Bảng giá trị ID 0x19F........................................................................................80 Bảng 3.8. Bảng giá trị ID 0x59B .......................................................................................80 Bảng 3.9. Bảng giá trị ID 0x424........................................................................................81 Bảng 3.10. Bảng giá trị ID 0x425......................................................................................81 Bảng 3.11. Bảng giá trị ID 0x556......................................................................................82 Bảng 3.12. Bảng giá trị ID 0x599......................................................................................82 Bảng 3.13. Bảng giá trị ID 0x554......................................................................................82 Bảng 3.14. Bảng giá trị ID 0x557......................................................................................82 Bảng 3.15. Bảng giá trị ID 0x55E .....................................................................................82 Bảng 3.16. Bảng giá trị ID 0x55F......................................................................................82 Bảng 4.1. Thống kê phần cứng và phần mềm của các tác vụ............................................91 Bảng 4.2. So sánh giữa việc học đa tác vụ và học từng tác vụ..........................................93 Bảng 4.3. So sánh các mô hình học đa tác vụ triển khai trên Jetson Nano .......................94 Bảng 4.4. Chu trình gửi lên các gói ID dữ liệu cho mạng CAN........................................99
xiv

CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI
1.1. Lý do chọn đề tài
Với tình hình nghiên cứu hiện tại có thể thấy các phương pháp hiện nay đang xử lý độc lập các nhiệm vụ và chưa đủ thông tin để hệ thống xe tự hành đưa ra quyết định điều này gây nên rất nhiều nhược điểm. Thứ nhất là việc phần cứng bị hạn chế trên các ứng dụng xe tự hành nên tốc độ xử lý của hệ thống sẽ rất chậm, dẫn đến tốc độ của xe sẽ bị chậm, hay hệ thống không thể đáp ứng kịp thời cho người lái dẫn đến không có sự an toàn. Thứ hai là các thông tin của các nhiệm vụ này là có liên quan với nhau tuy nhiên nếu xử lý độc lập thì các thông tin này sẽ không có sự liên kết với nhau gây phí phạm tài nguyên. Thứ ba là với sự phát triển không ngừng của hệ thống hạ tầng ngày nay thì với việc chỉ áp dụng các mô hình học sâu là chưa đủ do các mô hình này khá phụ thuộc vào dữ liệu học được.
Nhận thấy được những nhược điểm trên do đó tui quyết định thực hiện đề tài:
“THIẾT KẾ HỆ THỐNG ĐA TÁC VỤ TRIỂN KHAI TRÊN JETSON NANO ỨNG DỤNG CHO XE TỰ HÀNH” với ý tưởng ngoài việc áp dụng các mô hình học sâu như “con mắt”, tui còn cung cấp thêm cho hệ thống cảm biến vật cản (LIDAR) và thông tin trạng thái của xe (CANBUS) như là các “giác quan” nhằm giúp cho hệ thống có nhiều thông tin hơn để đưa ra quyết định cũng như tăng độ tin cậy cho hệ thống.
1.2. Tình hình nghiên cứu trong và ngoài nước 1.2.1. Tình hình nghiên cứu trong nước
Ở Việt Nam, công nghệ xe tự hành cũng đã có những phát triển tích cực với sự dẫn đầu của những công ty dẫn đầu như Tập đoàn Phenikaa và mới đây là VinFast. Không chỉ vậy, các nhà nghiên cứu ở trong nước cũng đang rất tích cực tham gia vào phát triển công nghệ này. Bằng chứng là hàng năm không ít các cuộc thi nhằm kích thích tư duy sáng tạo dành cho học sinh, sinh viên được tổ chức. Đây cũng chính là môi trường để công nghệ xe tự hành được phổ biến rộng rãi, đồng thời cũng là nơi để những giải pháp mới được ứng dụng và phát triển, từ đó công nghệ xe tự hành ngày càng hoàn thiện và phát triển hơn. Nhờ vậy, có rất nhiều phương pháp đã được đưa ra nhằm giải quyết các vấn đề về nhận diện làn đường và biển báo cũng như nhiều thử thách khác trong bài toán
1

này. Để hệ thống có thể giải quyết được hầu hết các thử thách, thông thường các nhà nghiên cứu sẽ kết hợp nhiều mô hình lại với nhau, mỗi mô hình sẽ giải quyết một thử thách hay nhiều hơn. Đối với các hệ thống được kết hợp từ nhiều mô hình nhỏ như vậy, nhiều yếu tố cần được quan tâm đặc biệt là tốc độ và độ chính xác của hệ thống. Tuy nhiên, tồn đọng lớn nhất của mô hình có dạng trên là độ trễ tăng kéo theo độ chính xác giảm xuống.
1.2.2. Tình hình nghiên cứu ngoài nước
Trong lĩnh vực xe tự hành để có một hệ thống ổn định và hiệu quả thì phải giải quyết được các thách thức bao gồm: bóng các đối tượng xung quanh chiếu xuống làn đường gây nhiễu, các khúc cua và những vật cản trên đường. Thông thường, các phương pháp truyền thống giải quyết các vấn đề này bằng các thông tin của pixel trong ảnh như độ lớn gradient của pixel. Ví dụ, trong một bài báo của Yu-Kuen Tsai và các cộng sự [1] đã đề xuất phương pháp sử dụng toán tử Sobel để thu được độ lớn gradient cho mỗi pixel và loại bỏ cạnh có độ lớn gradient thấp bằng cách áp dụng ngưỡng, từ đó trích xuất được các cạnh và chia khung đầu vào thành nhiều vùng để sử dụng biến đổi Hough trong việc tính các đặc trưng của vạch kẻ đường, cuối cùng là sử dụng bộ điều khiển Fuzzy để lái. Tuy kết quả thu được là khá tốt khi áp dụng cho các xe golf tự hành trong các khuôn viên trường hay sân vận động, nhưng để áp dụng phương pháp trích xuất thủ công này cho các phương tiện tham gia giao thông trên các đường lộ nơi có nhiều sự biến đổi, và ảnh hưởng bởi nhiễu rất nhiều thì hiệu suất có thể bị ảnh hưởng đáng kể. Do đó, để cải thiện tính linh hoạt và tính khái quát của thông tin hay các đặc trưng, thì các nhà nghiên cứu hiện nay thường dựa vào các phương pháp học sâu có giám sát để trích xuất các đặc trưng cũng như phân loại đối tượng. Dựa vào đó, Vijay Badrinarayanan và các cộng sự [2] đã thiết kế ra mạng SegNet sử dụng kiến trúc mã hóa - giải mã để phân đoạn hình ảnh, phân loại từng pixel để xác định các vật thể có trong ảnh, phương pháp này được áp dụng cho việc phát hiện làn đường di chuyển, ngoài ra còn được dùng để hiện nhiều đối tượng khác. Mặc dù, phương pháp phân đoạn hình ảnh này mang lại kết quả rất tốt, độ chính xác cao, nhưng lại mang lại vấn đề về tốc độ xử lý khi thực thi trên các phần cứng nhất, điều đó dẫn đến vấn đề về xử lý thời gian thực cho mô hình này. Một vấn đề nữa phát sinh khi ứng dụng phương pháp này cho xe tự hành di chuyển ngoài thực tế đó chính là nhận diện biển báo, vì phương pháp này cho ta biết được vị trí cũng như phân
2

biệt được các vật thể khác nhau nhưng không thể cho ta biết biển báo thể hiện điều gì, chính vì vậy ta cần thêm vào hệ thống một mạng nhận diện biển báo tốt, nhưng điều này cũng đồng nghĩa với việc hệ thống lại càng phức tạp hơn.
1.3. Mục tiêu đề tài
- Thiết kế mô hình học đa tác vụ cho bài toán xe tự hành. Bằng cách xử lý đồng thời các tác vụ phân đoạn làn đường, nhận diện biển báo, vật cản, và nhận dạng bối cảnh, phương pháp này có thể cải thiện tương đối về độ trễ so với các phương pháp trước, cũng như tiết kiệm tài nguyên hệ thống. Và được đánh giá qua ba giai đoạn: mô phỏng, xe mô hình, Renault Twizy.
- Xây dựng hệ thống phát hiện vật cản. Sử dụng LIDAR LMS511-PRO thông qua chuẩn giao tiếp RS-232 với Jetson Nano.
- Thiết kế hệ thống thông tin (CANBUS). Sử dụng Arduino và module MCP-2515 đọc và giải mã data
- Thiết kế giao diện thao tác với người dùng. Bằng cách sử dụng Flask để tạo API, lập trình HTML và CSS để tạo giao diện tương tác với người dùng gồm các chức năng (Mở Camera, Dừng Camera, Prediction)
- Hệ thống có thể chạy thời gian thực
1.4. Phương pháp nghiên cứu
- Tìm hiểu và tạo map mô phỏng trên phần mềm Unity.
- 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.
- Phân tích và đánh giá kết quả thu được thông qua ba giai đoạn: mô phỏng, xe mô hình, xe Renault Twizy.
- Đọc Datasheet LIDAR LMS511-PRO để thu thập và giải mã dữ liệu.
3

- Sử dụng các nguồn tài liệu trên Internet và các giáo trình để tìm hiểu về mạng CAN.
- Áp dụng kiến thức đã học từ môn thực tập Điện II để giải mã dữ liệu mạng CAN.
- Thiết kế giao diện thao tác với người dùng bằng cách tạo API để nhiều người dùng có thể truy cập hệ thống.
1.5. Đối tượng nghiên cứu
- Ngôn ngữ Python, C/C++, HTML & CSS, framework Pytorch. - Ứng dụng mô phỏng Unity.
- Mạng phân đoạn, phát hiện và nhận diện vật thể, bối cảnh.
- Mạng học đa tác vụ.
- Thiết bị LIDAR LMS511-PRO.
- Đọc và giải mã mạng CAN trên xe điện Renault Twizy. - Thiết kế giao diện người dùng
- Nghiên cứu xử lý phân luồng cho các tác vụ.
1.6. Giới hạn đề tài
Vì đề tài tập trung phát triển giải thuật, thu thập thông tin, tốc độ xử lý nên chưa ứng dụng các giải thuật điều khiển và các đánh giá dựa trên việc tự chạy thử nghiệm trên các môi trường khác nhau (Unity, sân xe mô hình, Trường Đại học Sư phạm Kỹ thuật TPHCM).
1.7. Bố cục đề tài
Chương 1: TỔNG QUAN ĐỀ TÀI
Chương 2: CƠ SỞ LÝ THUYẾT
Chương 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG Chương 4: KẾT QUẢ THỰC NGHIỆM
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
4

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1. Mô hình học sâu
Phần này sẽ giới thiệu về môi trường làm việc với các mô hình AI; Pytorch, đây là một framework được sử dụng khá phổ biến trong việc nghiên cứu các mô hình học sâu; các khái niệm về máy học, học sâu; giới thiệu về mạng tích chập; một số loại tích chập có thể thay thế tích chập truyền thống để làm nhẹ mô hình tăng tốc độ; giới thiệu về cách tăng cường dữ liệu khi huấn luyện; bài toán phát hiện và nhận diện vật thể ở đây chúng tui sử dụng mạng YOLOv7 cho bài toán này do đó sẽ giới thiệu về mạng YOLOv7 và ý tưởng mà tác giả thiết kế mạng này; giới thiệu về bài toán phân đoạn làn đường, nhận dạng bối cảnh và cuối cùng là hướng tiếp cận của phương pháp học đa tác vụ.
2.1.1. Môi trường
2.1.1.1. Hệ điều hành UBUNTU
Ubuntu là hệ điều hành máy tính dựa trên Debian GNU/Linux, một bản phân phối Linux thông dụng. Tên của nó bắt nguồn từ "ubuntu" trong tiếng Zulu, có nghĩa là "tình người". Triết lý của ubuntu: "tui được là chính mình nhờ có những người xung quanh" - một khía cạnh tích cực của cộng đồng. Mục đích của Ubuntu là cung cấp một hệ điều hành ổn định, cập nhật cho người dùng thường, tập trung vào sự tiện dụng và dễ dàng cài đặt. Ubuntu được đánh xếp hạng là bản phân phối Linux thông dụng nhất cho máy tính để bàn, chiếm khoảng 30% số bản Linux được cài đặt trên máy tính để bàn năm 2007.
2.1.1.2. Ngôn ngữ PYTHON
Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu. Với cú pháp cực kì đơn giản và thanh lịch, Python là lựa chọn hoàn hảo cho những ai lần đầu tiên học lập trình. Tuy nhiên, đây cũng là ngôn ngữ nổi tiếng về sự chặt chẽ,
5

nhanh, mạnh, và có mặt ở mọi hệ điều hành. Được sử dụng trong lập trình từ những game đơn giản nhất, cho đến những thuật toán tìm kiếm phức tạp nhất.
Code của Python dễ đọc, ngắn gọn (ngắn hơn code Java 3-5 lần, và C++ 5-10 lần). Python là ngôn ngữ hướng đối tượng được ứng dụng rất đa dạng. Vì vậy, những hiểu biết về cấu trúc và kiến trúc Python sẽ là nền tảng tham chiếu rất tốt khi bạn muốn chuyển sang học các ngôn ngữ lập trình khác. Cùng với Ruby, Python là ngôn ngữ lập trình giúp developer nhận mức lương cao thứ nhì (khoảng $107,000/năm) tại Mỹ. Thiết thực trong thiết kế web/ứng dụng web: Django, web framework được viết bởi Python sẽ khiến lập trình web trở nên đơn giản hơn, giúp code của bạn nhanh và ổn định hơn nhiều, đồng thời tiết kiệm hàng tấn thời gian lập trình.
2.1.1.3. CUDA
CUDA là từ viết tắt của Compute Unified Device Architecture - Kiến trúc hợp nhất tính toán của các thiết bị điện tử được phát triển độc quyền bởi hãng công nghệ NVIDIA. Còn về CUDA core hay nhân CUDA thì chúng ta có thể hiểu đây là một nhân xử lý trong GPU của card đồ họa - đơn vị chịu trách nhiệm tính toán các thông tin, dữ liệu đồ họa cần được kết xuất. Nhân CUDA tích hợp trong GPU của card đồ họa rời, càng nhiều nhân CUDA thì khả năng tính toán đồng thời nhiều thông tin càng nhanh và chính xác.
CUDA Core đóng vai trò quan trọng trong quá trình tính toán, xử lý thông tin nhận được của GPU. Chúng là một trong những thành phần quyết định đến chất lượng hình ảnh hiển thị khi người dùng chơi game; file đồ họa được render sau khi thiết kế có độ tỉ mỉ, chính xác ra sao; hay thậm chí là thời gian nghiên cứu một chủ đề khoa học nhanh hay chậm. Nhân CUDA vừa qua đã và đang đóng góp rất nhiều trong công cuộc nghiên cứu Vacxin chống virus Corona.
2.1.1.4. CUDNN
cuDNN – NVIDIA CUDA Deep Neural Network: Là một thư viện nền tảng cho các deep neural network được tăng tốc bởi GPU. cuDNN cung cấp các thiết lập
6

được tinh chỉnh cho các thủ tục được chuẩn hóa như forward and backward convolution, pooling, normalization và các lớp kích hoạt.
2.1.1.5. Phần mềm mô phỏng UNITY
Phần mềm mô phỏng Unity bao gồm các kiến thức về cách sử dụng các công nghệ mô phỏng để tạo ra các hình ảnh và trải nghiệm trực quan cho người dùng. Mô phỏng trong Unity bao gồm các khái niệm như mô phỏng động lực, mô phỏng vật lý, mô phỏng ánh sáng và mô phỏng hệ thống tăng tốc.
Cụ thể mô phỏng động lực giúp tạo ra các hiệu ứng động như chuyển động, lật, xoay và va đập cho các đối tượng trong trò chơi hay ứng dụng của. Mô phỏng vật lý trong Unity giúp tạo ra các hiệu ứng vật lý như trọng lực, va chạm, giảm sức chảy và các hiệu ứng hấp dẫn khác. Mô phỏng ánh sáng trong Unity giúp tạo ra các hiệu ứng ánh sáng như sáng, bóng và các hiệu ứng chiếu sáng một cách chính xác và trực quan.
Unity có thể sử dụng trong các ứng dụng của AI bằng cách kết hợp các thư viện AI và các thuật toán với nền tảng của Unity. Một số cách sử dụng Unity trong AI bao gồm:
1. Tạo mô hình trạng thái cho các agent trong một môi trường game.
2. Sử dụng Unity để tạo môi trường học cho các mạng neural hay các
thuật toán khác.
3. Sử dụng Unity để tạo môi trường thực tế ảo để đào tạo các mạng neural hay các thuật toán khác.
4. Tích hợp các thuật toán AI vào trò chơi để tạo ra các đối tượng hoạt động tự nhiên hơn hay các trận chiến AI độc đáo.
5. Sử dụng Unity để tạo ra các ứng dụng VR/AR với tích hợp AI.
Tổng quan, Unity là một công cụ mạnh mẽ cho việc tạo ra các ứng dụng AI với chức năng đồ họa 3D và tạo môi trường học thực tế ảo.
2.1.2. PYTORCH
Pytorch là framework được phát triển bởi Facebook. Đây là một ông lớn về công nghệ đầu tư rất nhiều nguồn lực cho việc phát triển Trí tuệ nhân tạo. Pytorch được phát triển
7

với giấy phép mã nguồn mở do đó nó tạo được cho mình một cộng đồng rất lớn. Một cộng đồng lớn đồng nghĩa với nhiều tài nguyên để học và các vấn đề của bạn có thể đã có ai đó giải quyết và chia sẻ với cộng đồng. Pytorch cùng với Tensorflow và Keras là một trong những framework phổ biến được sử dụng trong các bài toán về Deep Learning hiện nay. Đặc biệt, trong các lĩnh vực nghiên cứu, hầu như các tác giả đều sử dụng Pytorch để triển khai bài toán của mình. Pytorch cho thấy lợi thế của nó trong lĩnh vực nghiên cứu bởi việc rất dễ dàng để bạn debug và visuallize, ngoài ra nó theo cơ chế Dynamic Graphs cho phép giảm thời gian huấn luyện mô hình. Pytorch sử dụng kiểu dử liệu chủ yếu là Tensor. Tensor là một mảng n-chiều với các phần tử có cùng loại dữ liệu, đặc biệt là Tensor có thể tính toán trên GPUs (điều này làm việc tính toán trở nên nhanh hơn). Hình 2.1 mô tả một 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.
Hình 2.1. Workflow của Pytorch [3]
Các module quan trọng và cơ bản chúng tui sẽ đề cập trong bài báo cáo này là torch.utils, torch.nn, torch.optim, torch.autograd.
Trong một bài toán học sâu, để giải quyết ta cần biết đầu vào đầu ra của mô hình do đó việc tạo và xử lý data đầu vào là bước đầu tiên của bài toán và mô-đun torch.utils.data của Pytorch hỗ trợ việc này. Mặc khác ta còn có thể sử dụng torch.nn.DataParallel và torch.distribution khi muốn huấn luyện bằng nhiều GPUS. Sau khi đã tạo và xử lý đầu vào thì việc tiếp theo là tạo ra mô hình học sâu. Pytorch hỗ trợ mô đun torch.nn để làm việc này. Nó cung cấp các lớp Neural Network phổ biến như ‘fully connected”, “convolution”, ngoài ra còn có các hàm activation và hàm mất
8

mát,... Và có nhiều hàm mới hay kiến trúc mới thì nó sẽ phụ thuộc vào phiên bản Pytorch đang sử dụng.
Khi đã hoàn thành kiến trúc mạng và đã có dữ liệu, thì chúng ta tiến hành huấn luyện mô hình để có thể học được dữ liệu. Lúc này chúng ta sẽ sử dụng mô-đun torch.optim để cập nhật trọng số. Ngoài ra chúng ta có thể sử dụng mô đun torch.autograd để tự động tính gradient. Sau khi mô hình được huấn luyện, nó có thể sử dụng để đoán các ngõ ra khi có ngõ vào. Ngoài ra chúng ta cũng có thể chuyển đổi từ framework Pytorch sang các framework khác nếu cần thiết.
2.1.3. Máy học (Machine Learning) [4]
Máy học là một nhánh của trí tuệ nhân tạo và khoa học máy tính, máy học tập trung vào việc sử dụng dữ liệu và thuật toán để có thể bắt chước cách con người học và dần dần cải thiện độ chính xác của nó. Các thuật toán của máy học thường được tạo ra bằng cách sử dụng các khuôn khổ giúp tăng độ phát triển sản phầm như Tensorflow hay Pytorch.
2.1.4. Học sâu (Deep Learning) [5]
Học sâu là một nhánh của máy học, giúp cho máy tính tự huấn luyện để thực hiện các tác vụ phức tạp. Học sâu hoạt động giống với các mạng lưới thần kinh sâu, việc thiết kế này dựa trên cách con người suy nghĩ và học hỏi. Các phương pháp về thị giác máy tính trong nhận diện vật thể chỉ hiệu quả đối với các đặc trưng được chỉ định và biết trước, nhưng trong thực tế các đặc trưng này bị ảnh hưởng của rất nhiều yếu tố khác nhau như là góc nhìn, ánh sáng, che khuất , ... Học sâu ra đời đã khắc phục những hạn chế này và nó đã được ứng dụng mạnh mẽ trong thị giác máy tính.
2.1.5. Mạng Nơron tích chập (Convolutional Neural Network)
Convolution Neural Network (CNN) [6] là một trong các loại mô hình nổi tiếng của học sâu, dùng để xử lý các loại dữ liệu dạng lưới, chẳng hạn như hình ảnh. Một mô hình mạng nơ ron tích chập thường sẽ có các thành phần bao gồm hình ảnh đầu vào sẽ đi qua các lớp tích chập (Convolution Layer) và các lớp gộp (Pooling Layer) tiếp theo đến các lớp kết nối đầy đủ (Fully Connected Layer) rồi đến kết quả đoán của mô hình. Hai lớp đầu tiên, convolution và lớp pooling dùng để trích xuất đặc trưng từ đầu vào, và lớp
9

thứ ba fully connected layers sẽ liên kết các lớp đặc trưng này thành đầu ra. Lý do mạng nơ ron tích chập là do vấn đề của mạng nơ ron trước đây, trích đặc trưng dựa trên từng pixel. Ví dụ khi đầu vào là một ảnh máy có kích thước là 32x32 được biểu diễn ở dạng tensor là 32x32x3. Để hiển thị hết nội dung của bức ảnh thì cần truyền vào input layer tất cả pixel (32*32*3=3072). Nghĩa là input layer sẽ có 3072 notes. Giả sử số lượng note ở trong hidden layer đầu tiên là 1000. Thì lúc này số lượng trọng số (weight W) giữa input và hidden là 3072*1000 = 3072000 và số lượng bias là 1000. Đây mới chỉ là layer đầu tiên và trong một mô hình còn nhiều layer nữa và nếu kích thước ảnh tăng thì số lượng tham số tăng cực kỳ nhanh. Bên cạnh đó, ta có thể thấy rằng các pixel ở cạnh nhau thường liên kết với nhau hơn là những pixel ở xa. Do đó, chúng ta sẽ sử dụng tích chập nhằm giải quyết vấn đề về số lượng tham số lớn nhưng vẫn trích xuất được đặc trưng của ảnh.
Trong hình 2.2 thể hiện cấu trúc cơ bản của một mạng CNN, ảnh đầu vào sẽ được đi qua nhiều lớp tích chập với các bộ lọc gọi là kernel, sau đó đến các lớp pooling, rồi tiếp theo được kết nối đầy đủ (fully connected layers) và cuối cùng sẽ đến các hàm softmax để phân loại đối tượng dựa vào xác suất từ 0 đến 1.
Hình 2.2. Kiến trúc cơ bản của một Convolution Neural Network [7]
2.1.5.1. Lớp tích chập (Convolution Layer)
Bắt đầu là tích chập có nhiệm vụ trích xuất các đặt trưng từ hình ảnh, tham số này bao gồm nhiều bộ lọc có thể học được. Các bộ lọc này thường là 3x3, 5x5, ... có độ sâu bằng độ sâu của đầu vào. Bằng cách trượt các bộ lọc theo chiều ngang và dọc trên ảnh, chúng ta thu được một bản đồ đặc trưng chứa các đặc trưng trích xuất hình ảnh đầu vào. Một convolution layer được mô tả như hình 2.3.
10

Hình 2.3. Minh họa Convolution Layer [8] Quá trình trượt các bộ lọc có các giá trị cần lưu ý bao gồm:
- Padding: Thuộc tính padding khi sử dụng sẽ thêm chèn vào biên của hình ảnh chiều rộng hay chiều cao tùy vào hướng sử dụng padding. Padding thường được sử dụng khi kernel không phù hợp với ảnh đầu vào và ta sẽ chỉnh sửa lại ảnh đầu vào, hay có thể dùng để giữ nguyên kích thước đầu vào. Ví dụ padding như ở hình 2.4.
Hình 2.4. Padding [9]
- Stride: được minh họa như ở hình 2.5, được hiểu là bước dịch chuyển của bộ lọc theo pixel. Nếu stride bằng 1 thì bộ lọc mỗi lần dịch sẽ dịch qua 1 pixel tại mội thời điểm và nếu stride là 2 thì bộ lọc sẽ di chuyển 2 pixel một lúc. Giá trị stride càng lớn thì kết quả càng nhỏ và ngược lại.
11

Hình 2.5. Stride [10]
Với mỗi kernel khác nhau chúng sẽ được học các đặc trưng khác nhau, do đó ta có thể sử dụng nhiều loại kernel để có thể học được nhiều loại đặc trưng của đầu vào. Vì mỗi kernel cho ra ngõ ra là một ma trận nên k kernel sẽ cho ra k ma trận đầu ra. Ta kết hợp k ma trận này lại thành 1 tensor 3 chiều có chiều sâu k. Và đầu ra này sẽ qua hàm kích hoạt trước khi vào lớp tích chập tiếp theo.
2.1.5.2. Lớp gộp (Pooling Layer)
Pooling layer thường được dùng giữa các lớp tích chập, để giảm kích thước dữ liệu nhưng vẫn giữ được các đặc trưng quan trọng. Có nghĩa là, sau khi qua các lớp này đặc trưng sẽ được loại bỏ các thông tin không cần thiết. Trong quá trình này thì padding và stride được sử dụng như phép tính convolution trên ảnh. Thông thường có hai dạng là Max Pooling và Average Pooling. Trong đó, Max Pooling chọn giá trị lớn nhất là hàm đầu ra, còn Average Pooling là lấy trung bình cộng. Trong 2.6 là ví dụ về 2 loại pooling với bộ lọc có kích thước 2x2 và stride = 2.
Hình 2.6. Max pooling và Average Pooling [11]
12

2.1.5.3. Lớp kết nối đầy đủ ( Fully Connected Layer)
Sau khi ảnh đã được truyền qua nhiều lớp tích chập và lớp gộp thì lúc này đặc trưng đã học được tương đối của ảnh đầu vào, và lúc này đầu ra sẽ được làm phẳng thành vector và đưa vào một lớp kết nối đầy đủ như mạng nơ-ron. Cuối cùng dùng softmax hay sigmoid để phân loại đầu ra. Hình 2.7 mô tả lớp kết nối đầy đủ cơ bản.
Hình 2.7. Minh họa về Fully Connected Layer [12]
2.1.6. Hàm kích hoạt (Activation Function)
Hàm kích hoạt (activation function) là những hàm phi tuyến được áp dụng vào đầu ra của các nơ-ron trong tầng ẩn của một mô hình mạng ( có nhiệm vụ là chuẩn hoá output của neural) và được sử dụng làm input data cho tầng tiếp theo.
Trong đó, hàm kích hoạt sẽ bao gồm các hàm cơ bản như: Sigmoid, Softmax, Relu, Leaky Relu.
2.1.7. Các loại tích chập thay thế tích chập truyền thống
Như được giới thiệu ở trên, lớp tích chập có chức năng trích xuất đặc trưng. Để bài toán đạt được độ chính xác cao thì các mô hình cần có lượng tham số lớn do đó yêu cầu khả năng tính toán cao chính vì vậy các thiết bị nhỏ, bị giới hạn bởi khả năng tính toán sẽ gặp nhiều khó khăn. Từ đó có một số loại tích chập có thể thay thể tích chập truyền thống được ra đời để giảm nhiều thông số như là pointwise convolution, grouped convolution, depthwise separable convolution.
2.1.7.1. Pointwise Convolution [13]
Vấn đề thường gặp phải khi xây dựng một mô hình học sâu là số lượng channel sẽ tăng theo chiều sâu của mạng, điều đó dẫn tới số lượng tham số cũng tăng theo dẫn đến tình trạng học quá mức. Do đó chúng ta có thể sử dụng một số phương pháp

3.1.4. Thử nghiệm trên xe điện RENAULT TWIZY
Cùng với thành công khi thiết kế mô hình đa tác vụ và triển khai trên Jetson Nano, chúng tui quyết định tiếp tục triển khai mô hình trên môi trường thực tế trên xe Renault Twizy tại trường Đại học Sư phạm Kỹ thuật TPHCM (hình 3.34).
Hình 3.34. Model xe điện thử nghiệm Renault Twizy
Nhưng trước hết chúng tui thử nghiệm trên trước trên các video thực tế và nhận thấy vẫn còn vấn đề liên quan đến tính đạo đức AI, nhất là với hệ thống Autopilot của Tesla. Năm 2018, hệ thống đã bị chỉ trích vì không nhận dạng và điều khiển được các đối tượng giao thông khác nhau, đặc biệt là xe máy, xe tải và người đi bộ. Nó cũng chưa tốt trong việc xử lý các tình huống khó khăn như trời tối, mưa, tuyết và không có dấu vết
Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Thiết kế hệ thống cơ điện tử Thang máy dẫn động thanh răng Khoa học kỹ thuật 0
D Nghiên cứu, thiết kế và chế tạo mô hình hệ thống truyền nhận dữ liệu sử dụng mạng Can trên Toyota Camry 2007 Khoa học kỹ thuật 0
D Thiết kế, chế tạo mô hình giả lập hệ thống điều khiển ABS dùng trong giảng dạy Khoa học kỹ thuật 0
D Thiết kế, thực hiện mô hình hệ thống điện thân xe điều khiển bằng BCM phục vụ giảng dạy Khoa học kỹ thuật 0
D Thiết kế, xây dựng mô hình hệ thống gạt mưa tự động trên Ô tô Khoa học kỹ thuật 0
D Nghiên cứu, thiết kế và chế tạo Module trợ lý ảo hệ thống điều hòa ô tô Toyota Vios 2007 Khoa học kỹ thuật 0
D thiết kế, lắp đặt và đánh giá hiệu quả sử dụng hệ thống điện năng lượng mặt trời hịa lưới áp mái Khoa học kỹ thuật 0
D Nghiên cứu và thiết kế mô hình học tập hệ thống phun xăng đánh lửa và chẩn đoán trên ô tô Khoa học kỹ thuật 0
D THIẾT KẾ hệ thống tưới nước tự động sử dụng pic 18f452 Công nghệ thông tin 0
D Thiết kế hệ thống hấp thụ loại tháp đệm, tháp làm việc ở điều kiện áp suất 5 atm và nhiệt độ 30 độ C Khoa học Tự nhiên 0

Các chủ đề có liên quan khác

Top