Nhận dạng các đối tượng tham gia giao thông dùng mạng Nơ Ron học sâu

NHẬN DẠNG CÁC ĐỐI TƢỢNG THAM GIA GIAO THÔNG DÙNG  
MẠNG NƠ RON HỌC SÂU  
IDENTIFY OBJECTS PARTICIPATED IN TRAFFIC SYSTEM USING DEEP  
LEARNING NEURAL NETWORK  
Trần Quốc Toản1, Lê Mỹ Hà2  
1 2Trường đại học Sư phạm Kỹ thuật TP.HCM  
TÓM TẮT  
Trong nghiên cứu này tác giả đề xuất phương pháp nhận dạng các đối tượng tham gia giao  
thông sử dụng mạng nơron tích chập – Convolution Neural Network – CNN. Kiến trúc CNN tác  
giả xây dựng có 15 lớp: 3 lớp tích chập (Convolutional), 3 lớp giảm mẫu “Pooling”, 4 lớp tinh  
chỉnh các đơn vị tuyến tính “Rectified Linear Unit”, 2 lớp kết nối đầy đủ “Fully Connected”, 1  
lớp “Softmax”, 1 lớp “Input” và 1 lớp “Output”. Giải thuật đề xuất được thực nghiệm để nhận  
dạng nhiều loại đối tượng. Thời gian huấn luyện tùy thuộc vào mỗi tập dữ liệu nhiều và ít khác  
nhau, độ chính xác của mạng có thể lên tới 99%.  
Từ khóa: Mạng nơ ron tích chập; giảm mẫu; tinh chỉnh các đơn vị tuyến tính; kết nối đầy đủ.  
ABSTRACT  
This research proposes a method for identifying traffic participants using Convolution Neural  
Network (CNN). The model has 15 layers: 3 “Convolutional” layers, 3 “Pooling” layers, 4  
“Rectified Linear Unit” layers, 2 “Fully Connected” layers, 1 “Softmax” layers, 1 “Input”  
layer and 1 "Output" layer. The proposed algorithm is experimented to identify many types of  
objects. The training time depends on how many data sets are different and less, and the  
accuracy of the network is archived up to 99%.  
Keywords: Convolutional Neural Network; Pooling; Rectified Linear Unit; Fully Connected.  
Hiện nay trên thế giới có một số mô hình  
kiến trúc CNNs đạt được kết quả khả quan  
như:  
1. GIỚI THIỆU  
Học sâu (Deep learning) là một thuật  
toán dựa trên một số ý tưởng từ não bộ tới  
việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn  
trừu tượng, qua đó làm rõ nghĩa của các loại  
dữ liệu. Deep Learning được ứng dụng trong  
nhận diện hình ảnh, nhận diện giọng nói, xử  
lý ngôn ngữ tự nhiên.  
-
Lenet [1]: Đây là mô hình CNN  
thành công đầu tiên, đặc biệt là trong việc  
nhận dạng chữ số, ký tự trong văn bản. Được  
phát triển bởi Yann Lecun vào cuối những  
năm 90.  
Hiện nay rất nhiều các bài toán nhận  
dạng sử dụng học sâu để giải quyết do học  
sâu có thể giải quyết các bài toán với số lượng  
lớn, kích thước đầu vào lớn với hiệu năng  
cũng như độ chính xác vượt trội so với các  
phương pháp phân lớp truyền thống.  
-
AlexNet [2]: Được phát triển bởi  
Alex Krizhevsky, Ilya Sutskever và Geoff  
Hinton. Lần đầu được giới thiệu vào năm  
2012 với cấu trúc khá tượng tự như LeNet  
nhưng với số lượng neural, filter và layer lớn  
hơn. Được coi là mạng neural đầu tiên phổ  
biến rộng rãi khả năng của CNNs.  
Convolutional Neural Network (CNNs –  
Mạng nơ-ron tích chập) là một trong những  
mô hình Deep Learning tiên tiến giúp cho  
chúng ta xây dựng được những hệ thống  
thông minh với độ chính xác cao.  
-
ZF Net [3]: Là mạng CNNs tốt nhất  
năm 2013 được phát triển bởi Matthew Zeiler  
và Rob Fergus (ZF là viết tắt của Zeiler và  
Fergus). Mạng neural này được phát triển từ  
AlexNet với việc tinh chỉnh các  
hyperparameter (filter size, stride…). Với  
những layer gần input layer, filter size và  
stride nhỏ hơn.  
Công thức tính tích chập:  
a
b
w x, y * f x, y   
w x, y f x s, y t  
(1)  
   
