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

Nghiên cứu phương pháp nhận dạng số nhà từ ảnh chụp đường phố

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 (5.55 MB, 81 trang )

TRẦN DUY THANH

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRẦN HỮU LỘC

TRẦN DUY THANH

LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

C
C

NGHIÊN CỨU PHƯƠNG PHÁP NHẬN DẠNG
SỐ NHÀ TỪ ẢNH CHỤP ĐƯỜNG PHỐ

R
L
T.

U
D

LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

NĂM 2019
Đà Nẵng – Năm 2019


ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA



TRẦN DUY THANH

C
C

NGHIÊN CỨU PHƯƠNG PHÁP NHẬN DẠNG
SỐ NHÀ TỪ ẢNH CHỤP ĐƯỜNG PHỐ

R
L
T.

U
D

Chuyển nghành: KỸ THUẬT ĐIỆN TỬ
Mã số: 8520203

LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

Người hướng dẫn khoa hoc:
TS. HỒ PHƯỚC TIẾN

Đà Nẵng – Năm 2019


1

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

LỜI CAM ĐOAN
Kính gửi: Hội đồng bảo vệ luận văn tốt nghiệp Khoa Điện Tử - Viễn Thông,
Trường Đại Học Bách Khoa – Đại Học Đà Nẵng.
Tôi tên là: Trần Duy Thanh.
Hiện là học viên lớp Cao học Kỹ thuật điện tử - Khoá 36 - Khoa Điện Tử - Viễn
Thông, Trường Đại học Bách khoa – Đại học Đà Nẵng. Tôi xin cam đoan nội dung
của luận văn này không phải là bản sao chép của bất cứ luận văn hoặc công trình nào
đã có từ trước. Nếu vi phạm tôi xin chịu hoàn toàn trách nhiệm.

C
C

DU

R
L
T.

Học
Họcviên
viên

Trần Duy Thanh
Trần Duy Thanh


2


MỤC LỤC
LỜI CAM ĐOAN ............................................................................................... 1
MỤC LỤC .......................................................................................................... 2
TÓM TẮT LUẬN VĂN ...................................................................................... 4
DANH MỤC TỪ VIẾT TẮT .............................................................................. 5
DANH MỤC HÌNH VẼ ...................................................................................... 6
DANH MỤC BẢNG ........................................................................................... 9
CHƯƠNG 1. GIỚI THIỆU BÀI TOÁN NHẬN DẠNG SỐ NHÀ VÀ DEEP
LEARNING .............................................................................................................. 13

C
C

1.1.

Giới thiệu chương ............................................................................... 13

1.2.

Tổng quan về bài toán nhận dạng số nhà ............................................. 13

1.3.

Phương pháp học sâu (Deep Learning) và Ứng dụng .......................... 17

1.4.

Kết luận chương ................................................................................. 19

DU


R
L
T.

CHƯƠNG 2. MẠNG NEURON NHÂN TẠO VÀ MẠNG NEURON TÍCH
CHẬP ........................................................................................................................ 20
2.1 Giới thiệu chương.................................................................................... 20
2.2

Mạng Neuron nhân tạo........................................................................ 20

2.2.1 Cấu trúc một Neuron sinh học .......................................................... 20
2.2.2 Cấu trúc một Perceptron ................................................................ 21
2.3

Sigmoid Neuron .................................................................................. 22

2.4

Mô hình mạng Multi-layers Perceptron (MLP) ................................... 24

2.5

Mạng Neuron tích chập (Convolutional Neural Network – CNN) ....... 26

2.5.1 Vùng tiếp nhận cục bộ (Local receptive field)................................... 26
2.5.2 Trọng số chia sẻ ............................................................................. 29
2.5.3 Pooling .......................................................................................... 32
2.6


Kết luận chương ................................................................................. 33

CHƯƠNG 3. XÂY DỰNG PHƯƠNG PHÁP NHẬN DẠNG SỐ NHÀ ........... 34
3.1. Giới thiệu chương................................................................................... 34


3
3.2. Bài toán nhận dạng số nhà ...................................................................... 34
3.3.

Phương pháp mạng Neuron truyền thống ............................................ 35

3.4.

Phương pháp dùng mạng neuron tích chập .......................................... 37

3.5.

Mô hình Resnet................................................................................... 43

3.6.

Kết luận chương ................................................................................. 44

CHƯƠNG 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ ............................................ 45
4.1.

Giới thiệu chương ............................................................................. 45


4.2.

Cơ sở dữ liệu SVHN .......................................................................... 45

4.3.

Kết quả với mạng truyền thống (MLP) ............................................... 46

4.4.

Kết quả với mạng CNN ...................................................................... 47

C
C

4.4.1. Ảnh hưởng của số lớp tích chập đến kết quả nhận dạng ............ 48
4.4.2. Tác động của các tham số ............................................................. 52

R
L
T.

4.5.

Kết quả với Resnet .............................................................................. 55

4.6.

Kết luận chương ................................................................................. 58


DU

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ......................................................... 59
DANH MỤC TÀI LIỆU THAM KHẢO ........................................................... 61
QUYẾT ĐỊNH GIAO ĐỀ TÀI .......................................................................... 63
PHỤ LỤC ......................................................................................................... 64


4
TÓM TẮT LUẬN VĂN

NGHIÊN CỨU PHƯƠNG PHÁP NHẬN DẠNG SỐ NHÀ TỪ ẢNH CHỤP
ĐƯỜNG PHỐ
Học viên:

Trần Duy Thanh

Mã số: 8520203

Khóa: 36

Chuyên ngành:

Kỹ thuật điện tử

Trường Đại học Bách khoa – Đại học Đà Nẵng

Tóm tắt -. Trong những năm gần đây, mạng Neuron tích chập (Convolutional Neural
Network-CNN) và đặc biệt là mạng Neuron tích chập sâu với nhiều lớp tích chập đã tạo ra
những bước tiến đáng kể trong việc giải quyết các bài toán về thị giác máy tính. Tuy nhiên,

