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

(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo

66 5 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Điều hướng xe tự hành dùng trí tuệ nhân tạo
Người hướng dẫn TS. Lê Mỹ Hà
Chuyên ngành Điện tử và Điều khiển tự động
Thể loại Luận văn thạc sĩ
Năm xuất bản 2019
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 66
Dung lượng 4,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Chương 1: TỔNG QUAN (12)
    • 1.1. Đặt vấn đề (12)
    • 1.2. Mục tiêu đề tài (13)
    • 1.3. Giới hạn đề tài (13)
    • 1.4. Nội dung đề tài (14)
  • Chương 2: CƠ SỞ LÝ THUYẾT CỦA XE TỰ HÀNH (15)
    • 2.1. Giới thiệu về xe tự hành (15)
    • 2.2. Tổng quan về trí tuệ nhân tạo (16)
      • 2.2.1. Trí tuệ nhân tạo (Artificial Intelligence- AI) (16)
      • 2.2.2. Machine Learning (18)
      • 2.2.3. Deep Learning (23)
    • 2.3. Convolutional Neural Network (CNN) (27)
    • 2.4. Bộ điều khiển PID (36)
  • Chương 3: THIẾT KẾ VÀ LỰA CHỌN THIẾT BỊ (38)
    • 3.1. Các thành phần phần cứng (38)
      • 3.1.1. Xe điều khiển Trophy Truck (38)
      • 3.1.2. Động cơ Brushed Motor RC-540PH (39)
      • 3.1.3. Động cơ RC Servo TowerPro MG946R (40)
      • 3.1.4. Waterproof Brushed ESC Controller WP-1040 (40)
      • 3.1.5. Raspberry Pi 3 Model B (41)
      • 3.1.6. Raspberry Pi Power Pack (42)
      • 3.1.7. Raspberry Pi Camera Module (42)
      • 3.1.8. Arduino Uno R3 (43)
      • 3.1.9. PWM/Servo Driver PCA9685 (44)
      • 3.1.10. Encoder Omron E6B2-CWZ6C 10P/R (45)
      • 3.1.11. Pin Lipo 2S-30C 3600mAh (45)
    • 3.2. Sơ đồ kết nối phần cứng (46)
    • 3.3. Cấu trúc phần cứng của mô hình xe tự hành (46)
  • Chương 4: GIẢI THUẬT ĐIỀU KHIỂN CỦA MÔ HÌNH XE TỰ HÀNH (49)
    • 4.1. Sơ đồ khối thu thập dữ liệu huấn luyện (49)
    • 4.2. Sơ đồ khối điều hướng mô hình xe tự hành (50)
    • 4.3. Cấu trúc mạng và tối ưu các thông số (51)
    • 4.4. Phần mềm và các thư viện sử dụng để lập trinhg (54)
      • 4.4.1. Giới thiệu thư viện Tensorflow (54)
      • 4.4.2. Giới thiệu thư viện Keras (54)
  • Chương 5: THỰC NGHIỆM (55)
    • 5.1. Môi trường thực nghiệm (55)
    • 5.2. Mô tả tập dữ liệu (56)
    • 5.3. Các phương pháp để tạo ra các nhiều dữ liệu khác nhau (57)
    • 5.4. Quá trình huấn luyện (57)
    • 5.5. Kết quả thực nghiệm ngoài trời (59)
  • Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (61)
    • 6.1. Kết luận (61)
    • 6.2. Hướng phát triển (62)
  • TÀI LIỆU THAM KHẢO (63)
  • PHỤ LỤC (65)

Nội dung

(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo(Luận văn thạc sĩ) Điều hướng xe tự hành dùng trí tuệ nhân tạo

TỔNG QUAN

Đặt vấn đề

Trong bối cảnh phát triển mạnh mẽ của khoa học công nghệ và giao thông vận tải, các phương tiện tự lái ngày càng phổ biến nhằm hỗ trợ người lái duy trì sức khỏe và giảm thiểu rủi ro tai nạn Điều hướng quỹ đạo là một trong những yếu tố quan trọng nhất trong sự phát triển của xe không người lái, với nhiều phương pháp khác nhau nhưng tối ưu nhất là ứng dụng các thuật toán trí tuệ nhân tạo Cụ thể, chúng tôi đã áp dụng thuật toán mạng nơ-ron tích chập (CNN) để điều hướng các phương tiện tự hành, góp phần nâng cao hiệu quả và độ chính xác cho công nghệ xe tự lái trong thời kỳ cách mạng công nghiệp 4.0.

Học sâu (Deep Learning) là lĩnh vực thuộc máy học (Machine Learning) lấy cảm hứng từ mạng nơ-ron nhân tạo, giúp xây dựng các hệ thống thông minh với độ chính xác cao Một loại mạng nơ-ron đặc biệt trong học sâu là mạng tích chập CNN hay ConvNet, nổi bật với khả năng giảm số lượng nơ-ron trong mỗi lớp nhưng lại mở rộng số lượng lớp ẩn, tạo thành mạng sâu CNN thường được huấn luyện bằng chiến lược lan truyền ngược, góp phần nâng cao hiệu suất và độ chính xác của hệ thống.

Nghiên cứu về điều hướng cho xe tự hành đã được thực hiện qua nhiều phương pháp, bao gồm phát hiện làn đường theo thời gian thực, hệ thống theo dõi làn đường cho xe thông minh, và phát hiện làn đường trong cảnh quan giao thông [2], [3], [4], [5], [6], mang lại độ chính xác cao Tuy nhiên, vẫn còn những khó khăn do yếu tố chủ quan, như việc tính toán và xây dựng đường ảo tại tâm của làn xe cũng như ước tính góc lệch giữa thân xe và đường ảo, nhằm điều chỉnh góc lái chính xác hơn.

Để đảm bảo xe luôn duy trì ở vị trí chính giữa làn đường, việc tính toán góc lái là vô cùng phức tạp và dễ gây sai số Ngoài ra, khách quan còn do các yếu tố như vạch kẻ không rõ hoặc bị mờ trên đường Đặc biệt, khi xe chạy trên đường dốc, camera ở phía trước có thể hướng lên trời, khiến việc phát hiện làn đường trở nên không chính xác, ảnh hưởng đến việc kiểm soát xe an toàn.

Phương pháp GPS được sử dụng để điều hướng xe tự lái, tuy nhiên, khi GPS hoạt động độc lập, tỷ lệ lỗi cao có thể ảnh hưởng đến độ chính xác của hệ thống Để đảm bảo an toàn và hiệu quả, cần phải kết hợp GPS với các cảm biến khác hoặc điều chỉnh sai số phù hợp, làm giảm nguy cơ xảy ra lỗi khi điều hướng xe không người lái.

Với những hạn chế đã đề cập, tác giả đề xuất sử dụng mạng nơ-ron tích chập như một phương pháp hiệu quả để điều hướng các phương tiện tự lái Phương pháp này giúp cải thiện độ chính xác và khả năng thích nghi của hệ thống tự lái trong nhiều điều kiện khác nhau Sử dụng mạng nơ-ron tích chập là giải pháp tiềm năng để nâng cao hiệu suất và an toàn cho xe tự hành.

Trong nghiên cứu này, chúng tôi phát triển mô hình xe tự hành sử dụng mạng CNN để dự đoán góc lái từ hình ảnh thô, nâng cao khả năng điều khiển xe thông minh Dữ liệu hình ảnh được thu thập từ camera phía trước xe, sau đó qua quá trình tiền xử lý và đưa vào mạng CNN để xác định chính xác góc lái cần thiết Quá trình huấn luyện mô hình dựa trên việc so sánh giá trị góc lái dự đoán với góc lái mong muốn, từ đó điều chỉnh trọng số của CNN để tối ưu hóa hiệu suất dự đoán và nâng cao độ chính xác của hệ thống tự hành.

Mục tiêu đề tài

Mục tiêu của đề tài là phát triển một mô hình xe tự lái có khả năng tự động điều chỉnh hướng đi trong thời gian thực Mô hình này được thiết kế để hoạt động hiệu quả trong các môi trường ngoài trời đa dạng và chịu nhiều điều kiện lái xe khác nhau Việc huấn luyện mô hình xe tự hành nhằm nâng cao độ chính xác và độ an toàn khi vận hành trên các tuyến đường thực tế Đề tài nhằm đáp ứng các yêu cầu về công nghệ xe tự lái thông minh, phù hợp với xu hướng phát triển giao thông tự động và bền vững.

Giới hạn đề tài

Phương pháp dựa trên thị giác có nhược điểm chính là không ổn định khi đối mặt với các thay đổi về ánh sáng hoặc sự ảnh hưởng của nhiễu từ môi trường bên ngoài.

Vì vậy đề tài “Điều hướng xe tự hành dung trí tuệ nhân tạo” có những giới hạn như:

3 chưa chạy được trong môi trường ban đêm, sương mù và quỹ đạo di chuyển còn khá đơn giản.

Nội dung đề tài

Đề tài “Điều hướng xe tự hành dung trí tuệ nhân tạo” bao gồm các chương sau:

Chương I: Tổng quan: Chương này trình bày tổng quan sơ bộ về các yêu cầu của cuốn báo cáo như đặt vấn đề, mục tiêu, giới hạn và nội dung đề tài

Chương II: Cơ sở lý thuyết: Chương này trình bày về giới thiệu xe tự hành, các công nghệ khác nhau được sử dụng trong xe tự hành, tổng quan về trí tuệ nhân tạo và lý thuyết và mạng nơ-ron tích chập (CNN)

Chương III: Thiết kế phần cứng và lựa chọn thiết bị: Chương này trình bày về thiết kế phần cứng và lựa chọn thiết bị phần cứng cho mô hình xe tự hành

Chương IV: Giải thuật điều khiển xe tự hành : Chương này sẽ trình bày giải thuật, lưu đồ thu thập dữ liệu huấn luyện, điều hướng xe tự hành bằng mô hình đã được huấn luyện, cấu trúc mạng và tối ưu hóa các thông số

Chương V: Thực nghiệm: Chương này sẽ trình bày về việc thực hiện điều hướng cho xe tự hành theo hai quỹ đạo hình bầu dục và hình số 8

Chương VI: Kết quả: Kết luận chung về ưu điểm và hạn chế của đề tài, khẳng định những kết quả đóng góp đạt được, đề xuất ý kiến để cải thiện khuyết điểm và định hướng phát triển đề tài

CƠ SỞ LÝ THUYẾT CỦA XE TỰ HÀNH

Giới thiệu về xe tự hành

Xe tự hành là phương tiện được thiết kế để di chuyển giữa các điểm đến mà không cần người lái xe phải liên tục theo dõi đường Công nghệ của xe tự hành phải đạt được các mục tiêu quan trọng như đảm bảo an toànan toàn tối đa trong mọi điều kiện giao thông, nâng cao hiệu quả vận hành bằng cách tối ưu lộ trình và giảm thiểu tai nạn Ngoài ra, xe tự hành còn hướng tới việc cung cấp trải nghiệm lái xe tiện lợi và thoải mái, đồng thời tích hợp các hệ thống cảm biến và trí tuệ nhân tạo tiên tiến để nhận diện môi trường xung quanh chính xác và phản ứng linh hoạt với các tình huống phát sinh.

- Xử lý một lượng dữ liệu rất lớn và sử dụng nó để đưa ra quyết định thông minh

- Có khả năng thích nghi với môi trường đã biết hoặc chưa biết

Trong tương lai, vô lăng của xe sẽ biến mất hoàn toàn và xe tự hành tự động nhờ vào sự phát triển của các hệ thống cảm biến, radar và bản đồ GPS chính xác Công nghệ xe tự lái ngày càng thông minh hơn, giúp tăng độ an toàn và tiện nghi cho người dùng, như được minh họa trong hình 2.1.

Xe tự hành tích hợp nhiều công nghệ tự động khác nhau để cung cấp phương thức di chuyển thông minh và an toàn Để đạt được điều này, yêu cầu sự đồng bộ hài hòa giữa các cảm biến thu thập dữ liệu môi trường xung quanh và các thuật toán phức tạp xử lý thông tin trong thời gian thực Nhờ đó, xe có khả năng vận hành chính xác, linh hoạt và đáp ứng nhanh với các tình huống trên đường.

Các công nghệ tiên tiến này có khả năng nhận diện các đối tượng, con người, ô tô, biển báo và đèn giao thông, góp phần nâng cao an toàn giao thông Chúng giúp đánh dấu đường đi, tuân thủ quy tắc của luật giao thông đường bộ và cảnh báo nhiều mối nguy hiểm tiềm ẩn mà người lái khó lường trước.

Hình 2.1: Sự phát triển của xe tự hành trong tương lai

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

2.2.1 Trí tuệ nhân tạo (Artificial Intelligence- AI)

Trí tuệ nhân tạo (AI) đang đóng vai trò quan trọng trong việc thúc đẩy sự phát triển của nhiều ngành công nghiệp, trở thành một chủ đề nóng trong các lĩnh vực khoa học, kinh tế và xã hội hiện nay AI không chỉ được ứng dụng rộng rãi trong quy trình vận hành và sản xuất của các công ty tiên tiến, mà còn gây ra những lo ngại về khả năng thay thế con người và làm đảo lộn cấu trúc ngành nghề truyền thống Sự phát triển nhanh chóng của AI đặt ra câu hỏi về ảnh hưởng lâu dài của nó đối với thị trường lao động và xã hội, khiến nhiều người băn khoăn về cách tận dụng tối đa các lợi ích mà công nghệ này mang lại.

Trí tuệ nhân tạo là máy móc mô phỏng quá trình ra quyết định và tính toán giống nhận thức của con người Để hoạt động hiệu quả, hệ thống AI cần hiểu rõ môi trường xung quanh, bao gồm cả không gian vật lý và dữ liệu từ các cơ sở dữ liệu Nhờ vào việc sử dụng dữ liệu này, hệ thống trí tuệ nhân tạo có thể tối ưu hóa hành động nhằm đạt được mục tiêu cụ thể, như hoàn thành các nhiệm vụ đã được huấn luyện hoặc chiến thắng trong các trò chơi trí tuệ.

Trí tuệ nhân tạo là một lĩnh vực rộng, bao gồm nhiều trường con, kỹ thuật và thuật toán nhằm tạo ra các máy móc thông minh như con người Mục tiêu ban đầu của lĩnh vực này là phát triển các hệ thống có khả năng hành xử giống như con người Từ cuộc họp tại Dartmouth năm 1956, trí tuệ nhân tạo đã chính thức ra đời và phát triển thành lĩnh vực hiện đại ngày nay Các nhà nghiên cứu đã mở rộng mục tiêu của trí tuệ nhân tạo thành sáu lĩnh vực chính, hướng tới phát triển các hệ thống máy tính có khả năng tư duy, học hỏi, thích nghi và hiểu biết như con người.

Lý luận logic là khả năng cho phép máy tính thực hiện các nhiệm vụ tinh thần phức tạp mà con người có thể làm, như giải quyết các vấn đề lý luận logic Ví dụ điển hình về ứng dụng này bao gồm chơi cờ và giải các bài toán đại số, thể hiện sự tiến bộ trong lĩnh vực trí tuệ nhân tạo.

Trình bày kiến thức giúp máy tính mô tả chính xác các đối tượng, con người và ngôn ngữ tự nhiên Ví dụ điển hình là ngôn ngữ lập trình hướng đối tượng như Smalltalk, hỗ trợ phát triển phần mềm linh hoạt và hiệu quả Công nghệ này đóng vai trò quan trọng trong việc nâng cao khả năng xử lý dữ liệu và tạo ra các hệ thống thông minh hơn.

- Lập kế hoạch và điều hướng: Cho phép một robot đi từ điểm A đến điểm B

Ví dụ, robot tự lái đầu tiên được chế tạo vào đầu năm 1960

Xử lý ngôn ngữ tự nhiên giúp máy tính hiểu và phân tích ngôn ngữ con người một cách chính xác Một trong những dự án đầu tiên trong lĩnh vực này tập trung vào dịch thuật tự động giữa tiếng Anh và tiếng Nga, góp phần nâng cao khả năng giao tiếp đa ngôn ngữ của công nghệ AI.

- Nhận thức: Cho phép máy tính tương tác với thế giới thông qua thị giác, thính giác, xúc giác và khứu giác

Trong lĩnh vực trí tuệ nhân tạo, có nhiều thuật toán và kỹ thuật khác nhau để đạt được các mục tiêu chính, nhưng đoạn này chỉ tập trung vào sáu trong số các thuật toán và kỹ thuật chính Vì vậy, bài viết không phân loại rõ ràng các thuật toán và kỹ thuật trí tuệ nhân tạo cụ thể, mà chỉ giới thiệu một phần trong số đó để giúp hiểu rõ hơn về các phương pháp phổ biến nhất trong AI.

- Machine Learning là lĩnh vực trí tuệ nhân tạo cung cấp cho máy tính khả năng học mà không cần lập trình rõ ràng

- Tìm kiếm và tối ưu hóa: Các thuật toán như Gradient Descent để lặp lại tìm kiếm tối đa hoặc tối thiểu cục bộ

- Sự thỏa mãn ràng buộc là quá trình tìm giải pháp cho một tập hợp các ràng buộc áp đặt các điều kiện mà các biến phải thỏa mãn

Lý luận logic trong trí tuệ nhân tạo thể hiện qua các hệ thống máy tính chuyên gia, có khả năng mô phỏng quá trình ra quyết định của các chuyên gia về con người Những hệ thống này áp dụng các nguyên tắc logic để phân tích dữ liệu và đưa ra các quyết định chính xác, góp phần nâng cao hiệu quả trong nhiều lĩnh vực Việc sử dụng lý luận logic giúp xây dựng các hệ thống trí tuệ nhân tạo thông minh, có khả năng xử lý các nhiệm vụ phức tạp như con người.

Lý luận xác suất là sự kết hợp giữa lý thuyết xác suất và năng lực logic suy diễn, giúp xử lý các vấn đề liên quan đến sự không chắc chắn Phương pháp này khai thác cấu trúc của các lập luận chính thức để đưa ra dự đoán chính xác hơn trong các tình huống ngẫu nhiên Nhờ đó, lý luận xác suất đóng vai trò quan trọng trong việc nâng cao khả năng phân tích và ra quyết định dựa trên dữ liệu không chắc chắn.

Lý thuyết điều khiển là phương pháp tiếp cận chính thức để thiết kế các bộ điều khiển có tính xác thực và có thể chứng minh được Nó thường liên quan đến hệ thống các phương trình vi phân mô tả các hệ thống vật lý như robot hay máy bay Điều này giúp đảm bảo các hệ thống hoạt động hiệu quả, ổn định và đáng tin cậy trong các ứng dụng thực tế.

Hình 2.2: Mối quan hệ giữa AI, Machine Learning và Deep Learning

Trong lĩnh vực trí tuệ nhân tạo, học máy và học sâu đều là các tập hợp con của một lĩnh vực lớn hơn, như đã minh họa trong Hình 2.2 Trí tuệ nhân tạo là phạm vi rộng, bao gồm các công nghệ và thuật toán để tạo ra hệ thống thông minh Trong đó, học máy đóng vai trò là một danh mục con của trí tuệ nhân tạo, tập trung vào các phương pháp tự học từ dữ liệu Đặc biệt, học sâu là một phần mở rộng của học máy, sử dụng các mạng neuron nhiều lớp để giải quyết các bài toán phức tạp hơn.

Machine Learning là một lĩnh vực con của trí tuệ nhân tạo, nhằm mục đích giúp máy tính trở nên thông minh hơn Khái niệm này dựa trên ý tưởng cung cấp dữ liệu để máy tính có thể tự học, nâng cao khả năng xử lý dựa trên dữ liệu đầu vào Arthur Samuel là người đã đề xuất ý tưởng máy tính có thể tự học từ năm 1959, góp phần định hình sự phát triển của Machine Learning ngày nay.

Sự ra đời của Machine Learning đã tạo ra bước đột phá lớn trong sự phát triển của trí tuệ nhân tạo, với internet đóng vai trò là nguồn lực thúc đẩy chính Internet tạo ra một lượng lớn dữ liệu kỹ thuật số được tạo lập, lưu trữ và phân tích liên tục, mở ra kỷ nguyên của dữ liệu lớn (big data) Các thuật toán Machine Learning đã chứng minh hiệu quả vượt trội trong việc khai thác và tận dụng dữ liệu khổng lồ này để nâng cao khả năng tự học và ra quyết định của trí tuệ nhân tạo.

Mạng nơ-ron là thành phần quan trọng và thành công trong nhiều thuật toán Machine Learning Sự phát triển của mạng lưới thần kinh đóng vai trò then chốt trong việc giúp máy tính học cách suy nghĩ và hiểu thế giới giống như con người Các mô hình mạng nơ-ron mô phỏng cấu trúc của bộ não, trong đó các tế bào thần kinh kết nối với nhau qua các khớp thần kinh, tạo thành một hệ thống xử lý thông tin phức tạp.

Một bài viết về cấu trúc của tế bào thần kinh nhấn mạnh rằng: "8 đối tượng của các nút (nơ-ron) được kết nối bởi các cạnh có trọng số (khớp thần kinh)." Đồng thời, nội dung còn mô tả rằng: "Cấu trúc của một tế bào thần kinh sinh học được minh họa rõ ràng trong hình 2.3." Những thông tin này giúp hiểu rõ về cách các nơ-ron liên kết và hoạt động trong hệ thống thần kinh sinh học.

Convolutional Neural Network (CNN)

Mạng nơ-ron thần kinh (CNN) là mô hình học sâu hàng đầu trong lĩnh vực thị giác máy tính, đóng vai trò quan trọng trong thành công của công nghệ nhận dạng hình ảnh và phân loại Thị giác máy đã vượt qua khả năng của con người trong nhiều nhiệm vụ khó nhằn nhờ vào sự phát triển của CNN, giúp nâng cao độ chính xác và hiệu quả của các ứng dụng CNN hiện là thuật toán Deep Learning hàng đầu, cho kết quả xuất sắc trong các bài toán về thị giác máy như phân loại, nhận dạng ảnh và nhiều nhiệm vụ phức tạp khác.

Mạng CNN (Convolutional Neural Network) là một kiểu mạng neuron truyền thẳng (ANN) với kiến trúc chính gồm nhiều thành phần được ghép nối theo cấu trúc nhiều tầng CNN nổi bật nhờ khả năng tự động trích xuất đặc trưng từ dữ liệu hình ảnh hoặc dữ liệu dạng grid Cấu trúc của CNN giúp xử lý các tác vụ nhận diện hình ảnh, phân loại chính xác cao Đây là một trong những mô hình mạng nơ-ron nhân tạo phổ biến và hiệu quả nhất hiện nay trong lĩnh vực trí tuệ nhân tạo.

 ReLU (tinh chỉnh các đơn vị tuyến tính)

 Fully connected (liên kết đầy đủ)

Trước khi tìm hiểu các thành phần cơ bản của mạng CNN, chúng ta sẽ xem xét ví dụ về cách xử lý thông tin đầu vào của mạng neural truyền thẳng để hiểu rõ hơn về chức năng của từng thành phần trong mạng CNN Điều này giúp làm rõ tác dụng của các thành phần quan trọng trong việc nhận diện và phân tích dữ liệu hình ảnh, từ đó tối ưu hóa hiệu quả của các mô hình CNN trong các ứng dụng thực tế.

Dưới đây là đoạn văn được tối ưu hóa theo quy tắc SEO và phản ánh nội dung chính của bài viết:Hình 2.12 minh họa ví dụ xử lý dữ liệu đầu vào là ảnh kích thước 200x200 bằng mạng neural nhân tạo (ANN) với kết nối đầy đủ giữa các lớp liên tiếp Trong ví dụ này, nếu số neural tầng ẩn là 40.000, tổng số tham số cần thiết, đặc biệt là các trọng số liên kết W giữa các neural lớp nhập và lớp ẩn, sẽ rất lớn, đòi hỏi tính toán và tối ưu hóa phù hợp để đảm bảo hiệu quả xử lý và học tập.

Ước tính dữ liệu đạt tới 1,6 tỷ, gây ra những thách thức lớn trong việc huấn luyện mạng nơ-ron nhân tạo (ANN) Điều này làm tăng chi phí xây dựng bộ dữ liệu huấn luyện lớn và kéo dài thời gian đào tạo, đặt ra các hạn chế về tài nguyên và hiệu quả trong quá trình phát triển mô hình AI.

Để giảm số lượng tham số trong các mô hình neural network, cần giảm số lượng kết nối giữa các lớp Giải pháp hiệu quả là áp dụng thành phần convolution, trong đó mỗi neural chỉ kết nối tới một vùng cục bộ của ảnh thay vì toàn bộ ảnh, giúp giảm tải tính toán và tăng hiệu quả xử lý (xem hình 2.13).

Hình 2.12: Ví dụ cách thức xử lý của ANN với cấu trúc kết nối đầy đủ

Hình 2.13: Ý tưởng thiết kế CNN

Hình 2.14: Minh họa tích chập 2.3.1.1 Lớp tích chập (Convolution layer)

Tầng Convolution (Conv) là thành phần quan trọng nhất trong kiến trúc của mạng nơ-ron tích chập (CNN), giúp trích xuất các đặc trưng quan trọng từ dữ liệu hình ảnh Conv dựa trên lý thuyết xử lý tín hiệu số và sử dụng phép tích chập như một cửa sổ trượt (Sliding Window) trên ma trận ảnh để nhận diện các đặc điểm nổi bật Nguyên lý biến đổi thông tin của kỹ thuật này đã được các nhà khoa học áp dụng hiệu quả trong xử lý ảnh và video số, giúp nâng cao khả năng nhận diện và phân loại dữ liệu hình ảnh Để dễ hình dung, ma trận đầu tiên thể hiện một bức ảnh đen trắng, mỗi giá trị tương ứng với một điểm ảnh (pixel), trong đó 0 là màu đen, 1 là màu trắng, và đối với ảnh xám, giá trị biến thiên từ 0 đến 255.

Sliding window còn gọi là kernel, feature hoặc filter, là một ma trận kích thước 3x3 được nhân với từng thành phần của ma trận ảnh Giá trị đầu ra của phép tích chập là tổng các tích của các phần tử, tạo ra một ma trận mới gọi là Convoled Feature Quá trình này thực hiện bằng cách trượt ma trận filter qua toàn bộ ảnh và tính tích chập liên tục để trích xuất đặc trưng của ảnh.

Phép tính Conv trong xử lý ảnh giúp biến đổi thông tin đầu vào thành các yếu tố đặc trưng như cạnh, hướng, đốm màu, giống như bộ phát hiện đặc trưng Hình 2.15 minh họa quá trình này, trong đó (a) thể hiện kết quả biến đổi hình ảnh qua các phép Conv khác nhau, cho ra các kết quả đa dạng, còn (b) trình bày trực quan các kernel được sử dụng để phát hiện các đặc trưng như cạnh, hướng, đốm màu.

Dưới đây là các câu có ý nghĩa quan trọng của đoạn nội dung bạn cung cấp, được viết lại để phù hợp với tiêu chuẩn SEO:Chẳng hạn, để minh họa ứng dụng của phép tích chập, ta xét bài toán tính giá trị đầu ra của một ảnh kích thước W₁ x H₁ x D₁ Một lớp tích chập sử dụng một cửa sổ trượt kích thước F x F, hoạt động như một ma trận lọc trên các chiều của ảnh đầu vào Trong quá trình xử lý, các bộ lọc này sẽ dịch chuyển trên toàn bộ bức ảnh theo bước stride S (tính bằng pixel) để trích xuất đặc trưng hiệu quả hơn.

Receptive field là khái niệm mô tả mỗi vùng mà bộ lọc áp đặt trên ma trận đầu vào Để cân bằng giữa số bước dịch chuyển của bộ lọc và kích thước ảnh ban đầu, người ta thường chèn thêm P pixel viền xung quanh ảnh với giá trị màu cố định, thường là 0 Nhờ đó, ma trận đầu ra (feature map) sẽ có kích thước 𝑊 2 * 𝐻 2 * 𝐷 2, giúp cải thiện khả năng trích xuất đặc trưng của mô hình.

Giá trị tại các ô trong ma trận của bộ lọc (F*F*D₁)+1 bao gồm trọng số và tham số ngưỡng của filter Những giá trị này không đổi khi bộ lọc dịch chuyển trên toàn bộ ảnh đầu vào, giúp giảm số tham số cần học trong quá trình huấn luyện mạng Đây là tính chất chia sẻ bộ trọng số (shared weights), góp phần tối ưu hóa quá trình đào tạo của mạng neural.

Hình 2.16: Các thành phần của lớp tích chập số cần học cho quá trình sử dụng tích chập là (F*F*𝐷 1 )*K +K (ở đây cộng thêm K tham số ngưỡng của K filter)

Trong hình 2.16 minh họa ví dụ về quá trình sử dụng mạng neural tích chập với đầu vào có kích thước 32x32x3, trong đó 𝑊 1 = 𝐻 1 2 và 𝐷 1 = 3 biểu thị số kênh màu RGB Ta thực hiện 6 bộ lọc, mỗi bộ có kích thước 5x5x3, với f = 5, stride S = 1 và padding P = 0, tạo ra các feature map khác nhau ở đầu ra Kích thước của mỗi feature map là 𝑊 2 = 𝐻 2 = (𝑊 1 – F)/1 + 1 Mỗi neuron trong feature map có số tham số là 5x5x3 + 1 Nếu không sử dụng tính chất chia sẻ trọng số, tổng số tham số cần học cho tất cả các feature map trong 6 bộ lọc lên tới 28x28x6 nhân với (5x5x3 + 1), lớn hơn nhiều so với số tham số khi dùng chung trọng số là 5x5x3x6 + 6, giúp giảm thiểu đáng kể số lượng tham số cần tối ưu hóa trong mạng neural tích chập.

Như vậy sử dụng tích chập có những ưu điểm sau:

Trong mạng neural truyền thống, các neuron ở lớp trước kết nối với tất cả các neuron ở lớp sau (fully connected), dẫn đến số lượng tham số rất lớn, gây ra vấn đề overfitting và làm tăng thời gian huấn luyện Việc sử dụng các lớp tích chập giúp giảm số lượng tham số bằng cách chia sẻ trọng số, từ đó tối ưu hóa quá trình huấn luyện và nâng cao hiệu quả của mô hình AI.

Figure 2.17 illustrates an example of a convolutional layer in an image, highlighting the use of shared weights for efficient feature extraction Instead of employing fully connected layers, local receptive fields are utilized to reduce the number of parameters, enhancing model efficiency and performance in image processing tasks.

Bộ điều khiển PID

Bộ điều khiển vi tích phân tỉ lệ (PID) là cơ chế phản hồi vòng điều khiển phổ biến trong các hệ thống điều khiển công nghiệp, được sử dụng rộng rãi nhờ khả năng điều chỉnh chính xác Bộ điều khiển PID hoạt động bằng cách tính toán "sai số" là hiệu giữa giá trị đo thông số và giá trị đặt mong muốn, từ đó giảm thiểu lỗi bằng cách điều chỉnh đầu vào điều khiển một cách tối ưu Để đạt hiệu quả cao nhất, các thông số PID cần được điều chỉnh phù hợp với đặc tính của hệ thống, như được minh họa trong hình 2.22.

Giải thuật tính toán bộ điều khiển PID bao gồm ba tham số riêng biệt là tỷ lệ (P), tích phân (I) và đạo hàm (D), tạo thành điều khiển ba khâu Giá trị tỉ lệ xác định tác động của sai số hiện tại, trong khi giá trị tích phân phản ánh ảnh hưởng của tổng các sai số quá khứ, còn giá trị vi phân dự đoán các sai số tương lai dựa trên tốc độ biến đổi hiện tại Sự kết hợp của ba tác động này giúp điều chỉnh quá trình điều khiển qua các bộ phần tử như van điều khiển hoặc nguồn điện của bộ gia nhiệt, làm rõ mối quan hệ thời gian giữa sai số và phản hồi hệ thống Trong đó, P phụ thuộc vào sai số hiện tại, I phụ thuộc vào tích lũy sai số quá khứ, còn D dự đoán các sai số trong tương lai dựa trên tốc độ thay đổi hiện tại [9].

Một số ứng dụng điều khiển chỉ yêu cầu một hoặc hai thông số tùy thuộc vào hệ thống và được gọi là P, PI hoặc PD Độ lợi tỉ lệ (Kp) là khâu tỷ lệ có giá trị càng lớn thì đáp ứng càng nhanh, nhưng đồng nghĩa với sai số lớn hơn; do đó, bù khâu tỉ lệ càng lớn sẽ làm tăng khả năng phản hồi nhanh nhưng có thể gây mất ổn định và dao động Độ lợi tích phân (Ki) càng lớn, thì sai số ổn định sẽ được khử nhanh hơn, nhưng đồng thời cũng làm tăng độ vọt lố, nghĩa là bất kỳ sai số âm nào trong quá trình phản hồi sẽ được tích phân và gây ra biến động lớn trong hệ thống.

Quá trình quá độ phải được triệt tiêu tích phân bằng sai số dương trước khi hệ thống đạt trạng thái ổn định Độ lợi vi phân (Kd) càng lớn sẽ giúp giảm độ vọt lố trong phản hồi, tuy nhiên, điều này cũng làm chậm đáp ứng quá độ của hệ thống Ngoài ra, giá trị Kd quá cao có thể gây mất ổn định do khuếch đại nhiễu tín hiệu trong phép vi phân sai số, ảnh hưởng tiêu cực đến hiệu quả phản hồi và ổn định của hệ thống điều khiển.

Hình 2.23 trình bày bộ điều khiển PID dùng để duy trì tốc độ trong xe tự hành Bộ điều khiển này tính toán sai số giữa vận tốc thực đo được và tốc độ mong muốn lấy từ Raspberry Pi 3, giúp điều chỉnh chính xác tốc độ của xe Nhờ vào thuật toán PID, sai số sẽ được giảm thiểu bằng cách điều chỉnh giá trị điều khiển đầu vào, gửi đến ESC và động cơ của xe, đảm bảo xe hoạt động ổn định và chính xác hơn trong quá trình vận hành.

Hình 2.22: Bộ điều khiển PID

Hình 2.23: Bộ điều khiển PID cho tốc độ của xe

THIẾT KẾ VÀ LỰA CHỌN THIẾT BỊ

Các thành phần phần cứng

3.1.1 Xe điều khiển Trophy Truck

Trophy Truck là xe điều khiển từ xa có tốc độ cao, hoạt động trên tín hiệu tần số vô tuyến 2,4 GHz với phạm vi điều khiển lên đến 150 mét, phù hợp cho trải nghiệm lái xe thực tế Xe được trang bị đầy đủ các chức năng như tay lái và khả năng điều khiển tiến hoặc lùi, mang lại sự điều khiển linh hoạt và chân thực Chi tiết về cấu hình và tính năng của Trophy Truck được trình bày rõ ràng trong Hình 3.3, giúp người dùng dễ dàng hình dung và lựa chọn phù hợp.

Hình 3.1: Sơ đồ khối của mô hình xe tự hành

Hình 3.2: Xe điều khiển Trophy Truck

Hình 3.3: Chi tiết bên trong xe điều khiển

3.1.2 Động cơ Brushed Motor RC-540PH

Hình 3.4: Động cơ Brushed Motor RC-540PH

3.1.3 Động cơ RC Servo TowerPro MG946R Đề tài sẽ chọn động cơ RC Servo TowerPro MG946R để điều khiển góc lái cho xe tự hành

RC Servo TowerPro MG946R như hình 3.5:

Hình 3.5: RC Servo TowerPro MG946R

Bảng 3.1: Thông số hoạt động của RC Servo TowerPro MG946R

Stall torque 10.5kg/cm(4.8V) – 13kg/cm(6V)

Operating speed (Tốc độ hoạt động) 0.20sec/60degree(4.8V) – 0.17s/60d(6V) Operating voltage (Điện áp hoạt động) 4.8V – 7.2V

Temperature range (Khoảng nhiệt độ) 0 o C – 55 o C

3.1.4 Waterproof Brushed ESC Controller WP-1040

ESC là mạch điện tử điều khiển và điều chỉnh vận tốc của động cơ điện, giúp kiểm soát tốc độ và hướng quay một cách chính xác Nó còn có khả năng điều khiển đảo chiều động cơ và phanh động, tăng tính linh hoạt trong vận hành Điều khiển tốc độ điện tử hoạt động dựa trên tín hiệu tham chiếu tốc độ từ ga, cần điều khiển hoặc các đầu vào thủ công khác, bằng cách thay đổi tần số hoặc chu kỳ nhiệm vụ của mạng lưới transistor hiệu ứng trường (FET) Việc điều chỉnh này giúp thay đổi tốc độ của động cơ một cách linh hoạt và chính xác hơn Sản phẩm ESC WP-1040 được thiết kế chống thấm nước và chống bụi, phù hợp sử dụng trong mọi điều kiện thời tiết khắc nghiệt.

Hình 3.6: Waterproof Brushed ESC Controller WP-1040

Raspberry Pi là một máy tính nhỏ gọn với kích thước chỉ bằng một thẻ ATM, tích hợp đầy đủ các thành phần cần thiết để hoạt động như một máy tính để bàn Bo mạch Raspberry Pi có CPU, GPU, RAM, khe cắm thẻ microSD, Wi-Fi, Bluetooth và 4 cổng USB 2.0, giúp người dùng dễ dàng thiết lập và sử dụng Việc cài đặt hệ điều hành cho Raspberry Pi rất đơn giản, chỉ cần sao chép thư mục hệ điều hành vào thẻ nhớ, rồi kết nối chuột, bàn phím và màn hình để bắt đầu sử dụng Ngoài ra, người dùng còn có thể truy cập từ xa qua remote desktop hoặc SSH để vận hành Raspberry Pi từ máy tính khác, làm cho nó linh hoạt phù hợp với nhiều mục đích sử dụng.

Raspberry Pi được chọn vì có thiết kế nhỏ gọn, dễ lắp đặt lên mô hình xe điều khiển, phù hợp cho các dự án DIY và hệ thống nhúng Thiết bị này còn hỗ trợ giao tiếp với các thiết bị ngoại vi như camera, USB, giúp mở rộng khả năng tích hợp Ngoài ra, Raspberry Pi hỗ trợ nhiều giao thức truyền nhận như Bluetooth, I2C, SPI, tạo điều kiện thuận lợi cho việc lập trình và tích hợp các hệ thống nhúng phức tạp.

Hình 3.8: Raspberry Pi Power Pack

Raspberry Pi Power Pack được thiết kế nhỏ gọn nhưng vẫn đảm bảo hiệu năng cao, cung cấp nguồn liên tục lên đến 9 giờ Sản phẩm sử dụng pin lithium có thể sạc lại, dung lượng 3800mAh, mang lại công suất 5.1V - 1.8A, chỉ nặng 80g Với hai cổng USB, Raspberry Pi Power Pack dễ dàng cấp nguồn cho hai Raspberry Pi hoặc các phụ kiện khác như màn hình rời, nâng cao khả năng mở rộng và tiện ích của hệ thống.

Trước khi có camera tích hợp, cách duy nhất để nâng cao khả năng nhận diện hình ảnh, quay phim và chụp hình cho Raspberry Pi là sử dụng webcam USB Webcam Logitech tích hợp sẵn định dạng MJPEG giúp RPi xử lý hình ảnh nhanh hơn, nhưng giá thành khá cao, đặc biệt là các webcam có độ phân giải lớn Raspberry Pi Camera với độ phân giải 5 megapixel nổi bật nhờ khả năng nhạy sáng cao, chụp tốt trong nhiều điều kiện ánh sáng khác nhau, cả trong nhà lẫn ngoài trời Điểm đặc biệt của camera này là khả năng chụp ảnh rõ nét khi quay phim, mang lại hình ảnh chất lượng cao cho các dự án của bạn.

Khi sử dụng Raspberry Pi Camera, bạn sẽ không cần thêm cổng USB cho camera vì thiết bị được kết nối chắc chắn qua socket CSI, giúp giảm thiểu tình trạng nghẽn băng thông cho chip xử lý USB trên bo mạch Raspberry Pi Chiều dài của cáp camera cũng ảnh hưởng đến tốc độ truyền dữ liệu và độ ổn định của hình ảnh, vì vậy nên lựa chọn cáp phù hợp để đảm bảo hiệu quả tối ưu cho dự án của bạn.

Camera nối 32 đã được tính toán kỹ lưỡng để đảm bảo đạt đúng độ dài cần thiết mà vẫn duy trì tốc độ truyền hình ảnh ổn định từ module về Raspberry Pi (Hình 3.9).

Arduino Uno sử dụng vi điều khiển Atmega328, tích hợp 14 đầu vào/ra, trong đó có 6 chân có thể sử dụng làm đầu ra PWM, giúp điều khiển thiết bị chính xác hơn Board còn có 6 ngõ ra Analog, kết nối qua cổng USB hoặc jack nguồn dễ dàng để lập trình và cấp nguồn cho dự án Ngoài ra, Arduino Uno còn trang bị ICSP, nút Reset và các linh kiện hỗ trợ để lập trình và hoạt động ổn định Bạn có thể kết nối Arduino Uno với máy tính qua cáp USB hoặc sử dụng bộ chuyển đổi AC/DC hoặc pin để khởi động và phát triển các dự án điện tử sáng tạo.

Hình 3.10: Board Arduino Uno (mặt trước và sau)

Bảng 3.2: Thông số của board Arduino Uno

Digital I/O Pins 14 (of which 6 provide PWM output)

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Mạch điều khiển 16 Chanel PWM PCA9685 cho phép phát ra đồng thời 16 xung PWM từ 16 cổng khác nhau qua giao tiếp I2C bằng IC PCA9685, giúp điều khiển đồng thời 16 servo RC hoặc dimmer cho 16 thiết bị cùng lúc Thiết bị này lý tưởng cho các dự án điều khiển tự động hóa, robot hoặc hệ thống điều khiển đa kênh Với khả năng xuất xung PWM chính xác và đồng bộ, PCA9685 mang lại hiệu suất cao và độ tin cậy trong việc điều khiển các thiết bị điện tử.

Mạch điều khiển 16 Chanel PWM PCA9685 có thiết kế phần cứng đơn giản, giúp dễ dàng tích hợp vào các dự án tự động hóa Bộ thư viện sẵn có trên Arduino hỗ trợ lập trình và kết nối nhanh chóng, mang lại sự thuận tiện và hiệu quả trong việc điều khiển các thiết bị PWM Sản phẩm phù hợp cho các ứng dụng yêu cầu kiểm soát nhiều kênh PWM như đèn LED, servo motor, và các thiết bị IoT Với tính năng dễ sử dụng và khả năng mở rộng cao, mạch PCA9685 là giải pháp tối ưu cho các người dùng muốn xây dựng hệ thống điều khiển tự động chuyên nghiệp.

Hình 3.11: Mạch Điều Khiển 16 Chanel PWM PCA9685

 Mạch điều khiển 16 Chanel PWM PCA9685

 Điện áp sử dụng: 2.3 ~ 5.5VDC

 Số kênh PWM: 16 kênh, tần số: 40~1000Hz

 Độ phân giải PWM: 12 bit

 Giao tiếp: I2C (chấp nhận mức Logic TTL 3 ~ 5VDC)

 Kích thước: 62.5mm x 25.4mm x 3mm

Sơ đồ kết nối phần cứng

Hình 3.14: Sơ đồ kết nối phần cứng

Trong hình 3.14, Pi Camera kết nối với Raspberry sử dụng giao thức điện CSI-

2 PCA 9685 kết nối với Raspberry Pi qua hai chân I2C (SDA và SCL), 3.3V và đất Động cơ được kết nối với Channel 0 và Servo với Channel 1 Arduino board được sử dụng để đọc các giá trị ga mong muốn từ PWM module PCA 9685, tốc độ thực tế đọc từ encoder sau đó duy trì vận tốc của xe với thuật toán điều khiển PID.

Cấu trúc phần cứng của mô hình xe tự hành

Sau khi hoàn chỉnh thiết kế sơ đồ phần cứng và sơ đồ kết nối dây, xe tự hành được xây dựng bằng cách sửa đổi khung gầm của xe RC Car Quá trình này tích hợp các thành phần phần cứng đã đề cập trong phần 3.2 để đảm bảo hệ thống hoạt động chính xác và ổn định.

Bên ngoài xe được thể hiện trong hình 3.15 và hình 3.16 Hình 3.17 minh họa thành phần bên trong xe

Hình 3.15: Phía trên của mô hình xe tự hành

Hình 3.16: Phía trái của mô hình xe tự hành

Hình 3.17: Bên trong xe tự hành (a) bên trong xe nhìn từ phía trên (b) bánh răng của encoder (c) hệ thống bể lái (d) Motor và ESC b) c) d) a)