sa tb  
Với a=(m-1)/2, b=(n-1)/2, w(x,y) là hàm  
ảnh, f(x,y) là bộ lọc.  
-
GoogLeNet [4]: Là mạng CNNs tốt  
nhất năm 2014 được phát triển bởi Szegedy từ  
Google. Với một số thay đổi như giảm thiểu  
số lượng tham số trong AlexNet từ 60 triệu  
xuống còn 4 triệu sử dụng Average Pooling  
thay cho FC-Layer.  
-
VGGNet [5]: Là mạng CNNs tốt  
nhất năm 2015 được phát triển bởi Karen  
Simonyan và Andrew Zisserman. Sử dụng  
filter 3x3 và pooling 2x2 từ đầu tới cuối  
mạng.  
Hình 1: Minh họa tích chập  
Ta sử dụng bao nhiêu filter để tính tích  
chập ngõ vào thì sẽ có bấy nhiêu ảnh ngõ  
ra sau lớp tích chập đó.  
-
ResNet [6]: Là mạng CNNs tốt nhất  
năm 2015 được phát triển bởi Kaiming Heatal  
(viết tắt của Resividual Net). Bỏ qua  
FC-Layer ở cuối mạng và sử dụng “special  
skip connection” và “batch normalization”.  
Và vẫn được tiếp tục phát triển, với kết quả  
gần nhất được xuất bản vào tháng 3 năm  
2016.  
Mục đích của bài báo là tác giả sẽ xây  
dựng một mô hình cấu trúc CNNs mới và tiến  
hành huấn luyện mạng trên nhiều tập dữ liệu  
khác nhau để tối ưu mô hình kiến trúc mạng  
và đặc biệt tác giả sẽ huấn luyện mạng với dữ  
liệu là: Bicycle, Car, Dog, Motobike, People  
để ứng dụng vào việc nhận dạng các đối  
tượng tham gia giao thông.  
Hình 2: Các trọng số được kết nối vào  
nơron đầu tiên  
Các trọng số của filter ban đầu sẽ được  
khởi tạo ngẫu nhiên và sẽ được học dần  
trong quá trình huấn luyện mô hình.  
Phần còn lại của bài báo được bố cục như  
sau: phần 2 trình bày chi tiết mô hình CNN,  
phần 3 trình bày phương pháp thực hiện, phần  
4 đưa ra kết quả mô phỏng và đánh giá, phần  
5 kết luận của bài báo.  
2. CHI TIẾT CÁC LỚP CỦA MÔ HÌNH  
CNNs  
Hình 3: Kích thước ngõ ra của lớp tích  
chập  
2.1 Lớp tích chập – Convolutional  
Lớp này chính là nơi thể hiện tư  
tưởng ban đầu của mạng nơ-ron tích chập.  
Thay vì kết nối toàn bộ điểm ảnh, lớp này  
sẽ sử dụng một bộ các bộ lọc (filters) có  
kích thước nhỏ so với ảnh (thường là 3×3  
hoặc 5×5) áp vào một vùng trong ảnh và  
tiến hành tính tích chập giữa bộ filter và  
giá trị điểm ảnh trong vùng cục bộ đó. Bộ  
filter [7] sẽ lần lượt được dịch chuyển  
theo một giá trị bước trượt (stride) chạy  
dọc theo ảnh và quét toàn bộ ảnh.  
Công thức tính ngõ ra tích chập:  
푊−퐹+2푃  
+1  
(2)  
푆
Trong đó: W: kích thước ma trận chập  
F: kích thước kernel  
P: Padding (mặc định là 0)  
S: Stride (mặc định là 1)  
2.2 Lớp tinh chỉnh các đơn vị tuyến tính –  
Rectifed Linear Unit (ReLU)  
Lớp này thường được cài đặt ngay  
sau lớp Convolutional. Lớp này sử dụng  
hàm kích hoạt f(x) = max(0, x). Nói một  
cách đơn giản, lớp này có nhiệm vụ  
chuyển toàn bộ giá trị âm trong kết quả  
lấy từ lớp Convolutional thành giá trị 0.  
Ý nghĩa của cách cài đặt này chính là tạo  
nên tính phi tuyến cho mô hình. Tương tự  
như trong mạng truyền thẳng, việc xây  
dựng dựa trên các phép biến đổi tuyến  
tính sẽ khiến việc xây dựng đa tầng đa  
lớp trở nên vô nghĩa. Có rất nhiều cách  
để khiến mô hình trở nên phi tuyến như  
sử dụng các hàm kích hoạt sigmoid, tanh,  
… nhưng hàm f(x) = max(0, x) dễ cài đặt,  
tính toán nhanh mà vẫn hiệu quả.  
Hình 5: Cách hoạt động của hàm  
maxpooling  
Như vậy sau khi qua lớp Pooling, ảnh sẽ  
giảm kích thước xuống còn 32×32 (kích  
thước mỗi chiều giảm 2 lần).  
Hình 6: Kích thước ngõ ra của lớp  
Pooling  
Công thức tính ngõ ra Pooling:  
푊−퐹  
+ 1  
(3)  
푆
Với W: kích thước ma trận pooling  
F: kích thước kernel  
S: Stride  
Lớp Pooling có vai trò giảm kích thước  
dữ liệu. Với một bức ảnh kích thước lớn  
qua nhiều lớp Pooling sẽ được thu nhỏ lại  
tuy nhiên vẫn giữ được những đặc trưng  
cần cho việc nhận dạng (thông qua cách  
lấy mẫu). Việc giảm kích thước dữ liệu sẽ  
làm giảm lượng tham số, tăng hiệu quả  
tính toán và góp phần kiểm soát hiện  
tượng quá khớp (overfitting).  
Hình 4: Hàm kích hoạt ReLU  
2.3 Lớp giảm mẫu – Pooling  
Lớp này sử dụng một cửa sổ trượt [8]  
quét qua toàn bộ ảnh dữ liệu, mỗi lần  
trượt theo một bước trượt (stride) cho  
trước. Khác với lớp Convolutional, lớp  
Pooling không tính tích chập mà tiến  
hành lấy mẫu (subsampling). Khi cửa sổ  
trượt trên ảnh, chỉ có một giá trị được  
xem là giá trị đại diện cho thông tin ảnh  
tại vùng đó (giá trị mẫu) được giữ lại.  
Các phương thức lấy phổ biến trong lớp  
Pooling là MaxPooling (lấy giá trị lớn  
nhất), MinPooling (lấy giá trị nhỏ nhất)  
và AveragePooling (lấy giá trị trung bình).  
Xét một ảnh có kích thước 64×64 và lớp  
Pooling sử dụng filter có kích thước 2×2  
với bước trượt stride = 2, phương pháp sử  
dụng là MaxPooling. Filter sẽ lần lượt  
duyệt qua ảnh, với mỗi lần duyệt chỉ có  
giá trị lớn nhất trong 4 giá trị nằm trong  
vùng cửa sổ 2×2 của filter được giữ lại và  
đưa ra đầu ra.  
2.4 Lớp kết nối đầy đủ  
Lớp này tương tự với lớp trong mạng  
nơ-ron truyền thẳng, các giá trị ảnh được  
liên kết đầy đủ vào node trong lớp tiếp  
theo. Sau khi ảnh được xử lý và rút trích  
đặc trưng từ các lớp trước đó, dữ liệu ảnh  
sẽ không còn quá lớn so với mô hình  
truyền thẳng nên ta có thể sử dụng mô  
hình truyền thẳng để tiến hành nhận dạng.  
Tóm lại, lớp fully-connected đóng vai trò  
như một mô hình phân lớp và tiến hành  
dựa trên dữ liệu đã được xử lý ở các lớp  
trước đó.  
Hình 7: Lớp kết nối đầy đủ các neural từ  
các lớp trên lại với nhau.  
Hình 10: Một số ảnh trong  
Caltech-101  
Dữ liệu [10] chuẩn Cifar-10: Gồm 10  
loại [15] đối tượng, tác giả chọn ra 5  
loại ngẫu nhiên đó là Deer, Dog,  
Frog, Ship, Cat  
3. QUÁ TRÌNH THỰC NGHIỆM  
3.1 Sơ đồ khối  
Hình 8: Sơ đồ khối  
3.2 Dữ liệu huấn luyện  
Dữ liệu tự tạo tên T_01: Gồm 5 loại  
Bicycle, Car, Dog, Motobike, People.  
Mỗi đối tượng có 300 hình ảnh.  
Hình 11: Một số ảnh trong Cifar-10  
Dữ liệu [11] trong matlab  
DigitDataset  
Hình 12: Một số ảnh trong  
DigitDataset  
3.3 Xây dựng mô hình  
Hình 9: Một số ảnh trong T_01  
Dữ liệu [9] chuẩn Caltech-101: Gồm  
101 đối tượng, tác giả chọn ngẫu  
nhiên ra 5 loại đối tượng: Airplanes,  
Bathtub, Billiards, Faces, Leopards.  
Từ các lớp ở trên (mục 2) tác giả xây  
dựng nên mô hình CNN ứng dụng vào  
nhận dạng các đối tượng tham gia giao  
thông được xây dựng tất cả gồm 15 lớp,  
trong đó có 3 lớp Convolution, 4 lớp  
ReLU, 3 lớp Maxpooling và 2 lớp Fully  
Connected. Output gồm 5 loại.  
Kết quả ta được 32 ma trận đặc trưng  
kích thước 15x15 ở tầng C2. Tiếp tục sử  
dụng 64 ma trận chập kích thước 5x5,  
Padding là 2, Stride là 1, chập với các ma  
trận ở tầng C2 ta được 32 ma trận ánh xạ  
đặc trưng kích thước 15x15.  
Hình 13: Mô hình CNN  
3.4 Cách hoạt động của mô hình  
Do kích thước các ảnh đặc trưng ở  
tầng chập trên có kích thước 15x15 còn  
lớn, cho nên bước tiếp theo chúng ta thực  
hiện phép giảm số chiều ở ma trận đặc  
trưng (down Sampling – hay Pooling –  
hay subsampling) với kích thước 3x3,  
stride là 2 và sử dụng hàm maxpooling.  
Kết quả ta được 32 ma trận đặc trưng  
kích thước 7x7 ở tầng C3.  
Hình 14: Cách hoạt động mô hình  
Ảnh đầu vào là 1 bức ảnh thô kích  
thước 64x64x3 pixel. Chúng ta sử dụng  
32 ma trận chập kích thước 5x5x3,  
Padding là 2, Stride mặc định là 1. Ta cho  
ra 32 ma trận ảnh đặc trưng sau khi chập  
lần 1. Đó là các ma trận ánh xạ đặc trưng,  
mỗi ma trận ánh xạ đặc trưng này có kích  
thước 64x64x32. Tức là ảnh gốc ban đầu  
được phân tích theo 32 chiều đặc trưng  
khác nhau với ma trận chập 5x5x3.  
Như vậy đến lớp này ta có được 64  
ma trận đặc trưng ảnh có kích thước 7x7  
nên ta có 7*7*64 = 3136 neural. Ta dùng  
hàm softmax giảm số neural này xuống  
còn 64 neural ở tầng FC1.  
Lưu ý rằng đối với mỗi khối ở các  
Các tham số trong lớp Convolution  
đầu tiên như sau: ảnh ngõ ra có kích  
thước 64x64x32 pixel tương ứng với  
64*64*32 = 131072 neural, mỗi neural  
có 5*5*3 = 75 trọng số và 1 bias nữa là  
76.  
tầng từ đầu tới FC1 ta sử dụng hàm kích  
1
hoạt Sigmoid dạng : Y = f(x) =  
−푥  
1+ 푒  
để tính toán giá trị ra của các node mạng,  
tức là Y’ = f(A*I) trong đó A là ảnh chập,  
I là ma trận chập, và Y’ là giá trị 1 node  
trên ma trận ánh xạ đặc trưng.  
Vậy ta có tất cả 131072*76 =  
9961472 tham số. Con số này quá lớn  
nên ta tiếp tục các lớp tiếp theo để kích  
thước ảnh nhỏ lại. Nên bước tiếp theo  
chúng ta thực hiện phép giảm số chiều ở  
ma trận đặc trưng (down Sampling – hay  
Pooling – hay subsampling) với với  
kernel có kích thước 3x3, Stride là 2 sử  
dụng hàm max.  
Với 64 node ở tầng FC1, ở đây sử  
dụng mô hình mạng neural truyền thẳng  
với các kết nối Fully Connection, với 5  
outputs. Lớp Fully Connected này sẽ xử  
lý và đưa ra kết quả nhận dạng.  
Tương tự như mạng nơ-ron truyền  
thẳng, mạng nơ-ron tích chập cũng là một  
mô hình học cho nên khởi tạo ban đầu  
cho các trọng số trong mạng là ngẫu  
nhiên và sẽ được điều chỉnh thông qua  
quá trình học. Thuật toán học cho mạng  
nơ-ron tích chập cũng tương tự như mạng  
nơ-ron truyền thẳng là thuật toán lan  
truyền ngược sử dụng Stochastic  
Gradient Descent with Momentum  
(SGDM); chỉ khác nhau ở chỗ mạng tích  
chập không liên kết đầy đủ nên độ lỗi ở  
mỗi lớp chỉ tính dựa vào một phần các  
node trong lớp tiếp theo chứ không phải  
toàn bộ. Ta có thế hình dung mô hình  
nhận dạng các đối tượng tham gia giao  
thông được thực hiện như sau:  
Như vậy với 32 ma trận đặc trưng  
kích thước 64x64 ở tầng chập trên sau  
khi sử dụng hàm maxpooling với kích  
thước 3x3 và Stride là 2 ta tạo ra được 32  
ma trận kích thước 31x31 ở tầng C1. Tiếp  
tục sử dụng 32 ma trận chập kích thước  
5x5, Padding là 2, Stride là 1, chập với  
các ma trận ở tầng C1 ta được 32 ma trận  
ánh xạ đặc trưng kích thước 31x31.  
Do kích thước các ảnh đặc trưng ở  
tầng chập trên có kích thước 31x31 còn  
lớn, cho nên bước tiếp theo chúng ta thực  
hiện phép giảm số chiều ở ma trận đặc  
trưng (down Sampling – hay Pooling –  
hay subsampling) với kích thước 3x3,  
stride là 2 và sử dụng hàm maxpooling.  
3.5 Lƣu đồ  
Hình 15: Minh họa các bước tính CNN  
Hình 16: Lưu đồ  
3.6 Kết quả thực nghiệm  
Bảng 1: Kết quả thực nghiệm  
Dữ liệu  
Số  
chu  
kì  
Độ  
chính  
xác  
(%)  
T_01  
10  
10  
10  
10  
89  
87  
76  
99  
Caltech-101  
Cifar-10  
DigitDataset  
3.7 So sánh với phƣơng pháp HOG -  
Histogram of Oriented Gradient  
Bảng 2: Kết quả nhận dạng bằng phương  
pháp CNN  
Hình 18: Kết quả nhận dạng xe hơi trên  
video  
Bảng 3: Kết quả nhận dạng bằng phương  
4. KẾT LUẬN  
pháp HOG  
Với mục tiêu chính là xây dựng một mô hình  
kiến trúc CNN. Demo mô hình có khả năng  
phát hiện nhận dạng đúng các đối tượng tham  
gia giao thông trong hình ảnh hoặc video. Kết  
quả demo cho thấy độ chính xác có thể lên  
đến 99% đối với tập dữ liệu DigitDataset. Tuy  
nhiên đề tài còn nhìu hạn chế như sau:  
Độ chính xác phụ thuộc nhiều vào tập  
dữ liệu ảnh huấn luyện  
Mô hình chỉ áp dụng nhận dạng trên  
hệ thống camera tĩnh.  
Kết quả trên cho thấy nhận dạng bằng  
phương pháp CNN cho độ chính xác cao  
hơn hẳn so với phương HOG.  
Hướng phát triển tương lai là huấn luyện với  
lương dữ liệu lớn, phát triển thành module  
phần cứng để ứng dụng cho robot ngoài trời  
hoặc xe không người lái.  
Kết quả nhận dạng trên ảnh và video  
chứa xe hơi:  
Hình 17: Kết quả nhận dạng xe hơi. (1)  
ảnh pooling lần 1, (2) ảnh pooling lần 2,  
(3) ảnh pooling lần 3.  
TÀI LIỆU THAM KHẢO  
[1] Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner. Gradient-Based Learning  
Applied to Document Recognition. PROC. OF THE IEEE, NOVEMBER 1998.  
[2] Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton. ImageNet Classification with Deep  
Convolutional Neural Networks. Advances in neural information processing systems. 2012.  
[3] Matthew D Zeiler, Rob Fergus. Visualizing and Understanding Convolutional Networks.  
arXiv:1311.2901, nov 2013.  
[4] Christian Szegedy, Wie Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov,  
Dumitru Erhan, Vincnet Vanhoucke, Andrew Rabinovich. Going deeper with convolutions.  
arXiv:1409.4842v1, 17 Sep 2014.  
[5] Karen Simonyan, Andrew Zisserman. Very Deep Convolutional Networks For Large-Scale  
Image Recognition. arXiv:1409.1556v6, 10 Apr 2015.  
[6] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. Deep Residual Learning for Image  
Recognition. arXiv:1512.03385, 10 Dec 2015.  
[7] Convolutional Neural Network. Internet: https://www.youtube.com/watch?v=FrKWiRv254g,  
06/08/2017.  
[8] Convolutional Neural Networks (CNNs/ConvNets). Internet:  
29/10/2017.  
[10] The Cifar-10 dataset. Internet: https://www.cs.toronto.edu/~kriz/cifar.html, 04/11/2017.  
[11] MerchData and DigitDataset. Internet: https://www.mathworks.com/, 12/12/2017.  
Tác giả chịu trách nhiệm bài viết:  
Họ tên: Trần Quốc Toản  
Đơn vị: Đại học Sư phạm Kỹ thuật TP.HCM  
Điện thoại: 0938551842  
Email: toantq2611@gmail.com  
BÀI BÁO KHOA HỌC  
THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ  
Bài báo khoa học của học viên  
có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn  
Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ  
Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam.  
Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý  
của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.  
ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN!  
Thực hiện theo MTCL & KHTHMTCL Năm học 2018-2019 của Thư viện Trường Đại học  
Sư phạm Kỹ thuật Tp. Hồ Chí Minh.  
pdf 9 trang Mãnh Khiết 09/01/2024 18620 Free
Bạn đang xem tài liệu "Nhận dạng các đối tượng tham gia giao thông dùng mạng Nơ Ron học sâu", để 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:

  • pdfnhan_dang_cac_doi_tuong_tham_gia_giao_thong_dung_mang_no_ron.pdf