Tài liệu: Đề tài nckh thiết kế hệ thống đa tác vụ cho xe tự hành

Chuyên khảo phân tích Đề tài nckh thiết kế hệ thống đa tác vụ cho xe tự hành, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Chuyên ngành

Kỹ Thuật Máy Tính

Người đăng

Ẩn danh

Thể loại

Báo cáo tổng kết đề tài nghiên cứu khoa học

2022

55
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan về Đề Tài Nghiên Cứu Khoa Học Thiết Kế Hệ Thống Đa Tác Vụ

Đề tài nghiên cứu khoa học về thiết kế hệ thống học đa tác vụ (multi-task learning) cho xe tự hành là một hướng nghiên cứu tiên tiến trong lĩnh vực trí tuệ nhân tạo và xử lý ảnh. Tài liệu này được thực hiện tại Trường Đại học Sư phạm Kỹ thuật TP.HCM, dưới sự hướng dẫn của TS. Trần Vũ Hoàng. Hệ thống đa tác vụ có khả năng xử lý đồng thời nhiều công việc khác nhau như nhận diện biển báo, phát hiện vật cản, và phân đoạn làn đường. Thay vì sử dụng các thuật toán xử lý ảnh truyền thống hay hệ thống tuần tự, phương pháp này tối ưu hóa hiệu suất và tiết kiệm tài nguyên hệ thống. Điều này đặc biệt quan trọng cho các thiết bị nhúng sử dụng trên xe tự hành, nơi yêu cầu tốc độ xử lý cao và mức tiêu thụ năng lượng thấp.

1.1. Lý Do Chọn Đề Tài và Tính Mới Của Nghiên Cứu

Đề tài nghiên cứu này được lựa chọn dựa trên nhu cầu cấp thiết của công nghệ xe tự hành hiện đại. Tính mới và sáng tạo của hệ thống nằm ở khả năng thực hiện đa tác vụ đồng thời, giảm độ trễ xử lý và tối ưu hóa tài nguyên máy tính. Hệ thống đa tác vụ này có thể được áp dụng cho các thiết bị nhúng có công suất tính toán hạn chế, mở ra những cơ hội ứng dụng rộng rãi trong ngành công nghiệp ô tô tự động hóa.

1.2. Mục Tiêu Chính của Đề Tài

Mục tiêu chính của đề tài là thiết kế và xây dựng phương pháp mạng đa tác vụ hiệu quả cho bài toán xe tự hành. Bằng cách xử lý đồng thời ba tác vụ quan trọng: nhận diện biển báo, phát hiện phương tiện và vật cản, cùng phân đoạn làn đường, nghiên cứu này hướng tới cải thiện độ trễ so với các phương pháp trước đây, đồng thời giảm yêu cầu về tài nguyên hệ thống.

II. Cơ Sở Lý Thuyết và Công Nghệ Sử Dụng

Cơ sở lý thuyết của đề tài dựa trên các công nghệ tiên tiến trong lĩnh vực mạng nơ ron tích chập (Convolutional Neural Network - CNN)học đa tác vụ (Multi-task Learning). Tài liệu chi tiết các thành phần quan trọng của kiến trúc mạng nơ ron bao gồm lớp tích chập, lớp kết nối đầy đủ, và các hàm kích hoạt. Nghiên cứu này áp dụng các kỹ thuật tiên tiến như Depthwise Separable Convolution, Generalized Focal Loss, và tăng cường dữ liệu (Data Augmentation) để cải thiện hiệu suất mô hình. Đặc biệt, tài liệu tập trung vào mạng Nanodet và mô hình ShuffleNet, những kiến trúc nhẹ và hiệu quả cho các thiết bị có tài nguyên hạn chế.

2.1. Mạng Nơ Ron Tích Chập và Các Lớp Chính

Mạng CNN bao gồm các lớp tích chập, lớp pooling, và lớp kết nối đầy đủ. Lớp tích chập thực hiện trích xuất đặc trưng từ hình ảnh thông qua các bộ lọc. Lớp Fully Connected kết nối tất cả các neuron và tạo ra kết quả cuối cùng. Các hàm kích hoạt như ReLU, Sigmoid giúp mô hình học các mối quan hệ phi tuyến trong dữ liệu.

2.2. Các Phương Pháp Tối Ưu và Phát Hiện Vật Thể

Bài toán phát hiện vật thể (Object Detection) sử dụng Generalized Focal Loss để xử lý các đối tượng khó phân loại. Mạng Nanodet cung cấp một kiến trúc nhẹ nhưng mạnh mẽ. Phân đoạn hình ảnh (Image Segmentation) xác định chính xác ranh giới của các đối tượng. Các kỹ thuật này được kết hợp trong phương pháp học đa tác vụ để tối ưu hóa hiệu suất tổng thể.

