Tải bản đầy đủ (.pdf) (59 trang)

Nhận dạng phương tiện giao thông sử dụng kỹ thuật học sâu (Luận văn thạc sĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.64 MB, 59 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
---------------------------------------

BÙI TRẦN TIẾN

NHẬN DẠNG PHƯƠNG TIỆN GIAO THÔNG
SỬ DỤNG KỸ THUẬT HỌC SÂU

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng nghiên cứu)

HÀ NỘI - 2019


HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
---------------------------------------

BÙI TRẦN TIẾN
NHẬN DẠNG PHƯƠNG TIỆN GIAO THÔNG
SỬ DỤNG KỸ THUẬT HỌC SÂU

CHUYÊN NGÀNH :

KHOA HỌC MÁY TÍNH

MÃ SỐ:

8.48.01.01

LUẬN VĂN THẠC SĨ KỸ THUẬT


NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. NGUYỄN NGỌC ĐIỆP

HÀ NỘI - 2019


i

LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu và tìm hiểu của riêng tơi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai cơng
bố trong bất cứ cơng trình nào khác.
Tác giả luận văn

Bùi Trần Tiến


ii

LỜI CẢM ƠN
Để hoàn thành được luận văn này, ngoài sự nghiên cứu và những cố gắng của bản
thân, em xin gửi lời cảm ơn sâu sắc tới Tiến sĩ Nguyễn Ngọc Điệp, giáo viên trực tiếp
hướng dẫn, tận tình chỉ bảo và định hướng cho em trong suốt quá trình nghiên cứu và
thực hiện luận văn. Xin gửi
Em xin gửi lời cảm ơn chân thành cảm ơn tất cả các thầy cơ giáo của Học viện
Cơng nghệ Bưu chính Viễn thơng đã giảng dạy và dìu dắt em trong trong suốt q
trình học tập tại trường từ khi cịn học đại học cho đến sau đại học.
Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè và những người đã luôn ở
bên cổ vũ tinh thần, tạo điều kiện thuận lợi cho em để em có thể học tập tốt và hoàn
thiện luận văn.

Em xin chân thành cảm ơn!


iii

MỤC LỤC
LỜI CẢM ƠN ......................................................................................................... ii
MỤC LỤC .............................................................................................................iii
DANH MỤC BẢNG ............................................................................................... v
DANH MỤC HÌNH ẢNH ...................................................................................... vi
DANH MỤC KÝ HIỆU CÁC CHỮ VIẾT TẮT ................................................... viii
MỞ ĐẦU ................................................................................................................ 1
CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT HIỆN PHƯƠNG TIỆN
GIAO THÔNG ........................................................................................................ 3
1.1 Giới thiệu về học sâu. .................................................................................... 3
1.1.1 Học sâu................................................................................................... 3
1.1.2 Mạng nơ-ron tích chập – Convolutional neural network (CNN) .............. 7
1.2 Các kỹ thuật liên quan đến xử lý ảnh và nhận diện đối tượng. ..................... 13
1.2.1 Tổng quan về xử lý ảnh ........................................................................ 13
1.2.2 Các vấn đề cơ bản trong xử lý ảnh ........................................................ 14
1.2.3 Nhận diện và phân loại ảnh ................................................................... 14
1.3 Các kỹ thuật hiện tại và hạn chế. ................................................................. 15
1.3.1 R-CNN, Fast R-CNN ............................................................................. 15
1.3.2 Faster R-CNN........................................................................................ 18
1.3.3 YOLO, SSD .......................................................................................... 19
1.4. Kết luận chương. ........................................................................................ 20
CHƯƠNG 2: PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG SỬ DỤNG KỸ THUẬT
HỌC SÂU YOLO ................................................................................................. 22
2.1 Bài tốn phát hiện phương tiện giao thơng ................................................... 22
2.1.1 Tổng quan bài toán ................................................................................ 22

2.1.2 Các điều kiện ràng buộc......................................................................... 23
2.2 Hệ thống phát hiện đối tượng thời gian thực YOLO. .................................... 23
2.2.1 Tổng quan hệ thống phát hiện đối tượng YOLO. ................................... 23


iv

