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

Một phần của tài liệu Điều hướng xe tự hành dùng trí tuệ nhân tạo (Trang 54)

Chương 4 : GIẢI THUẬT ĐIỀU KHIỂN CỦA MÔ HÌNH XE TỰ HÀNH

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

Một mạng nơ-ron tích chập được sử dụng để huấn luyện dữ liệu. Kiến trúc mạng bao 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 được kết nối hoàn toàn. Kiến trúc mạng của nghiên cứu này được tác giả mô tả trong Hình 4.3.

Lớp đầu tiên thực hiện chuẩn hóa tất cả các ảnh có giá trị pixel từ -1 đến 1. Các lớp pooling được thiết kế bằng thực nghiệm, tác giả sử dụng kernel có kích thước 5x5 với không bước trượt cho lớp đầu tiên, những kernel có kích thức là 3x3 và cũng không có bước trượt. Độ sâu tương ứng của mỗi lớp là 16, 32 và 64.

Các lớp max-pooling được xen kẽ với các lớp tích chập. Lớp max-pooling là một trong những công cụ mạnh mẽ thường được CNN sử dụng. Đây là một phương pháp thay đổi kích thước hình ảnh lớn nhưng giữ lại thông tin quan trọng nhất về chúng. Nó liên quan đến việc trượt một khung cửa sổ nhỏ dọc theo một hình ảnh và nhận được giá trị tối đa từ cửa sổ ở mỗi bước. Sau khi gộp, một hình ảnh sẽ có khoảng một phần tư pixel so với đầu. Điều này làm giảm số lượng hyperparameters cần phải tính toán, từ đó giảm thời gian tính toán và tránh việc overfitting. Tất cả các lớp max-pooling được chọn với kernel là 2x2 và không bước trượt.

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.

Bên cạnh đó, chúng tôi cũng sử dụng kích hoạt lớp là ELUs (đơn vị tuyến tính theo cấp số nhân) theo từng lớp co giãn để cải thiện sự hội tụ. Các ELU chức năng cố gắng kích hoạt trung bình gần bằng không để tăng tốc độ học tập. Nó đã được chỉ ra rằng ELUs có thể có được độ chính xác phân loại cao hơn so với ReLUs [10]. Đầu ra của một lớp ReLU có cùng kích thước với đầu vào, sự khác biệt là tất cả các giá trị âm của hình ảnh sẽ bị xóa ngay sau đó.

x; x 0

f ( x) (4)

a(ex 1); x 0 Với a là siêu tham số và một điều kiện là a 0

Đối với đề tài này, chúng tôi đã sử dụng hàm MSE (Mean-Square-Loss) Chức năng này thông thường sử dụng cho các bài toán hồi quy mà chỉ đơn giản là giá trị trung bình của tổng bình phương khác biệt giữa kết quả thực tế và dự đoán.

1  2

MSE yiyi (5)

n  

Để tối ưu hóa sự mất mát này, thuật toán tối ưu hóa Adam đã được sử dụng. Thuật toán tối ưu hóa này thường được chọn cho ứng dụng học tập sâu. Tác giả sử dụng các tham số mặc định của Adam cung cấp trong Keras (learning rate of 0.001,1 0.9 ,2 0.999 , 1e 8 and decay = 0) [11].

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

a) b)

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

4.4. Phần mềm và các thư viện sử dụng để lập trình 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ạy trên desktop Linux hoặc Mac OS X 64-bit hoặc các hệ thống máy chủ, cũng như trên các nền tảng điện toán di động, bao gồm Android và iOS của Apple.

 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 là một framework machine learning được viết bằng Python nhằm giảm thiểu thời gian giữa việc lên các ý tưởng và giai đoạn thực hiện chúng. Nó bao gồm hai API high-level: Keras Sequential và Keras Functional.

 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.

Chương 5: THỰC NGHIỆM

Trong chương này, dữ liệu thu thập được sử dụng để huấn luyện kiến trúc mạng trong chương 4 và kết quả thực nghiệm sẽ được trình bày. Điều này bao gồm (1) môi trường thực nghiệm để thu thập dữ liệu, (2) mô tả tập dữ liệu, (3) phương pháp để tạo ra các nhiều dữ liệu khác nhau, (4) kết quả của quá trình huấn luyện và thử nghiệm.

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

b)

a) c)

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

b)

a) c)

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

Để thu thập dữ liệu đào tạo, chúng tôi điều khiển mô hình xe tự hành theo quỹ đạo ngoài trời được tạo trên mặt phẳng rải nhựa để thu thập hình ảnh có đánh dấu thời gian.

