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

Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University  
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  
Nguyễn Ngọc Tuấn*, Lại Tiến Đệ  
Đại học Kỹ thuật Lê Quý Đôn  
Tóm tắt  
Bài báo đề xuất một mô hình học sâu dựa trên kiến trúc mạng CNN để xác định tâm làn  
đường đối với các thiết bị tự hành, đảm bảo độ chính xác trong nhiều điều kiện môi trường  
về ánh sáng và địa hình; yêu cầu độ phức tạp tính toán thấp, dễ dàng xây dựng tập dữ liệu  
huấn luyện.  
Từ khóa: Thiết bị tự hành; hệ thống hỗ trợ lái; thuật toán xác định làn đường; trí tuệ nhân tạo;  
học sâu; mạng nơron tích chập CNN.  
1. Đặt vấn đề  
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.  
Tuy nhiên, trên thực tế, vạch kẻ đường không phải lúc nào cũng rõ ràng như trong  
ví dụ trên, line đường có thể bị mờ hoặc bị các phương tiện khác che khuất dẫn đến  
* Email: [email protected]om  
78  
Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University  
thuật toán không thể bóc tách được. Đây là hạn chế rất lớn đối với các thuật toán xử lý  
ảnh thông thường.  
Gray scale  
Origin  
Threshold  
Houghline detection  
Hình 1. Các giai đoạn xử lý ảnh lọc xác định làn đường sử dụng camera  
Thời gian gần đây, lĩnh vực trí tuệ nhân tạo nói chung và học sâu nói riêng đã đạt  
được rất nhiều thành tựu đột phá trong nhiều lĩnh vực của đời sống, công nghệ. Học  
sâu (deep learning) là một nhánh của ngành máy học dựa trên một tập hợp các thuật  
toán để cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp  
xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều biến đổi phi tuyến  
nhằm xấp xỉ một hàm số bất kì giữa đầu ra (output) và đầu vào (input) [1]. Học  
sâu là một tập các kỹ thuật học máy mạnh sử dụng mạng neuron nhân tạo nhiều lớp.  
79  
Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University  
Nhiều kiến trúc học sâu khác nhau như mạng tri giác đa lớp (MLP: Multi Layers  
Perceptron), mạng neuron tích chập (CNN - Convolution Neutral Network) [2], mạng  
tin cậy sâu (DBN - Deep Belief Network) và mạng neuron hồi quy (RNN - Recurrent  
Neutral Network) đã được áp dụng cho các lĩnh vực như thị giác máy tính, tự động nhận  
dạng giọng nói, xử lý ngôn ngữ tự nhiên, nhận dạng âm thanh ngôn ngữ và tin sinh học,  
chúng đã được chứng minh là tạo ra các kết quả rất tốt đối với nhiều nhiệm vụ  
khác nhau.  
Đã có rất nhiều nghiên cứu nhằm ứng dụng deep learning vào bài toán xác định  
làn đường và cho kết quả rất tốt [3, 4, 5]. Với các thuật toán sử dụng mô hình deep  
learning, các mô hình thường được xây dựng theo kiến trúc giống với các mạng  
Segmentation [6], từ hình ảnh đầu vào, mô hình sẽ phân loại các pixel có phải làn  
đường hay không.  
Hình 2. Kiến trúc cơ bản của một mạng Segmentation  
Hình 3. Sử dụng mạng Segmentation để xác định là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)  
=================================================================  
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)  
_________________________________________________________________  
max_pooling2d_1 (MaxPooling2 (None, 40, 60, 16)  
_________________________________________________________________  
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)  
_________________________________________________________________  
max_pooling2d_2 (MaxPooling2 (None, 20, 30, 32)  
_________________________________________________________________  
conv2d_3 (Conv2D) (None, 20, 30, 64) 18496  
_________________________________________________________________  
leaky_re_lu_3 (LeakyReLU) (None, 20, 30, 64)  
_________________________________________________________________  
max_pooling2d_3 (MaxPooling2 (None, 10, 15, 64)  
_________________________________________________________________  
conv2d_4 (Conv2D) (None, 10, 15, 128) 73856  
Output Shape  
Param #  
0
0
0
0
0
0
83  
Journal of Science and Technique - N.206 (5-2020) - Le Quy Don Technical University  
_________________________________________________________________  
leaky_re_lu_4 (LeakyReLU) (None, 10, 15, 128)  
_________________________________________________________________  
max_pooling2d_4 (MaxPooling2 (None, 5, 7, 128)  
_________________________________________________________________  
flatten_1 (Flatten) (None, 4480)  
_________________________________________________________________  
dropout_1 (Dropout) (None, 4480)  
_________________________________________________________________  
dense_1 (Dense) (None, 64) 286784  
_________________________________________________________________  
leaky_re_lu_5 (LeakyReLU) (None, 64)  
_________________________________________________________________  
dense_2 (Dense) (None, 32) 2080  
_________________________________________________________________  
leaky_re_lu_6 (LeakyReLU) (None, 32)  
_________________________________________________________________  
dense_3 (Dense) (None, 1) 33  
_________________________________________________________________  
activation_1 (Activation) (None, 1)  
0
0
0
0
0
0
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  
GPU: Nvidia GTX 1060 6GB  
Training data: 12000  
Test data: 1500  
batch_size: 512  
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  
pdf 10 trang yennguyen 46600 Free
Bạn đang xem 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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfsu_dung_hoc_sau_trong_bai_toan_xac_dinh_tam_lan_duong_cho_ca.pdf