2.2.2 Các thành phần của hệ thống YOLO ..................................................... 24
2.2.3 Kiến trúc của mơ hình YOLO qua các phiên bản ................................... 27
2.2 Phương pháp huấn luyện ......................................................................... 33
2.3 Kết luận chương. ......................................................................................... 36
CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ ..................................................... 37
3.1 Thu thập và tiền xử lý dữ liệu. ..................................................................... 37
3.2 Cài đặt và thử nghiệm. ................................................................................. 38
3.2.1 Môi trường thử nghiệm .......................................................................... 38
3.2.2 Huấn luyện dữ liệu ................................................................................ 39
3.2.3 Phương pháp đánh giá. ............................................................................. 39
3.3 Đề xuất phương pháp cải tiến và đánh giá ................................................... 43
3.3.1 Đề xuất phương pháp cải tiến .................................................................... 43
3.3.2 Đánh giá phương pháp cải tiến ................................................................. 43
3.4 Kết luận chương .......................................................................................... 46
KẾT LUẬN ........................................................................................................... 47
TÀI LIỆU THAM KHẢO ..................................................................................... 48


v

DANH MỤC BẢNG
Bảng 1.1: So sánh các mơ hình dựa trên R-CNN ............................................................. 18
Bảng 2.1: So sánh các mơ hình khác với YOLO .............................................................. 23



vi

DANH MỤC HÌNH ẢNH
Hình 1.1: Nơ-ron sinh học ................................................................................................. 4
Hình 1.2: Perceptron.......................................................................................................... 4
Hình 1.3: Hàm sigmoid ..................................................................................................... 5
Hình 1.4: Mạng nơ-ron nhân tạo ........................................................................................ 6
Hình 1.5: Q trình tích chập (Convolutional) ................................................................... 8
Hình 1.6: Mơ hình mạng CNN .......................................................................................... 9
Hình 1.7: Input đầu vào của một nơ-ron ở lớp ẩn ............................................................. 10
Hình 1.8: Các input của nơ-ron thứ nhất .......................................................................... 10
Hình 1.9: Các input của nơ-ron thứ hai ............................................................................ 11
Hình 1.10: Ma trận đặc trưng thu được khi sử dụng 3 filter .............................................. 11
Hình 1.11: Q trình tổng hợp thơng tin .......................................................................... 12
Hình 1.12: Lớp kết nối đầy đủ của CNN .......................................................................... 13
Hình 1.13: Các bước cơ bản trong một hệ thống xử lý ảnh ............................................... 13
Hình 1.14: Mơ hình R-CNN ............................................................................................ 16
Hình 1.15: Mơ hình SPP-net ............................................................................................ 17
Hình 1.16: Mơ hình mạng Fast R-CNN ........................................................................... 17
Hình 1.17: Mơ hình mạng Faster R-CNN ........................................................................ 18
Hình 1.18: Q trình dự đốn của YOLO ........................................................................ 19
Hình 1.19: Mơ hình mạng SSD ........................................................................................ 20
Hình 2.1 Bài tốn phát hiện phương tiện giao thơng ........................................................ 22
Hình 2.2: Mơ hình YOLO ban đầu .................................................................................. 24
Hình 2.3: Ơ chịu trách nhiệm dự đốn đối tượng xe ô tô .................................................. 25
Hình 2.4: Quá trình non-maximum suppression ............................................................... 27
Hình 2.5: YOLO version 1 .............................................................................................. 27
Hình 2.6: Loại bỏ phần kết nối đầy đủ trên YOLOv2 ....................................................... 28

Hình 2.7: Kết quả dự đốn của YOLO ............................................................................. 29
Hình 2.8: Mơ hình YOLO phiên bản thứ 3 ...................................................................... 30
Hình 2.9: Kết quả dự đốn của YOLOv3 ......................................................................... 32
Hình 3.1 : Q trình xác định hộp giới hạn và gán nhãn cho ảnh ...................................... 37
Hình 3.2:Định dạng file annotation cho mỡi ảnh .............................................................. 38
Hình 3.3: Log trong quá trình training ............................................................................. 39
Hình 3.4: Xác định ground truth cho các đối tượng .......................................................... 40
Hình 3.5: Kết quả dự đốn của mơ hình ........................................................................... 40


vii

Hình 3.6: So sánh kết quả dự đốn với ground truth của đối tượng .................................. 41
Hình 3.7: Vùng giao nhau giữa kết quả dự đốn và ground truth ...................................... 41
Hình 3.8: Cơng thức tính IoU .......................................................................................... 42
Hình 3.9: Tốc độ xử lý .................................................................................................... 44
Hình 3.10: Tốc độ hội tụ của hai cấu hình ........................................................................ 44
Hình 3.11: Thời gian huấn luyện của hai cấu hình ........................................................... 45
Hình 3.12: Kết quả mơ hình YOLO sau khi thay đổi số filter ........................................... 45


viii

DANH MỤC KÝ HIỆU CÁC CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

CNN


Convolutional Neural Network

COCO

Common Object in Context

FPS

Frame per second

GPU

Graphics processing unit

HOG

Histogram of oriented gradients

IoU

Intersection over Union

MAP

mean average precision

NMS

Non-maximum suppression