việc nhận dạng hình ảnh trong môi trường tự nhiên vẫn là một vấn đề khó khăn đối với thị
giác máy tính. Luận văn này tập trung nghiên cứu và khảo sát thực nghiệm các kiến trúc mạng
Neuron nhân tạo bao gồm mạng MLP, CNN và mạng CNN sâu với nhiều lớp tích chập trong
việc nhận dạng hình ảnh số nhà được chụp từ đường phố. Vai trò của các khối chức năng
trong mạng sẽ được phân tích và đánh giá thông qua tỉ lệ nhận dạng. Việc đánh giá được thực
hiện thông qua bộ dữ liệu ảnh số nhà SVHN, đây là bộ dữ liệu được sử dụng rộng rãi trong
lĩnh vực nhận dạng ảnh. Quá trình thực nghiệm đã cho thấy những kết quả tốt về tỷ lệ nhận
dạng, cũng như thể hiện được ưu điểm của kiến trúc CNN, mạng CNN nhiều lớp, và đặc biệt
là mạng ResNet.

C
C

R
L
T.

Từ khóa - Deep Learning; Neuron network; MLP; CNN; Resnet; nhận dạng hình ảnh;
SVHN.

DU

METHODS TO RECOGNIZE STREET VIEW
HOUSE NUMBERS
Abstract - In the recent years, Convolutional Neural Network (CNN) and especially the Deep
Neural Network with multiple layers have made significant advances in solving computer
vision problems. However, image recognition in the natural environment is still a difficult
problem for computer vision. The thesis focuses on the research and empirical survey of
artificial neural network architectures including MLP network, CNN and deep CNN network
with multiple convolution layers, in order to recognize house numbers in images taken in the

street. The role of the functional blocks in the network will be analyzed and evaluated through
the recognition rate. The assessment is done with the popular dataset SVHN. The
experimental process has shown good results in the recognition rate, as well as demonstrated
the advantages of CNN architecture and CNN deep network compared to traditional MLP
network.
Key words - Deep Learning; Neural Network; MLP; CNN; Resnet; image classification;
SVHN.


5

DANH MỤC TỪ VIẾT TẮT
Từ viết tắt

Diễn giải

Dịch nghĩa

AI

Artificial Intelligence

Trí tuệ nhân tạo

ANN

Artificial Neural Network

Mạng Neuron nhân tạo


CNN

Convolutional Neural Network

Mạng Neuron tích chập

FC

Fully-Connected

Kết nối đầy đủ

MLP

Multi-Layers Perceptron

Perceptron nhiều lớp

ReLU

Rectified Linear Units

ResNet

Residual Network

SVHN

Street View House Number


DU

Khối kích hoạt tuyến tính
phần dương

R
L
T.

C
C

Mạng Residual

Số nhà từ ảnh chụp đường phố


6

DANH MỤC HÌNH VẼ
Hình 1.1. Biểu diễn dữ liệu hình ảnh.......................................................................... 13
Hình 1.2 Số nhà có các font chữ số khác nhau (lấy từ tập dữ liệu SVHN [15])........... 15
Hình 1.3. Đối tượng nhận dạng có sự thay đổi theo khoảng cách [15]. ....................... 15
Hình 1.4. Hình dạng và bố cục khác nhau của các chữ số [15]. .................................. 15
Hình 1.5 Chữ số nhà bị che khuất, mất chi tiết số [15]. .............................................. 16
Hình 1.6. Tác động của ánh sáng đến việc nhận dạng chữ số [15]. ............................. 16
Hình 1.7. Khả năng gây nhầm lẫn khi đối tượng và bối cảnh có sự tương đồng [15]. . 16
Hình 1.8. Kiến trúc mạng Neuron nhân tạo. ............................................................... 17
Hình 1.9. Kiến trúc mạng Neuron nhân tạo với hai lớp ẩn.......................................... 17


C
C

Hình 1.10. Kiến trúc mạng Deep Learning đơn giản. ................................................. 18

R
L
T.

Hình 2.1. Tế bào Neuron thần kinh của người [6]. ..................................................... 20
Hình 2.2. Cấu trúc của một Perceptron đơn giản. ....................................................... 21

DU

Hình 2.3. Sự thay đổi nhỏ các giá trị trọng số dẫn đến sự thay đổi nhỏ tương ứng ở
ngõ ra [11]. ................................................................................................................ 23
Hình 2.4. Hàm kích hoạt của Perceptron [11]............................................................. 23
Hình 2.5. Mô hình Perceptron đơn giản [11]. ............................................................. 23
Hình 2.6. Minh họa hàm Sigmoid [11]. ...................................................................... 24
Hình 2.7. Một mô hình mạng MLP gồm các lớp Full Connection [11]. ...................... 25
Hình 2.8. Cấu trúc mạng MLP nhiều lớp [11]. ........................................................... 25
Hình 2.9. Ảnh ngõ vào với kích thước 28 × 28 [11]. ................................................. 27
Hình 2.10. Vùng cục bộ - vùng chấm đen đậm [11]. .................................................. 27
Hình 2.11. Quá trình dịch của các cửa sổ bộ lọc [11]. ................................................ 28
Hình 2.12. Minh họa việc áp dụng một filter lấy tích chập lên ảnh ngõ vào. .............. 30
Hình 2.13. Các bản đồ đặc tính được tạo thành tương ứng với các bộ lọc. ................. 30
Hình 2.14. Kích thước bị thu nhỏ sau quá trình lấy tích chập. .................................... 31
Hình 2.15. Chèn padding được thực hiện trước khi lấy tích chập. .............................. 32
Hình 2.16. Lấy mẫu xuống giúp giảm kích thước dữ liệu. .......................................... 33
Hình 3.1. Mô hình tổng quát của bài toán nhận dạng số nhà....................................... 34