GIẢI THUẬT ĐIỀU KHIỂN CỦA MÔ HÌNH XE TỰ HÀNH

Sơ đồ khối thu thập dữ liệu huấn luyện

Hình 4.1: Sơ đồ khối thu thập dữ liệu huấn luyện

Khi khởi động xe, bước đầu tiên là kiểm tra kênh ga để đảm bảo thanh ga điều chỉnh đúng, giúp xe chạy ở tốc độ mong muốn dựa trên cần điều khiển Tiếp theo, kiểm tra các góc lái để điều chỉnh thanh góc lái, nhằm hướng xe theo góc lái nhận được từ tay cầm điều khiển; nếu không điều chỉnh, xe sẽ chạy về phía trước không theo ý muốn Trong quá trình xe chạy, hình ảnh đường được chụp lại bằng máy ảnh, đồng thời ghi lại tên hình ảnh, giá trị góc và ga tại điểm đó vào tập dữ liệu Cuối cùng, để dừng xe, cần nhấn nút tắt để kết thúc hoạt động.

Sơ đồ khối điều hướng mô hình xe tự hành

Hình 4.2: Sơ đồ khối điều hướng mô hình xe tự hành

Để bắt đầu quá trình khảo sát, người dùng cần nhấn nút khởi động để xe bắt đầu chạy và chụp ảnh môi trường Dữ liệu sau đó được đưa vào mô hình CNN để dự đoán tốc độ và góc lái phù hợp cho xe Xe sẽ tự động di chuyển và điều hướng dựa trên các thông số góc lái và tốc độ thu được từ mô hình CNN, giúp quá trình tự động hóa diễn ra chính xác Khi muốn dừng xe, chỉ cần nhấn nút dừng theo hướng dẫn trong Hình 4.2 để kết thúc quá trình điều khiển.