R-CNN

Region – Convolutional Neural
Network

SSD

Single Shot Detector

SVM

Support vector machine

YOLO

You Only Look Once

Tiếng Việt
Mạng nơ-ron tích chập
Khung hình trên giây
Bộ xử lý đờ họa


1

MỞ ĐẦU
Trong thời đại ngày này công nghệ thông tin hầu như đã thâm nhập vào toàn bộ
các lĩnh vực đời sống xã hội. Xã hội ngày càng phát triển thì nhu cầu áp dụng các tiến
bộ của cơng nghệ thông tin vào cuộc sống ngày càng cao để giải quyết những vấn đề
phức tạp về y tế, giáo dục, giao thông…

Ở nước ta những năm gần đấy, cùng với sự phát triển của kinh tế xã hội thì số
lượng phương tiện giao thông đường bộ cũng tăng lên nhanh chóng đi liền với đó là
vấn đề tai nạn giao thông và ùn tắc giao thông, đặc biệt là giao thông đường bộ, số
vụ giao thông không ngừng tăng về quy mô và số lượng. Đặc biệt vấn nạn ùn tắc giao
thông tại một số tuyến đường xuyên tâm như đường Đê La Thành, Trần Đại Nghĩa,
Kim Liên, Nguyễn Lương Bằng, Nguyễn Trãi, Giải Phóng… lâm vào cảnh ùn tặc kéo
dài, ùn tặc trầm trọng gây ảnh hưởng đến cuộc sống của người dân và thiệt hại lớn
về kinh tế xã hội. Với mục đích đưa những tiến bộ cơng nghệ vào phục vụ cho cuộc
sống, tôi xin chọn đề tài nghiên cứu “Nhận dạng phương tiện giao thông sử dụng
kỹ thuật học sâu”. Hy vọng kết quả của đề tài này có thể là một tiền đề quan trọng
trong việc xây dựng các hệ thống giám sát phương tiện giao thông cũng như các hệ
thống cảnh báo ùn tắc giao thông ở nước ta hiện nay.
Mục tiêu của luận án là
Nghiên cứu các phương pháp phát hiện đối tượng bằng kỹ thuật học sâu và áp
dụng phát hiện phương tiện giao thông tại Việt Nam. Mục tiêu cụ thể bao gồm:
- Nắm được một số phương pháp học sâu quan trọng
- Áp dụng và đánh giá hiệu quả trên dữ liệu ảnh, video được thu thập tại Việt Nam
Do thời gian có hạn nên luận văn tập trung phát hiện phương tiện giao thông từ ảnh
và video
-

Ảnh và video giao thông tai Việt Nam được quay trong điều kiện ánh sáng
tốt.

-

Phương tiện cần phát hiện là ô tô con và xe máy.

Nội dung của luận văn được bố cục thành 3 chương như sau:



2

 CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT HIỆN
PHƯƠNG TIỆN GIAO THÔNG
Giới thiệu chương: Giới thiệu về kỹ thuật học sâu, các khái niệm, đặc trưng và
các kỹ thuật liên quan đến xử lý ảnh và phát hiện đối tượng. Tổng quan về bài toán
phát hiện phương tiện giao thông. Các kỹ thuật hiện tại áp dụng cho bài tốn nhận
diện phương tiện giao thơng và những hạn chế của các kỹ thuật này.
 CHƯƠNG 2: PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG SỬ
DỤNG KỸ THUẬT HỌC SÂU YOLO
Giới thiệu chương: Trình bày tổng quan về bài tồn phát hiện phương tiện giao
thông sử dụng kỹ thuật học sâu YOLO. Giới thiệu về hệ thống phát hiện đối tượng
thời gian thực và một số phương pháp tiếp cận.
 CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ
Giới thiệu chương: Sử dụng các thư viện có sẵn đã cài đặt hệ thống phát hiện đối
tượng thời gian thực và áp dụng một trong những phương pháp được đề xuất ở
Chương 3. Thực hiện xây dựng bộ dữ liệu từ các phương tiện giao thơng tại Việt Nam
bao gờm các hình ảnh các phương tiện giao thông và các video được quay trong điều
kiện ánh sang tốt. Thực hiện huấn luyện hệ thống với bộ dữ liệu tự xây dựng.


3

CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT
HIỆN PHƯƠNG TIỆN GIAO THÔNG
Trong chương này luận văn sẽ giới thiệu về học sâu, các khái niệm, đặc trưng và
các kỹ thuật liên quan đến xử lý ảnh và phát hiện đối tượng. Các kỹ thuật hiện tại áp
dụng cho bài toán phát hiện đối tượng và những hạn chế của các kỹ thuật này.