7
Hình 3.2. Mạng MLP trong nhận dạng biển số nhà từ ảnh chụp đường phố. .............. 35
Hình 3.3. Mạng MLP với 1 lớp ẩn ............................................................................. 36
Hình 3.4. Mạng MLP với 2 lớp ẩn ............................................................................. 36
Hình 3.5. Mạng MLP 3 lớp ẩn ................................................................................... 36
Hình 3.6. Mạng MLP 4 lớp ẩn ................................................................................... 37
Hình 3.7. Cấu trúc mạng LeNet [8]. ........................................................................... 37
Hình 3.8. Kiến trúc mạng CNN cơ bản trong nhận dạng số nhà ................................. 38
Hình 3.9. Hàm kích hoạt ReLU, chuyển các giá trị âm về 0. ...................................... 38
Hình 3.10. Mô hình CNN sử dụng trong luận văn ...................................................... 41
Hình 3.11. Mô hình mạng CNN không sử dụng lớp batchNormalization ................... 42

C
C

Hình 3.12. So sánh kết quả nhận dạng khi tăng số lớp [4]. ......................................... 43
Hình 3.13. Mô hình một Residual block [4]. .............................................................. 44

R
L
T.

Hình 3.14. Mô hình mạng Resnet 18 [5]. ................................................................... 44
Hình 4.1. Kết quả nhận dạng của mạng MLP với 1 lớp ẩn ......................................... 46

DU

Hình 4.2. Kết quả nhận dạng của mạng MLP với 2 lớp ẩn ......................................... 46

Hình 4.3. Kết quả nhận dạng của mạng MLP với 3 lớp ẩn ......................................... 46
Hình 4.4. Kết quả nhận dạng của mạng MLP với 4 lớp ẩn ......................................... 46
Hình 4.5. Mạng CNN 2 lớp tích chập......................................................................... 48
Hình 4.6. Mô hình mạng CNN 2 lớp tích chập ........................................................... 48
Hình 4.7. Kết quả nhận dạng của mạng CNN 2 lớp tích chập..................................... 49
Hình 4.8. Mạng CNN 3 lớp tích chập......................................................................... 49
Hình 4.9. Kết quả nhận dạng của mạng CNN 3 lớp tích chập..................................... 50
Hình 4.10. Mạng CNN 4 lớp tích chập ....................................................................... 50
Hình 4.11. Kết quả nhận dạng đối với mạng CNN 4 lớp tích chập ............................. 51
Hình 4.12. Kết quả nhận dạng đối với mạng CNN 5 lớp tích chập ............................. 51
Hình 4.13. Vai trò của Learning rate trong mạng CNN ............................................. 53
Hình 4.14. Vai trò của Dropout trong mạng CNN ...................................................... 54
Hình 4.15. Vai trò của batchNormalization trong mạng CNN .................................... 55
Hình 4.16. Kết quả nhận dạng với mạng Resnet 8 (23 epoch) .................................... 56


8
Hình 4.17. Kết quả nhận dạng với mạng Resnet 18 .................................................... 56
Hình 4.18. Kết quả nhận dạng với mạng Resnet 18 (có Extra data) ............................ 57

C
C

DU

R
L
T.



9

DANH MỤC BẢNG
Bảng 4.1. Kết quả nhận dạng mạng MLP với tập dữ liệu SVHN ................................ 47
Bảng 4.2. Kết quả nhận dạng của mạng CNN với tập dữ liệu SVHN ......................... 52
Bảng 4.3. Kết quả nhận dạng của các mạng Neuron với tập dữ liệu SVHN ................ 58

C
C

DU

R
L
T.


10

MỞ ĐẦU
1. Tính cấp thiết của đề tài
Mạng Neuron nhân tạo – ANN (gọi tắt là mạng Neuron) là mô hình thuật toán
được đưa ra dựa trên hệ thống thần kinh của con người và Deep Learning (Deep
Neural Network) là một nhánh đặc biệt trong đó.
Mạng neuron sâu thực chất không phải là một khái niệm mới, mà đã xuất hiện
từ những năm 1950 nhưng mãi đến thời gian gần đây mới phát triển mạnh mẽ cùng với
sự bùng nổ của Internet và máy tính có tốc độ xử lý cao, giúp chúng ta có thể tận dụng
tất cả dữ liệu khổng lồ như hình ảnh, video, âm thanh,.. là các yếu tố quyết định giúp
mạng neuron hoạt động hiệu quả.
Hiện nay, kỹ thuật nhận dạng đang được rất nhiều người quan tâm, bởi đây là

một ngành khoa học có rất nhiều ứng dụng trong các lĩnh vực tin học, y tế, quốc
phòng, an ninh, kinh tế và xã hội.

C
C

R
L
T.

Luận văn này tập trung nghiên cứu Deep Learning và mạng Neuron tích chập
(CNN) để giải quyết vấn đề nhận dạng số nhà từ ảnh chụp trong bối cảnh phức tạp,
ảnh màu và ảnh có chứa những đối tượng khác có thể gây nhầm lẫn.

DU

Xuất phát từ nhu cầu thực tế và xu hướng nghiên cứu của thế giới, tác giả thực
hiện đề tài: “Nghiên cứu phương pháp nhận dạng số nhà từ ảnh chụp đường phố.”

2. Mục tiêu nghiên cứu
- Nghiên cứu áp dụng mạng neuron tích chập (CNN) và mạng Neuron tích chập
sâu (CNNs) giải quyết bài toán nhận dạng số nhà từ ảnh chụp đường phố.
- Nghiên cứu, đưa ra mô hình các mạng Neuron nhân tạo như MLP, CNN và
đánh giá hệ thống mạng dựa trên cơ sở dữ liệu SVHN.
- Đánh giá tác động của số lớp, tốc độ học của mạng, tỷ lệ loại bỏ ngẫu nhiên
(dropout)… đến hệ thống dựa trên tỷ lệ nhận dạng đúng hình ảnh chữ số.

