Tải bản đầy đủ (.docx) (88 trang)

Trích xuất thông tin thẻ tên sử dụng học sâu (luận văn thạc sỹ công nghệ thông tin)

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 (3.21 MB, 88 trang )

Bộ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐAI HOC NGUYỄN TÁT THÀNH

NGUYỄN QC CƯỜNG
TRÍCH XUẤT THƠNG TIN THẺ TÊN sù DỤNG HỌC SÂU
Chuyên ngành: Công Nghệ Thông Tin
Mã số: 8480201

LUẬN VĂN THẠC sĩ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẲN KHOA HỌC:
TS. DƯƠNG TRỌNG HẢI

Thành phố Hồ Chí Minh - 2020


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI

ĐẠI HỌC NGUYỄN TÁT THÀNH

Cán bộ châm phản biện 1: TS.
(Ghi rõ họ, tên, học hàm, học vị)

Cán bộ chấm phản biện 2: TS.
(Ghi rõ họ, tên, học hàm, học vị)

Luận văn thạc sĩ được bảo vệ tại:
HỘI ĐỒNG CHẤM LUẬN VÀN THẠC sĩ
ĐẠI HỌC NGUYỀN TÁT THÀNH
Ngày ... tháng ... năm 2020



LỜI CAM ĐOAN
Tôi tên là: Nguyên Quôc Cường
Mã số học viên: 1800000143
Tơi xin cam đoan đây là cơng trình nghiên cứu của tôi. Những nội dung trong
luận văn này là do tôi thực hiện dưới sự hướng dần trực tiếp của TS. DƯƠNG TRỌNG
HAI.
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên
cơng trình. Các số liệu và kết quả nghiên cứu trong luận văn này là do tôi tự thực hiện,
trung thực và không trùng lặp với các đề tài khác.
Tôi xin chịu trách nhiệm về nghiên cứu của mình.
Tp. HCM, tháng 7 năm 2020

TÁC GIẢ LUẬN VĂN
(Ký và ghi rõ họ tên)

Nguyền Quôc Cường

1


LỜI CÁM ƠN
Đâu tiên, tôi xin gửi lời cảm ơn chân thành và sự tri ân sâu săc với các thây cô của
Trường Đại học Nguyền Tất Thành, đặc biệt là các thầy cô khoa Công Nghệ Thông Tin
của trường đã tạo điều kiện cho tơi có nhiều thời gian cho khóa luận tốt nghiệp. Và tơi
cũng xin chân thành cảm ơn Thầy TS. Dương Trọng Hải đã nhiệt tình hướng dẫn hồn
thành luận văn này.
Trong q trình học, cũng như q trình làm báo cáo luận văn, khó tránh khỏi sai
sót, rất mong các thầy, cơ bỏ qua. Đồng thời do trình độ lý luận cũng như kinh nghiệm
thực tiễn cịn hạn chế nên báo cáo khơng thể tránh khỏi những thiếu sót, tơi rất mong

nhận được ý kiến đóng góp thầy, cơ để tơi học thêm được nhiều kinh nghiệm và hoàn
thành tốt hơn bài báo cáo luận văn này.
Tôi xin chân thành cảm ơn !

Tp. HCM, tháng 7 năm 2020

TÁC GIẢ LUẬN VÀN
(Ký và ghi rõ họ tên)

Nguyên Quôc Cường

1
1


MỤC LỤC
LỜI CAM ĐOAN..............................................................................................i
LỜI CÁM ƠN....................................................................................................ii
MỤC LỤC.........................................................................................................iii
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT......................................... V
DANH MỤC CÁC HÌNH VÈ VÀ Đồ THỊ.....................................................vii
DANH MỤC CÁC BẢNG................................................................................ix

CHƯƠNG 1 . TÓNG QUAN ĐỀ TÀI.....................................................................1
1.1
1.2

Giới thiệu đề tài.......................................................................................1
Tổng quan về lĩnh vực nghiên cứu..........................................................2