Cấu trúc mạng và tối ưu các thông số

Mạng nơ-ron tích chập được sử dụng để huấn luyện dữ liệu với kiến trúc gồm 9 lớp, bao gồm 1 lớp chuẩn hóa, 3 lớp chập, 3 lớp gộp tối đa và 2 lớp fully connected Kiến trúc mạng này, được mô tả rõ ràng trong Hình 4.3, đảm bảo hiệu quả trong quá trình trích xuất đặc trưng và phân loại dữ liệu.

Hình 4.3: Cấu trúc mạng huấn luyện cho mô hình xe tự hành

Lớp đầu tiên thực hiện chuẩn hóa tất cả các ảnh với giá trị pixel trong khoảng từ -1 đến 1, giúp tối ưu hóa quá trình huấn luyện mô hình Các lớp pooling được thiết kế dựa trên thực nghiệm, sử dụng kernel kích thước 5x5 không bước trượt cho lớp đầu tiên để giảm kích thước ảnh một cách hiệu quả Các kernel ở các lớp tiếp theo có kích thước 3x3 và cũng không có bước trượt, nhằm giữ lại các đặc trưng quan trọng của ảnh Độ sâu của mỗi lớp lần lượt là 16, 32 và 64, phù hợp với từng giai đoạn trích xuất đặc trưng của mô hình.