3. Đối tượng và phạm vi nghiên cứu
a) Đối tượng nghiên cứu
- Mô hình mạng Neuron truyền thống MLP [11].

- Mô hình mạng Neuron tích chập (CNN) nhiều lớp [11].
- Mô hình mạng Neuron tích chập sâu Resnet [13].
- Cơ sở dữ liệu SVHN được lấy từ Google Street View – dùng để khảo sát và
đánh giá hệ thống [15].
- Ứng dụng phần mềm Matlab để mô phỏng.


11
b) Phạm vi nghiên cứu
- Nhận dạng ảnh số nhà.
- Phân tích, xử lý ảnh.
- Mạng Neuron nhân tạo, Mạng Neuron tích chập
- Tập dữ liệu hình ảnh số nhà SVHN.
- Phần mềm Matlab, mô phỏng và đánh giá hiệu quả của hệ thống.
4. Phương pháp nghiên cứu
Trong phạm vi luận văn, phương pháp nhận dạng số nhà từ ảnh chụp đường
phố được xây dựng dựa trên mạng Neuron tích chập (CNN).
Xây dựng mô hình mạng CNN và mô phỏng bằng Matlab nhằm đánh giá hiệu
quả của hệ thống.

C
C

Hệ thống được tiến hành đánh giá dựa trên tỷ lệ nhận dạng đúng (hoặc tỷ lệ
nhận dạng lỗi) hình ảnh, áp dụng với bộ cơ sở dữ liệu chính là SVHN.

R
L
T.


Phương pháp nghiên cứu xuyên suốt của luận văn là kết hợp nghiên cứu lý
thuyết, và đánh giá thông qua mô phỏng thực nghiệm. Quá trình thực hiện bao gồm
các bước: xây dựng mô hình, huấn luyện, đánh giá khả năng phân loại ảnh số nhà dựa
trên tỉ lệ nhận dạng đúng.

DU

5. Ý nghĩa khoa học và thực tiễn của đề tài
Việc nhận dạng các chữ số nhà từ ảnh chụp đường phố là một vấn đề quan
trọng đang được quan tâm hiện nay, các bức ảnh chụp đường phố thường có bối cảnh
phức tạp có chứa nhiều đối tượng gây nhầm lẫn trong nhận dạng là vấn đề đầy thách
thức và khó khăn. Tuy nhiên, các bài toán này có thể được giải quyết với sự trợ giúp
Deep Learning và mạng Neuron tích chập.
Việc khai thác ảnh chụp đường phố được lấy từ Google Street View giúp việc
xây dựng và cập nhật bản đồ cho một địa điểm, khu phố, con đường được thuận lợi
hơn.
6. Cấu trúc của luận văn
Trong luận văn “NGHIÊN CỨU PHƯƠNG PHÁP NHẬN DẠNG SỐ NHÀ TỪ
ẢNH CHỤP ĐƯỜNG PHỐ”, tôi tập trung vào việc nghiên cứu, xây dựng và khảo sát
hiệu quả của hệ thống để giải quyết bài toán nhận dạng hình ảnh số nhà từ ảnh chụp
trong môi trường tự nhiên. Nội dung của luận văn gồm 4 chương:
Chương 1: Giới thiệu bài toán nhận dạng số nhà và Deep Learning
Chương 2: Mạng Neuron nhân tạo và mạng Neuron tích chập
Chương 3: Xây dựng phương pháp nhận dạng ảnh số nhà
Chương 4: Thực nghiệm và đánh giá kết quả


12
Em xin bày tỏ sự biết ơn chân thành và sâu sắc nhất tới Thầy TS. Hồ Phước
Tiến đã hết lòng hướng dẫn và giúp đỡ Em trong suốt quá trình nghiên cứu và hoàn

thiện luận văn Thạc sĩ này.
Em cũng xin gửi lời cảm ơn chân thành tới các Thầy, các Cô là giảng viên của
Khoa Điện Tử Viễn Thông - Trường Đại học Bách khoa Đà Nẵng đã tận tình truyền
đạt và hướng dẫn cho Em trong suốt quá trình học tập.
Mặc dù đã hết sức cố gắng hoàn thành luận văn, nhưng do thời gian và trình độ
có hạn nên luận văn của em chắn chắn không thể tránh khỏi những sai sót, rất mong
nhận được các ý kiến đóng góp của quý Thầy, Cô và các Bạn để luận văn được hoàn
thiện hơn.
Em xin chân thành cảm ơn !

C
C

DU

R
L
T.


13

CHƯƠNG 1. GIỚI THIỆU BÀI TOÁN NHẬN DẠNG SỐ NHÀ
VÀ DEEP LEARNING
1.1. Giới thiệu chương
Ngày nay, Trí tuệ nhân tạo (Aritificial Intelligence - AI) và Học máy (Machine
Learning) hiện diện trong mọi lĩnh vực của đời sống con người, từ kinh tế, giáo dục, y
khoa cho đến những công việc nhà, giải trí hoặc thậm chí là trong quân sự. Những ứng
dụng nổi bật trong việc phát triển AI đến từ nhiều lĩnh vực để giải quyết nhiều vấn đề
khác nhau. Nhưng những đột phá phần nhiều đến từ Học sâu (Deep Learning), một

mảng nhỏ đang mở rộng dần đến từng loại công việc, từ đơn giản đến phức tạp.
Chương 1 sẽ giới thiệu tổng quan về bài toán nhận dạng số nhà và trình bày sơ lược về
Deep Learning cũng như về mạng Neuron nhân tạo.

1.2. Tổng quan về bài toán nhận dạng số nhà

C
C

Nhận dạng hình ảnh nói chung và nhận dạng ký tự, chữ số từ ảnh chụp nói riêng
là một trong những vấn đề đang được quan tâm hiện nay. Tuy nhiên việc nhận dạng
chữ số trong môi trường tự nhiên vẫn là một vấn đề khó khăn đối với thị giác máy
tính.

