Sử dụng học sâu trong bài toán xác định tâm làn đường cho các thiết bị tự hành
Trong những năm gần đây, cùng với sự phát triển của công nghệ thông tin, trí tuệ
nhân tạo, lĩnh vực tự động hóa cũng đang phát triển hết sức mạnh mẽ. Nhu cầu về xe
không người lái, các thiết bị tự hành ngày càng lớn. Trong đó, nhận dạng, xác định làn
đường đối các thiết bị tự hành (Autonomous vehicles) cũng như các hệ thống hỗ trợ lái
xe (Driver Assistance Systems) là bài toán đặc biệt quan trọng, đòi hỏi ngày càng cao về
sự chính xác, an toàn ngay cả trong nhiều điều kiện khác nhau như ánh sáng, thời tiết
thay đổi, sự đa dạng về môi trường hoạt động. Đối với các thiết bị tự hành trong công
nghiệp trước đây, dữ liệu đầu vào thường lấy từ các cảm biến như cảm biến hồng ngoại,
cảm biến từ trường. cùng với những thiết kế cố định đối với môi trường hoạt động như
ánh sáng, line đường., điều đó làm giới hạn phạm vi hoạt động cũng như tính đa dụng
của các thiết bị. Những thiết bị tự hành hiện đại hiện nay như ô tô không người lái, máy
bay không người lái, robot vận chuyển hàng hóa, drone giao hàng tự động thường sử
dụng các hệ thống camera để thu thập dữ liệu cho việc xác định quỹ đạo di chuyển. Dữ
liệu từ cảm biến camera có thể được xử lý bằng các thuật toán xử lý ảnh thông thường
như lọc màu, phát hiện cạnh, xoay ảnh, lọc nhiễu. để bóc tách được các line đường từ
đó xác định được làn đường và tâm đường. Tuy nhiên, những thuật toán đó thường thiếu
ổn định với nhiễu do độ sáng thay đổi, làn đường xuất hiện bóng cây, làn đường bị mưa
ướt và thậm chí không thể xác định được làn đường khi line đường bị mất. Một ví dụ
minh họa về sử dụng xử lý ảnh trong phát hiện line đường như trong hình 1.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tóm tắt nội dung tài liệu: Sử dụng học sâu trong bài toán xác định tâm làn đường cho các thiết bị tự hành
n đường (pixel màu đỏ ứng với làn đường) Tuy nhiên, các mô hình này vẫn có một vài hạn chế: - Xây dựng dữ liệu huấn luyện mô hình khó khăn, công việc gán nhãn cho các pixel trong ảnh có phải làn đường không tốn nhiều thời gian, dễ xảy ra nhầm lẫn. - Mô hình có độ phức tạp tính toán lớn, cần nhiều lớp convolution ở cả phần encoder và decoder, cần các bộ xử lý mạnh mẽ như GPU mới có thể xử lý trong thời gian thực. 80 Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University - Nghiên cứu này nhằm đề xuất một mô hình deep learning có khả năng tốt trong việc dự đoán đường đi cho các thiết bị tự hành mà chỉ có năng lực xử lý nhỏ, dễ dàng trong việc xây dựng dữ liệu huấn luyện. 2. Xây dựng mô hình dự đoán vị trí tâm đường Mục tiêu của nghiên cứu là xây dựng một mô hình học sâu có kích thước nhỏ nhất, đơn giản nhất mà vẫn đáp ứng được yêu cầu của bài toán xác định làn đường cho thiết bị tự hành trong nhiều điều kiện đường đi khác nhau. Đầu ra của thuật toán là vị trí tâm đường thiết bị cần hướng đến thay vì là hình ảnh phân loại các pixel như các mạng Segmentation. Việc đầu ra của thuật toán đơn giản làm giảm thiểu rất nhiều độ phức tạp tính toán của mô hình. Mô hình đề xuất được xây dựng trên kiến trúc mạng CNN (Convolution Neural Network) [6] thông thường. Hình 4. So sánh kiến trúc mạng CNN và mạng Segmentation a) Kiến trúc mạng CNN; b) Kiến trúc mạng Segmentation 2.1. Kiến trúc mô hình Đối với các mạng neuron nhân tạo (Artificial Neural Network - ANN) thông thường, các đặc trưng của bức ảnh được trích xuất thông qua các thuật toán xử lý ảnh như lọc ảnh, thay đổi không gian màu, các phép biến hình, threshold... trước khi đưa vào mạng ANN. Khi sử dụng các bộ lọc số [7] để xem xét một vài đặc trưng của ảnh (Hình 5). Tuy nhiên, đối với các mô hình học sâu, các đặc trưng trên được trích xuất một cách tự động thông qua các lớp trích xuất đặc trưng, đối với đầu vào là ảnh số, các lớp tích chập (Convolution layers) thường được sử dụng và cho kết quả rất tốt. Những mô hình học sâu như thế thường được gọi là mạng tích chập. 81 Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University Hình 5. Sử dụng bộ lọc số để xem xét các đặc trưng của ảnh Giống như các lớp ẩn khác, lớp tích chập lấy dữ liệu đầu vào, thực hiện các phép chuyển đổi để tạo ra dữ liệu đầu vào cho lớp kế tiếp (đầu ra của lớp này là đầu vào của lớp sau). Phép biến đổi được sử dụng là phép tính tích chập. Mỗi lớp tích chập chứa một hoặc nhiều bộ lọc - bộ phát hiện đặc trưng (filter - feature detector) cho phép phát hiện và trích xuất những đặc trưng khác nhau của ảnh. Mạng CNN là một tập hợp các lớp tích chập chồng lên nhau và sử dụng các hàm nonlinear activation như ReLU [8] và tanh để kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo. Đối với các thuật toán xử lý ảnh thông thường, các tham số của bộ lọc được chọn theo mục đích cụ thể như bộ lọc phát hiện cạnh, bộ lọc làm sắc nét, bộ lọc làm mờ Tuy nhiên, trong mạng CNN các tham số sẽ được khởi tạo ngẫu nhiên (có thể theo một phân bố xác suất nào đó, hoặc bằng 0) trong quá trình huấn luyện, mô hình sẽ tự học được các tham số để trích xuất những đặc trưng cần thiết của bức ảnh. Mô hình trong nghiên cứu này phát triển từ cấu trúc mạng CNN, đầu vào của mạng là ảnh RGB kích thước 160x240x3, mạng sử dụng hàm sigmoid hoặc hàm tanh là activation cuối cùng, trả về vị trí tâm đường chuẩn hóa. Hình 6. Mô hình mạng CNN dự đoán tâm đường 82 Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University Trong mô hình CNN có 2 khía cạnh cần quan tâm là tính bất biến (Location Invariance) và tính bố cục (Compositionality). Với cùng một đối tượng, nếu đối tượng này được chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật toán sẽ bị ảnh hưởng đáng kể. Pooling layer sẽ cho bạn tính bất biến đối với phép dịch chuyển, phép quay và phép co giãn. Tính bố cục cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter. Đó là lý do tại sao CNNs cho ra mô hình với độ chính xác rất cao. Cũng giống như cách con người nhận biết các vật thể trong tự nhiên. Ngoài ra, để tăng tốc độ huấn luyện, nhóm tác giả sử dụng kỹ thuật chuẩn hóa trung gian (Batch Normalization) [9] sau các lớp tích chập và Dropout [10] để giảm hiện tượng overfiting. 2.2. Huấn luyện mô hình 2.2.1. Xây dựng mô hình Sử dụng ngôn ngữ python [11] và Keras-Tensorflow [12] nhóm nghiên cứu xây dựng mô hình. Dưới đây là kiến trúc cụ thể của mô hình: _______________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_1 (Conv2D) (None, 80, 120, 16) 1216 _________________________________________________________________ batch_normalization_1 (Batch (None, 80, 120, 16) 64 _________________________________________________________________ leaky_re_lu_1 (LeakyReLU) (None, 80, 120, 16) 0 _________________________________________________________________ max_pooling2d_1 (MaxPooling2 (None, 40, 60, 16) 0 _________________________________________________________________ conv2d_2 (Conv2D) (None, 40, 60, 32) 4640 _________________________________________________________________ batch_normalization_2 (Batch (None, 40, 60, 32) 128 _________________________________________________________________ leaky_re_lu_2 (LeakyReLU) (None, 40, 60, 32) 0 _________________________________________________________________ max_pooling2d_2 (MaxPooling2 (None, 20, 30, 32) 0 _________________________________________________________________ conv2d_3 (Conv2D) (None, 20, 30, 64) 18496 _________________________________________________________________ leaky_re_lu_3 (LeakyReLU) (None, 20, 30, 64) 0 _________________________________________________________________ max_pooling2d_3 (MaxPooling2 (None, 10, 15, 64) 0 _________________________________________________________________ conv2d_4 (Conv2D) (None, 10, 15, 128) 73856 83 Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University _________________________________________________________________ leaky_re_lu_4 (LeakyReLU) (None, 10, 15, 128) 0 _________________________________________________________________ max_pooling2d_4 (MaxPooling2 (None, 5, 7, 128) 0 _________________________________________________________________ flatten_1 (Flatten) (None, 4480) 0 _________________________________________________________________ dropout_1 (Dropout) (None, 4480) 0 _________________________________________________________________ dense_1 (Dense) (None, 64) 286784 _________________________________________________________________ leaky_re_lu_5 (LeakyReLU) (None, 64) 0 _________________________________________________________________ dense_2 (Dense) (None, 32) 2080 _________________________________________________________________ leaky_re_lu_6 (LeakyReLU) (None, 32) 0 _________________________________________________________________ dense_3 (Dense) (None, 1) 33 _________________________________________________________________ activation_1 (Activation) (None, 1) 0 ================================================================= Total params: 387,297 (3 trăm 87 nghìn 297) Trainable params: 387,201 Non-trainable params: 96 Tổng tham số của mô hình là 387,297. Mô hình bao gồm 5 lớp Convolution, 2 lớp Dense, sử dụng hàm LeakyReLU làm activation (hàm phi tuyến) giữa các lớp, và hàm sigmoid ở lớp cuối cùng. 2.2.2. Chuẩn bị dữ liệu Dữ liệu hình ảnh (bên trái hình 7, 8) được thu thập bằng camera Astra trên xe mô hình và trên sa hình “Cuộc đua số” năm 2019 do tập đoàn FPT phối hợp Đài Truyền hình Việt Nam tổ chức (phần màu đỏ ở góc thể hiện hướng rẽ của xe tại ngã ba, ngã tư tiếp theo). Sử dụng Toolbox xây dựng trên python với opencv để gán nhãn tâm đường (màu xanh lá cây) như hình bên phải sau đó sử dụng xử lý ảnh để xác định vị trí tâm đường và chuẩn hóa theo chiều rộng của ảnh. Input data là tập ảnh bên trái với label là vị trí tâm đường chuẩn hóa tương ứng. Dữ liệu chuẩn bị gồm 15000 ảnh với các địa hình, cung đường trong các điều kiện ánh sáng khác nhau. Dữ liệu được chia thành 3 tập con: tập huấn luyện (training set) để huấn luyện mô hình, tập kiểm soát (validation set) để giám sát sự overfiting của mô hình và tập đánh giá (test set) dùng để đánh giá kết quả mô hình sau khi huấn luyện. 84 Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University Hình 7. Ảnh camera thu thập dữ liệu huấn luyện khi thiết bị di động di chuyển trong điều kiện đường mất làn, đường có bóng râm Hình 8. Ảnh camera thu thập dữ liệu huấn luyện khi thiết bị di động di chuyển trong đường hầm với cường độ ánh sáng thay đổi trong điều kiện khác nhau 2.2.3. Kết quả Mô hình được huấn luyện trên phần cứng: CPU: Intel Core i5 8400 Test data: 1500 GPU: Nvidia GTX 1060 6GB batch_size: 512 Training data: 12000 tổng epochs: 60 Validation data: 1500 Optimizer: Adam Thời gian huấn luyện dưới 10 phút. Kết quả huấn luyện của mô hình mạng Deep learning đề xuất xác định tâm đường được đưa ra trên hình 9, sai lệch chuẩn hóa (1,0 tương đương với 2,4 m thực tế) của tâm đường của mô hình dự đoán so với nhãn trên các tập huấn luyện và tập kiểm soát. Sai lệch giảm qua nhiều vòng huấn luyện (epochs - mỗi vòng huấn luyện mô hình sẽ được học toàn bộ dữ liệu từ tập huấn luyện). Kết quả huấn luyện ở vòng cuối cùng: sai lệch trên tập huấn luyện (training loss) là 0,0034 ( 0,8 cm), sai lệch trên tập kiểm soát (validation loss) là 0,0036 ( 0,9 cm) (hàm lỗi - loss function: mean squared error). 85 Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University Training loss và validation loss giảm đều, mượt cho thấy mô hình hội tụ tốt và không xảy ra hiện tượng overfiting. Trên tập kiểm tra, mô hình cho kết quả sai lệch (loss) cuối cùng là 0,0056 ( 1,3 cm), tương đối sát với trên tập kiểm soát (0,0036). Hình 9. Kết quả huấn luyện của mô hình mạng deep learning đề xuất xác định tâm đường 3. Kết luận Có thể thấy mô hình nhóm nghiên cứu đưa ra cách xác định vị trí tâm đường và đưa ra kết quả dự đoán tâm đường chính xác với vị trí tâm đường được gán nhãn. Mô hình sau khi huấn luyện cũng cho kết quả dự đoán tốt khi thực nghiệm, xác định được chính xác vị trí tâm đường trong các điều kiện khác nhau. Tốc độ tính toán cao, độ trễ trung bình là 14 ms, đạt 60 fps trên Jetson Tx2, đảm bảo hoạt động trên thời gian thực đối với phần cứng có khả năng tính toán không quá mạnh. Kết quả nghiên cứu này có thể hoàn thiện ứng dụng trong bài toán điều khiển các thiết bị tự hành di chuyển trong các môi trường đô thị. Cụ thể, kết quả nghiên cứu này được áp dụng cho đội thi MTA_Race4Fun của Đại học Kỹ thuật Lê Qúy Đôn trong cuộc thi “Cuộc đua số” năm 2019 do Tập đoàn FPT phối hợp Đài Truyền hình Việt Nam tổ chức. Đội thi MTA_Race4Fun đã đạt chức vô địch toàn quốc. Trong quá trình thực nhiệm ở vòng bán kết (Miền Bắc) và vòng chung kết quốc gia, với điều kiện sa hình thi đấu khác nhau, điều kiện ánh sáng được thay đổi ngẫu nhiên (sử dụng các đèn led màu khác nhau tạo hiệu ứng, đi trong đường hầm, hiệu ứng bóng râm giả), địa hình thay đổi (đi trong đường hầm, trên cầu), có những đoạn đường mất line 2 bên (đoạn đường tuyết, đoạn đường không có line), kết quả mô hình đưa ra để dự đoán tâm đường đi chính xác cao, không gặp sự cố, đảm bảo thiết bị di chuyển trơn tru. Tài liệu tham khảo 1. MMichael Nielsen (2019). Neural Networks and Deep Learning. Springer US, pp. 2-4. 2. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016). Deep learning. The MIT Press US, pp. 326-365. 86 Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University 3. Malte Oeljeklaus, Frank Hoffmann, Torsten Bertram (2018). A Fast Multi-Task CNN for Spatial Understanding of Traffic Scenes. 2018 21st International Conference on Intelligent Transportation Systems (ITSC), Maui, pp. 2825-2830. 4. Liang-Chieh Chen, Yukun Zhu, George Papandreou, Florian Schroff, and Hartwig Adam (2018). Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation, 2018 European Conference on Computer Vision (ECCV), Munich, pp. 833-851. 5. Yuenan Hou, Zheng Ma, Chunxiao Liu, and Chen Change Loy (2019). Learning Lightweight Lane Detection CNNs by Self Attention Distillation. 2019 International Conference on Computer Vision (ICCV), Seoul , pp. 1013-1021. 6. Sharif Amit Kamran (2018). Efficient Yet Deep Convolutional Neural Networks for Semantic Segmentation. 2018 International Symposium on Advanced Intelligent Informatics (SAIN), Yogyakarta, pp. 123-130. 7. Sandipan Dey (2018). Hands-On Image Processing with Python: Expert techniques for advanced image analysis and effective interpretation of image data. Packt UK. 8. Takio Kurita (2017). Improvement of learning for CNN with ReLU activation by sparse regularization. 2017 International Joint Conference on Neural Networks (IJCNN), Anchorage, pp. 2684-2691. 9. Vignesh Thakkar, Suman Tewary, Chandan Chakraborty (2018). Batch Normalization in Convolutional Neural Networks. 2018 Fifth International Conference on Emerging Applications of Information Technology (EAIT), Kolkata, pp. 1-5. 10. ByungSoo Ko, Han-Gyu Kim, Ho-Jin Choi (2017). Controlled dropout: A different dropout for improving training speed on deep neural network. 2017 IEEE International Conference on Systems, Man, and Cybernetics (SMC), Banff, pp. 972-977. 11. François Chollet (2017). Deep Learning with Python. Manning US. 12. Aurélien Géron (2017). Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. O'Reilly Media US. USE OF DEEP LEARNING IN THE PROBLEM FOR DETERMINING THE CENTER OF ROAD LANE FOR AUTONOMOUS VEHICLES Abstract: The paper proposes a deep learning model based on CNN architecture in the problem of determining the center of the road lane for autonomous vehicles, helping to improve quality, ensure accuracy in many different environmental conditions in light, weather change and complex terrain; The requirement of calculation complexity is not too high and it is easy to build the training data set. Keywords: Autonomous vehicles; advanced driver assitance systems; lane detection algorithm; artificial intelligence; deep learning; Convolution Neutral Network - CNN. Ngày nhận bài: 31/12/2019; Ngày nhận bản sửa lần cuối: 08/4/2020; Ngày duyệt đăng: 23/6/2020 87
File đính kèm:
- su_dung_hoc_sau_trong_bai_toan_xac_dinh_tam_lan_duong_cho_ca.pdf