Lớp max-pooling là một công cụ mạnh mẽ thường được sử dụng trong mạng nơ-ron tích chập (CNN) nhằm thay đổi kích thước hình ảnh một cách hiệu quả Phương pháp này hoạt động bằng cách trượt một cửa sổ nhỏ, thường là 2x2, dọc theo hình ảnh và lấy giá trị tối đa trong từng cửa sổ, giúp giữ lại các đặc trưng quan trọng nhất Sau quá trình gộp, hình ảnh sẽ giảm đi khoảng một phần tư kích thước ban đầu, giúp giảm số lượng hyperparameters cần tính toán, giảm thời gian huấn luyện và ngăn ngừa hiện tượng overfitting Tất cả các lớp max-pooling thường được thiết lập với kernel là 2x2 và không có bước trượt (stride = 2), tối ưu hóa hiệu quả xử lý dữ liệu trong mô hình CNN.

Các lớp được kết nối hoàn toàn được thiết kế với việc giảm dần kích thước:

19456 và 500 Lớp đầu ra chắc chắn là 1 nơtron vì mô hình của chúng tôi dự đoán một giá trị như một lệnh điều khiển đầu ra cho góc lái

Chúng tôi sử dụng kích hoạt lớp ELUs (đơn vị tuyến tính theo cấp số nhân) để cải thiện sự hội tụ của mô hình ELUs hoạt động nhằm duy trì giá trị trung bình gần bằng không, giúp tăng tốc độ học tập và đạt độ chính xác phân loại cao hơn so với ReLUs Trong khi đó, đầu ra của lớp ReLU có cùng kích thước với đầu vào nhưng loại bỏ tất cả các giá trị âm của hình ảnh ngay lập tức, ảnh hưởng đến quá trình học của mạng neural.