DU

R
L
T.

Hiện nay một số hãng công nghệ lớn như Google, Amazone đã đưa ra các thuật
toán nhận dạng hình ảnh vào ứng dụng như: tự tag khuôn mặt người dùng (Facebook),
tìm kiếm qua camera điện thoại bằng trí thông minh nhân tạo (Google Lens) hay siêu
thị tự động không cần thu ngân (Amazon Go).
Về cơ bản, nhận dạng số nhà là trích xuất các lớp thông tin từ hình ảnh để phân
loại các chữ số trong ảnh. Và dưới góc nhìn của một hệ thống, dữ liệu khi đưa vào
mạng được biểu diễn bằng ma trận (matrix) số liệu hay tổng quát hơn là ma trận nhiều
chiều (tensor).
Giả sử x là một ảnh màu RGB có kích thước H × W × D (tương ứng với kích
thước chiều cao, rộng và độ sâu) sẽ được biểu diễn bởi bằng một tensor H × W × 3.

Tensor này có 3 kênh (channel), tương ứng với ba màu đỏ, xanh lá cây và xanh dương.

Hình 1.1. Biểu diễn dữ liệu hình ảnh


14
Có hai phương pháp học máy chính được áp dụng vào nhận dạng chữ số: học
có giám sát (supervised learning) và học không giám sát (unsupervised learning).
-

Nhận dạng có giám sát:

Nhận dạng số nhà có giám sát là thuật toán dự đoán đầu ra của một số nhà mới
cần nhận dạng, dựa trên các cặp số nhà cần nhận dạng và kết quả nhận dạng đã biết từ
trước. Cặp dữ liệu này còn được gọi là dữ liệu, nhãn (data, label). Supervised Learning
là nhóm phổ biến nhất trong các thuật toán Machine Learning.
Một cách toán học, Supervised Learning là khi chúng ra có một tập hợp biến
đầu vào X={x1,x2,…,xN}và một tập hợp nhãn tương ứng Y={y1,y2,…,yN}, trong đó
xi,yi là các vector. Các cặp dữ liệu biết trước (xi,yi) được gọi là tập dữ liệu huấn luyện
(training data). Từ tập training data này, chúng ta cần tạo ra một hàm số ánh xạ mỗi
phần tử từ tập X sang một phần tử (xấp xỉ) tương ứng của tập Y:yi≈f(xi), ∀i=1,2,…,N.

C
C

Mục đích là xấp xỉ hàm số f thật tốt để khi có một số nhà x mới, chúng ta có thể
tính được nhãn tương ứng của nó y=f(x).
-

R

L
T.

Nhận dạng không giám sát:

Nhận dạng số nhà không giám sát là thuật toán mà chúng ta không biết được số
nhà ở đầu ra hay label mà chỉ có dữ liệu đầu vào.

DU

Một cách toán học, Unsupervised Learning là khi chúng ta chỉ có dữ liệu vào X
mà không biết nhãn Y tương ứng.
Hiện nay, với bài toán nhận dạng nói chung và bài toán nhận dạng số nhà nói
riêng, phần lớn các nghiên cứu vẫn tập trung vào phương pháp nhận dạng có giám sát.
Luận văn này cũng sẽ được thực hiện theo hướng nghiên cứu này.
Đối với bộ não người bình thường, thông qua quá trình tiến hóa và thu nhận
thông tin, cần chưa tới vài giây (hay thậm chí chỉ vài phần giây) để có thể nhận dạng
một đối tượng là chữ số, bức tường, hàng rào ... Tuy nhiên, đây lại là một vấn đề khó
khăn và cực kì phức tạp đối với các hệ thống máy tính. Thậm chí, trong một số trường
hợp với hình ảnh phức tạp hay dễ nhầm lẫn, bản thân con người cũng có thể không
nhận dạng được đối tượng. Một số thách thức trong nhận dạng số nhà từ ảnh chụp có
thể kể đến như:
- Về Font chữ số:
Ảnh chụp một số nhà có các font chữ số khác nhau sẽ dẫn tới dễ gây nhầm lẫn
trong phân biệt và nhận dạng.


15

Hình 1.2 Số nhà có các font chữ số khác nhau (lấy từ tập dữ liệu SVHN [15]).

- Về tỷ lệ của chữ số:
Việc nhận định về vật thể có thể chịu sự chi phối về kích thước và tỉ lệ của vật
thể. Trong trường hợp cụ thể, có thể kể đến việc sai khác về kích thước quan sát vật
thể ở các khoảng cách khác nhau. Cùng một vật thể được đánh giá, nếu ở khoảng cách
gần, chúng ta có thể quan sát được với kích thước lớn, và ngược lại khi vật thể ở xa.

C
C

DU

R
L
T.

Hình 1.3. Đối tượng nhận dạng có sự thay đổi theo khoảng cách [15].
- Về hình dạng, cách bố trí, góc nhìn, chiều xoay các chữ số:
Nhiều số nhà có thể bị biến đổi về bố cục sắp xếp, góc độ, chiều xoay của các
chữ số, đơn cử như chữ số nhà được xếp thành nhiều hàng, chữ số theo chiều dọc và
chiều ngang, chữ số theo góc nghiêng…. Đây cũng là một yếu tố ảnh hưởng đến việc
nhận dạng.

Hình 1.4. Hình dạng và bố cục khác nhau của các chữ số [15].
- Về vấn đề che khuất, mất chi tiết:
Trong thực tế, không phải lúc nào chúng ta cũng có thể quan sát toàn vẹn về đối
tượng. Trường hợp đối tượng bị che khuất một phần, chính là một ví dụ cụ thể.


16