1.1 Giới thiệu về học sâu.
1.1.1 Học sâu
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 lớp
biến đổi phi tuyến để trích tách đặc trưng và chuyển đổi[23]. Mỗi lớp kế tiếp dùng
đâu ra của lớp trước làm đầu vào. Các thuật toán này có thể được giám sát hoặc khơng
cần giám sát và các ứng dụng bao gờm các mơ hình phân tích (khơng giám sát) và
phân loại (giám sát).
Các thuật tốn học sâu dựa trên các đại diện phân phối. Giả định tiềm ẩn đằng sau
các đại diện phân phối là các dữ liệu được quan sát là được tạo ra bởi sự tương tác
của các yếu tố được tổ chức theo lớp. Học sâu thêm giả định rằng các lớp của các yếu
tố này tương ứng với các mức độ trừu tượng hay theo thành phần. Các con số khác
nhau của các lớp và kích thước của lớp có thể được sử dụng để quy định các lớp trừu
tượng khác. Học sâu khai thác ý tưởng thứ bậc các yếu tố giải thích này ở cấp cao
hơn, những khái niệm trừu tượng hơn được học từ các cấp độ thấp hơn.
Một trong những phương pháp học sâu thành công nhất là mơ hình mạng nơ-ron nhân
tạo (Arificial Neural Network)[23]. Mạng nơ-ron nhân tạo được lấy cảm hứng từ các
mơ hình sinh học năm 1959 được đề xuất bởi người đoạt giải Nobel David H. Hubel
& Torsten Wiesel, 2 người đã tìm thấy hai loại tế bào trong vỏ não thị giác chính: các
tế bào đơn giản và các tế bào phức tạp. Nhiều mạng nơ-ron nhân tạo có thể được xem
như là các mơ hình ghép tầng của các tế bào loại lấy cảm hứng từ những quan sát
sinh học. Nhưng không giống như bộ não sinh học mà bất kỳ nơ-ron nào có thể kết
nối với bất kỳ nơ-ron nào khác trong một cách nhất định, các mạng nơ-ron nhân tạo


4

này có các lớp, kết nối và hướng riêng biệt để truyền dữ liệu. Mỗi tế bào thần kinh
được gán một trọng số cho đầu vào của nó, kết quả cuối cùng sau đó được xác định

bằng tổng số trọng số đó.

Hình 1.1: Nơ-ron sinh học

Như hình trên, ta có thể thấy một nơ-ron có thể nhận nhiều đầu nào và cho ra một kết
quả duy nhất. Một nơ-ron đơn lẻ như vậy được gọi là perceptron

Hình 1.2: Perceptron

Ví dụ: Một perceptron sẽ nhận một hoặc nhiều đầu vào x dạng nhị phân và cho kết
quả đầu ra o dạng nhị phân duy nhất. Các đầu vào được điều phối tầm ảnh hưởng bởi
các tham số lượng tương ứng w của nó, kết quả đầu ra được quyết định vào một
ngưỡng quyết định b nào đó:
0,

∑ 𝑤𝑖 𝑥𝑖 ≤ 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑
𝑖