Đường viền hình bầu dục là một đường dài 50 mét và rộng 70 cm với đường viền trong dải băng rộng 10 cm như trong Hình 5.1. Chiếc xe có thể được điều khiển để rẽ trái hoặc rẽ phải trong các đường cong bán kính 3 mét tại một thời điểm. Đường viền hình số 8 bao gồm hai vòng tròn tạo hình thành một giao lộ ngang tiếp tuyến được thể hiện trong Hình 5.2. Quỹ đạo dài 40 mét này có cả đường cong bên phải và bên trái. Bán kính đường cong là 3 mét. Có bốn biển báo giao thông có đường kính 15 cm được dựng lên trên các mép ngoài của đường để hướng dẫn cho xe.

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

Chuẩn bị dữ liệu là vấn đề rất cần thiết khi làm việc với các mạng học tập sâu. Raspberry Pi ghi lại hình ảnh và thông tin lái xe từ người dùng bằng tay lái xe xung quanh đường đua với tốc độ 5-6km / h. Dữ liệu được thu thập chứa hơn 15.500 hình ảnh ghép lại với góc lái. Độ phân giải ban đầu của hình ảnh là 160x120. Pi Camera được cấu hình để chụp ở tốc độ 10 khung hình / giây với thời gian phơi sáng 5000us để tránh hiện tượng mờ do rung động khi xe lái trên đường. Các hình ảnh mẫu của tập dữ liệu này được thể hiện trong Hình 5.3.

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

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

Mô hình học tập sâu có xu hướng vượt quá tập dữ liệu nhỏ vì có quá ít mẫu để đào tạo, dẫn đến một mô hình có hiệu suất tổng quát kém. Tăng cường dữ liệu là một công nghệ chuyên dụng tạo ra nhiều trường hợp dữ liệu huấn luyện hơn bằng cách tạo ra các mẫu mới thông qua việc biến đổi ngẫu nhiên các mẫu hiện có. Phương pháp này làm tăng số lượng của tập huấn luyện. Các phép biến đổi thông thường là là lật ngang, điều chỉnh độ sáng, tạo bóng ngẫu nhiên, thay đổi chiều cao và chiều rộng của ảnh (hình 5.4).

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

Từ tập dữ liệu được lưu trữ, tác giả chia chúng thành hai phần riêng biệt. Một là dữ liệu huấn luyện và một là dữ liệu thử nghiệm với tỷ lệ 80:20. Một sơ đồ huấn luyện được thể hiện trong Hình 5.5. Tác giả tận dụng lợi thế của GPU NVIDIA GeForce 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à30, 50, 100 chu kỳ (Bảng 5.1).

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

Tổng thời gian mà chúng tôi thực hiện đào tạo kết hợp với 100 chu kỳ cho 15500 mẫu là khoảng 280 phút. Do đó, trung bình một chu kỳ mất 168 giây để hoàn thành. Một số hình ảnh đại diện cho các lớp tích chập được thể hiện trong hình 5.6.

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ố thứ Số lượng mẫu Chu kỳ Thời gian Độ chính xác

tự huấn luyện huấn huấn luyện

luyện

1 15500 30 92 minutes 97,08%

2 15500 50 155 minutes 97,77%

a) b)

c) d)

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

5.5. 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 Pi. Mạng sau đó được bộ điều khiển chính của xe sử dụng để cấp khung hình từ Camera Pi làm đầu vào. Trong mỗi giai đoạn điều khiển, mỗi giây 10 hình ảnh được xử lý và tốc độ tối đa của xe xung quanh đường cong là khoảng 5-6 km/h.

Mô hình dự đoán góc lái đạt được độ chính xác khá thuyết phục, cụ thể là 98,23% (Hình 5.7). Kết quả của thí nghiệm này dựa trên mô hình xe tự hành có thể tự động điều hướng trong cả hai quỹ đạo với điều kiện lái xe đa dạng, bất kể cho dù dấu hiệu làn đường có hay không. Giá trị góc lái được dự đoán tương đối chính xác (Hình 5.8).

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

Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN6.1. Kết luận 6.1. Kết luận