Hình 1.5 Chữ số nhà bị che khuất, mất chi tiết số [15].
Trong Hình 1.5, Số nhà được chụp trong ảnh bị che khuất một phần chữ số, chữ
số bị mất một phần chi tiết, chỉ vài phần nhỏ của nó có thể nhìn thấy được. Quá trình
nhận dạng sẽ được thực hiện trong trạng thái khuyết thiếu dữ liệu.
-

Điều kiện chiếu sáng: Tác động của mức độ ánh sáng lên từng điểm ảnh:

C
C

DU

R
L
T.

Hình 1.6. Tác động của ánh sáng đến việc nhận dạng chữ số [15].
-

Nhầm lẫn bối cảnh, ảnh chụp mờ khó nhận dạng:

Một trường hợp khó xử lý khác mà chúng ta có thể kể đến là việc có nhiều chữ
số tương đồng hòa trộn vào môi trường xung quanh trong ảnh, chữ số và bối cảnh có
sự tương đồng, ảnh chụp các chữ số mờ khó nhận dạng.

Hình 1.7. Khả năng gây nhầm lẫn khi đối tượng và bối cảnh có sự tương đồng [15].
Bài toán nhận dạng đơn giản nhất hiện nay mà có thể xem là đã giải quyết được
là bài toán nhận dạng chữ số viết tay, với kết quả các nhà nghiên cứu đạt được lên đến
99%. Ngược lại, bài toán được cho là khó giải quyết nhất là bài toán nhận dạng ảnh

trong môi trường tự nhiên, do sự đa dạng về bối cảnh, màu sắc, góc nhìn, khoảng cách
chụp, thành phần gây nhầm lẫn,...


17

1.3. Phương pháp học sâu (Deep Learning) và Ứng dụng
1.3.1 Phương pháp học sâu (Deep Learning)
Deep Learning gắn liền với cụm từ “neural network”. Lĩnh vực này đã được
biết đến dưới nhiều cái tên khác nhau và đã trải qua một quá trình lịch sử lâu dài về
nghiên cứu.

C
C

R
L
T.

Hình 1.8. Kiến trúc mạng Neuron nhân tạo.

DU

Mạng Neuron không phải là một lĩnh vực mới, thậm chí chúng là những mô
hình machine learning lần đầu tiên xuất hiện từ đầu những năm 1950. Khởi đầu là
những nghiên cứu về mạng Neuron nhân tạo (ANN), lấy cảm hứng từ các mô hình
neuron sinh học như Perceptron, Adaline. Đến những năm 1960 - 1980 với sự phát
minh của thuật toán lan truyền ngược (back propagation) [11] đã góp phần thúc đẩy sự
phát triển của mạng Neuron, tuy nhiên phải đến thời gian gần đây mới gây được sự
chú ý trên thế giới.

Kiến trúc chung của mạng Neuron nhân tạo gồm có ba thành phần đó là lớp đầu
vào (Input layer), lớp ẩn (hidden layer) và lớp đầu ra (output layer) [11], như Hình 1.9.

Hình 1.9. Kiến trúc mạng Neuron nhân tạo với hai lớp ẩn


18
Trong một ANN có thể có nhiều hiden layer, một hidden layer gồm các neuron
nhận dữ liệu input từ neuron ở layer trước đó rồi xử lý input này sau đó tiến hành xuất
dữ liệu output cho các hiden layer tiếp theo. Mỗi neuron có một hàm kích hoạt
(activation function); hàm này thường mô phỏng đáp ứng phi tuyến trong hoạt động
của neuron.

C
C

DU

R
L
T.

Hình 1.10. Kiến trúc mạng Deep Learning đơn giản.
Deep Learning là một kỹ thuật trong Machine Learning, liên quan đến các thuật
toán dược xây dựng từ cấu trúc và hoạt động của bộ não con người gọi là mạng
Neuron nhân tạo (artificial neural networks). Một điểm đáng chú ý của các mạng
Neuron nhân tạo là không cần con người lập trình để thực hiện công việc. Thay vào
đó, các lập trình viên sẽ cung cấp cho máy tính một thuật toán học và một lượng lớn
dữ liệu hay mẫu để huấn luyện. Sau đó, máy tính sẽ tự học được cách để nhận dạng
một đối tượng nhất định.

Deep Learning về cơ bản chính là một ANN với nhiều hidden layer. Một ANN
cơ bản có thể có vài hidden layer, nhưng với Deep Learning số lượng có thể lên đến
hàng trăm, thậm chí hàng nghìn lớp (layer). Việc tăng nhiều lớp đồng nghĩa với việc
tăng độ chính xác cho ANN, tuy nhiên việc này đòi hỏi nhiều hơn về tài nguyên (dữ
liệu, nền tảng phần cứng ...). Ngoài ra, với mạng càng nhiều lớp thì quá trình huấn
luyện càng phức tạp hơn.
Một vấn đề quan trọng khác đối với Deep Learning là dữ liệu. Nói chung, ta
cần một lượng dữ liệu rất lớn để huấn luyện tốt một mạng Neuron nhiều lớp: dữ liệu
càng nhiều thì mạng Neuron sử dụng Deep Learning càng chuẩn xác. Tuy nhiên, đây


19
cũng là một khó khăn của Deep Learning. Vì trong một số trường hợp, ta không thể dễ
dàng thu thập được rất nhiều dữ liệu. Khi đó, mạng Neuron nhiều lớp có thể không tốt
bằng những mô hình đơn giản như mô hình hồi quy Logistic (Logistic Regression
Model) hay SVM (Support Vector Machines).
1.3.2 Ứng dụng của Deep Learning
Deep Learning đã làm chúng ta thay đổi cách nhìn về công nghệ, cùng với sức
mạnh xử xý của máy tính hiện nay, giờ đây máy móc có thể nhận dạng đối tượng và
dịch lời nói trong thời gian thực. Trí tuệ nhân tạo giờ đây đã trở nên thông minh, sau
đây là một vài ứng dụng tiêu biểu về Deep Learning.
-

Xe tự lái ( Self – driving)