1.3...................................................................................................................... Mục tiêu
của đề tài............................................................................................................3
1.4...................................................................................................................... P
hạm vi nghiên cứu..............................................................................................3
1.5
1.6

Phương pháp nghiên cứu.........................................................................3
Bố cục luận văn.......................................................................................4

CHƯƠNG 2 . Cơ SỞ LÝ THUYẾT........................................................................6
2.1

Mạng nơ ron tích chập............................................................................6
2.1.1 Tích chập.........................................................................................6

2.2

2.3

2.1.2

Pooling layer..................................................................................8

2.1.3

Fully Connected.............................................................................9

Mạng AlexNet.......................................................................................11
2.2.1


ReLu Nonlinearity.......................................................................12

2.2.2

Reducing overfitting....................................................................12

MạngVGGNet........................................................................................13


2.4

Mạng GoogLeNet.................................................................................14


2.5

Mạng ResNets.......................................................................................16

2.6

Mạng Densenet......................................................................................17

2.7

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

CHƯƠNG 3. BÀI TOÁN IMAGE SEGMENTATION VÀ KIẾN TRÚC MẠNG
Ư-NET 21
3.1


Bài toán image segmentation.................................................................21

3.2

Input và output của bài toán Image Segmentation................................21

3.3

Các ứng dụng của image Segmentation................................................23

3.4

Kiến trúc mạng Ư-Net...........................................................................25

CHƯƠNG 4 . RÚT TRÍCH THƠNG TIN THẺ TÊN sử DỤNG HỌC SÂƯ 28
4.1

Tổng quan hệ thống...............................................................................28
4.1.1 Ngơn ngừ lập trình........................................................................28
4.1.2 Các thu viện được sử dụng...........................................................29

4.2

Tác vụ Cropper sử dụng Ư-Net.............................................................29
4.2.1 Chuẩn bị dữ liệu đầu vào cropper.................................................29
4.2.2 Áp dụng Ư-Net vào phân vùng ảnh name card............................32

4.3


Detector sử dụng Resnet FPN...............................................................37
4.3.1 Tổng quan Resnet FPN.................................................................37
4.3.2 Áp dụng FPN vào phát hiện text trong name card........................44

4.4

Reader sử dụng Attention-OCR.............................................................49

CHƯƠNG 5 . KẾT LƯẬN VÀ HƯỚNG PHÁT TRIÉN....................................58
5.1

Kết quả thực nghiệm...............................................................................58

5.2

Kết luận.................................................................................................61

5.3

Hướng phát triển đề tài............................................................................62

TÀI LIỆU THAM KHẢO..............................................................................................63


DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Ký hiệu

Diễn giải tiếng Anh


Diên giải tiêng Việt

AI

Artificial intelligence

Trí t nhân tao
••

ANN

Artificial neural network

Mạng nơ ron nhân tạo

API

Application Programming

Giao diện lập trình ứng

Interface

dụng

CNN

Convolutional

Neural


Mạng nơ ron tích chập

Network

cv

Computer Vision

Thị giác máy tính

DL

Deep learning

Hoc sâu


DPI

Dot per inch

số điếm ảnh trên 1 inch
vng

FPN

Feature Pyramid Network

Phân tầng của mạng tích

chập sâu

GPU

Graphics processing unit

Bộ xử lý đồ họa

MC

Machine learning

Học máy

OCR

Optical
Recognition

Character

Nhận dạng ký tự quang
hoc


5


DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
OpenCV


Open Source Computer

Thư viện mã nguồn mở về

Vision

thị giác máy

6


RGB

RGB color model

RNN

Recurrent

Mơ hình màu
Neural

Mạng no-ron hồi quy

Network
RPN

Region proposal network


Mạng đề xuất khu vực

SSD

Single Shot Detector

Phân tầng cúa mạng tích
chập sâu

v
i


DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ
Hình 4. 5: Một vài lồi khi phân vùng với ứng dụng U-net...............................35
Hình 4. 6: Kết quả một hình ảnh đầu vào khi qua bước cropper......................36