Với a là siêu tham số và một điều kiện là a  0

Trong đề tài này, chúng tôi sử dụng hàm MSE (Mean-Square-Loss) – một chức năng phổ biến trong các bài toán hồi quy Hàm MSE đánh giá mức độ chính xác của mô hình bằng cách tính trung bình của tổng bình phương khác biệt giữa giá trị thực tế và dự đoán Việc sử dụng hàm MSE giúp tối ưu hóa mô hình để dự đoán chính xác hơn, phù hợp với các ứng dụng liên quan đến dự báo và phân tích dữ liệu.

Để giảm thiểu mất mát trong quá trình huấn luyện, thuật toán tối ưu hóa Adam đã được sử dụng, vì đây là phương pháp phổ biến và hiệu quả trong học sâu Thuật toán Adam giúp tối ưu hóa quá trình học bằng cách điều chỉnh các trọng số một cách hiệu quả, nâng cao hiệu suất của mô hình Trong bài viết, tác giả đã áp dụng các tham số mặc định của Adam trong Keras, với tốc độ học (learning rate) là 0.001, để đảm bảo quá trình tối ưu diễn ra ổn định và chính xác.

Mạng nơ-ron có nhiều lớp ẩn phi tuyến tính, tạo thành các mô hình phức tạp với mối quan hệ phức tạp giữa đầu vào và đầu ra Để tăng cường độ bền vững của kiến trúc và ngăn ngừa hiện tượng overfitting, các lớp dropout được thêm vào mạng Dropout sẽ vô hiệu hóa các tế bào thần kinh trong mạng theo một xác suất cố định, giúp giảm sự đồng thích hợp của các đối tượng và cải thiện khả năng tổng quát của mô hình Trong nghiên cứu này, tác giả áp dụng tỷ lệ dropout là 20% theo hướng dẫn trong tài liệu tham khảo [12] (Hình 4.4).