Ưu điểm của nghiên cứu này là:

 Tác giả đã ứng dụng mạng neural học sâu trên cấu hình phần cứng thấp và chạy thực nghiệm cho kết quả thuyết phục, cụ thể là 98,23%.

 Ngoài ra, luận văn còn kết hợp nhận dạng biển báo giao thông và xe tự hành trên mô hình thực tế.

 Đề tài còn có thể mở rộng phạm vi ứng dụng trong các loại robot hoặc xe tự hành thực ở các môi trường khác.

 Dữ liệu là một trong những vấn đề quan trọng nhất dẫn đến độ chính xác của mô hình của chúng tôi (Bảng 6.1). Hơn nữa, tăng chu kỳ huấn luyện để mô hình tiếp cận đến vị trí hội tụ là một cách để có một mô hình với kết quả thuyết phục (Bảng 5.1).

Bảng 6.1: Sự ảnh hưởng của số lượng mẫu huấn luyện đến độ chính xác của mô hình

Số thứ Số lượng mẫu Chu kỳ Thời gian huấn Độ chính xác

tự huấn luyện huấn luyện luyện

1 10000 100 173 minutes 96,78%

2 12500 100 212 minutes 97,15%

3 15500 100 280 minutes 98,23%

Nhược điểm: tác giả quan sát thấy trong quá trình huấn luyện / thực nghiệm mô hình thì xảy ra vấn đề về độ trễ của máy ảnh. Việc này được định nghĩa là khoảng thời gian từ khi cảm biến máy ảnh quan sát hiện trường đến khi máy tính thực sự đọc dữ liệu hình ảnh số. Thật không may, thời gian này có thể dài đáng kể tùy thuộc vào máy ảnh và hiệu suất của Pi, khoảng 300-350 mili giây. Điều này là cao hơn đáng kể so với độ trễ của nhận thức của con người. Độ trễ máy ảnh cao hơn có thể ảnh hưởng

tiêu cực đến hiệu suất điều khiển, đặc biệt đối với các ứng dụng quan trọng về an toàn, bởi vì mạng thần kinh học sâu sẽ phân tích các cảnh cũ.

6.2. Hướng phát triển

Tóm lại, tác giả đã tạo ra một mô hình dự đoán góc lái của một mô hình xe tự hành sử dụng mạng nơ-ron tích chập. Mặc dù đã đạt được một kết quả khả quan nhưng trong tương lai gần, tác giả sẽ tiếp cận một số nghiên cứu sau đây:

1) Nghiên cứu cải thiện độ chính xác của mô hình tốt hơn nữa sẽ là vấn đề mà nhóm quan tâm.

2) Xác định và sử dụng máy ảnh có tốc độ màn sập cao cũng như cải thiện hiệu suất của mô hình xe tự hành

3) Thêm phần huấn luyện giá trị tốc độ của mô hình xe tự hành với tham vọng xe chạy được tốc độ cao và chính xác hơn.

TÀI LIỆU THAM KHẢO

[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

[2] S. G. Jeong et al., “Real time lane detection for autonomous navigation,” in

[3] K. A. Redmill, S. Upadhya, A. Krishnamurthy, and Ü. Özgüner, “A lane tracking system for intelligent vehicle application,” in Proc. IEEE Intell.Transp. [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

[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

[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

[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)

[8] Vicente Milanés, José E. Naranjo, Carlos González, Javier Alonso and Teresa de Pedro, “ Autonomous vehicle based in cooperative GPS and inertial systems”, Robotica (2008) volume 26, pp. 627-633, Cambridge University Press [9] Araki M, “PID Control” Control systems robotics and automation – Vol. II [10] Djork-Arné Clevert, Thomas Unterthiner, Sepp Hochreiter, "Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)" Published asa conference paper at ICLR 2016

[11] Diederik P. Kingma, Jimmy Ba, “Adam: A method for Stochastic Optimization” Published as a conference paper at ICLR 2015

[12] Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov, “Dropout: A Simple Way to Prevent Neural Networks from Overfitting”, Journal of Machine Learning Research 15 (2014)

PHỤ LỤC

Hai bài báo đã được đăng trong tạp chí quốc tế, thuộc hệ thống IEEE “4th International Conference on Green Technology and Sustainable Development – GTSD 2018”:

[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

[2] Truong-Dong Do, Minh-Thien Duong, Quoc-Vu Dang and My-Ha Le, “Real-Time Self-Driving Car Navigation Using Deep Neural Network”, 2018 4th International Conference on Green Technology and Sustainable Development (GTSD). IEEE, 2018. p. 7-12.

Một phần của tài liệu Điều hướng xe tự hành dùng trí tuệ nhân tạo (Trang 54)

Tải bản đầy đủ (DOC)

(69 trang)
w