••


Vll

Hình 4.7: Kiến trúc FPN...................................................................................39
Hình 4. 8: Kết nối ngang và két nối top-down trong kiến trúc FPN................40
Hình 4. 9: FPN sử dụng kiến trúc Resnet.........................................................42
Hìn
h 4.
10:
Sử
dụn

g
RP
N
để
đưa
ra
dự
đố
n
dựa
trên
feat
ure
ma
p.................
Hình 4. 11: Kết hợp FPN và RNN trong phát hiện text...................................45
Hình 4. 12: Kiến trúc LSTM............................................................................46
Hình 4. 13: Kiến trúc của Bi-LSTM.................................................................47
Hình 4. 14: Kết quả phát hiện text trong name card.........................................49
Hìn
h 4.
15:
Nh
ận
dạn
g

tự
qua
ng

học
dựa
trên
Att
enti
onOC
R
...................
Hình 4. 16: một số kết quả sau khi qua huấn luyện..........................................55


DANH MỤC CÁC BẢNG
• • • Vlll


DANH MỤC CÁC BẢNG


CHƯƠNG 1 . TỔNG QUAN ĐÈ TÀI
1.1

Giới thiệu đê tài
Trong những năm gần đây, sự tiến bộ của trí tuệ nhân tạo, đặc biệt mơ hình học

sâu đang là làn sóng mạnh mẽ được áp dụng ờ nhiều lĩnh vực như xử lý ảnh, xử lý âm
thanh, xừ lý ngôn ngừ tự nhiên,... Các ứng dụng cụ thể gần gũi với con người sử dụng
học sâu như: nhận diện vật thể, phát hiện đối tượng, phát hiện khuôn mặt, nhận diện
khuôn mặt, đếm đối tượng, phát hiện khối u trong ảnh y khoa, xây dựng hình ảnh 3D từ
ảnh 2D,... Các công nghệ này đang dần được áp dụng rộng rãi vào trong ngành công
nghiệp và đời sống của con người.

Hiện nay việc số hóa tài liệu để tạo lập cơ sở dừ liệu là một trong các giai đoạn
trong xây dựng chính quyền điện tử. Ngồi ra việc khai thác dữ liệu từ cơ sở dừ liệu số
hóa cần phải thông qua nhiều bước như: nhập thông tin đầu vào, tìm kiếm và truy vấn
thơng tin,... các bước này cần tự động và tối ưu hóa để tiết kiêm thời gian, đáp ứng hiệu
quả công việc thời gian thưc, như tự động nhập thông tin từ thẻ tên, chứng minh nhân
dân,... để truy xuất tự động thông tin khách hàng ở các ngân hàng. Trong khuôn khổ của
để tài này, chúng tơi chọn vấn đề rút trích thơng tin từ thẻ tên sử dụng học sâu (deep
learning) nhằm đáp ứng giải quyết tối ưu hóa vấn đề nhập liệu tư thông tin thẻ.
Thực tế mỗi doanh nghiệp, đặc biệt là các cơ quan hành chính cơng, khối ngân
hàng, bảo hiểm, bệnh viện...tại Việt Nam đang phải quản lý một khối lượng thông tin
người dùng khống lồ lên đến hàng chục, hàng trăm nghìn. Có thể thấy khó khăn mà các
doanh nghiệp đang gặp phải đó là việc xử lý dừ liệu khách hàng/người dùng với các
phương thức vận hành thủ công truyền thống và vẫn đang loay hoay giải quyết bài toán
phân chia nhân lực nhập liệu, lưu trừ dừ liệu sao cho hệ thống nhất, tiết kiệm thời gian
và chi phí tối ưu nhất. Việc lưu trữ thơng tin khách hàng hoặc đối tác của các doanh
nghiệp cũng như việc nhập thông tin từ Thẻ Name card hoặc Chứng minh thư phải mất
3-4 phút 1 lần đế lưu trừ vào cơ sở dừ liệu của công ty nhưng với đề tài này sè cô găng
đê thông tin được nhận dạng và trích xuât vào máy tính chỉ mât 2-3 giây kể cả thời gian
truyền ảnh qua mạng và có thể xử lý được hàng trăm ảnh cùng một lúc tùy theo nhu cầu