Hình 4.4: Lớp dropout a) mạng nơ-ron tiêu chuẩn, b) mạng nơ-ron sau khi áp dụng dropout a) b)

Phần mềm và các thư viện sử dụng để lập trinhg

4.4.1 Giới thiệu thư viện Tensorflow

 TensorFlow là một thư viện phần mềm mã nguồn mở dành cho máy học trong nhiều loại hình tác vụ nhận thức và hiểu ngôn ngữ

Chúng tôi hỗ trợ chạy trên desktop Linux và Mac OS X 64-bit, cũng như các hệ thống máy chủ, đảm bảo khả năng hoạt động linh hoạt trên nhiều nền tảng Ngoài ra, phần mềm còn tương thích với các nền tảng điện toán di động phổ biến như Android và iOS của Apple, mang lại trải nghiệm đa nền tảng thuận tiện và hiệu quả cho người dùng.

 TensorFlow có thể chạy trên nhiều CPU và GPU

 TensorFlow cung cấp một API Python, cũng như một ít tài liệu API C/C++

4.4.2 Giới thiệu thư viện Keras

Keras is a Python-based machine learning framework designed to minimize the time between conceptualizing ideas and implementing them It features two high-level APIs: Keras Sequential and Keras Functional, enabling users to build and train deep learning models efficiently.

 Nó có thể sử dụng chung với các thư viện Deep Learning nổi tiếng như Tensorflow

 Dễ sử dụng, xây dựng model nhanh

 Keras có thể run trên cả CPUvà GPU

 Hỗ trợ xây dựng CNN, RNN và có thể kết hợp cả hai.

