Bên cạnh việc phát hiện lan đường, thi việc phát hiện vat can trên đường cũng quan
trọng không kém. Việc phát hiện các vật cản giống như việc hệ thống có thể biết được tình trạng giao thông xung quanh xe và trên đường như thế nào.
Trong dé tài này, xin được giới thiệu việc ứng dụng của ngành nghiên cứu đang được quan tâm rat nhiêu và có những ứng dụng hữu ích trong cuộc sông nói chung và trong xử lý anh nói riêng. Đó là “Deep Learning” mà cụ thê là “Convolutional Neuron Network (CNN) ”.
Ngoài giải thuật dựa trên mạng neuron để phát hiện vật cản thì trước đây cũng đã có một số giải thuật khác nhằm giải quyết bài toán nay tương tự như:
- So sánh trùng khớp mẫu [16]: cách tiếp cận của đề tài là sẽ tính toán mức độ tương đồng của ảnh hiện tại với một ảnh mẫu. Khi có một ảnh ngõ vào, nó sẽ phân tích các đặc điểm ảnh và so sánh với ảnh mẫu được lưu từ trước trong hệ thống cuối cùng sẽ xác định đối tượng trong ảnh đó là gì. Việc phân tích các đặc điểm đối với từng ảnh khác nhau cũng là một quá trình cực kỳ phức tạp và có thể gặp sai sót. Bên cạnh đó, việc doi hỏi luôn phải SỐ lượng ảnh mẫu lớn và cập nhật liên lục sé làm cho cơ sở dữ liệu ngày càng lớn, dẫn đến việc truy xuất, so sánh sẽ chậm chạp hơn ảnh hưởng đến tốc độ xử lý của hệ thống.
- _ Giải thuật HOG-SVM [18]: là một giải thuật nham trích xuất các đặc trưng của ảnh. Giải thuật này thực hiện bằng cách chia ảnh cần xử lý thành các vùng khác nhau. Sau đó, mỗi điểm ảnh sẽ được trích xuất thành một vector hướng của chính nó. Cuối cùng, mỗi cell sẽ được tính toán ra hướng của nó dựa trên biểu dé hướng được tập hợp từ những điểm ảnh mà nó chứa. Từ đó, có thé mô tả được hình dạng và sự xuất hiện của đối tượng có trong ảnh. Giải thuật này có ưu điểm là bảo toàn thông tin về đường viễn của đối tượng trong ảnh nhưng sẽ làm
mat đi các thông tin vê mau sac, giảm độ sac nét cua dữ liệu.
Tuy có những sự hạn chế nhất định, nhưng các giải thuật trên cũng đã cung cấp một nên tảng cho việc phát triển các giải thuật tốt hon, chính xác và hiệu quả hơn. Một
trong sô đó là các giải thuật dựa trên mạng neuron.
3.1 Tổng quan về Deep Learning
Deep Learning là một dang của ngành máy học (Machine Learning), dựa
trên các thuật toán dé trừu tượng hóa mô hình dữ liệu ở mức độ cao bằng cách xử lý nhiều lớp cau trúc phức tạp. Những lớp cau trúc nay được mô phỏng theo chính hệ thần kinh của con người với những đơn vị nhỏ nhất là các neuron thần kinh. Các neuron nay được kết nối, liên kết với nhau thành một mạng lưới gọi là mạng neuron
(Neuron Network).
3.1.1 Neuron
Các hoạt động. suy nghĩ của con người đều được bộ não điều khiến. Trong đó, đơn vị tính toán cơ bản của não bộ là mỗi neuron trong hệ thần kinh. Theo các tài liệu sinh học, thì có khoảng 86 ty neuron trong hệ thần kinh của con người và chúng được kết nối với khoảng 10! - 10!” các khớp nối thần kinh (synapse). Hình
3.1 mô tả một đơn vi sinh học và mô hình toán học cua một neuron [11].
impulses carried Z0 wo toward cell body axon from a neuroiP.Synapse
`, 00#0 dendrite \ branches
of axon
cell body
So wii +b
kụ (= wiz; + )
output axon activation function
wee axon U12]
terminals
————*
impulses carried
away from cell body cell body
a) Neuron sinh hoc b) Mô hình toán hoc
Hình 3. 1: Mô hình của mot neuron
Mỗi neuron nhận được tín hiệu đầu vào từ mỗi nhánh thần kinh (dendrites) của nó và tạo ra các tín hiệu đầu ra dọc theo sợi trục (axon) của nó. Các sợi trục cuối cùng phân nhánh ra và kết nối thông qua các khớp than kinh đến các nhánh của
neuron khác.
Trong mô hình toán học của một neuron, các tín hiệu đó đi dọc theo sợi trục
than kinh (xo) sau đó nhân với trọng số nhánh đó của noron (wo). Trong mô hình co bản, các nhánh sẽ tập hợp tín hiệu đến trung tâm, nơi tat cả chúng nhận được tong kết. Nếu tong số cuối cùng vượt quá ngưỡng nhất định, neuron sẽ gửi tín hiệu ở ngõ
ra.
3.1.2 Mang neuron (Neuron network)
Mang neuron là mô hình tập hợp và kết nối các neuron lại với nhau. Ngõ ra của một số neuron sé trở thành đầu vào cho các neuron khác. Thay vì kết nỗi các neuron một cách vô định thì mạng neuron thường được tô chức thành các lớp khác biệt.
Dưới đây là ví dụ về cầu trúc mang neuron [11].
Hình 3. 2: Cau trúc tổng quát mang neuron
Theo câu trúc cơ bản trên, ta có thé thay được mang neuron sé có các lớp:
ngõ vào, lớp an và ngố ra. Tuy theo câu trúc của môi mang neuron khác nhau, ta sé tính được kích thước của nó. Theo cau trúc trên, ta tinh được kích thước như sau.
+ Số neuron: 4+2 = 6 (không tính ngõ vào) + Số kết nối: [3 x 4] + [4x 2] = 20
+ Số hiệu chỉnh: 4+ 2 =6
Cuỗi cùng ta sẽ có tông cộng 26 thông sô mà mạng có thê học được.
3.2 Mạng neuron tích chập — Convolutional Neuron Network (CNN)
Do ngõ vào cần xử lý là anh hai chiều, được tập hợp từ nhiều điểm ảnh chứa đặc điểm riêng của nó và được biểu diễn trong toán học là một ma trận hai chiều. Vì vậy, việc xử lý sẽ rất phức tạp do có nhiều thông số để có thể trích xuất đặc điểm của toàn bộ bức ảnh. Do đó, phép toán tích chập sẽ giúp giảm bớt khối lượng tính toán giúp cho việc xử lý sẽ nhanh và Ít xảy ra lỗi hơn. Bên cạnh đó, về mặt cau trúc
và những lớp đặc trưng riêng của mạng neuron tích chập sẽ có sự khác biệt với một mạng neuron thông thường tùy theo những bài toán và giải thuật khác nhau.
3.2.1 Cấu trúc Mạng neuron tích chập có nguyên lý giỗng như một mạng neuron cơ bản.
ơ
`
7 %X)
Lớp ngé ra
Lớp ngõ vào
Hình 3. 3: Cấu trúc mạng neuron tích chập cơ bản
Cau trúc của mang neuron tích chập cũng gồm những lớp co bản như một mạng neuron thông thường. Nó sẽ nhận tín hiện thông qua lớp dau vao sau đó truyền đến các lớp an. Mỗi lớp an này được tạo thành từ các neuron, nơi chúng được kết nối với tất cả các neuron thuộc lớp phía trước và mỗi neuron trong từng lớp riêng biệt sẽ có chức năng hoàn toàn độc lập với nhau. Lớp kết nối cuối cùng chính là ngõ ra, sẽ cho biết giá trị đặc trưng của ngõ vào.
3.2.2 Đặc điểm nhận dạng
Mạng neuron tích chập sẽ so sánh theo từng mảnh nhỏ, các mảnh này được gọi đặc
điểm nhận dạng. Bằng cách so sánh này, nó sẽ tìm ra được những đặc điểm giống nhau của các đối tượng trong ảnh. Chính việc so sánh một cách chị tiết như vay, sẽ giúp cho khả năng nhận dạng của mạng neuron tích chập tốt hơn rất nhiêu.
Hình 3. 4: Trích xuất các đặc điểm nhận dạng của ảnh
Mỗi đặc điểm giống như một hình ảnh nhỏ hai chiều. Các đặc điểm này sẽ trùng khớp với các điểm chung của bức ảnh. Ví dụ, các điểm đặc trưng quan trọng của chữ “X” được mô tả trong hình 3.4 sẽ được ghi nhớ lại. Những đặc điểm này sẽ được đem so sánh với bất kỳ hình ảnh có chữ X nào.
3.2.3. Tích chap (Convolution)
Hình 3. 5: Cách thức thực hiện tích chap
Khi có một bức ảnh hoàn toàn mới, mạng neuron tích chập sẽ không biết được các đặc điểm nhận dạng sẽ như thế nào. Do đó, ta sẽ phải có trước các đặc điểm nhận dạng quan trọng của đối tượng và tạo thành các bộ lọc cho cụ thé. Tiép theo sé su dụng phép tích chập để trích xuất toàn bộ bộ đặc điểm đối với các bức ảnh khác.
ost BR on 011 1..› 0.33 li
0.11 1.00 011
Hình 3. 6: Kêt qua tích chap cua một bộ lọc Dé tính toán khả năng trùng khớp cua môi đặc điêm của ảnh, ta cân chỉ ra giá tri cua
môi đặc điểm của anh can so sánh đôi với diém ảnh tương ứng trong những đặc
điểm đã được lưu lại.
Đối với hình 3.6, nếu tất cả điểm ảnh của đối tượng trùng khớp với đặc điểm cần nhận dang thi tổng lại rồi chia cho số điểm ảnh thì sẽ ra là 1. Tương tự, nếu không có điểm ảnh nào trong đặc điểm khớp với mảnh hình ảnh, thì kết quả là -1.
Để hoàn tất, chúng ta lặp lại quá trình này cho toàn bộ bức ảnh. Ta có thé lay kết quả từ mỗi bộ lọc đặc điểm và tạo một mang hai chiều mới từ đó, dựa vào vị trí của mỗi mảnh năm trong hình ảnh. Bản đồ các phần khớp nhau này cũng là một phiên ban đã được lọc từ hình ảnh gốc. Nó là một bản đồ thể hiện noi tìm thấy đặc điểm có khả năng trùng khớp trong hình anh. Các giá trị gần 1 cho thay xác suất trùng khớp cao, các giá trị gần -1 hay gần bằng 0 cho thấy xác suất không trùng khớp với
các đặc điềm nhận dạng.
Bước tiếp theo là lặp lại toàn bộ quá trình tích chập cho từng đặc điểm khác nhau.
Kết quả là ta có một tập hợp các đặc điểm đối với bức hình ảnh cần nhận dạng. Tập hợp các đặc điểm này chính là bộ lọc của chúng ta.
Đề thuận tiện trong việc tích hợp của bước tính toán này, người ta đã gom tất cả các kết quả của từng đặc điểm này lại với nhau thành một lớp (layer). Có thé thay rang, việc tích chập này sẽ gia tăng số lượng các phép toán số học lên rất nhiều. Vì vậy, các nhà sản xuất vi mạch đã tạo nên những bộ vi xử lý chỉ chuyên cho việc tính toán rất lớn này trong ngành máy học này.
3.2.4 Pooling
Từ kết quả của phân tích chập, có thể nhận thấy răng kích thước của mỗi mảng tính toán đều rất lớn và có những điểm dư thừa. Và chức năng pooling là việc loại bỏ những điểm dư thừa và giữ lại những đặc điểm quan trọng. Cách thức thực hiện pooling được thể hiện dưới hình sau.
maximum
1.00
loss 041 O41 0 m. 011 0431.
-0.11 0411 -0.11 loa -0.11 1.00 -0.11 0.33 Ege! |oss [Bi O11 -011
Hình 3. 8: Cách thức thực hiện pooling
Việc thực hiện pooling này đơn giản chỉ là chọn ra những điểm có giá trị cao nhất và tập hợp lại thành một kết quả khác. Chỉ đơn giản áp dụng một bộ lọc cửa số 2x2 ta có thể giảm đi kích thước của một mảng đi 4 lần, việc này không những giúp
chọn ra những thông tin quan trọng mà còn giúp giảm tải cho việc tính toán từ đó
làm cho tốc độ xử lý nhanh hơn.
Hình 3. 10: Một don vi tinh chỉnh
Đóng vai trò nhỏ nhưng quan trong trong quá trình này là một bộ tinh chỉnh tuyến
tính Rectified Linear Unit hoặc ReLU. Việc tính toán của bộ này cũng khá đơn
giản. Những điểm nào có giá trị âm sẽ được hoán đổi thành giá trị O ngược lại sẽ
được giữ nguyên giá tri.
3.2.6 Kết nối day đủ — Fully Connect
Lớp kết nỗi này dong vai trò như là một bộ lọc cấp cao, sẽ giúp chuyển doi những giá trị đặc trưng thành những trọng số để đưa ra kết quả. Các lớp kết nối này đóng
vai tro quan trọng trong việc tạo thành một CNN hoàn chỉnh. Thay vì sẽ xử lý dữ
liệu theo mang hai chiều thì các lớp kết nỗi sẽ xử lý theo kiểu danh sách đơn.
09
065
045 §
044
0 69
0.94
053
Đối với ví dụ phân biệt “X” hay “O” thì những giá trị đặc trưng cho “X” hoặc “O”
cũng sẽ được quy định một cách cụ thé. Đối với “X” thì sẽ là những giá trị cao hơn so với “O”. Những giá trị này sẽ thé hiện các trọng số hoặc là mức độ kết nối giữa mỗi giá trị trong danh sách.
Khi một hình ảnh mới được đưa vào CNN thì phải đi qua những lớp khác trong
mạng trước khi đến lớp kết nối cuối cùng nơi sẽ xác định kết quả của ngõ vào theo
các giá trị đặc trưng.
Các lớp két nôi này cũng có thé sap xêp chong lên nhau vì ngõ vào và ngõ ra của nó giông với nhau. Trong thực tê, một sô lớp kêt nôi này sẽ được xêp chông với nhau cùng với những lớp ân trong mạng. Việc bô sung thêm các lớp sẽ làm cho mạng học
những đặc trưng được kết hợp tỉnh vi hơn và đưa ra kết quả chình xác hơn.
3.2.7. Truyền ngược — Backpropagation
Giải thuật truyền ngược này cũng có thê hiệu là sé tính toán sai sô cua môi neuron trong quá trình huan luyện. Sau đó sẽ giúp tinh chỉnh trọng sô của môi neuron đê từ
đó có kết quả tốt nhất sau quá trình huấn luyện cho mạng. Hàm truyền ngược trọng
mang neuron tích chập thường được sử là ham sigmoid.
ƒŒ)=1T 1
Giải thuật truyền ngược này được thực hiện như sau.
1. Lay thông sô từ input cua môi neuron, tính toán sai số ở ngố ra.
2. Thay đôi giá tri trọng sô của môi neuron theo công thức sau:
Trọng sô mới = Trọng sô cũ + learning rate * sai sô * giá tri gõ ra (neurons 1) * giá tri gõ ra (neurons i+1) * (1 - giá tri gõ ra (neurons i+1)).
3. Quay lại bước |
4. Hoàn tất giải thuật khi sai số gần băng hoặc bang không.
Ta xét ví dụ sau đề rõ hơn về giải thuật truyền ngược này.
Giả sử ta có một mạng neuron có ba lớp như sau:
Gia tri ngõ Gia tri ngõ vao vao
Lớp ngõ vào
0.42 0.55
Ma trận trọng số 1
Lớp an
0.35 0.81 Ma trận trọng số 2
Lớp ngõ ra
Hình 3. 12: Mô hình tính toán tuyên ngược da lớp
Các mâu cân huân luyện như sau:
Ngõ vào | Kết quả
0 1 ẽ 1 1 l
Đầu tiên, ta sẽ thiết lập ngẫu nhiên các trọng số như sau: 0.62, 0.42, 0.55, -0.17 cho ma trận thứ nhất và 0.35, 0.81 cho ma trận thứ hai. Giá trị diéu chỉnh trong số là
0.25.
Tiếp theo, giá tri (0, 1) được thiết lập cho neuron của lớp ngõ vào.
Giá trị các neuron trong lớp ân được tính như sau:
Neuron | của lớp an: 0*0.62+1* 055 =0.55 Neuron 2 của lớp an: 0#0.42+ 1 * (0.17) = -0.17 Kết qua neuron | của lớópẩn: 1/( 1 + exp(-0.55) ) = 0.634135591 Kết qua neuron 2 của lớp an: 1/( 1 + exp(+0.17) ) = 0.457602059
s* Giá tri của neuron lớp ngõ ra được tính như sau:
Ngõ vào cua neuron lớp ngố ra: 0.634135591 * 0.35 + 0.457602059 * 0.81 = 0.592605 124
Ngõ vào cua neuron lớp ngố ra: | / (1 + exp(-0.592605 124) ) = 0.643962658
Sai số được tính bằng cách lay giá trị mẫu trừ kết quả ngõ ra:
0 - 0.643962658 = -0.643962658
Khi đã có được sai số ta thực hiện việc truyền ngược như sau:
* Thay đối trọng số trong ma trận trọng số thứ hai:
Giá trị thay đối 1: 0.25 * (-0.643962658) * 0.634135591
* 0.643962658 * (1-0.643962658) = -0.023406638
Giá trị thay đổi 2: 0.25 * (-0.643962658) * 0457602059
* 0.643962658 * (1-0.643962658) = -0.016890593
Trọng số đã thay đổi 1: 0.35 + (-0.023406638) = 0.326593362 Trọng số đã thay đối 2: 0.81 + (-0.016890593) = 0.793 109407
s* Thay di trong số của ma trận thứ nhất:
Giá trị thay đôi 1: 0.25 * (-0.643962658) * 0
* 0.63413559T * (1-0.634135591) = 0
Giá trị thay đổi 2: 0.25 * (-0.643962658) * 0
* (). 457602059 * (1-0.457602059) = 0
Giá trị thay đôi 3: 0.25 * (-0.643962658) * I
* 0.63413559T * (1-0.634135591) = -0.037351061
Giá trị thay đôi 4: 0.25 * (-0.643962658) * I
* 0.457602059 * (1-0.457602059) = -0.039958271
Trọng số đã thay đổi 1: 0.62 + 0 = 0.62 (không đổi) Trọng số đã thay đổi 2: 0.42+0=0.42 (không đổi) Trọng số đã thay đổi 3: 0.55 + (-0.037351064) = 0.512648936 Trọng số đã thay đối 4: -0.17+ (-0.039958271) = -0.209958271
Mẫu thứ nhất đã được tinh chỉnh cho mạng. Quá trình này được thực hiện tương tự cho các mẫu huẫn luyện tiếp theo, nhưng trọng số đã được thay đối.
Băng cách thực hiện lặp lại quá trình này với các mâu huan luyện sẽ làm giảm dân sai SỐ.
Giải thuật hoàn tất khi sai số của mạng bằng hoặc gân bằng không.
Nếu tất cả các giá tri mẫu huấn luyện đều là không, thì trọng số của ma trận thứ nhất sẽ không bao giờ thay đối và mạng sẽ không học được. Chính vì lý do này, ta
sẽ có một giá tri gọi là bias = 1 được thêm vào. Việc thêm giá tri bias này cho một
vài neuron sẽ đảm bảo răng giá trị ngõ vào của những neuron đó luôn luôn khác không. Cùng với đó, những trong số được thêm vào đối với các neuron của lớp an cũng như lớp ngõ ra cũng sẽ được thiết lập một cách ngẫu nhiên và cũng thay đối giống như cách mà các trọng số khác thay đối.
Gia tri ngõ Gia tri ngõ vao vao
Lớp ngõ vào
0.42 0.55
bias ; ^ k
Ma trận trọng sô | 0.1
Lớp an
0.35 0.81 Ma trận trọng số 2
bias
-0.7
Lớp ngõ ra
Hình 3. 13: Mô hình tính toán tuyên ngược da lớp có bias
Dé áp dụng thuật toán truyền ngược này, yêu cầu ta phải có một tập hợp các kết quả chính xác đó là những bức ảnh có san của từng đối tượng cần được nhận dạng. Việc truyền ngược này chính là việc huấn luyện không những cho mạng neuron tích chập mà còn những kiểu mạng khác. Việc huấn luyện càng nhiều sẽ giúp cho kết quả nhận dạng cảng chính xác. Tuy nhiên, cũng giống như phân thực hiện thuật toán tích chập, đòi hỏi những bộ vi xử lý cực ky mạnh mẽ thi mới có thé thực hiện tốt
các phép tính toán này.