Hiện nay các công ty sản xuất ô tô đang tích hợp vào ô tô của họ các hệ thống
hỗ trợ tự lái (driver-assistance) hay các xe tự lái hoàn toàn (full-blown self-driving)
của Google, Tesla. Đối với các hệ thống này, cần dạy cho máy tính cách điều khiển
các bộ phận chính hoặc tất cả, của hệ thống lái thông qua các cảm biến kỹ thuật số
thay vì cảm giác của con người. Để làm được điều đó các nhà sản xuất ô tô thường bắt

đầu bằng việc sử dụng các thuật toán và một lượng lớn đầu vào để huấn luyện cho hệ
thống này.

C
C

-

DU

Chăm sóc sức khỏe

R
L
T.

Deep Learning được ứng dụng vào việc chuẩn đoán ung thư vú hay ung thư da
thông qua các ứng dụng trên máy tính hoặc thiết bị di động. Với Deep Learning, các
máy tính được huấn luyện (training) để nhận dạng các mẫu thông qua bộ dữ liệu rất
lớn. Nó rất hữu ích đối với các nhiệm vụ trực quan như xem xét sinh thiết của ung thư
vú, các hệ thống học sâu sẽ báo cáo những thứ mà các bác sĩ có thể bỏ sót trong quá
trình kiểm tra. Tuy nhiên cũng có lúc các thiết bị này bị nhầm lẫn về kết quả và đây là
lúc các bác sĩ phải xem xét lại. Vì vậy, chúng ta thấy con người và máy tính có thể kết
hợp để mang lại hiệu quả tốt hơn.
- Dịch máy tự động (Automatic machine translation)
Đây là nhiệm vụ mà máy tính phải dịch thuật tự động các từ, cụm từ hoặc câu
từ một ngôn ngữ sang một ngôn ngữ khác. Dịch máy tự động đã có từ lâu, nhưng với
Deep Learning dịch máy đang đạt được kết quả nổi bật.

1.4. Kết luận chương

Chương 1 đưa ra cái nhìn tổng quan về bài toán nhận dạng số nhà từ ảnh chụp
đường phố, cũng như phương pháp học sâu (Deep Learning) và một vài ứng dụng của
Deep Learning trong cuộc sống. Chương 2 sẽ trình bày rõ ràng và chi tiết hơn về mô
hình mạng Neuron nhân tạo và mạng Neuron tích chập.


20

CHƯƠNG 2. MẠNG NEURON NHÂN TẠO VÀ
MẠNG NEURON TÍCH CHẬP
2.1 Giới thiệu chương
Chương 1 đưa ra bức tranh tổng thể về bài toán phân loại hình ảnh cũng như về
Deep Learning và mạng Neuron. Chương 2 sẽ tiếp tục trình bày về mạng Neuron nhân
tạo nói chung và đi vào chi tiết về các khái niệm cơ bản, ý tưởng và các khối chính
trong kiến trúc của mạng Neuron tích chập (Convolutional Neural Network).

2.2 Mạng Neuron nhân tạo
2.2.1 Cấu trúc một Neuron sinh học
Các nhà khoa học từ lâu đã nghiên cứu về bộ não chúng ta sử dụng một mạng
lớn các neuron liên kết với nhau để xử lí thông tin. Ở não người trưởng thành có hơn
100 tỷ tế bào neuron, mỗi tế bào liên kết với khoảng 100 ngàn tế bào neuron khác [12].
Các tín hiệu xung điện thế đầu vào được đưa qua mạng Neuron này và trả về các giá
trị đầu ra khác nhau. Đối với bộ não sinh học, tín hiệu đầu ra này có thể là kích thích
co cơ hay báo hiệu tuyến mồ hôi để tiết mồ hôi. Cấu trúc cơ bản của một neuron sinh
học được mô tả như Hình 2.1.

C
C

DU


R
L
T.

Hình 2.1. Tế bào Neuron thần kinh của người [6].
Trong đó:
-

Dendrites là các dây dẫn dữ liệu mảnh, dài, gắn liền với các neuron, truyền
dữ liệu (dưới dạng xung điện thế) đến cho neuron.
Soma là thân Neuron
Nucleus là nhân của tế bào, chúng tiếp nhận các tín hiệu được truyền đến
neuron, tổng hợp và xử lý các tín hiệu nhận được.
Axon là một loại dây dẫn dữ liệu nhưng khác với Dendrites, Axon có khả
năng phát các xung điện thế, dẫn tín hiệu từ Nucleus đi nơi khác.

Axon nối với Dendrites của các neuron khác bằng các mối nối đặt biệt, gọi là
Synapse. Khi điện thế của các mối nối này tăng lên do xung phát ra từ axon thì nó sẽ


21
nhả ra một số chất hóa học (neurotransmitters), các chất này sẽ mở cửa Dendrites để
cho các ion truyền qua, làm thay đổi điện thế trên Dendrites. Neuron tính tổng các giá
trị điện thế mà nó nhận được và phát đi một xung khác nếu giá trị cộng được lớn hơn
một ngưỡng nhất định. Tín hiệu sẽ tiếp tục được truyền qua các Axon đến Bouton. Các
Bouton này có thể được nối với hàng ngàn các neuron khác thông qua các Synapse. Đó
là cách các neuron thần kinh của chúng ta hoạt động.

2.2.2 Cấu trúc một Perceptron

Các nhà khoa học từ lâu đã nghiên cứu về bộ não con người. Năm 1943 Warren
S.McCulloch, một nhà thần kinh học và Walter Pitts một nhà logic học, đã đưa ra
những khái niệm đầu tiên về mạng neuron nhân tạo dựa trên mô hình neuron sinh học.
Lấy cảm hứng từ những công trình nghiên cứu trước đó, đến những năm 1950 và 1960
Frank Rosenblatt đã đưa ra khái niệm về Perceptron, Perceptron là mạng neuron nhân
tạo đơn giản nhất hay nói cách khác là một mô hình tính toán của một neuron trong
một mạng Neuron nhân tạo (ANN). Một mạng Neuron nhân tạo không có nghĩa là mô
tả chính xác cách thức hoạt động của bộ não sinh học. Thay vào đó, một mạng Neuron
nhân tạo được thiết kế với mô hình tính toán dựa trên bộ não con người để giải quyết
một vấn đề nhất định nào đó [11].