THỰC NGHIỆM

Môi trường thực nghiệm

Hình 5.1: Quỹ đạo thực nghiệm 1: (a) Quỹ đạo hình bầu dục.(b) góc rẽ của đường đi (c) mô hình xe đang di chuyển theo quỹ đạo

Hình 5.2:Quỹ đạo thực nghiệm 2: (a) quỹ đạo hình số 8 (b) và (c) biển báo hiệu chỉ đường a) b) c) a) b) c)

Chúng tôi đã sử dụng mô hình xe tự hành để thu thập dữ liệu đào tạo, vận hành trên quỹ đạo ngoài trời tạo trên mặt phẳng rải nhựa với các đường viền rõ ràng, có đánh dấu thời gian Các đường viền hình bầu dục dài 50 mét, rộng 70 cm, với dải băng trong rộng 10 cm để dễ nhận diện Chiếc xe có khả năng điều khiển để rẽ trái hoặc rẽ phải tại các đường cong bán kính 3 mét, giúp thu thập dữ liệu đa dạng về các tình huống lái xe Quỹ đạo hình số 8 dài 40 mét, bao gồm hai vòng tròn tạo thành giao lộ ngang tiếp tuyến, thiết kế với đường cong bên trái và bên phải có bán kính 3 mét Ngoài ra, có bốn biển báo giao thông đường kính 15 cm được bố trí trên mép ngoài của đường để hướng dẫn lái xe, đảm bảo an toàn và chính xác trong quá trình thu thập dữ liệu.

Mô tả tập dữ liệu