𝑜 =
1,
{

∑ 𝑤𝑖 𝑥𝑖 > 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑
𝑖

Đặt b = - threshold, ta có thể viết lại thành:


5


0,

∑ 𝑤𝑖 𝑥𝑖 + 𝑏 ≤ 0
𝑖

𝑜 =
1,

∑ 𝑤𝑖 𝑥𝑖 + 𝑏 > 0

{

𝑖

Với đầu vào và đầu ra dạng nhị phân, ta rất khó có thể điều chỉnh một lượng nhỏ đầu
vào để đầu ra thay đổi chút ít, nên để linh động ta có thể mở rộng ra cả khoảng [0, 1].
Lúc này đầu ra được quyết định bởi một hàm sigmoid[17] σ(w⊺x) có cơng thức
𝜎(𝑧) =

1
1 + 𝑒 −𝑧

Đồ thị của hàm này cũng cân xứng thể hiện được mức độ cơng bằng của các tham số:

Hình 1.3: Hàm sigmoid

Đặt z = WTX thì cơng thức của perceptron lúc này sẽ có dạng:
o = 𝜎(𝑧) =

1

1 + 𝑒 −𝑊

𝑇𝑋

Tới đây thì ta có thể thấy rằng mỡi hàm sigmoid cũng tương tự như một bộ phân loại
tuyến tính(logistic regression) bởi xác suất P(yi=1|xi;w)= σ(w⊺x).
Ngồi hàm sigmoid ra ta cịn có một số hàm khác như tanh, ReLU[1] để thay thế hàm
sigmoid bởi dạng đờ thị của nó cũng tượng tự như sigmoid[17]. Một cách tổng quát,
hàm perceptron được biểu diễn qua một hàm kích hoạt (activation function) f(z) như
sau:
𝑜 = 𝑓(𝑧) = 𝑓(𝑊 𝑇 𝑋)
Mạng nơ-ron nhân tạo là sự kết hợp của các tầng perceptron hay cịn gọi là perceptron
đa tầng (multilayer perceptron) như hình bên dưới:


6

Hình 1.4: Mạng nơ-ron nhân tạo

Kiến trúc chung của mạng nơ-ron nhân tạo bao gồm thành phần: Lớp đầu vào, Lớp
ẩn và Lớp đầu ra.
 Lớp đầu vào (Input layer): Là nơi để nạp dữ liệu vào. Mỗi nơ-ron tương ứng
với một thuộc tính (attribute) hoặc đặc trưng (feature) của dữ liệu đầu vào.
 Lớp ẩn (Hidden layer): Là nơi xử lý dữ liệu trước khi đưa ra output. Thường là
hàm tổng (Summation function) để đưa ra giá trị của một nơ-ron tại hidden
layer. Có thể có nhiều hơn một hidden layer. Khi đó đầu ra của một hidden layer
sẽ là đầu vào cho hidden layer tiếp theo.
 Lớp đầu ra (Output layer): Là giá trị đầu ra của mạng nơ-ron. Sau khi đi qua
hidden layer cuối cùng, dữ liệu sẽ được chuyển hóa bằng một hàm số được gọi
là hàm kích hoạt (Activation function) và đưa ra output cuối cùng. Hàm chuyển

đổi thường là hàm tanh(x), sigmoid(x) hoặc softmax(x)[17].
Trong mạng nơ-ron nhân tạo, mỡi nơ-ron đóng vai trị như một đơn vị xử lý thông
tin. Giữa các nơ-ron được đánh trọng số, gọi là các trọng số liên kết (Connection
Weight), thể hiện độ quan trọng của thông tin của mỡi nơ-ron trước với nơ-ron sau.
Q trình học của mạng nơ-ron cũng chính là việc điều chỉnh những tham số này sao
cho phù hợp nhất.
Thông tin của mỗi nơ-ron đi qua mỗi layer sẽ được áp dụng hàm tổng và hàm kích
hoạt trước khi trở thành thơng tin đầu vào của nơ-ron tiếp theo.


7

𝑓(𝑥 ) = ∑𝑛𝑗=1 𝑥𝑗 × 𝑤𝑖𝑗

Hàm tổng:
Trong đó:
-

𝑥𝑗 : Giá trị đầu ra của nơ-ron thứ j

-

𝑤𝑖𝑗 : Trọng số liên kết giữa nơ-ron thứ j ở layer trước và nơ-ron thứ i ở layer
sau

Thông tin ở hidden layer cuối cùng trước khi tới output sẽ phải qua một hàm kích
hoạt (Activation function). Việc sử dụng hàm kích hoạt có hai mục đích: Một là
những thơng tin qua hàm tổng có thể sẽ lớn, vì vậy hàm chuyển đổi sẽ khiến giá trị
đầu ra bị chặn. Ví dụ đầu ra của hàm sigmoid sẽ nằm trong khoảng [0, 1] cịn tanh thì
là [-1, 1]. Hai là hàm tổng là một hàm tuyến tính, giá trị đầu ra sẽ khơng “mượt”, hàm

kích hoạt sẽ “mượt hóa” kết quả của hàm tổng để kết quả đầu ra có thể chính xác hơn.
Hàm kích hoạt thường sử dụng là hàm softmax, tanh, sigmoid[17] hay chỉ đơn thuần
là một ngưỡng để quyết định giá trị cho output.
-

Hàm softmax:

𝑒𝑥

𝑠𝑜𝑓𝑡𝑚𝑎𝑥 (𝑥 ) = ∑𝑛

𝑘𝑒

𝑥𝑘

n: là tổng số nơ-ron ở output layer
x: là giá trị từ hidden layer cuối cùng sau khi đi qua hàm tổng
1

-

Hàm Sigmoid:

𝑓(𝑥 ) =

-

Hàm tanh:

𝑡𝑎𝑛ℎ (𝑥 ) =


1+𝑒 −𝑥
𝑒 𝑥 −𝑒 −𝑥
𝑒 𝑥 +𝑒 −𝑥

1.1.2 Mạng nơ-ron tích chập – Convolutional neural network (CNN)
Convolutional Neural Network (CNN – 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 như hiện nay như hệ thống xử lý ảnh lớn như
Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng
thơng minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone
giao hàng tự động. CNN được sử dụng nhiều trong các bài toán phát hiện các object
trong ảnh. Để tìm hiểu tại sao thuật tốn này được sử dụng rộng rãi cho việc phát hiện
(detection), chúng ta hãy cùng tìm hiểu về thuật tốn này.
Convolutional là một cửa sổ trượt (sliding windows) trên một ma trận.


8

Hình 1.5: Q trình tích chập (Convolutional)

Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy ra
những thơng tin chính xác nhất mà khơng cần chọn các feature. Trong hình ảnh ví dụ
trên, ma trận bên trái là một hình ảnh trắng đen được số hóa. Ma trận có kích thước
5x5 và mỡi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột. Convolution
hay tích chập là nhân từng phần tử trong ma trận 3x3.
Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận có
kích thước nhỏ như trong ví dụ trên là 3x3. Convolution hay tích chập là nhân từng
phần tử bên trong ma trận 3x3 với ma trận bên trái. Kết quả được một ma trận gọi là
Convoled feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5x5 bên

trái.
Cấu trúc của mạng CNN
-

Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các
hàm nonlinear activation như ReLU 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. 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. Trong mơ
hình mạng lan truyền tiến(feedforward neural network) thì mỗi nơ-ron đầu vào
(input node) cho mỗi nơ-ron đầu ra trong các lớp tiếp theo. Mơ hình này gọi là
mạng kết nối đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer).
Cịn trong mơ hình CNN thì ngược lại. Các layer liên kết được với nhau thông


9

qua cơ chế convolution. Layer tiếp theo là kết quả convolution từ layer trước đó,
nhờ vậy mà ta có được các kết nối cục bộ. Như vậy mỗi nơ-ron ở lớp kế tiếp sinh
ra từ kết quả của filter áp đặt lên một vùng ảnh cục bộ của nơ-ron trước đó.
-

Mỡi một lớp được sử dụng các filter khác nhau thơng thường có hàng trăm hàng
nghìn filter như vậy và kết hợp kết quả của chúng lại. Ngồi ra có một số layer
khác như pooling/subsampling layer dùng để chắt lọc lại các thơng tin hữu ích
hơn (loại bỏ các thơng tin nhiễu). Trong quá trình huấn luyện mạng (training)
CNN tự động học các giá trị qua các lớp filter dựa vào cách thức mà bạn thực
hiện. Ví dụ trong tác vụ phân lớp ảnh, CNN sẽ cố gắng tìm ra thông số tối ưu cho
các filter tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level
features. Layer cuối cùng được dùng để phân lớp ảnh.


Hình 1.6: Mơ hình mạng CNN

-

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 kết hợp (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 tốn sẽ bị ảnh hưởng đáng kể. Pooling layer sẽ cho ta
tính bất biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép
co giãn (scaling). Tính kết hợp 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 CNN 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.

-

Mạng CNN sử dụng 3 ý tưởng cơ bản:
 Các trường tiếp nhận cục bộ (local receptive field)


10

 Trọng số chia sẻ (shared weights)
 Tổng hợp (pooling).
Các ý tưởng cơ bản của CNN:
-

Trường tiếp nhận cục bộ (local receptive field)


Đầu vào của mạng CNN là một ảnh. Ví dụ như ảnh có kích thước 28x28 thì tương
ứng đầu vào là một ma trận có 28x28 và giá trị mỗi điểm ảnh là một ô trong ma trận.
Trong mơ hình mạng nơ-ron truyền thống thì chúng ta sẽ kết nối các nơ-ron đầu vào
vào tầng ẩn. Tuy nhiên trong CNN chúng ta không làm như vậy mà chúng ta chỉ kết
nối trong một vùng nhỏ của các nơ-ron đầu vào như một filter có kích thước 5x5 điểm
ảnh đầu vào. Mỗi một kết nối sẽ học một trọng số và mỗi nơ-ron ẩn sẽ học một bias.
Mỗi một vùng 5x5 đấy gọi là một trường tiếp nhận cục bộ.

Hình 1.7: Input đầu vào của một nơ-ron ở lớp ẩn

Một cách tổng quan, ta có thể tóm tắt các bước tạo ra 1 hidden layer bằng các cách
sau:
Bước 1: Tạo ra nơ-ron ẩn đầu tiên trong lớp ẩn 1

Hình 1.8: Các input của nơ-ron thứ nhất


11

Bước 2: Dịch filter qua bên phải một cột sẽ tạo được nơ-ron ẩn thứ 2

Hình 1.9: Các input của nơ-ron thứ hai

Đối với bài toán phát hiện ảnh người ta thường gọi ma trận lớp đầu vào là ma trận
đặc trưng, trọng số xác định các đặc trưng là shared weight và độ lệch xác định một
ma trận đặc trưng là shared bias.
Như vậy đơn giản nhất là qua các bước trên chúng ta chỉ có 1 ma trận đặc trưng. Tuy
nhiên trong phát hiện ảnh chúng ta cần nhiều hơn một ma trận đặc trưng.

Hình 1.10: Ma trận đặc trưng thu được khi sử dụng 3 filter


Như vậy, local receptive field thích hợp cho việc phân tách dữ liệu ảnh, giúp chọn ra
những vùng ảnh có giá trị nhất cho việc đánh giá phân lớp.
-

Trọng số chia sẻ (shared weight and bias)

Đầu tiên, các trọng số cho mỗi filter (kernel) phải giống nhau. Tất cả các nơ-ron trong
lớp ẩn đầu sẽ phát hiện chính xác feature tương tự chỉ ở các vị trí khác nhau trong
hình ảnh đầu vào. Chúng ta gọi việc map từ input layer sang hidden layer là một ma
trận đặc trưng. Vậy mối quan hệ giữa số lượng ma trận đặc trưng với số lượng tham
số là gì?


12

 Chúng ta thấy mỗi fearture map cần 25 = 5x5 shared weight và 1 shared bias.
Như vậy mỗi ma trận đặc trưng cần 5x5+1 = 26 tham số. Như vậy nếu có 10 ma
trận đặc trưng thì có 10x26 = 260 tham số. Chúng ta xét lại nếu layer đầu tiên có
kết nối đầy đủ, nghĩa là chúng ta có 28x28=784 nơ-ron đầu vào và chúng ta có
30 nơ-ron ở lớp ẩn. Như vậy ta cần 28x28x30 shared weight và 30 shared bias.
Tổng số tham số là 28x28x30+30 tham số lớn hơn nhiều so với CNN. Ví dụ vừa
rời chỉ mô tả để thấy được sự ước lượng số lượng tham số chứ chúng ta không so
sánh được trực tiếp vì 2 mơ hình khác nhau. Nhưng điều chắc chắn là nếu mơ
hình có số lượng tham số ít hơn thì nó sẽ chạy nhanh hơn.
Tóm lại, một convolutional layer bao gồm các ma trận đặc trưng khác nhau. Mỗi một
ma trận đặc trưng giúp detect một vài feature trong bức ảnh. Lợi ích lớn nhất của
trọng số chia sẻ là giảm tối đa số lượng tham số trong mạng CNN.
-


Lớp tổng hợp (pooling layer)

Lớp pooling thường được sử dụng ngay sau lớp convulational để đơn giản hóa thơng
tin đầu ra để giảm bớt số lượng nơ-ron.
Thủ tục pooling phổ biến là max-pooling, thủ tục này chọn giá trị lớn nhất trong vùng
đầu vào 2x2.

Hình 1.11: Quá trình tổng hợp thơng tin

Như vậy qua lớp Max Pooling thì số lượng nơ-ron giảm đi phân nửa. Trong một mạng
CNN có nhiều Ma trận đặc trưng nên mỗi Ma trận đặc trưng chúng ta sẽ cho mỗi Max
Pooling khác nhau. Chúng ta có thể thấy rằng Max Pooling là cách hỏi xem trong các
đặc trưng này thì đặc trưng nào là đặc trưng nhất.


13

Cuối cùng ta đặt tất cả các lớp lại với nhau thành một CNN với đầu ra gồm các nơron với số lượng tùy bài toán.

Hình 1.12: Lớp kết nối đầy đủ của CNN

Lớp cuối cùng của các kết nối trong mạng là một lớp đầy đủ kết nối (fully connected
layer). Lớp này nối mỗi nơ-ron từ lớp max pooling tới mỗi nơ-ron của tầng ra.

1.2 Các kỹ thuật liên quan đến xử lý ảnh và nhận diện đối tượng.
1.2.1 Tổng quan về xử lý ảnh
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm tạo ra
kết quả mong muốn. Kết quả đầu ra của một q trình xử lý ảnh có thể là một ảnh tốt
hơn hoặc một kết luận nào đó.
Ảnh là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường độ

ánh sáng của đối tượng trong khơng gian và có thể xem như một hàm n biến P(c1, c2,
c3, …, cn). Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều.

Hình 1.13: Các bước cơ bản trong một hệ thống xử lý ảnh

Sơ đồ tổng quát của một hệ thống xử lý ảnh:
 Khối thu nhận ảnh: Có nhiệm vụ tiếp nhận ảnh đầu vào.
 Khối tiền xử lý: Có nhiệm vụ xử lý nâng cao chất lượng ảnh như giảm nhiễu,
phân vùng, tìm biên …


14

 Khối dự đốn: Có nghiệm vụ đưa ra dự đoán từ bức ảnh đã được tiền xử lý
đưa ra kết quả dự đoán sử dụng cho bước hậu xử lý và đưa ra quyết định.
 Khối hậu xử lý: Có nhiệm vụ xử lý các kết quả của khối dự đốn, có thể lược
bỏ hoặc biến đổi các kết quả này để phù hợp với các ký thuật cụ thể sử dụng
trọng hệ quyết định.
 Khối hệ quyết định và lưu trữ: Có nhiệm vụ đưa ra quyết định(phân loại,
phát hiện) dựa trên dữ liệu đã học.
 Khối kết luận: Đưa ra kết luận dựa vào quyết định của khối quyết định.

1.2.2 Các vấn đề cơ bản trong xử lý ảnh
 Nắn chỉnh biến dạng: Ảnh thu được thường bị biến dạng do các thiết bị quang
học và điện tử. Để khắc phục người ra sử dụng các phép chiếu được xây dựng
dựa trên tập các điểm điều khiển.
 Khử nhiễu: Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh mà chúng ta
cần loại bỏ:
-


Nhiễu hệ thống: là nhiễu có quy luật có thể khử bằng các phép biến đổi

-

Nhiễu ngẫu nhiên: là nhiễu không rõ nguyên nhân có thể khắc phục
bằng các phép lọc.

 Chỉnh số mức xám: Chỉnh số mức xám là khắc phục tính khơng đờng đều
của hệ thống xử lý ảnh, thơng thương có 2 hướng tiếp cận:
-

Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau
thanh một nhóm. Trường hợp giảm xuống 2 mức xám thì chính là
chuyển về ảnh đen trắng.

-

Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng
kỹ thuật nội suy. Kỹ thuật này tăng cường độ mịn cho ảnh.

 Nén ảnh: Là kỹ thuật nhằm giảm thiểu không gian lưu trữ. Có hai hướng tiếp
cận chính là nén có bảo tồn cà khơng bảo tồn thơng tin. Nén khơng bảo tồn
thì thương có khà năng nén cao hơn nhưng khơng phục hời đươc ảnh gốc,
ngược lại nén có bảo tồn cho phép khơi phục hồn tồn ảnh gốc.

1.2.3 Nhận diện và phân loại ảnh


15


Phát hiện tự động, phân loại và nhóm các mẫu là những vấn đề quan trọng của thị
giác máy tính, được ứng dụng trong nhiều ngành, lĩnh vực khác nhau. Ví dụ như phát
hiện dấu vân tay, phân loại hàng hóa, phát hiện khn mặt hay một biểu đờ của âm
thanh. Để phát hiện hoặc phân loại được ảnh có thể sử dụng hai cách chính:
-

Học có giám sát (supervised learning): Phân loại mẫu đầu vào vào một lớp
đã xác định.

-

Học không giám sát (unsupervised learning): Các mẫu được gom nhóm
với nhau dựa trên một số điều kiện nào đó. Các lớp này cho đến thởi điểm
phân loại vẫn chưa biết hay chưa được định danh.

Có nhiều cách tiếp cận khác nhau trong bài tốn phát hiện trong đó có: Đối sánh mẫu
dựa trên đặc trưng đã được trích chọn, phận loại dựa trên thống kê, phân loại dựa trên
mạng nơ-ron nhận tạo …
Các hệ thông phát hiện và nhận dạng đối tượng hiện nay thường có ba bước xử lý
-

Bước 1: Sử dụng một mơ hình hoặc một thuật toán để tạo ra các vùng ứng viên,
các khu vực quan tâm. Các vùng ứng viên này là một tập hợp lớn các hộp giới
hạn để xác định đối tượng.

-

Bước 2: Trích xuất đặc trưng từ các hộp giới hạn tìm được, chúng được đánh
giá và xác định xem đối tượng nào có mặt trong hộp giới hạn đó (tức là thành
phần phân loại đối tượng) hay không.


-

Bước 3: Trong bước hậu xử lý cuối cùng, các hộp chồng chéo nhau được kết
hợp thành một hộp giới hạn sử dụng một số thuật toán như Non-maximum
suppression, …

1.3 Các kỹ thuật hiện tại và hạn chế.
Một số kỹ thuật phát hiện và nhận dạng đối tượng dựa trên mạng CNN phổ biến
trên thế giới như: R-CNN(Region-Convolutional Neural Network)[3], Fast RCNN[5], Faster R-CNN[14], YOLO(You Only Look Once)[12][13], SSD (Single
Shot Multibox Detector)[10] …

1.3.1 R-CNN, Fast R-CNN


×