C
C

DU

R
L
T.

Cấu trúc của một Perceptron được mô tả trong Hình 2.2.

Hình 2.2. Cấu trúc của một Perceptron đơn giản.
Nguyên lý làm việc của Perceptron, dựa trên phương pháp sử dụng các trọng số
để xét và lựa chọn giá trị ngõ ra. Nguyên lý này khá đơn giản và có thể mô tả sơ lược
như sau.
Như hình 2.2, Perceptron có nhiều ngõ vào (input) xi (x1,x2,x3…xn) tương ứng
với n đầu vào dữ liệu. Rosenblatt đã đưa ra một quy luật đơn giản để tính toán giá trị
ngõ ra, cụ thể, ông đưa ra giá trị trọng số (weight) wi. Trọng số là các số thực thể hiện
mức độ quan trọng của dữ liệu ngõ vào, có tác động quyết định đến giá trị ngõ ra. Giá

trị trọng số có thể làm tăng hoặc giảm vai trò của ngõ vào thông qua tích xi. wi. Hàm
tổng (Sum), có vai trò tính tổng trọng số ∑𝑖 𝑥𝑖 . 𝑤𝑖 của tất cả các ngõ vào của neuron.


22
Giá trị ngõ ra (output) là 0 hoặc 1, được xác định dựa trên tổng trọng số bé hơn hay
lớn hơn giá trị ngưỡng quyết định (threshold).
Ta có giá trị ngõ ra:
𝑜𝑢𝑡𝑝𝑢𝑡 = {

0 nếu ∑𝑖 𝑥𝑖 𝑤𝑖 ≤ 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑
1 nếu ∑𝑖 𝑥𝑖 𝑤𝑖 > 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑

(2.1)

Bằng cách thay đổi giá trị trọng số và giá trị ngưỡng quyết định, chúng ta có
được nhiều mô hình quyết định khác nhau.
Trên thực tế, để đơn giản hoá cách mô tả Perceptron người ta thay thế
∑𝑖 𝑥𝑖 𝑤𝑖 = 𝑤 ∙ 𝑥, với w và x tương ứng là các vector chứa trọng số và giá trị ngõ vào.
Thay đổi thứ hai là chuyển tham số ngưỡng threshold sang vế trái và định nghĩa tham
số b (bias) để thay thế cho ngưỡng quyết định threshold.
b = -threshold

(2.2)

C
C

Giá trị ngõ ra output có thể xác định lại như sau:


R
L
T.

𝑜𝑢𝑡𝑝𝑢𝑡 = {0 nếu 𝑤 ∙ 𝑥 + 𝑏 ≤ 0
1 nếu 𝑤 ∙ 𝑥 + 𝑏 > 0

(2.3)

Giá trị bias b có thể xem là thang đo, và có quyết định lớn đến việc Perceptron
đưa ra giá trị ngõ ra là 1. Ví dụ, với Perceptron có giá trị b rất lớn, thì ngõ ra dễ dàng
được quyết định là giá trị 1. Ngược lại, trường hợp b có giá trị âm lớn thì ngõ ra lại rất
khó để nhận được giá trị là 1.

DU

2.3 Sigmoid Neuron
Hệ thống Neuron nhân tạo được xây dựng nhằm mục đích giải quyết các bài
toán bằng phương thức tự điều chỉnh thông qua giải thuật huấn luyện cho mạng
Neuron.
Giả sử, chúng ta xây dựng mạng Perceptron để giải quyết một vài bài toán. Ví
dụ, trong bài toán nhận dạng số nhà từ ảnh chụp đường phố, dữ liệu ngõ vào là các
điểm ảnh từ ảnh chụp các chữ số. Kì vọng của chúng ta đặt ra là hệ thống mạng có thể
học tập và điều chỉnh các thông số w và b sao cho ngõ ra phân loại đúng được chữ số
tương ứng với dữ liệu ảnh ở ngõ vào.
Cơ chế tự học có thể được hình dung, khi có một sự thay đổi nhỏ của giá trị
trọng số w hay bias b trong mạng, sẽ có một sự thay đổi nhỏ tương ứng (đáp ứng) ở giá
trị ngõ ra output của mạng. Bằng sự thay đổi nhỏ chúng ta có thể điều chỉnh cho hệ
thống hướng dần đến kết quả chính xác theo cách chúng ta mong muốn [11].
Có thể mô tả phương thức hoạt động thông qua Hình 2.3.



23

Hình 2.3. Sự thay đổi nhỏ các giá trị trọng số dẫn đến
sự thay đổi nhỏ tương ứng ở ngõ ra [11].
Tuy nhiên, hệ thống chứa các Perceptron không thể thực hiện được phương
pháp này. Thực tế, khi có sự thay đổi nhỏ các thông số w hay b thì ngõ ra Perceptron
tồn tại sự thay đổi đột ngột từ 1  0 hay từ 0  1.

C
C

DU

R
L
T.

Hình 2.4. Hàm kích hoạt của Perceptron [11].
Xuất phát từ nhu cầu giải quyết vấn đề trên, Sigmoid Neuron ra đời. Về cơ bản,
Sigmoid Neuron tương tự với Perceptron, tuy nhiên, khi có sự thay đổi nhỏ thông số
hệ thống thì ngõ ra cũng sẽ có sự thay đổi nhỏ tương ứng. Do đó, mạng cấu thành từ
các Sigmoid Neuron có thể học tập được.

Hình 2.5. Mô hình Perceptron đơn giản [11].


×