Chuẩn bị dữ liệu là bước thiết yếu trong làm việc với các mạng học sâu, đặc biệt trong các dự án liên quan đến thị giác máy tính Raspberry Pi ghi lại hình ảnh và dữ liệu lái xe thủ công trên đường đua với tốc độ 5-6 km/h, thu thập hơn 15.500 hình ảnh kèm góc lái Ảnh ban đầu có độ phân giải 160x120, được chụp với tốc độ 10 khung hình/giây và thời gian phơi sáng 5000us để giảm thiểu hiện tượng mờ do rung lắc khi xe di chuyển Các hình ảnh mẫu của tập dữ liệu này đã được trình bày rõ ràng trong Hình 5.3, góp phần xây dựng bộ dữ liệu chất lượng cho các mô hình học sâu.

Hình 5.3: Tập dữ liệu thu thập được: (a) là các mẫu từ tập dữ liệu lái xe (b), (c) và

(d) là những hình ảnh điển hình trong tập dữ liệu

Các phương pháp để tạo ra các nhiều dữ liệu khác nhau

Trong học sâu, mô hình thường gặp khó khăn khi làm việc với tập dữ liệu nhỏ do thiếu mẫu để đào tạo, dẫn đến hiệu suất tổng quát kém Phương pháp tăng cường dữ liệu giúp khắc phục vấn đề này bằng cách tạo ra các mẫu mới từ các mẫu hiện có thông qua các biến đổi ngẫu nhiên, từ đó mở rộng tập dữ liệu huấn luyện Các kỹ thuật biến đổi phổ biến bao gồm lật ảnh ngang, điều chỉnh độ sáng, tạo bóng ngẫu nhiên, cũng như thay đổi chiều cao và chiều rộng của ảnh (hình 5.4), giúp nâng cao hiệu quả huấn luyện mô hình deep learning.

Hình 5.4: Ví dụ về các phương pháp tạo thêm dữ liệu huấn luyện

Quá trình huấn luyện

Tác giả chia tập dữ liệu đã lưu trữ thành hai phần riêng biệt, gồm dữ liệu huấn luyện chiếm 80% và dữ liệu thử nghiệm chiếm 20%, nhằm tối ưu quá trình đào tạo mô hình Một sơ đồ huấn luyện chi tiết được trình bày trong Hình 5.5, giúp hình dung rõ các bước thực hiện Tác giả tận dụng lợi thế của GPU NVIDIA GeForce để tăng tốc quá trình huấn luyện, nâng cao hiệu quả và độ chính xác của mô hình học sâu.

GT 740M với bộ nhớ là 2GB có sẵn để huấn luyện mạng với ba lần, mỗi lần lượt là

Hình 5.5: Sơ đồ huấn luyện cho mô hình xe tự hành

Chúng tôi đã thực hiện đào tạo kết hợp với 100 chu kỳ trên 15.500 mẫu dữ liệu, tổng thời gian là khoảng 280 phút, trung bình một chu kỳ mất khoảng 168 giây để hoàn thành Hình 5.6 trình bày các hình ảnh đại diện cho các lớp tích chập trong mô hình, giúp hình dung rõ hơn về quá trình xử lý dữ liệu.

Bảng 5.1: Sự ảnh hưởng của chu kỳ huấn luyện đến độ chính xác của mô hình

Số lượng mẫu huấn luyện

Thời gian huấn luyện Độ chính xác

Hình 5.6: Trực quan các lớp tích chập a) ảnh gốc b), c) và d) là lần lượt là các lớp tích chập thứ 1,2 và 3

Kết quả thực nghiệm ngoài trời

Sau khi được huấn luyện trên laptop, mô hình đã được sao chép trở lại Raspberry

Hệ thống Pi sử dụng bộ điều khiển chính của xe để cấp khung hình từ camera Pi làm đầu vào, đảm bảo quá trình xử lý hình ảnh hiệu quả Mỗi giây, hệ thống xử lý khoảng 10 hình ảnh, giúp xe phản ứng nhanh với môi trường xung quanh Tốc độ tối đa của xe khi đi qua các đoạn đường cong là khoảng 5-6 km/h, đảm bảo an toàn và kiểm soát tốt trong quá trình điều khiển tự động.

Mô hình dự đoán góc lái đạt độ chính xác 98,23%, chứng tỏ khả năng dự đoán chính xác trong các điều kiện lái xe đa dạng (Hình 5.7) Kết quả từ thí nghiệm cho thấy mô hình xe tự hành có thể tự động điều hướng thành công trên nhiều quỹ đạo khác nhau, bất kể có hay không dấu hiệu làn đường (Hình 5.8) Giá trị góc lái dự đoán gần như chính xác, góp phần nâng cao hiệu quả và độ tin cậy của hệ thống tự động hóa trong xe tự hành.

Hình 5.7: Độ chính xác của mạng CNN được đề xuất

Hình 5.8: Giá trị góc lái được dự đoán

Ngày đăng: 11/12/2022, 19:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Minh-Thien Duong, Truong-Dong Do and My-Ha Le, “Navigating Self- Driving Vehicles Using Convolutional Neural Network”, 2018 4th International Conference on Green Technology and Sustainable Development (GTSD). IEEE, 2018. p. 607-610 Sách, tạp chí
Tiêu đề: Navigating Self- Driving Vehicles Using Convolutional Neural Network
Tác giả: Minh-Thien Duong, Truong-Dong Do, My-Ha Le
Nhà XB: IEEE
Năm: 2018
[2] S. G. Jeong et al., “Real time lane detection for autonomous navigation,” in Proc. IEEE Intell. Transp. Syst., Aug. 2001, pp. 508–513 Sách, tạp chí
Tiêu đề: Real time lane detection for autonomous navigation
Tác giả: S. G. Jeong et al
Nhà XB: Proc. IEEE Intell. Transp. Syst.
Năm: 2001
[3] K. A. Redmill, S. Upadhya, A. Krishnamurthy, and ĩ. ệzgỹner, “A lane tracking system for intelligent vehicle application,” in Proc. IEEE Intell.Transp.Syst., Aug. 2001, pp. 273–279 Sách, tạp chí
Tiêu đề: A lane tracking system for intelligent vehicle application
Tác giả: K. A. Redmill, S. Upadhya, A. Krishnamurthy, ĩ. ệzgỹner
Nhà XB: IEEE
Năm: 2001
[4] Hsu-Yung Cheng, Bor-Shenn Jeng, Pei-Ting Tseng, and Kuo-Chin Fan, “Lane Detection with Moving Vehicles in Traffic Scenes”, IEE Transactions on intelligent transportation systems, vol 7, No.4, December 2006 Sách, tạp chí
Tiêu đề: Lane Detection with Moving Vehicles in Traffic Scenes
Tác giả: Hsu-Yung Cheng, Bor-Shenn Jeng, Pei-Ting Tseng, Kuo-Chin Fan
Nhà XB: IEEE Transactions on Intelligent Transportation Systems
Năm: 2006
[5] Kamarul Ghazali, Rui Xiao, Jie Ma, “Road Lane Detection Using H-Maxima and Improve Hough Transform”, 2012 Fourth International Conference on Computational Intelligence, Modelling and Simulation Sách, tạp chí
Tiêu đề: Road Lane Detection Using H-Maxima and Improve Hough Transform
Tác giả: Kamarul Ghazali, Rui Xiao, Jie Ma
Năm: 2012
[6] Mohamed Aly, “Real time Detection of Lane Markers in Urban Streets” 2008 IEEE Intelligent Vehicles Symposium Eindhoven University of Technology Eindhoven, The Netherlands, June 4-6, 2008 Sách, tạp chí
Tiêu đề: Real time Detection of Lane Markers in Urban Streets
Tác giả: Mohamed Aly
Nhà XB: IEEE Intelligent Vehicles Symposium Proceedings
Năm: 2008
[7] S. Hong, M. Hyung Lee, S. Hong Kwon and H. Hwan Chun, “A car test for the estimation of GPS/INS alignment errors,” IEEE Trans. Intell. Trans. Syst. 5(3), 208–218 (2004) Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm