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

(Đồ án hcmute) thiết kế hệ thống nhận diện chữ viết tay

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 (4.72 MB, 72 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CƠNG NGHỆ KỸ THUẬT ĐIỆN
TỬ VIỄN THÔNG

THIẾT KẾ HỆ THỐNG NHẬN DIỆN CHỮ
VIẾT TAY

GVHD: LÊ MINH THÀNH
SVTH: DƯƠNG NGỌC ANH
MSSV: 16141002
SVTH: NGUYỄN THỊ THÙY TRANG
MSSV: 16141085

SKL 0 0 7 2 2 0

Tp. Hồ Chí Minh, tháng 08/2020

do an


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

ĐỒ ÁN TỐT NGHIỆP

THIẾT KẾ HỆ THỐNG NHẬN DIỆN CHỮ VIẾT TAY


SVTH
MSSV
SVTH
MSSV
Khoá
Ngành
GVHD

:
:
:
:
:
:
:

DƯƠNG NGỌC ANH
16141002
NGUYỄN THỊ THÙY TRANG
16141085
2016
CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG
THS. LÊ MINH THÀNH

Tp. Hồ Chí Minh, tháng 8 năm 2020

do an


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH

KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

ĐỒ ÁN TỐT NGHIỆP

THIẾT KẾ HỆ THỐNG NHẬN DIỆN CHỮ VIẾT TAY

SVTH
MSSV
SVTH
MSSV
Khoá
Ngành
GVHD

:
:
:
:
:
:
:

DƯƠNG NGỌC ANH
16141002
NGUYỄN THỊ THÙY TRANG
16141085
2016
CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG
THS. LÊ MINH THÀNH


Tp. Hồ Chí Minh, tháng 8 năm 2020

do an


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
----***---Tp. Hồ Chí Minh, ngày 8 tháng 8 năm 2020

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên 1: Dương Ngọc Anh
Họ và tên sinh viên 2: Nguyễn Thị Thùy Trang
Ngành: Công Nghệ Kỹ Thuật Điện tử, Truyền thông
Giảng viên hướng dẫn: Ths. Lê Minh Thành
Ngày nhận đề tài: 30/3/2020

MSSV: 16141002
MSSV: 16141085
Lớp: 16141CLVTB
Ngày nộp đề tài: 8/8/2020

1. Tên đề tài: THIẾT KẾ HỆ THỐNG NHẬN DIỆN CHỮ VIẾT TAY
2. Các số liệu, tài liệu ban đầu:
Kiến thức cơ bản về các môn Xử lý ảnh, Máy học, Lập trình Visual C#
3. Nội dung thực hiện đề tài:
• Đưa ra phương án xây dựng hệ thống sử dụng mạng Nơ-ron tích chập
• Phương án và giải thuật cho từng khối
• Thiết kế hệ thống trên phần mềm Microsoft Visual C#
• Đánh giá q trình xây dựng hệ thống
• Viết báo cáo

4. Sản phẩm:
- Báo cáo đồ án tốt nghiệp
- Chương trình trên phần mềm Visual C#
GIÁO VIÊN HƯỚNG DẪN

Ths. Lê Minh Thành

do an


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh Phúc
*******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên 1 : Dương Ngọc Anh ....................... MSSV: 16141002 ..............
Họ và tên Sinh viên 2 : Nguyễn Thị Thùy Trang.............. MSSV: 16141085 ..............
Ngành: Công nghệ kỹ thuật Điện tử, Truyền thông ......................................................
Tên đề tài: THIẾT KẾ HỆ THỐNG NHẬN DIỆN CHỮ VIẾT TAY
Họ và tên Giáo viên hướng dẫn: Ths. Lê Minh Thành ................................................
NHẬN XÉT
1. Về nội dung đề tài & khối lượng thực hiện:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
2. Ưu điểm:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................

.......................................................................................................................................
3. Khuyết điểm:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
4. Đề nghị cho bảo vệ hay khơng?
.......................................................................................................................................
5. Đánh giá loại:
.......................................................................................................................................
6. Điểm:……………….(Bằng chữ:............................................................................ )
Tp. Hồ Chí Minh, ngày 8 tháng 8 năm 2020
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)

do an


CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh Phúc
*******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên 1 : Dương Ngọc Anh ....................... MSSV: 16141002 ..............
Họ và tên Sinh viên 2 : Nguyễn Thị Thùy Trang.............. MSSV: 16141085 ..............
Ngành: Công nghệ kỹ thuật Điện tử, Truyền thông ......................................................
Tên đề tài: THIẾT KẾ HỆ THỐNG NHẬN DIỆN CHỮ VIẾT TAY
Họ và tên Giáo viên phản biện: .....................................................................................
.......................................................................................................................................
NHẬN XÉT

1. Về nội dung đề tài & khối lượng thực hiện:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
2. Ưu điểm:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
3. Khuyết điểm:
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
.......................................................................................................................................
5. Đánh giá loại:
.......................................................................................................................................
6. Điểm:……………….(Bằng chữ:............................................................................ )
Tp. Hồ Chí Minh, ngày 22 tháng 8 năm 2020
Giáo viên phản biện
(Ký & ghi rõ họ tên)

do an


LỜI CẢM ƠN
Đầu tiên chúng em xin gửi lời cảm ơn chân thành đến gia đình, bố mẹ khi đã tin
tưởng và ủng hộ cho chúng em theo học tại trường Đại học Sư Phạm Kỹ Thuật
TP.HCM đến ngày hôm nay.
Chúng em xin gửi lời cảm ơn sâu sắc đến Ban Giám Hiệu nhà trường cũng như

Khoa Đào Tạo Chất Lượng Cao đã tạo điều kiện và cơ hội cho chúng em học tập các
kiến thức thực tế về chuyên ngành. Em xin gửi lời tri ân sâu sắc đến các thầy cô bộ
môn khoa Điện – Điện Tử, khoa Đào Tạo Chất Lượng Cao, đặc biệt là thầy Lê Minh
Thành – giảng viên hướng dẫn đã định hướng và chỉ dẫn tận tình để chúng em có thể
hồn thành báo cáo một cách trọn vẹn nhất.
Lời cuối, chúng em xin gửi lời cảm ơn đến các bạn học, các anh chị ngành Điện
tử – Viễn thơng các khóa đã cùng chúng em trao đổi, thảo luận và đưa ra những ý
kiến, nhận xét tích cực trong q trình thực hiện đề tài.
Chúng em xin chân thành cảm ơn.
Tp. Hồ Chí Minh, ngày 8 tháng 8 năm 2020
Sinh viên thực hiện

Dương Ngọc Anh

i

do an

Nguyễn Thị Thùy Trang


TĨM TẮT
Hiện nay, các hãng cơng nghệ đã đưa ra các ứng dụng phục vụ riêng cho việc
ghi ghép số thay thế cho ghi chép giấy truyền thống. Dữ liệu viết tay có thể lưu trữ,
chỉnh sửa và chuyển đổi sang nhiều định dạng theo ý muốn, tăng tính tiện lợi và giảm
được chi phí bảo quản. Với kiến thức nền tảng về lập trình và mạng nơ-ron, nhóm lựa
chọn thực hiện đề tài “Thiết kế hệ thống nhận diện chữ viết tay” với mong muốn
có một ứng dụng giao diện thân thiện tương tự như Paint của Microsoft, chức năng
cơ bản là nhận diện được chữ viết tay tiếng Anh của người dùng. Đây sẽ là một ứng
dụng đơn giản, dễ dàng cài đặt trên nền tảng các hệ điều hành Window.

Hệ thống được thực hiện trên phần mềm Microsoft Visual C# 2010 với kiến trúc
của mạng nơ-ron tích chập đa tầng. Ngõ vào được viết tay trên giao diện hệ thống,
qua tiền xử lý, trích đặc trưng và phân loại bằng mạng nơ-ron huấn luyện trước. Kết
quả phân loại của mạng nơ-ron được đưa qua mô-đun nhận diện từ với giải thuật kiểm
tra chính tả để cho ra kết quả hiển thị trên giao diện hệ thống. Trong báo cáo nhóm
đã trình bày sơ đồ khối của hệ thống, phân tích chức năng từng khối và đưa ra phương
án cụ thể với các lưu đồ giải thuật tổng quát. Từ các kết quả thu được, nhóm đưa ra
được đánh giá cụ thể về hệ thống và có phương hướng cải thiện trong tương lai.

ii

do an


MỤC LỤC

LỜI CẢM ƠN ..............................................................................................................i
TÓM TẮT ...................................................................................................................ii
MỤC LỤC ................................................................................................................. iii
DANH MỤC TỪ VIẾT TẮT ...................................................................................... v
DANH MỤC HÌNH ...................................................................................................vi
DANH MỤC BẢNG .................................................................................................vii
Chương 1: TỔNG QUAN ........................................................................................... 1
1.1

Tình hình nghiên cứu .....................................................................................1

1.2

Mục tiêu .........................................................................................................2


1.3

Giới hạn đề tài ...............................................................................................2

1.4

Bố cục đồ án ..................................................................................................3

Chương 2: CỞ SỞ LÝ THUYẾT ................................................................................ 4
2.1

Tổng quan về máy học...................................................................................4

2.2

Phương pháp tiền xử lý ..................................................................................4

2.3

Phương pháp phân đoạn ................................................................................5

2.4

Trích đặc trưng ..............................................................................................5

2.4.1

Trích đặc trưng dựa trên hình thái học ................................................... 5


2.4.2

Trích đặc trưng bằng Gradient ................................................................ 6

2.5

Tổng quan mạng nơ-ron tích chập .................................................................7

2.6

Tổng quan về tập dữ liệu UNIPEN .............................................................11

Chương 3: THIẾT KẾ HỆ THỐNG NHẬN DIỆN CHỮ VIẾT TAY ..................... 14
3.1

Yêu cầu thiết kế ...........................................................................................14
iii

do an


3.2

Sơ đồ khối và chức năng .............................................................................14

3.3

Thiết kế từng khối........................................................................................15

3.3.1


Tập dữ liệu ............................................................................................ 15

3.3.2

Khối ngõ vào ......................................................................................... 17

3.3.3

Tiền xử lý .............................................................................................. 17

3.3.4

Khối trích đặc trưng và khối phân loại ................................................. 18

3.3.5

Khối kiểm tra chính tả và hiển thị ........................................................ 27

3.4

Chương trình và lưu đồ giải thuật................................................................29

Chương 4: KẾT QUẢ NHẬN DIỆN CHỮ VIẾT TAY ........................................... 35
4.1

Giao diện chương trình và kết quả nhận diện ..............................................35

4.2


Đánh giá kết quả thực tế ..............................................................................43

Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................. 44
5.1

Kết luận........................................................................................................44

5.2

Hướng phát triển ..........................................................................................44

DANH MỤC TÀI LIỆU THAM KHẢO .................................................................. 45
PHỤ LỤC .................................................................................................................. 47

iv

do an


DANH MỤC TỪ VIẾT TẮT
CNN:

Convolutional Neural Network

KNN:

K-Nearest Neighbors

SVM:


Support Vector Machine

MLP:

Multilayer Perceptron

LSTM: Long Short-Term Memory

v

do an


DANH MỤC HÌNH
Hình 1.1: Ví dụ về giới hạn phong cách chữ viết tay.................................................2
Hình 1.2: Ví dụ các phong cách viết tay khơng nhận diện ........................................2
Hình 2.1: Các giai đoạn xây dựng mơ hình máy học .................................................4
Hình 2.2: Cấu trúc của một nơ-ron ............................................................................8
Hình 2.3: Kiến trúc mạng LeNet5 chi tiết ................................................................11
Hình 2.4: Ví dụ về một ghi chép dữ liệu UNIPEN của HP .....................................13
Hình 3.1: Sơ đồ khối hệ thống: a) Huấn luyện mạng nơ-ron b) Nhận diện ............14
Hình 3.2: Một mẫu chữ số thu thập ở khối ngõ vào kích thước 1006x533 .............17
Hình 3.3: Q trình tạo đường bao tách đối tượng ..................................................18
Hình 3.4: Các ví dụ khác cho thuật tốn phân đoạn.................................................18
Hình 3.5: Kiến trúc mạng nơ-ron tích chập đa tầng .................................................19
Hình 3.6: Kiến trúc hình học cho mạng phân loại số ...............................................19
Hình 3.7: Lưu đồ giải thuật khối ngõ vào ................................................................29
Hình 3.8: Lưu đồ giải thuật chuyển đổi ảnh xám .....................................................30
Hình 3.9: Lưu đồ giải thuật tạo đường bao tách kí tự ..............................................32
Hình 3.10: Lưu đồ huấn luyện mạng nơ-ron tích chập ............................................33

Hình 3.11: Lưu đồ nhận diện ...................................................................................34
Hình 4.1: Giao diện giới thiệu ..................................................................................35
Hình 4.2: Giao diện nhận diện chính của hệ thống ..................................................35
Hình 4.3: Mẫu số 1 – Chữ số ...................................................................................37
Hình 4.4: Mẫu số 2 – Chữ thường và số hỗn hợp ....................................................38
Hình 4.5: Mẫu số 3 – Chữ in hoa .............................................................................39
Hình 4.6: Mẫu số 4 – Chữ in hoa và chữ thường hỗn hợp .......................................40
Hình 4.7: Mẫu số 5 – Chữ in hoa và chữ thường hỗn hợp .......................................41
Hình 4.8: Mẫu số 6 – Chữ số ...................................................................................41
Hình 4.9: Mẫu số 7 – Chữ số ...................................................................................42
Hình 4.10: Mẫu số 8 – Chữ in hoa và chữ thường hỗn hợp .....................................42
vi

do an


DANH MỤC BẢNG
Bảng 2.1: Một số hàm truyền thông dụng ..................................................................9
Bảng 2.2: Số lượng mẫu trong tập UNIPEN Train-R01/V07 ..................................12
Bảng 3.1: Kế hoạch sử dụng tập dữ liệu ..................................................................15
Bảng 3.2: Ví dụ kiểu viết chữ số trong tập mẫu .......................................................16
Bảng 3.3: Ví dụ kiểu viết chữ thường trong tập mẫu ...............................................16
Bảng 3.4: Ví dụ kiểu viết chữ in hoa trong tập mẫu ................................................16
Bảng 3.5: Bảng thông số kiến trúc mạng phân loại số .............................................20
Bảng 3.6: Bảng thông số kiến trúc mạng phân loại chữ thường và in hoa ..............21
Bảng 3.7: Tổng hợp độ chính xác của kết quả kiểm thử ..........................................21
Bảng 3.8: Ma trận tương quan kiểm thử số ..............................................................22
Bảng 3.9: Tỉ lệ nhận diện kiểm thử số......................................................................22
Bảng 3.10: Ma trận tương quan kiểm thử chữ in hoa...............................................23
Bảng 3.11: Tỉ lệ nhận diện kiểm thử chữ in hoa ......................................................24

Bảng 3.12: Ma trận tương quan kiểm thử kí tự chữ thường.....................................25
Bảng 3.13: Tỉ lệ nhận diện kiểm thử chữ thường .....................................................26
Bảng 3.14: Các kí tự đã dán nhãn cho kết quả nhận diện sai ...................................26
Bảng 3.15: Ví dụ về kết quả nhận diện từ của khối hiển thị ....................................27
Bảng 4.1: Các nút chức năng của giao diện ngõ vào ...............................................36
Bảng 4.2: Thống kê kết quả nhận diện của hệ thống ...............................................43
Bảng 4.3: Bảng kiểm định độ chính xác ..................................................................43

vii

do an


Chương 1: TỔNG QUAN
1.1 Tình hình nghiên cứu
Thế giới đang hướng tự động và số hoá để hỗ trợ con người trong nhiều lĩnh
vực cuộc sống. Trong lĩnh vực giáo dục, các hệ thống dạy học điện tử dần được thử
nghiệm với mong muốn tăng hứng thú và khả năng tiếp thu của học sinh, sinh viên.
Để thay thế dần kiểu ghi chép giấy truyền thống, các hãng công nghệ đưa ra các ứng
dụng phục vụ riêng cho việc ghi ghép số. Dữ liệu được lưu trữ, chỉnh sửa và chuyển
đổi sang nhiều định dạng theo ý muốn, giảm chi phí bảo quản. Các ứng dụng ghi chép
số cịn có thể tích hợp thêm chức năng đọc văn bản dưới nhiều ngôn ngữ, phục vụ
cho việc dịch thuật, phát âm và hỗ trợ người khiếm thị.
Dựa trên mô phỏng hệ thống thần kinh của con người, những phương pháp nhận
diện chữ viết tay đã ra đời cùng khái niệm máy học và mạng nơ-ron nhân tạo. Gần
đây nhất, nhóm nghiên cứu của Felipe Petroski từ Mỹ đã giới thiệu thuật tốn nhận
diện chữ viết tay sử dụng mạng tích chập kết nối đầy đủ cho các ngôn ngữ hệ la
tinh[1]. Đồng thời, nhóm nghiên cứu của Haoran Liu từ Trung Quốc thực hiện tạo dữ
liệu văn bản dạng hình ảnh tổng hợp cho tập dữ liệu huấn luyện của mạng nơ-ron[2].
Bằng việc sử dụng số lượng lớn ảnh tổng hợp có thể giảm bớt q trình q mẫu và

cải thiện độ chính xác trong nhận diện văn bản từ hình ảnh. Lĩnh vực máy học và học
sâu vẫn không ngừng phát triển trong hơn 60 năm qua.
Nhóm có mong muốn thiết kế một hệ thống nhận diện chữ viết tay tiếng Anh
giao diện đơn giản như Paint của Microsoft, dễ dàng cài đặt trên nhiều nền tảng, ứng
dụng được cho cả trẻ em và người lớn với mục đích học ngoại ngữ chi phí thấp tại
nhà mà khơng lo bị sao nhãng hay phân tâm từ Internet. Với bước đầu tiếp cận với
mơ hình mạng nơ-ron, nhóm có sử dụng nghiên cứu “Ứng dụng mạng nơ-ron đa tầng
cho hệ thống nhận diện chữ viết tay on-line” của tác giả Phạm Việt Dũng[3] kết hợp
kiến thức tự tìm hiểu để thực hiện đề tài “Thiết kế hệ thống nhận diện chữ viết tay”.
Hệ thống có mơ hình mạng nơ-ron tích chập, được lập trình và mơ phỏng trên
phần mềm Microsoft Visual C# 2010.

1

do an


1.2 Mục tiêu
Đề tài sẽ tìm hiểu về bài tốn phân loại sử dụng kiến trúc mạng nơ-ron tích chập.
Dựa trên lý thuyết đó, thiết kế một hệ thống nhận diện chữ viết tay tiếng Anh được
viết trực tiếp trên giao diện. Chương trình có thể cài đặt trên nhiều thiết bị máy tính
hệ điều hành Window với giao diện đẹp và thân thiện cho người sử dụng.
1.3 Giới hạn đề tài
Hệ thống nhận diện được chữ in hoa, chữ thường và số tiếng Anh được viết trực
tiếp vào giao diện tương tác, khơng giới hạn kích thước (nằm chuẩn trong khung giao
diện cho phép, không liền nét hoặc đứt nét, các kí tự rời nhau khơng trùng lắp). Hệ
thống nhận diện phong cách chữ viết tay tiếng anh tiêu chuẩn của người Mỹ, với dạng
khối cứng như mô tả dưới đây. Chữ khơng sử dụng móc trên hay móc cách điệu theo
phong cách thư pháp cổ điển – hiện đại, không sử dụng nét thanh nét đậm. Yếu tố
cuối cùng là chữ có thể đọc được bằng mắt thường.


Hình 1.1: Ví dụ về giới hạn phong cách chữ viết tay

Hình 1.2: Ví dụ các phong cách viết tay khơng nhận diện

2

do an


1.4 Bố cục đồ án
Chương 1: Tổng quan
Trong chương trình bày về tình hình nghiên cứu của bài tốn nhận diện chữ viết
trên thế giới và những cải tiến đã đạt được, từ đó đưa ra định hướng đề tài của nhóm.
Trong chương có nêu được rõ phương hướng, mục tiêu thực hiện và giới hạn của đề
tài lựa chọn.
Chương 2: Cơ sở lý thuyết
Chương này trình bày khái quát về các bước xây dựng hệ thống nhận diện chữ
viết tay. Trong mỗi phần có đề cập đến khái niệm lý thuyết cơ bản được ứng dụng
trong hệ thống.
Chương 3: Thiết kế hệ thống nhận diện chữ viết tay
Chương này trình bày về sơ đồ khối hoạt động của hệ thống, nguyên lý hoạt
động và phương pháp lựa chọn thiết kế cho từng khối. Trong đó có trình bày chi tiết
lưu đồ giải thuật và kết quả đạt được của từng phần.
Chương 4: Kết quả nhận diện chữ viết tay
Chương này trình bày về giao diện thực tế của ứng dụng, hướng dẫn thao tác và
sử dụng hệ thống. Kết quả nhận diện và tỉ lệ chính xác được xem xét, thống kê và so
sánh trong nhiều trường hợp khác nhau.
Chương 5: Kết luận và hướng phát triển
Từ các kết quả thu được, nhóm đưa ra đánh giá chung về đề tài, kết luận về các

nội dung đã thực hiện cũng như ưu, nhược điểm của hệ thống. Từ những nhận xét
trên, đưa ra các hướng cải thiện và phát triển đề tài trong tương lai.

3

do an


Chương 2: CỞ SỞ LÝ THUYẾT
2.1 Tổng quan về máy học
Hầu hết các bài toán máy học liên quan đến việc điều khiển dữ liệu và lựa chọn
mơ hình huấn luyện. Tùy theo đặc điểm dữ liệu yêu cầu nhận diện và mục tiêu đạt
được, có hai mơ hình máy học được xem xét là học không giám sát và học có giám
sát. Học khơng giám sát được sử dụng trong thống kê và phân cụm dữ liệu. Học giám
sát lại được sử dụng trong mơ hình cần tiên đốn kết quả ngõ ra[4].
Việc thiết kế hệ thống nhận diện chữ viết thực chất là xây dựng một mơ hình
máy học có chức năng phân loại. Các giai đoạn xây dựng mơ hình gồm:

Thu thập dữ liệu

Xây dựng mơ hình huấn
luyện
( chọn thuật tốn)

Tiền xử lý

Trích xuất đặc trưng

Tối ưu hệ thống


Hình 2.1: Các giai đoạn xây dựng mơ hình máy học
Trong các bài toán học giám sát kiểu phân loại, để có hiệu quả cần lựa chọn
được thuật tốn huấn luyện chính xác. Mỗi thuật tốn có tốc độ, bộ nhớ sử dụng, độ
chính xác và nội dung khác nhau. Thuật tốn lựa chọn cịn liên quan đến vấn đề cần
phân loại là kiểu nhị phân hoặc phân loại đa lớp. Các thuật toán phân loại thường
dùng là: mạng nơ-ron, hồi quy lơ-gíc, kề cận gần nhất KNN, véc-tơ máy hỗ trợ SVM,
Nạve Bayes, phân tích phân biệt, cây quyết định… Các thuật tốn hồi quy khơng
được đề cập đến ở đây[5].
2.2 Phương pháp tiền xử lý
Ảnh để có thể xử lý nhận diện cần quá trình tiền xử lý bao gồm công đoạn khôi
phục, tăng cường, nhị phân và chuẩn hóa hình ảnh.
Khơi phục ảnh nhằm giảm thiểu các ảnh hưởng vật lí, bao gồm lọc và khử nhiễu.
Tăng cường ảnh làm tăng chất lượng ảnh, thường là làm rõ nét đặc trưng đối tượng
ảnh (thay đổi độ tương phản, giảm nhiễu, làm trơn biên, khuếch đại ảnh, điều chỉnh
4

do an


mức xám…). Ảnh được nhị phân để gọn nhẹ và đơn giản trong nhận diện.
Việc chuẩn hóa kích thước ảnh bắt đầu bằng xác định trọng tâm ảnh, xác định
khoảng cách lớn nhất từ tâm ảnh đến các cạnh trên, dưới, trái, phải của hình chữ nhật
bao quanh ảnh. Thơng qua khoảng cách lớn nhất đó, xác định được tỉ lệ co giãn của
ảnh gốc so với kích thước đã xác định, từ đó điều chỉnh kích thước ảnh theo tỉ lệ trên.
Việc chuẩn hố đảm bảo tính cân bằng để khi co giãn, ảnh sẽ không bị biến dạng hoặc
bị lệch.
2.3 Phương pháp phân đoạn
Ảnh ngõ vào gồm chuỗi các kí tự được phân tách các thành phần riêng lẻ và cơ
lập để dễ dàng trong trích xuất đối tượng để nhận diện đặc trưng mẫu. Mục tiêu phân
đoạn ảnh là dựa trên các tính chất cơ bản như màu sắc, giá trị xám, cấu trúc hay sự

thay đổi đột ngột về cường độ sáng điểm ảnh để xác định biên đối tượng. Một số thuật
toán phân đoạn ảnh thường dùng trong ứng dụng phân loại: phân đoạn dựa trên đường
viền vùng, phân đoạn cụm, phân loại bằng phân hoạch đồ thị, phân đoạn ngưỡng tồn
cục, ngưỡng thích nghi và ngưỡng cục bộ.
2.4 Trích đặc trưng [6]
2.4.1 Trích đặc trưng dựa trên hình thái học
Cấu trúc kí tự có thể biểu diễn bằng các đặc trưng hình học và hình thái và trích
xuất bằng các phương pháp sau:
• Trích chọn và đếm cấu trúc hình thái
Phương pháp này đi tìm kiếm một cấu trúc đã xác định trong một từ hoặc một
kí tự, trích chọn và đếm nhiều đặc trưng về hình thái như điểm cực đại và cực tiểu,
các điểm chóp trên và chóp dưới của một ngưỡng nào đó, mở rộng cho các điểm trái,
phải, trên, dưới và các giao điểm, các điểm nhánh, điểm cuối đoạn thẳng, các điểm
cô lập, hướng của một nét xét từ một điểm đặc biệt nào đó…
• Đo và xấp xỉ tính chất hình học
Phương pháp này tính tốn tỉ lệ giữa các thành phần từ và kí tự bao gồm tỉ số
giữa chiều rộng và chiều cao của hộp chứa kí tự, quan hệ khoảng cách giữa hai điểm,

5

do an


so sánh độ dài giữa hai nét, độ rộng của một nét, khối lượng chữ hoa và chữ thường
của các từ, độ dài từ… Một thông số đo tiêu biểu là độ cong hay sự thay đổi độ cong.
• Đồ thị và cây
Đầu tiên phân chia các từ và kí tự thành một tập các đối tượng nguyên thủy như
các nét, các điểm chạc…, rồi thay thế các đồ thị thuộc tính liên quan. Có hai đặc trưng
ảnh được mơ tả bằng đồ thị. Loại thứ nhất sử dụng tọa độ hình dáng kí tự. Loại thứ
hai là đặc trưng trừu tượng với các nút của đồ thị tương ứng với các nét chữ và các

cạnh đồ thị tương ứng với mối quan hệ giữa các nét chữ. Ngoài ra phương pháp này
có thể dùng để biểu diễn các từ và kí tự với một tập các đặc trưng theo quan hệ phân
cấp.
Trích đặc trưng hầu hết được thực hiện trên ảnh nhị phân. Tuy nhiên, việc nhị
phân hóa ảnh đa cấp xám có thể xóa đi một số thơng tin quan trọng của các kí tự.
Trong trường hợp này, có thể trích chọn các đặc trưng trực tiếp từ các ảnh đa cấp xám.
Tóm lại, đặc trưng của kí tự là những yếu tố nguyên thủy (đoạn thẳng, đường cong)
tạo nên mỗi kí tự. Các kí tự có thể phân biệt bằng việc tính tốn các đại lượng hình
học như tỉ số giữa chiều rộng và chiều cao của khung chứa kí tự, quan hệ khoảng
cách giữa hai điểm giao nhau, độ dài mỗi nét, độ dài tương quan giữa hai nét, tỉ lệ
chữ in hoa và in thường trong một từ…Trích đặc trưng dựa trên hình thái học áp dụng
kỹ thuật quy hoạch vùng: phân chia kí tự thành các m*n vùng, sau đó tính tổng số
điểm đen của mỗi vùng để tạo tính đặc trưng.
2.4.2 Trích đặc trưng bằng Gradient
Gradient là một véc-tơ có các thành phần biểu thị tốc độ thay đổi giá trị của
điểm ảnh theo 2 hướng x và y, hay có thể nói là nó đại diện cho sự thay đổi về hướng
và độ lớn của một vùng ảnh. Gradient gồm các thành phần hồnh độ và tung độ được
tính tốn như sau:
𝜕𝑓(𝑥, 𝑦)
𝑓(𝑥 + 𝑑𝑥, 𝑦) − 𝑓(𝑥, 𝑦)
= 𝑓 ′ 𝑥 = ∆𝑥 ≈
𝜕𝑥
𝑑𝑥
𝜕𝑓(𝑥, 𝑦)
𝑓 (𝑥, 𝑦 + 𝑑𝑦) − 𝑓(𝑥, 𝑦)
= 𝑓 ′ 𝑦 = ∆𝑦 ≈
𝜕𝑦
𝑑𝑦

6


do an

(2.1)
(2.2)


Trong đó dx và dy là khoảng cách giữa hai điểm ảnh (bằng 1 khi tính điểm ảnh
liền kề). Tại điểm ảnh có tọa độ (i,j) ta có biểu thức tương ứng:
∆𝑥 = 𝑓 (𝑖 + 1, 𝑗) − 𝑓 (𝑖, 𝑗)

(2.3)

∆𝑦 = 𝑓 (𝑖, 𝑗 + 1) − 𝑓 (𝑖, 𝑗)

(2.4)

Gradient trong xử lý ảnh thường được áp dụng cùng cặp mặt nạ trực giao Hx,
Hy để tối giản tính tốn. Nếu định nghĩa g1(f’x), g2(f’y) là véc-tơ Gradient theo hai
hướng x,y (G(g1, g2)) thì biên độ g và hướng của biên tại tọa độ điểm (m,n) được tính
như (2-3), (2-4) và có thể xấp xỉ như (2-5):
𝐴𝑜 = 𝑔(𝑚, 𝑛) = √𝑔1 2 (𝑚, 𝑛) + 𝑔2 2 (𝑚, 𝑛)

(2.5)

𝑔2
)
𝑔1
𝐴𝑜 ≈ |𝑔1 (𝑚, 𝑛)| + |𝑔2 (𝑚, 𝑛)|


(2.6)

𝜃 = arctan⁡ (

(2.7)

Yêu cầu là tìm cặp mặt nạ phù hợp cho q trình tính tốn g1, g2 trên. Thơng
thường áp dụng toán tử Sobel. Mỗi điểm ảnh lân cận của ảnh ngõ vào được tiến hành
nhân chập với cặp mặt nạ để tính tốn các thành phần biên độ và hướng của Gradient,
từ đó xác định biên và thu được khung cấu trúc của kí tự.
2.5 Tổng quan mạng nơ-ron tích chập
Mạng nơ-ron là tập hợp các thuật tốn được mơ hình hóa theo kiến trúc não bộ,
có sự liên kết giữa dữ liệu ngõ vào với ngõ ra mong muốn, được thiết kế để nhận diện
và phân loại các đặc trưng của dữ liệu. Dữ liệu đó có thể là hình ảnh, âm thanh, chữ
viết, vật thể… Mạng nơ-ron sử dụng tốt nhất cho việc mơ hình hóa các hệ thống phi
tuyến, khi dữ liệu cần tăng thêm hoặc bị thay đổi và yêu cầu cập nhật hệ thống tức
thời[5]. Mạng nơ-ron được biểu diễn dưới dạng kiến trúc mạng nhiều lớp, mỗi lớp
chứa các nút thần kinh, hay nơ-ron và kết nối thông qua các trọng số liên kết w có thể
hiệu chỉnh[7].

7

do an


Ngõ vào

Trọng số
liên kết


x1

wk1

x2
.
.
.

wk2
.
.
.

xn

wkn

Hàm
truyền
Σ
Hàm
tổng

y
Ngõ ra
bk

Hình 2.2: Cấu trúc của một nơ-ron
Các thành phần cơ bản của một nơ-ron bao gồm:

• Ngõ vào: dữ liệu ngõ vào được lưu trữ dưới dạng véc-tơ n chiều.
• Liên kết: mỗi liên kết được thể hiện bởi một hệ số hay trọng số liên kết w.
Trọng số liên kết giữa tín hiệu vào thứ j với nơ-ron k được kí kiệu là wkj , được
khởi tạo ban đầu ngẫu nhiên và được cập nhật liên tục trong q trình huấn
luyện.
• Hàm tổng: tính tổng của tích các ngõ vào với trọng số liên kết tương ứng.
• Hàm truyền: hay cịn gọi là hàm kích hoạt, dùng để giới hạn phạm vi ngõ ra
của mỗi nơ-ron. Hàm truyền nhận kết quả là hiệu của hàm tổng và hệ số chênh
lệch bk (độ lệch giữa giá trị trung bình do mơ hình dự đốn và giá trị thực tế
của dữ liệu, hay còn gọi là ngưỡng chênh lệch).
• Ngõ ra: tín hiệu ngõ ra của nơ-ron, mỗi nơ-ron có tối đa một ngõ ra.
Biểu diễn dưới dạng toán học, cấu trúc của một nơ-ron k được mô tả bằng cặp
biểu thức sau:
𝑛

(2.8)

𝑢𝑘 = ⁡ ∑ 𝑤𝑘𝑗 . 𝑥𝑗⁡
𝑗=1

𝑦𝑘 = 𝑓(𝑢𝑘 − 𝑏𝑘 )

8

do an

(2.9)


Trong đó xn là các tín hiệu ngõ vào, wkj là trọng số liên kết của nơ-ron thứ k, uk

là hàm tổng, bk là hệ số chênh lệch.
Bảng 2.1: Một số hàm truyền thơng dụng
Hàm truyền
Nhị phân
Tuyến tính
Logic
Softmax

Cơng thức

Hàm truyền

f(x) = 1, x ≥ 0

Tanh

f(x) = ax
f(x) =

ReLu

1
1 + e−x

Leaky ReLu

Công thức
f(x) =

2

−1
1 + e−2x

f(x) = max⁡(0, x)
f(x) = {

ax⁡⁡x < 0
x⁡⁡⁡⁡x ≥ 0

exj
f(xi ) = n xj
∑j=1 e

Các nơ-ron có thể kết nối đầy đủ với tồn bộ nơ-ron kết nối với nhau, hoặc kết
nối cục bộ với các nơ-ron trong các tầng khác biệt. Kiến trúc truyền dữ liệu trong
mạng nơ-ron có thể diễn ra theo hai loại:
• Mạng truyền thẳng: tín hiệu truyền thẳng một chiều và khơng có vịng lặp, sử
dụng trong nhận diện mẫu. Kiến trúc này gồm một tầng ngõ vào, một tầng ngõ
ra và có nhiều hoặc khơng cần các tầng ẩn. Các kiến trúc điển hình là mạng
nhận thức đa tầng (MLP).
• Mạng phản hồi: sử dụng bộ nhớ trong để xử lý ngõ vào tuần tự. Tín hiệu có
thể di chuyển theo cả 2 hướng và lặp lại trong mạng. Điển hình là kiến trúc
mạng Hopefield, LTSM máy Boltzmann, mạng tự tổ chức…
Mạng nơ-ron tích chập CNN về cơ bản là nhiều lớp chập kết hợp với hàm kích
hoạt phi tuyến để tạo ra thông tin trừu tượng hơn cho các lớp tiếp theo. Việc tính tích
chập được hình dung là áp một cửa sổ trượt hay mặt nạ lên một ma trận ảnh. Cửa sổ
trượt này trong lĩnh vực mạng nơ-ron được gọi là mặt nạ, bộ lọc hay kernel.
Trong mơ hình mạng nơ-ron truyền thẳng các lớp mạng kết nối trực tiếp với
nhau thông qua một trọng số liên kết thì được gọi là các lớp mạng kết nối đầy đủ.
Trong mơ hình mạng nơ-ron tích chập thì ngược lại. Các lớp mạng liên kết với nhau


9

do an


thơng qua cơ chế tích chập, với ngõ vào lớp tiếp theo là kết quả chập của lớp trước
đó, được gọi là các kết nối cục bộ.
Trong mạng tích chập, mỗi lớp chập hoạt động dựa trên nguyên lý dò tìm đặc
trưng, mỗi mặt nạ trượt qua đặc trưng nhất định thì tích chập đó sẽ cho giá trị lớn.
Những đặc trưng này bao gồm đặc trưng cơ bản là góc, cạnh, màu sắc, hoặc đặc trưng
phức tạp hơn như kết cấu của ảnh. Vì bộ lọc qt qua tồn bộ bức ảnh, nên những
đặc trưng này có thể nằm bất kì vị trí nào, cho dù ảnh bị xoay ngược thì những đặc
trưng này vẫn bị phát hiện.
Mạng nơ-ron tích chập được xây dựng từ 3 ý tưởng cơ bản sau:
• Trường tiếp nhận cục bộ:
Trong mơ hình mạng nơ-ron truyền thống thì chúng ta sẽ đem tồn bộ ma trận
ảnh làm ngõ vào mạng nơ-ron và ngõ ra của nơ-ron lớp trước kết nối với tất cả nơron lớp sau, nguyên nhân chính gây ra quá khớp và tăng thời gian huấn luyện do số
lượng tham số cần học lớn. Đối với mạng tích chập, ma trận ảnh ngõ vào được chập
với một bộ lọc kích thước nhỏ thơng qua hàm kích hoạt cho kết quả là các bản đồ đặc
trưng. Mỗi vùng mà bộ lọc áp đặt lên ma trận đầu vào là trường tiếp nhận. Việc sử
dụng trường tiếp nhận cục bộ giúp giảm số lượng tham số huấn luyện mà vẫn đảm
bảo trật tự không gian ảnh.
• Trọng số chia sẻ:
Mỗi tầng ẩn thường có số bản đồ đặc trưng bằng số bộ lọc tương ứng, số trọng
số liên kết bằng kích thước bộ lọc và chỉ có một hệ số chênh lệch. Các giá trị tham số
trên được dùng chung cho các bản đồ đặc trưng làm giảm tham số cần học trong quá
trình huấn luyện.
• Lớp tổng hợp - Lớp lấy mẫu phụ:
Lớp tổng hợp thường được sử dụng ngay sau lớp chập để đơn giản hóa ngõ ra

ở lớp trước, hỗ trợ giảm số lượng nơ-ron. Thủ tục phổ biến là tổng hợp tối đa với
phương pháp chọn giá trị lớn nhất trong vùng ngõ vào 2x2, nhằm tìm ra đặc trưng nổi
bật nhất để giảm kích thước ngõ ra đi một nửa.

10

do an


Một kiến trúc mạng tích chập đặc trưng là LeNet5 gồm 7 lớp, vốn được huấn
luyện để phân loại chữ số viết tay thông qua tập dữ liệu MNIST (1998). Đầu vào của
mạng tích chập là một ảnh có kích thước 32×32, tương ứng một ma trận có 32x32 và
giá trị mỗi điểm ảnh là một ô trong ma trận. Hàm kích hoạt được sử dụng ở đây là
hàm ReLu.

Hình 2.3: Kiến trúc mạng LeNet5 chi tiết [8]
Ảnh ngõ vào kích thước 32x32x3 được chập với 6 bộ lọc 5x5x3 với khoảng
dịch chuyển bộ lọc bằng 1. Ngõ ra lớp thứ nhất là ma trận 28x28x6. Lớp thứ hai là
lớp lấy mẫu phụ hay tổng hợp trung bình với kích thước 2x2 và một khoảng dịch
chuyển bằng 2. Kích thước bản đồ giảm đi một nửa còn 14x14x6. Lớp thứ ba là một
lớp chập có kích thước 10x10x16 và một khoảng dịch chuyển bằng 1. Lớp thứ tư
tương tự lớp thứ hai. Lúc này bản đồ đặc trưng chỉ còn kích thước 5x5, quá nhỏ để
tăng thêm lớp chập hoặc giảm mẫu. Lớp thứ năm kết nối ngõ ra của lớp thứ tư (chứa
5x5x16 = 400 kết nối) với một lớp kết nối đầy đủ có 120 nốt mạng. Lớp thứ sáu là
lớp kết nối đầy đủ chuyển đổi ngõ ra lớp thứ năm thành 84 nốt mạng. Lớp thứ bảy,
lớp cuối cùng có chức năng phân loại ngõ ra thành 10 phân lớp tương ứng với các
chữ số từ 0-9.
Nhiều mạng nơ-ron tích chập lần được được cải tiến và ra đời như AlexNet
(2012), ZFNet (2013), VGGNet (2014), ResNets (2015), Densenet (2016)…dù cho
hiệu suất cao nhưng phức tạp và khó xây dựng cho người mới tiếp cận.

2.6 Tổng quan về tập dữ liệu UNIPEN
UNIPEN là bộ dữ liệu chữ viết tay trực tuyến thu được từ các tablet hay màn
hình cảm ứng. Dữ liệu thu được là dữ liệu trực tuyến gồm tập hợp các nét viết, mỗi
11

do an


nét viết là một dãy có thứ tự theo thời gian các điểm từ lúc đặt viết xuống đến lúc
nhấc bút lên, hay còn gọi là quỹ đạo bút. Các đặc trưng liên quan đến thời gian cũng
có thể xem là các đặc trưng trực tuyến, ví dụ như điểm bắt đầu, điểm kết thúc một nét
viết. Dữ liệu trực tuyến được xem như một ảnh động hay ảnh véc-tơ, từ đó có thể tạo
ra một ảnh tĩnh và trích xuất các đặc trưng từ ảnh này như là các đặc trưng của ảnh
không trực tuyến[9].
UNIPEN cung cấp dữ liệu chữ viết tay thu thập từ hơn 2200 người viết với hơn
5 triệu mẫu kí tự và được chia làm hai bộ phận là tập Train-R01/V07 và tập DevTestR02/V02 nhưng chỉ có tập Train-R01/V07 được cơng khai và được người dùng tự
chia thành 3 tập nhỏ cho mục đích huấn luyện, kiểm định và kiểm thử. Nhiều thư viện
hay công cụ quan sát UNIPEN trên nền tảng C#/C++ đã được thực hiện và cho phép
sử dụng với mục đích phi thương mại.
Bảng 2.2: Số lượng mẫu trong tập UNIPEN Train-R01/V07
Train-R01/V07

Phân loại

Tổng số mẫu Số tập tin

1a

Chữ số 0-9


15953

634

1b

Chữ in hoa A-Z

28068

1423

1c

Chữ thường a-z

61351

2145

1d

Dấu

17286

1222

2


Kí tự hỗn hợp

122628

2735

3

Từ

67352

1949

6

Chữ ngốy

75529

3298

7

Từ đầy đủ

85213

3393


8

Câu đầy đủ

14544

4563

12

do an


×