1


của khách hàng, doanh nghiệp.
Theo tìm hiểu các tài liệu tham khảo trên internet về cách xây dựng một hệ thống
sử dụng công cụ OCR mã nguồn mở chưa giải thích rõ ràng, hồn chỉnh cách làm thế
nào để đưa các mơ hình học sâu này vào một mơi trường production. Vì vậy trong đề tài
này tơi sè nghiên cứu để xây dựng một hệ thống OCR chính xác dựa trên mạng
convolutional neural network, sẵn sàng cho môi trường production và có khả năng mở
rộng được....


1.2

Tổng quan về lĩnh vực nghiên cứu
Theo tìm hiểu ở trên internet thì đã có một vài doanh nghiệp ứng dụng công nghệ

để nhận dạng chứng minh thư nhân dân như FPT đang sử dụng với chất lượng nhận
dạng Chứng minh thư nhân dân với độ chính xác lên đến 94,6%. Nhưng với khả năng
nhận dạng ở vùng chứa chừ đã được cố định sẵn trên hình ảnh. Hiện nay với các nghiên
cứu từ mạng convolutional neural network trải qua nhiều cải tiến để nhận dạng, phân
vùng chừ giúp cho việc trích xuất thơng tin trên thẻ dễ dàng hơn bằng các giải pháp
nhận dạng ký tự quang học OCR.
Giải pháp nhận dạng ký tự quang học đang phát triển mạnh về mặt ứng dụng và
liên tục có nhiều cải tiến mới để tăng tính ứng dụng và hiệu quả của sản phẩm đầu ra.
Tuy nhiên, việc nhận dạng ký tự tiếng Việt (loại hình ngơn ngừ có dấu) vần là thách
thức đổi với sự phát triển cùa công nghệ OCR trên thế giới. Một hạn chế rất lớn mà tất
cả phần mềm OCR hiện nay gặp phải là thiếu hẳn tính năng rút trích thông tin từ văn
bản, biểu mầu. Hầu hết phần mềm mới chỉ dừng lại việc nhận dạng toàn văn mà khơng
thể rút trích thơng tin theo các mầu/định dạng, các trường theo nhu cầu của người sử
dụng - một nhu cầu rất thiết yếu đối với những người làm công tác văn thư, lưu trừ.

1.3

Mục tiêu của đê tài
Mục tiêu nghiên cứu của đề tài là nghiên cứu các phương pháp phát hiện và trích

xuất được thơng tin trên một thẻ tên. Các phương pháp nhận diện ký tự khác nhau sẽ có
độ chính xác và tốc độ xử lý hình ảnh khác nhau. Đề tài sẽ thực hiện thí nghiệm nghiên
cứu và đo đạc hiệu suất các phương pháp nhận diện ký tự. Phần còn lại là nghiên cứu


2


phương pháp nhận diện ký tự quang học tiên tiến. Từ các tìm hiểu và nghiên cứu để có
thể đưa ra đề xuất cải tiến hiệu quả cho bài toán nhận diện và trích xuất thơng tin trên
thẻ tên sử dụng deep learning. Mục tiêu cụ thể:
- Nghiên cứu áp dụng các kiến trúc mạng CNN về nhận diện ký tự vào hệ thống.
- Xác định được tọa độ 4 góc của thẻ tên.
- Xác định được vị trí các text có trên thẻ tên.
•••
- Nhận dạng được các text ở dạng hình ảnh sang dạng text văn bản.
- Hiểu và đọc được nội dung text (email, số điện thoại, ...).

1.4

Phạm vỉ nghiên cứu
Phạm vi nghiên cứu của đề tài tập trung nghiên cứu các kiến trúc mạng CNN nổi

tiếng về nhận dạng xử lý thông tin với mạng Ư-Net, ResNet FPN và Attention- OCR.
Tập trung giải quyết bài toán với nhận diện ký tự ở nhiều góc độ đưa về góc nhìn thẳng
dựa và một lượng dữ liệu ảnh đầu vào tự nhiên với nhiều góc chụp khác nhau. Điều kiện
ánh sáng đủ để nhận diện, hình thẻ khơng bị che khuất q ‘/2 thẻ. Các thơng tin có ở
trên thẻ đều có trong thư viện ảnh, danh tính xác định rõ ràng.

1.5

Phương pháp nghiên cứu
Nghiên cứu xử lý dừ liệu đầu vào để trích xuất vùng chứa thơng tin ở trên ảnh thẻ

ứng dụng mạng convolutional neural network. Trước tiên tơi sè tập trung vào nghiên

cứu tìm hiểu kiến trúc một mạng convolutional neural network, vì theo được biết thì đây
chính là một mạng neural được ứng dụng khá nhiều trong deep learning trong
computervision cho classifier và localizer. Với mạng CNN này người ta đã tạo ra nhiều
architect khác nhau và được cải tiến lên rất nhiều.
Tiếp theo với lượng dữ liệu đầu vào mà tôi sử dụng đế huấn luyện mơ hình trích
xuất trong luận văn thì cần phải có phương pháp để xử lý lượng ảnh về dạng dừ liệu
chuấn với mục đích giảm nhiễu, giảm kích thước xử lý. Tơi tập trung nghiên cứu kiến
trúc mạng Ư-Net để segmentation phân loại vùng ảnh và sù dụng OpenCV
getPerspectiveTransform Example để xác định các cạnh của ảnh đầu vào và cắt ảnh giữ
lại các chi tiết quan trọng để giảm kích thước và đưa về một dạng dữ liệu chuẩn cho
3


việc thực hiện huấn luyện mục tiêu cùa mơ hình cho luận văn này.
Nhìn chung để trích xuất thơng tin trên một ảnh thẻ tên thì nó đều có một cấu trúc
cơ bản bao gồm 3 tác vụ: Cropper, Detector, Reader. Mồi tác vụ có một mơ hình riêng
và q trình huấn luyện, đánh giá, kiểm thử cho từng mơ hình. Các tác vụ này tơi sẽ
trình bày ở chương 3. Với mỗi tác vụ được huấn luyện, dánh giá và sử dụng các thuật
toán, huấn luyện riêng biệt nên có thế dề dàng thay từng mơ hình nhỏ này để cải thiện
hệ thống. Điều này sẽ khiến việc kiểm sốt và debug dề dàng hơn so với một mơ hình
end-to-end.

1.6

Bố cục luận văn
Trong luận văn này có tất cả có 4 chương, có phần mở đầu, phần kết luận, phần

mục lục, phần tài liệu tham khảo. Các nội dung cơ bản của luận văn được trình bày theo
cấu trúc sau:
Chương 1: Tổng quan về đề tài.