III. Thiết Kế Hệ Thống và Kiến Trúc Mạng

Thiết kế hệ thống đa tác vụ dựa trên kiến trúc ShuffleNetV2 làm backbone chính, được kết hợp với Feature Pyramid Network (FPN) để xử lý đa cấp độ. Hệ thống được chia thành ba nhánh chính: nhận diện biển báo và vật cản, phân đoạn làn đường, và xử lý dữ liệu từ các cảm biến. Light Head được sử dụng để giảm độ phức tạp tính toán. Kiến trúc này cho phép xử lý đồng thời các tác vụ khác nhau mà không cần chạy từng mô hình riêng biệt. Tài liệu chi tiết về cấu trúc Block A, Depth Wise Block, và các thành phần khác của mạng.

3.1. Kiến Trúc ShuffleNetV2 và Backbone

ShuffleNetV2 là một kiến trúc nhẹ được thiết kế đặc biệt cho các thiết bị nhúng. Nó sử dụng Channel ShuffleGrouped Convolution để giảm số lượng tham số mô hình. Backbone này được so sánh với các scale factor khác nhau để tìm cân bằng tối ưu giữa độ chính xác và tốc độ xử lý. Kiến trúc này giúp đạt được hiệu suất cao trên các thiết bị có công suất tính toán hạn chế.

3.2. Hệ Thống Ba Nhánh Xử Lý và FPN

Hệ thống được thiết kế với ba nhánh xử lý song song: phát hiện biển báo, nhận diện vật cản, và phân đoạn làn đường. FPN cung cấp các đặc trưng ở nhiều mức độ phân giải khác nhau. Light Head tối ưu hóa quá trình xử lý. Cấu trúc này cho phép chia sẻ các đặc trưng chung giữa các tác vụ, tăng hiệu quả học tập và giảm yêu cầu tài nguyên.

IV. Kết Quả Thực Nghiệm và Ứng Dụng Thực Tế

Kết quả thực nghiệm của đề tài được đánh giá trên các tập dữ liệu chuẩn với các chỉ số Precision, Recall, AP, mAP. Hệ thống đa tác vụ cho thấy hiệu suất vượt trội so với các mô hình học từng tác vụ, đặc biệt là trong việc giảm độ trễ xử lý và tiết kiệm tài nguyên. Mô hình được kiểm tra trong các điều kiện thách thức như thời tiết xấu, ánh sáng yếu, để đảm bảo độ tin cậy. Tài liệu chi tiết các so sánh giữa mạng của nghiên cứu với các kiến trúc hiện đại khác như YOLO, FCOS, Mask R-CNN. Các thực nghiệm trên các môi trường thách thức chứng minh tính ứng dụng cao của phương pháp.

4.1. Các Chỉ Số Đánh Giá và So Sánh Hiệu Suất

Đánh giá kết quả sử dụng các chỉ số tiêu chuẩn: Average Precision (AP), Mean Average Precision (mAP), Precision, và Recall. Mô hình đa tác vụ được so sánh chi tiết với các mạng hiện đại khác về phát hiện vật thể, nhận diện biển báo, và phân đoạn làn đường. Kết quả cho thấy hệ thống đa tác vụ đạt được mAP cao hơn đồng thời giảm độ trễ xử lý khoảng 20-30% so với các phương pháp tuần tự truyền thống.

4.2. Ứng Dụng Thực Tế và Hướng Phát Triển

Hệ thống đã được kiểm chứng trên các thiết bị nhúng thực tế dùng cho xe tự hành. Phương pháp này có thể chạy trên GPU hoặc CPU với hiệu suất đủ cho các ứng dụng real-time (30+ FPS). Hướng phát triển trong tương lai bao gồm tối ưu hóa thêm, tích hợp thêm các tác vụ khác, và thử nghiệm trên các nền tảng khác nhau.

28/12/2025

Trích đoạn nội dung tài liệu

Chương 1 CƠ SỞ LÝ THUYẾT Chương này sẽ giới thiệu về 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 tôi sử dụng mạng Nanodet cho bài toán này do đó sẽ giới thiệu về mạng nanodet 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 và cuối cùng là hướng tiếp cận của phương pháp học đa tác vụ.1 Pytorch Pytorch được định nghĩa là một thư viện máy học mã nguồn mở cho Python. Nhờ việc sử dụng mã nguồn mở nên đã tạo ra một cộng đồng lớn về framework này. Pytorch khá gần gũi với Python do đó rất dễ sử dụng, dễ sử lý khi bị lỗi và rất dễ chạy kể cả khi người lập trình chỉ cần biết một tí kiến thức lập trình vẫn có thể sử dụng được. Cấu trúc dữ liệu cốt lỗi được sử dụng trong Pytorch là Tensor.

Tương tự như Numpy, Tensor là một mảng n-chiều với các phần tử có cùng kiểu 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).1 mô tả một quy trình cơ bản của Pytorch gồm các module quan trọng được liên kết với mỗi bước.1 Workflow của Pytorch [3] 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. Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 7/55 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. Pytorch cung cấp mô- đun torch.data hỗ trợ việc này. Trong đó hai class quan trọng trong mô-đun này là Dataset và Dataloader.

Dataset được sử dụng trên kiểu Tensor và sử dụng chủ yếu cho các bộ dữ liệu tùy chỉnh, Dataloader được sử dụng khi có một tập dữ liệu lớn và bạn muốn tải dữ liệu từ Dataset ở chế độ nền và chờ sử dụng trong quá trình huấn luyện. Và việc làm đa dạng dữ liệu thường được sử dụng trong module này. Ngoài ra ta còn có thể sử dụng torch.DataParallel và torch.distribution trong trường hợp có thể sử dụng song song nhiều máy tính hoặc 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ớn 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 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 data. Lúc này ta sẽ cần các kỹ thuật cập nhật trọng số và độ lệch các kỹ thuật này được sử dụng trong mô đun torch.

Ngoài ra để tính gradient tự động, chúng ta sử dụng mô đun torch. Sau khi mô hình được huấn luyện, nó có thể sử dụng để dự đ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 Máy học (Machine Learning) [4] Một trong những khác biệt chính giữa con người và máy tính là con người có thể học hỏi từ những kinh nghiệm quá khứ, nhưng với máy tính hoặc máy móc cần phải được thực hiện theo một quy trình có sẵn. Điều đó có nghĩa là nếu chúng ta muốn máy làm gì đó, chúng ta phải cung cấp cho nó những quy trình và các hướng dẫn chi tiết, từng bước về chính xác các việc cần làm.

Vì vậy con người đã viết lên một kịch bản và lập trình để máy tính làm theo các hướng dẫn và có khả năng học hỏi. Đó là cách mà máy học ra đời. Học máy là một ứng dụng của trí tuệ nhân tạo cung cấp cho các hệ thống khả năng tự động học hỏi và cải thiện từ kinh nghiệm mà không cần lập trình rõ ràng. Học máy tập trung vào việc phát triển các chương trình máy tính có thể truy cập dữ liệu và sử dụng nó để tự học.

Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 8/55 1.3 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 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ốt khác nhau nhu 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.4 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ô hình mạng nơ ron tích chập thường có dạng: Hình ảnh đầu vào → Lớp tích chập (Convolution Layer) + Lớp gộp (Pooling Layer) → Lớp kết nối đầy đủ (Fully Connected Layer) → Đầu ra.

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 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à 64x64 được biểu diễn ở dạng tensor là 64x64x3. Nên để 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 (64*64*3=12288).

Nghĩa là input layer sẽ có 12288 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à 12288*1000 = 12288000 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.

Và bên cạnh đó, ta có thể thấy rằng cá pixel ở cạnh nhau thường liên kết với nhau hơn là những pixel ở xa. Vậy nên ta sử dụng cửa sổ tích chập nhằm giải quyết vấn đề về số lượng tham số lớn mà vẫn trích xuất được đặc trưng của ảnh.2 thể hiện cấu trúc cơ bản của một mạng CNN, ảnh đầu vào sẽ qua một loạt các lớp tích chập với các bộ lọc gọi là kernel, sau đó đến 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. Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 9/55 Hình 1.2 Kiến trúc cơ bản của một Convolution Neural Network [7] 1.1 Lớp tích chập (Convolution Layer) Bắt đầu là tích tích chập có nhiệm vụ trích xuất các đặt tính từ hình ảnh, tham số này bao gồm một tập hợp các 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 feature map 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 1.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 hoặc chiều cao tùy vào hướng sử dụng padding. Và 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, hoặc có thể dùng để giữ nguyên kích thước đầu vào. Ví dụ padding như ở hình 1.

Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 10/55 Hình 1.4 Padding [9]  Stride: được minh họa như ở hình 1.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.5 Stride [10] Với mỗi kernel khác nhau sẽ học đượ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à 1 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 Lớp gộp (Pooling Layer) Pooling layer thường được dùng giữa các convolutional layer, để giảm kích thước dữ liệu nhưng vẫn giữ được các thuộc tính 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ó Số hiệu: HD/QT-PKHCN-QHQT-NCKHSV/00 Lần soát xét: 00 Ngày hiệu lực: 01/4/2020 Trang: 11/55 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.3 là ví dụ về 2 loại pooling với bộ lọc có kích thước 2x2 và stride = 2.6 Max pooling và Average Pooling [11] 1.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.7 mô tả lớp kết nối đầy đủ cơ bản.7 Minh họa về Fully Connected Layer [12] 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