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: ngoctuanhvhn@gmail.com
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
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:
- su_dung_hoc_sau_trong_bai_toan_xac_dinh_tam_lan_duong_cho_ca.pdf