Phần này giới thiệu về đề tài và mục tiêu của đề tài này cùng với hiện trạng và lình vực
mà tơi đang tập trung nghiên, cứu.
Chương 2 : Cơ sở lý thuyết
Chương này tập trung tìm hiểu các kiến trúc mạng neural network để dựa trên nền tảng
các kiến trúc này để giải quyết cho bài tồn trích xuất thơng tin thẻ tên.
Chương 3: Bài toán image segmentation và kiến trúc mạng U-Net
Chương này giới thiệu vê bài toán Image segmentation và ứng dụng của bài tốn ra thực
tiễn. Tiếp theo là tìm hiểu về kiến trúc mạng Ư-Net.
Chương 4 : Hệ thống rút trích thơng tin thẻ tên.
Xây dựng hệ thống rút trích thơng tin có trên thẻ tên dựa trên các kiến trúc mạng
neural network với ngôn ngừ Python và các thư viện như Long short term memory
(LSTM) biến thể của Recurrent Neural Network (RNN. Kiến trúc chính của chương
trình dựa trên kiến trúc mạng U-Net và một số kiến trúc mạng khác như kiến trúc FPN
và nhận dạng ký tự Attention-OCR.
Chương 5: Kết luận và hướng phát triển
Trình bày kết quả thực nghiệm khi huấn luyện hệ thống và đánh giá kết quả so với mục
4


tiêu đề ra của luận văn. Cuối cùng trình bày hướng phát triển và hướng xử lý để nâng
cao chất lượng tính chính xác cho hệ thống. Phần cuối trích dẫn các tài liệu được tham
khảo để hoàn thành trong luận văn.

5


CHƯƠNG 2 . Cơ SỞ LÝ THUYẾT
2.1 Mạng nơ ron tích chập
Convolutional Neural Network (CNN) hay được gọi là mạng nơ ron tích chập
thường lấy thử tự 3 tensor làm đầu vào — ví dụ: một hình ảnh có hàng H, cột w và 3

kênh (kênh màu R, G, B). Tuy nhiên, đầu vào tensor bậc cao hơn có thể được CNN xử
lý theo cách tương tự. Đầu vào sau đó trải qua một số quy trình. Một bước xử lý thường
được gọi là lớp, có thể là lớp tích chập (convolution layer), lớp gộp (pooling layer), lớp
khơng chuẩn hóa (anormalization layer), lớp được kết nối đầy đủ (fully connected
layer), lớp mất mát (loss layer), v.v. [25]
CNN được sử dụng trong nhiều bài toán nhận dạng các object trong ảnh, và lý
do tại sao thuật toán này được sử dụng rộng rãi cho việc nhận dạng (detection), tôi xin
giới thiệu một số mơ hình CNN nổi bật sau đây.
LeNet chính là mơ hình CNN đầu tiên được tạo ra bởi Yann Lecun năm 1998, để nhận
diện chừ viết tay, chừ số, kí tự trong văn bản và nó chính là nền tảng cho các mơ hình
CNN được phát triển sau này. Hầu hết các mạng này đều được thiết kế theo nguyên tắc
chung là:
-

Dùng nhiều convolution layer chồng lên nhau

-

Giảm dần kích thước output mồi lớp

-

Tăng dần số lượng feature map

Cấu trúc của LeNet gồm 2 layer (Convolution + maxpooling) và 2 layer fully connected
layer và output là softmax layer. Sau đây tơi xin giới thiệu các layer sau.

2.1.1 Tích chập
Kỹ thuật tích chập (convolution) là kỳ thuật quan trọng trong xử lý ảnh, được
sử dụng chính yếu trong các phép toán trên ảnh như: đạo hàm ảnh, làm trơn ảnh, trích

xuất biên cạnh trong ảnh. Hiểu đơn giản sau khi qua bộ lọc (ví dụ 9 điểm ảnh), nó sè lấy
ra 1 điềm nổi bật nhất, làm hiện lên các đặc trưng của đối tượng trong ảnh như đường
viền xung quanh đối tượng, các góc cạnh,., và các layer tiếp theo sè lại trích


xt tiêp các đặc trưng của các đơi tượng đó, việc có nhiêu layer như vậy cho phép ta chia nhở đặc trưng của ảnh
tới mức nhỏ nhất có thể. Mục tiêu cùa việc này là trích chọn các đặc trưng của một ảnh đầu vào. Trong phần này, tôi xin trình
bày về kỹ thuật tích chập trong việc xử lý ảnh.

[1]. Tốn tử tương quan chéo
Như đã tìm hiểu, tầng tích chập với phép tốn mà chúng biểu diễn là phép
tương quan chéo (cross correlation). Trong một tầng tích chập một mảng đầu vào và một
mảng hạt nhân tương quan được kết hợp để tạo ra mảng đầu ra bằng phép tốn tương
quan chéo. Trong hình dưới đây đầu vào là một mảng hai chiều với chiều dài 3 và chiều
rộng 3. Kích thước của mảng là 3*3 hoặc (3,3). Kích thước bộ lọc hay cịn
được gọi là hạt nhân tích chập là 2*2. [6]
Đầu vào
0

1

2

3

4

5

6


7

8

0

1

19

25

2

3

37

43

Hình 2.1: Tốn tử tương quan chéo 2 chiêu
Phép tương quan chéo hai chiêu. Các phân được tô màu là phân tử đâu tiên của
đầu ra cùng với các phần tử cùa mảng đầu vào và mảng hạt nhân được sử dụng trong
phép toán:
0x0+1 X 1 +3x2 + 4x3 = 19.
Trong phép tương quan chéo hai chiều, ta bắt đầu với cửa sổ tích chập đặt tại
phía trên bên trái cùa mảng đầu vào và bắt đầu di chuyển cửa sổ này từ trái sáng phải,
trên xuống dưới. Khi tích chập được đẩy tới một vị trí nhất định, mảng con đầu vào nằm
trong cửa sổ đó và được nhân theo từng phần tử trong nó, sau đó ta lấy tổng các phần tử

trong mảng hạt nhân được nhân theo từng phần tử, tổng các phần tử trong mảng kết quả
để có được một giá trị số vô hướng duy nhất. Kết quả này được ghi vào mảng đầu ra tại
vị trí tương ứng. ở hình trên mảng đầu ra có chiều dài 2 và chiều rộng 2, kêt quả được
tính từ đâu vào và bộ lọc băng phép tương quan chéo hai chiêu như sau:
0x0+1x1+3x2 + 4x3=19,
lx0 + 2x 1+4x2 + 5x3 = 25,
3x0 + 4x 1+6x2 + 7x3 = 37,
4x0 + 4x1+7x2 + 8x3=43.


Theo hình trên cho thấy, kích thước đầu ra nhở hơn một chút so với đầu vào là
bởi vì hạt nhân có chiều dài và chiều rộng lớn hơn một, ta chỉ có thể tính độ tương quan
chéo cho nhừng vị trí mà ở đó hạt nhân nằm hồn tồn bên trong ảnh, kích thước đầu ra
được tính bằng cách lấy đầu vào H * w trừ kích thước cùa bộ lọc tích chập hw * w bằng (H
- h + 1) * (W - w + 1). .Điều này xảy ra vì ta cần đủ khơng gian để ‘dịch chuyển’ hạt
nhân tích chập qua tấm hình, trong đó:
H : chiều cao
w: chiều rộng.
Tầng tích chập
Tầng tích chập thực hiện phép toán tương quan chéo giữa đầu vào và bộ lọc,
sau đó cộng thêm hệ số điều chỉnh để có được đầu ra. Hai tham số của tầng tích chập là
bộ lọc và hệ số điều chỉnh. Khi huấn luyện mơ hình chứa các tầng tích chập, ta thường
khởi tạo hạt nhân ngẫu nhiên.

2.1.2 Pooling layer
Mục đích của pooling làm giảm số hyperparameter mà ta cần tính tốn, từ đó
giảm thời gian tính tốn, tránh overíĩtting. Thường giữa các lớp tích chập
(Convolutional Layer) với nhau người ta sẽ chèn vào 1 lóp pooling layer để giảm bớt số
lượng parameter lại nếu như đầu vào quá lớn. Có 2 loại phổ biến đó là max pooling và
average pooling.

Average pooling: average pooling sử dụng để gộp các giá trị trung bình của
ảnh.


Max pooling: max pooling được sử dụng đê giữ lại chi tiêt quan trọng của ảnh
hay nói cách khác chính là giữ lại pixel có giá trị lớn nhất, vì vậy nó phù hợp với thức tế
hơn average pooling.
Pooling hoạt động gần giống với tích chập (convolution), nó cũng có 1 cửa sổ
trượt gọi là pooling window, của sổ này trượt qua từng giá trị của ma trận dừ liệu đầu
vào (các feature map trong convolutional layer), chọn ra một giá trị từ các giá trị trong
cửa sổ trượt (sử dụng max pooling lấy giá trị lớn nhất). Ví dụ: Chọn pooling window có
kích thước 2x2, stride = 2 để đảm bảo khơng trùng và áp dụng max
pooling:

Hình 2.2: Pooling layer

1
1
2
2.1.3 Fully Connected

4

oo

Sau khi ảnh được qua nhiều convolutional layer và pooling layer thì model đã
6
5
6
7

8
học tương dối các đặc điểm của ảnh đầu vào (như mắt, khung mặt,..) thì tensor của
output của layer cuối cùng, kích thước H * w * D, sè được chuyển về 1 vector kích
3
4
3
2
1
0
thước (H * w * D). Đơn giản là làm phẳn matraajn thành một vector và đưa vào một lóp
được kết nối như một mạng lướt thần kinh. [25]
12
3
4

Hình 2.3: Fully Conected layer
Trong sơ đô trên feature map matrix sẽ được chuyên đôi thành các vector(xl,
x2,x3,x4). Với FC layer được kết hợp với các tính năng lại với nhau để tạo ra một mơ
hình. Cuối cùng sử dụng softmax hoặc sigmoid để phân loại đầu ra như: mèo, chó, xe


hơi, vv
Tóm lược kiến trúc một mạng CNN như sau [6]:
-

Cung cấp hình ảnh đầu vào tích chập

-

Chọn thơng số, áp dụng bộ lọc với các bước, đệm nếu cần. Thực hiện tích chập

trên hình ảnh và áp dụng kích hoạt ReLU cho ma trận. ReLu áp dụng các hàm
kích hoạt (activation function) max(0,x) lên đầu ra của tích chập, có tác dụng đưa
các giá trị âm về thành 0. Layer này khơng thay đổi kích thước của ảnh và khơng
có thêm bất kì tham số nào. Mục đích của nó là đưa ảnh một mức ngưỡng. Đẻ
loại bỏ các giá trị âm khơng cân thiết mà có thể sè ảnh hưởng cho việc tính tốn
ở các layer sau đó.

-

Thực hiện pooling để giảm kích thước ban đầu

-

Thêm nhiều tích chập cho đến khi họp.

-

Làm phẳng đầu ra và nguồn cấp dữ liệu thành một lóp fully connected layer

-

ouput bằng cách sử dụng activation function (Logistic Regression with cost
functions) và phân loại hình ảnh.


Câu trúc hoàn chinh của một mạng CNN (Convolutional Neural Network)

Conv +
Maxpool


Conv +
Maxpool

Conv +
Maxpool

FC FC Output

Hình 2.4: cẩu trúc mạng CNN
Ta có ảnh input đầu vào. Qua hàng loạt phép tích chập cùng max pooling layer , cuối
cùng là 2 fully connected và ra kết quả.
Cách chọn tham số cho CNN
số các tích chập: càng nhiều phép tích chập thì performance càng được cải thiện.
Sau khoảng 3 hoặc 4 layer, các tác động được giảm một các đáng kể Filter size:
thường lọc theo size 3x3 hoặc 5x5
Pooling size: thường là 2x2 hoặc 4x4 cho ảnh đầu vào
- Cách cuối là thực hiện việc train test nhiều lần đề đưa ra được parameter tốt nhất.
••••1

2.2

Mạng AlexNet
Mạng AlexNet được coi là mạng neural đâu tiên phô biên rộng rãi khả năng của

CNNs. AlexNet được phát triển bởi Alex Krizhevsky, Ilya Sutskever và Geoff Hinton.
Được giới thiệu vào nằm 2012 với cấu trúc dựa trên LeNet nhưng được cải tiến và sử
dụng với số lượng neuron, filter và layer lớn hơn LeNet gấp 1000 lần. [14]



×