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

Nhận dạng chữ số viết tay sử dụng kỹ thuật học sâu (deep learning)

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 (25.7 MB, 73 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC BÁCH KHOA
-----  -----

HUỲNH VĂN NHỨT

NHẬN DẠNG CHỮ SỐ VIẾT TAY SỬ DỤNG
KỸ THUẬT HỌC SÂU (DEEP LEARNING)

LUẬN VĂN THẠC SĨ
KHOA HỌC MÁY TÍNH

Đà Nẵng – Năm 2018


ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC BÁCH KHOA
-----  -----

HUỲNH VĂN NHỨT

NHẬN DẠNG CHỮ SỐ VIẾT TAY SỬ DỤNG
KỸ THUẬT HỌC SÂU (DEEP LEARNING)

Chuyên ngành :Khoa học máy tính
Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ

Ngƣời hƣớng dẫn khoa học: TS. HUỲNH HỮU HƢNG


Đà Nẵng – Năm 2018


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

Tác giả

Huỳnh Văn Nhứt


MỤC LỤC
MỞ ĐẦU .........................................................................................................................1
1. Tính cấp thiết của đề tài ........................................................................................1
2. Mục tiêu nghiên cứu ............................................................................................. 1
3. Đối tượng và phạm vi nghiên cứu ........................................................................1
4. Phương pháp nghiên cứu ......................................................................................2
5. Ý nghĩa của đề tài .................................................................................................2
6. Bố cục luận văn .....................................................................................................2
CHƢƠNG 1. TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NHẬN DẠNG CHỮ SỐ
VIẾT TAY ......................................................................................................................3
1.1. Tổng quan về nhận dạng chữ số viết tay ..................................................................3
1.1.1. Giới thiệu chung.............................................................................................. 3
1.1.2. Những khó khăn trong việc nhận dạng chữ số viết tay ..................................3
1.1.3. Các công trình nghiên cứu trong và ngoài nước. ............................................4
1.1.4. Các bước trong quá trình xử lý ảnh ................................................................ 5
1.1.5. Một số khái niệm trong xử lý ảnh ...................................................................7
1.2. Các phương pháp xử lý ảnh ......................................................................................8

1.2.1. Lọc mịn ảnh ....................................................................................................8
1.2.2. Nhị phân ảnh ...................................................................................................8
1.2.3. Chỉnh nghiêng .................................................................................................8
1.2.4. Chuẩn kích thước ............................................................................................ 9
1.2.5. Lấp khoảng trống ảnh .....................................................................................9
1.2.6. Phát hiện biên và làm trơn biên ....................................................................11
1.2.7. Xác định hướng của điểm biên (Freeman code) ...........................................11
1.2.8. Làm trơn đường biên ....................................................................................12
1.3. Các phương pháp nhận dạng chữ số viết tay .......................................................... 14
1.3.1. Phương pháp đối sánh mẫu ...........................................................................14
1.3.2. Phương pháp tiếp cận cấu trúc ......................................................................14
1.3.3. Phương pháp học máy với SVM (Support vector machine) .........................15
CHƢƠNG 2. MÔ HÌNH MẠNG NEURAL TÍCH CHẬP ......................................16
2.1. Mạng neural nhân tạo ............................................................................................. 16
2.1.1. Sơ lược về neural sinh học ............................................................................16
2.1.2. Mạng Neural nhân tạo ...................................................................................17
2.1.3. Kiến trúc mạng .............................................................................................. 19
2.1.4. Mạng một tầng .............................................................................................. 19


2.1.5. Mạng đa tầng.................................................................................................20
2.1.6. Huấn luyện mạng neural ...............................................................................21
2.2. Mạng Neural tích chập (Convolutional Neural Networks – CNNs) ......................24
2.2.1. Convolution (tích chập) ................................................................................24
2.2.2. Khái niệm CNNs ........................................................................................... 25
2.2.3. Cấu trúc mạng neural tích chập ....................................................................27
2.2.4. Những phương pháp tích chập (convolution) ...............................................28
2.2.5. Một số phép tích chập thường sử dụng trong xử lý ảnh ............................... 32
CHƢƠNG 3. NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI MẠNG NƠ RON
TÍCH CHẬP .................................................................................................................35

3.1. Bài toán nhận dạng .................................................................................................35
3.1.1. Phát biểu bài toán .......................................................................................... 35
3.1.2. Ảnh đầu vào của bài toán ..............................................................................35
3.2. Mô hình tổng quan ..................................................................................................36
3.3. Xây dựng mạng Neural nhận dạng ký tự................................................................ 37
3.3.1. Xây dựng mạng neural ..................................................................................37
3.3.2. Xử lý dữ liệu (phân tích ảnh) ........................................................................37
3.4. Xây dựng chương trình thử nghiệm .......................................................................43
3.4.1. Giới thiệu Python .......................................................................................... 43
3.4.2. Giới thiệu Tensorflow và cách cài đặt .......................................................... 44
3.4.3. Xây dựng mô hình mạng tích chập ............................................................... 44
3.4.4. Đầu vào và nhãn............................................................................................ 47
3.4.5. Lớp Convolution với hàm kích hoạt relu ......................................................48
3.4.6. Lớp Pooling...................................................................................................48
3.4.7. Lớp FC ..........................................................................................................49
3.4.8. Mô hình đầy đủ ............................................................................................. 50
3.4.9. Huấn luyện và kiểm chứng mô hình ............................................................. 51
3.5. Kết quả thử nghiệm ................................................................................................ 52
KẾT LUẬN ..................................................................................................................53
TÀI LIỆU THAM KHẢO........................................................................................... 55
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (bản sao)


TÓM TẮT LUẬN VĂN
NHẬN DẠNG CHỮ SỐ VIẾT TAY
SỬ DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING)
Huỳnh Văn Nhứt, học viên cao học khóa 33. Chuyên ngành Khoa học máy tính.
Mã số: 60480101. Khóa: 33. Trường Đại học Bách khoa – ĐHĐN.

TÓM TẮT

Vấn đề nhận dạng chữ viết tay nói chung và nhận dạng chữ số viết tay nói riêng là một
thách thức lớn đối với các nhà nghiên cứu. Bài toán lớn luôn đặt ra phía trước vì sự phức tạp
của việc nhận dạng chữ viết phụ thuộc nhiều vào phong cách viết và cách thể hiện ngôn ngữ
của người viết.
Nhận dạng ký tự viết tay là một lĩnh vực được quan tâm nghiên cứu và được ứng dụng
rộng rãi trong nhiều lĩnh vực như: nhận dạng các chữ số trên phiếu chi ngân hàng, mã số trên
bì thư của dịch vụ bưu chính, …
Luận văn đã tập trung nghiên cứu các vấn đề như sau:
- Xử lý và phân tích được được các ký tự ảnh đầu vào.
- Chuyển đổi ký tự sang ma trận điểm ảnh và ma trận Kernel.
- Tiến hành nhận dạng ký tự bằng thuật toán mạng neural tích chập.
Từ khóa : Nhận dạng, học sâu, chữ số viết tay, mạng nơ ron, tích chập.
ABSTRACT
The problems of recognizing the handwritten digits and characters cause a big issue to
challenge the studying and the scientists. The hard situations and huge questions always occur
in the processing of the program because it is so complicated to regconize the hand writing. It
depends on the styles of the people who is writing and language expression of the writer.
Recognizing the handwritten characters and digits is one of the most important fields
which is researched and applied in our lives in so many ways. Such as recognizing the
characters or number on the receipt papers of the banks, the pin numbers on the envelopes of
the post offices,...
The thesis focuses on the following issues:
- Handling and analyzes the input image character.
- Convert characters into pixel matrix and matrix Kernel.
- Conduct a character recognition algorithm using neural network
convolution.
Key words : recognition, deep learning, handwriting, neural network, convolution.


DANH MỤC CÁC HÌNH

Số hiệu
hình

Tên hình

Trang

1.1.

Minh họa ảnh ký tự bị nhòe

3

1.2.

Minh họa số viết sát, dính liền nhau

4

1.3.

Ảnh minh họa ký tự số nằm giao nhau hoặc cắt nhau

4

1.4.

Sơ đồ tổng quát các giai đoạn xử lý ảnh cơ bản

5


1.5.

Minh họa ảnh sau tiền xử lý

6

1.6.

Xác định độ nghiêng của ảnh

9

1.7.

Các thành phần cấu trúc đối xứng.

10

1.8.

Các thành phần cấu trúc không đối xứng

10

1.9.

Thành phần cấu trúc phát hiện biên

11


1.10.

Minh họa dò biên

11

1.11.

Hướng quy ước mã hóa

11

1.12.

Đường biên đã được mã hóa

12

1.13.

Dabs=2 và ci chẵn , ci+1 chẵn

12



1.14.

Dabs=2 và ci lẻ, ci+1 lẻ


13

1.15.

Dabs=3 và ci chẵn, ci+1 lẻ

13

1.16.

Dabs=3, ci lẻ, ci+1 chẵn

13

2.1.

Mô hình neural sinh học

16

2.2.

Mô hình Neural nhân tạo ở mức đơn giản

17

2.3.

Hàm Heaviside


18

2.4.

Mô hình mạng 1 tầng

20

2.5.

Mô mạng đa tầng

21

2.6.

Minh họa tích chập

24

2.7.

Ảnh mờ sau khi tích chập

25

2.8.

Ảnh được phát hiện biên sau khi chập


25

2.9.

Mô hình mạng nơ ron truyền thống

26

2.10.

Image Classification with CNN

26

2.11.

Minh họa mô hình CNNs

27

2.12.

Minh họa việc lấy mẫu con

28


Số hiệu
hình


Tên hình

Trang

2.13.

Ma trận điểm ảnh (ảnh gốc) và ma trận kernel (đóng vai
trò làm mặt nạ) cho quá trình tích chập

29

2.14.

Minh họa phương pháp SAME

30

2.15.

Minh họa phương pháp FULL

31

2.16.

Minh họa phương pháp VALID

31


2.17.

Minh họa cách biểu diễn ảnh

32

2.18.

Minh họa kết quả tích chập trong kỹ thuật blur

33

2.19.

Minh họa kết quả tích chập trong kỹ thuật Outline

33

2.20.

Minh họa kết quả tích chập trong kỹ thuật Emboss

34

3.1.

Minh họa ảnh chứa các chữ số viết tay

35


3.2.

Minh họa ảnh chứa nhiều ký tự số

35

3.3.

Minh họa ảnh chứa 1 ký tự số

36

3.4.

Mô hình tổng quan nhận dạng

36

3.5.

Minh họa mô hình mạng sử dụng trong luận văn

37

3.6.

Minh họa kết quả xác định vùng ảnh chứa ký số

38


3.7.

Lưu đồ xác định hình chữ nhật nhỏ nhất ngoại tiếp ký số
cần xác định

39

3.8.

Ảnh trước và sau khi thực hiện scale

40

3.9.

Minh họa thao tác thực hiện tích chập

41

3.10.

Quá trình trích chọn đặc trưng sử dụng CNNs

42

3.11.

Hình chiếu minh hoạ của tập dữ liệu trên trong không gian
ba chiều


45

3.12.

Một vài mẫu trong tập MNIST

45

3.13.

Mô hình CNN đầy đủ

50

314.

Đồ thị biểu diễn kết quả thử nghiệm

52


1

MỞ ĐẦU
1. Tính cấp thiết của đề tài
Nhận dạng là lĩnh vực được các nhà khoa học rất quan tâm để giải quyết các yêu
cầu trong cuộc sống hiện nay, có nhiều lĩnh vực nhận dạng như nhận dạng tín hiệu,
nhận dạng tiếng nói hay nhận dạng ảnh. Vấn đề nhận dạng chữ viết tay nói chung và
nhận dạng chữ số viết tay nói riêng là một vấn đề thách thức đối với những nhà nghiên
cứu.

Chữ số viết tay xuất hiện ở hầu hết trong các công việc của các cơ quan, nhà
máy, xí nghiệp, trường học. Trong các trường phổ thông hiện nay, có một bộ phận
quản lý điểm thực hiện các khâu tiếp nhận và nhập vào máy tính bảng điểm viết tay
của giáo viên bộ môn, công tác này luôn chiếm nhiều thời gian và đôi khi không đảm
bảo tiến độ hoạt động của nhà trường.
Để nhận dạng chữ số viết tay, có nhiều phương pháp và kỹ thuật khác nhau như:
logic mờ, giải thuật di truyền, mô hình xác xuất thống kê, mô hình mạng nơ ron. Đã có
nhiều công trình nghiên cứu về nhận dạng chữ số viết tay đạt hiệu quả cao, tuy nhiên,
các ứng dụng vẫn chưa đáp ứng hoàn toàn các yêu cầu của người dùng.
Hiện nay với sự phát triển không ngừng của máy tính, phương pháp Deep
Learning ra đời đã đáp ứng cơ bản trong việc nhận dạng và xử lý ảnh. Deep Learning
là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu
đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu. Deep Learning
được ứng dụng trong nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự
nhiên. Hiện nay rất nhiều các bài toán nhận dạng sử dụng Deep Learning để giải quyết
do Deep Learning có thể giải quyết các bài toán với số lượng cũng như kích thước đầu
vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân
lớp truyền thống.
Với những lý do trên, tôi chọn nghiên cứu đề tài :”Nhận dạng chữ số viết tay sử
dụng kỹ thuật học sâu (Deep learning)”
2. Mục tiêu nghiên cứu
Mục tiêu chính của đề tài này là sử dụng kỹ thuật Deep learning để xây dựng
chương trình nhận dạng chữ số viết tay.
3. Đối tƣợng và phạm vi nghiên cứu
3.1. Đối tượng
- Các chữ số viết tay.
- Cơ sở lý thuyết về nhận dạng ảnh.
- Các phương pháp, giải thuật về nhận dạng.



2
- Kỹ thuật Deep Learning
3.2. Phạm vi nghiên cứu
- Nghiên cứu kỹ thuật xử lý ảnh
- Ảnh quét chữ số viết tay
- Các chữ số tự nhiên từ 0 đến 9
4. Phƣơng pháp nghiên cứu
4.1. Phương pháp lý thuyết
- Các tài liệu về cơ sở lý thuyết: xử lý ảnh số, lọc trích ảnh số, xác định biên, rút
trích số, nhận dạng ký tự số.
- Nghiên cứu mạng Nơ ron nhận dạng chữ viết tay.
- Phương pháp Deep Learning
- Các tài liệu liên quan tới lập trình
4.2. Phương pháp thực nghiệm
- Xây dựng chương trình thử nghiệm.
- Kiểm thử tính hiệu quả của chương trình với các chữ số khác nhau.
5. Ý nghĩa của đề tài
Về khoa học: Đề tài sẽ mang ý nghĩa cung cấp về mặt lý thuyết để làm rõ các
phương pháp và kỹ thuật nhận dạng chữ số viết tay.
Về thực tiễn: Góp phần hỗ trợ cho việc nhập văn bản với dữ liệu số.
6. Bố cục luận văn
Nội dung của luận văn được chia thành các phần như sau:
Mở đầu
Chương 1: Tổng quan về xử lý ảnh và nhận dạng chữ số viết tay.
Chương 2: Mô hình mạng Nơ ron tích chập.
Chương 3: Nhận dạng chữ viết tay với mô hình mạng Nơ ron tích chập.
Kết luận và hướng phát triển.
Tài liệu tham khảo.



3

CHƢƠNG 1
TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NHẬN DẠNG CHỮ SỐ VIẾT TAY
1.1. Tổng quan về nhận dạng chữ số viết tay
1.1.1. Giới thiệu chung
Hiện nay, vấn đề nhận dạng chữ số viết tay rất cần thiết, có nhiều ứng dụng rộng
rãi trong đời sống xã hội như nhận dạng bảng điểm, nhận dạng bảng số xe, nhận dạng
phiếu hàng hóa,… Vấn đề nhận dạng chữ viết tay nói chung và nhận dạng chữ số viết
tay nói riêng là một thách thức lớn đối với các nhà nghiên cứu. Mỗi người có một cách
viết chữ số khác nhau, chúng ta không thể xác định cách duy nhất để nhận dạng chữ
số. Do vậy, xây dựng hệ thống nhận dạng chữ số viết tay một cách đáng tin cậy để có
có thể nhận dạng bất cứ ký tự số nào là điều không dễ dàng.
Các hệ thống nhận dạng trước đây như (LeCun et al., 1998), (Simard et al.,
2003), (Kégl & BusaFekete, 2009) đều sử dụng các đặc trưng cơ bản từ ảnh ký tự như
đường biên, cạnh, độ dày, giá trị mức xám, haar-like, với các xử lý đặc thù như lấy
mẫu, dao động các điểm ảnh, biến đổi ảnh, thêm dữ liệu ảo. Sau đó hệ thống nhận
dạng huấn luyện các mô hình học tự động như k láng giềng (kNN), mạng nơ-ron, máy
véc tơ hỗ trợ (SVM), boosting. Các hệ thống này cơ bản đáp ứng yêu cầu của người sử
dụng, tuy nhiên vẫn chưa thỏa mãn một cách triệt để yêu cầu đề ra. Với mong muốn
tìm ra giải pháp để nhận dạng chữ số viết tay hiệu quả, chúng tôi nghiên cứu kỹ thuật
học sâu (Deep learning), đây là phương pháp có thể giải quyết các bài toán với số
lượng lớn, kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so
với các phương pháp phân lớp truyền thống.
1.1.2. Những khó khăn trong việc nhận dạng chữ số viết tay
Chữ viết tay được viết bởi những người khác nhau, ở những trạng thái khác nhau
nên đôi khi một số chữ viết bị nhòe hoặc mờ, bề mặt ký tự có thể bị mờ hoặc che khuất
bởi một đối tượng khác, dẫn đến đọc ký tự sai.

Hình 1.1. Minh họa ảnh ký tự bị nhòe



4
Trong một số trường hợp, người viết có thể viết các chữ số dính liền nhau dẫn
đến việc phân tích ký tự chưa được chính xác, dẫn đến đọc ký tự sai.

Hình 1.2. Minh họa số viết sát, dính liền nhau
Một số chữ viết nằm giao nhau, cắt nhau hoặc chữ số này chứa trong chữ số kia
gây khó khăn trong việc nhận dạng, dẫn đến đọc ký tự sai.

Hình 1.3. Ảnh minh họa ký tự số nằm giao nhau hoặc cắt nhau
- Giới hạn về cơ sở dữ liệu ảnh : Trong phạm vi của đề tài này, chúng tôi chỉ giới
hạn nhận dạng mười ký tự số viết tay từ không đến chín.

0, 1, 2, 3, 4, 5, 6, 7, 8, 9
1.1.3. Các công trình nghiên cứu trong và ngoài nước.
1.1.3.1. Công trình trong nước
Nhận dạng văn bản viết tay nói chung và nhận dạng chữ số viết tay nói riêng là
một trong những lĩnh vực khó đối với các nhà khoa học, đã có nhiều công trình nghiên
cứu về nhận dạng chữ số viết tay, các công trình này chưa thật sự mang lại kết quả
cao, ở Việt Nam trong những năm gần đây có rất nhiều những nhóm nghiên cứu về
nhận dạng chữ viết tay sử dụng các mô hình phổ biến như: SVM (Support Vector
Machine), HMM (Hidden Markov Model), đường cong tham số B-SPLINE, mạng
Neuron,… Nhưng nhìn chung chất lượng nhận dạng của các mô hình này chưa đạt kết
quả như mong muốn vì chữ viết tay còn nhiều các yếu tố tác động đến như: độ cao, độ
nghiêng, các nét liền,… đều ảnh hưởng rất nhiều đến quá trình nhận dạng. Hiện tại,
chúng ta mới chỉ có được những sản phẩm thử nghiệm như hệ thống nhận dạng chữ số
và chữ cái viết tay rời rạc trên các phiếu xuất nhập cảnh của nhóm nghiên cứu ở Đại
học quốc gia thành phố Hồ Chí Minh; Ngoài ra, có một số công trình của các tác giả
như công trình “Nhận dạng bảng điểm viết tay với đặc trưng GIS” của tác giả Lê

Thanh Trúc; công trình “Áp dụng một số chiến lược SVM đa lớp cho bài toàn nhận
dạng chữ viết tay hạn chế” của tác giả Phạm Anh Phương.


5
1.1.3.2. Công trình nước ngoài
Ngày nay, với sự phát triển của các thiết bị cầm tay, đặc biệt là các dòng điện
thoại thông minh nên việc nhận dạng chữ số viết tay đã nhận được sự quan tâm đáng
kể. Nhận dạng chữ số viết tay được thực hiện qua hai hình thức là nhận dạng online và
nhận dạng offline. Với nhận dạng online, máy tính sẽ nhận dạng các chữ số được viết
lên màn hình ngay sau khi nó được viết. Đối với những hệ nhận dạng này, máy tính sẽ
lưu lại các thông tin về nét chữ số như thứ tự nét viết, hướng và tốc độ của nét viết
trong khi nó đang được viết ra. Đây chính là cơ sở để máy tính nhận dạng được chữ số,
do đó việc nhận dạng không gặp quá nhiều khó khăn. Hệ thống nhận dạng chữ số viết
tay trực tuyến trên một trạm làm việc của IBM do nhóm nghiên cứu gồm H.S.M.Beigi,
C.C.Tapert, M.Ukeison và C.G.Wolf ở phòng thực hành Watson IBM cài đặt là một
trong những sản phẩm nhận dạng chữ số viết tay online tiêu biểu. Tuy nhiên, do chưa
có nhiều ứng dụng thực tế nên nhận dạng chữ số viết tay trực tuyến chưa được biết đến
nhiều và khi nhắc đến nhận dạng chữ số viết tay chúng ta thường hiểu hình thức nhận
dạng ở đây là offline. Các kết quả nhận dạng chữ số viết tay offline hiện này còn rất
hạn chế.
Khi giải quyết bài toán nhận dạng chữ số viết tay đều buộc phải giới hạn trong
một phạm vi nào đó với những tiêu chuẩn cụ thể cho mẫu chữ nhận dạng. Chính vì
vậy, các kết quả thu được cũng chỉ được áp dụng một cách hạn chế ở lĩnh vực hẹp
trong một bài toán cụ thể nào đó như công trình nhận dạng chữ viết Tiếng Hoa của tác
giả Jun Tan, Jian Huang Lai, Wei-Shi Zheng; công trình nhận dạng chữ ký số của tác
giả Yip, W.K., Goh, A., Ngo, D.C.L., Teoh, A.B.J.
1.1.4. Các bước trong quá trình xử lý ảnh
-Cải thiện ảnh
-Phục hồi ảnh

-Xử lý hình thái

Đối
tượng

Thu
nhận
ảnh

Tiền
xử


Trích chọn đặc trưng

Tách
đối
tượng
-Phân đoạn ảnh

Mô tả/
Biểu
diễn

Đánh

giá

-Nhận dạng
-Ra quyết định

-Phân cụm

Hình 1.4. Sơ đồ tổng quát các giai đoạn xử lý ảnh cơ bản


6
1.1.4.1. Thu nhận ảnh
Các thiết bị thu nhận ảnh có hai loại chính ứng với hai loại ảnh thông dụng
Raster, Vector và có thể cho ảnh đen trắng hoặc ảnh màu. Các thiết bị thu nhận ảnh
Raster thông thường là camera, scanner. Còn các thiết bị thu nhận ảnh Vector thông
thường là sensor hoặc bàn số hoá digitalizer hoặc được chuyển đổi từ ảnh Raster.
1.1.4.2. Tiền xử lý
Sau bộ thu nhận, ảnh chữ số viết tay có thể nhiễu, độ tương phản thấp nên cần
đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc
nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn. Gồm các bước chính sau:
Tăng cường ảnh (hay còn gọi là cải thiện ảnh): là quá trình biến đổi 1 ảnh để có
kết quả phù hợp với mục tiêu xác định. Mục tiêu này có ảnh hưởng lớn đến việc lựa
chọn cách thức thực hiện các bước xử lý. Đây là một nhánh nghiên cứu lớn với nhiều
ứng dụng trong lĩnh vực xử lý ảnh, thông thường chia làm hai dạng là: xử lý trên miền
không gian và miền tần số.
Phục hồi ảnh: là cả thiện ảnh theo một hướng xác định nhằm đưa ảnh về nguyên
trạng ban đầu. Mặc dù cải thiện ảnh và phục hồi ảnh có nét tương đồng nhưng trong
phần lớn trường hợp, cải thiện ảnh mang tính chủ quan nhiều hơn, trong khi phục hồi
ảnh lại là quá trình mang tính khách quan. Quá trình phục hồi ảnh cố gắn tái tạo ảnh đã
bị giảm chất lượng dựa trên việc xem xét cách thức suy biến ảnh. Do đó các kỹ thuật
phục hồi ảnh hướng đến mục tiêu mô hình hóa sự suy biến và áp dụng quá trình ngược
lại để khôi phục ảnh ban đầu. Điều này thường dẫn đến việc xây dựng tiêu chí về chất
lượng để đánh giá mức độ tối ưu của kết quả thu được.
Xử lý hình thái: là thao tác toán học dùng để trích xuất các thành phần ảnh nhằm
biểu diễn và mô tả hình dạng các vùng bên trong ảnh, chẳng hạn như biên, khung

xương hay đường bao lồi. Bên cạnh đó kỹ thuật xử lý hình thái học cũng được sử dụng
trong quá trình tiền xử lý và hậu xử lý như lọc, xén hay làm mảnh đối tượng.
Sau khi ảnh ký tự đã qua các bước tiền xử lý sẽ cho ảnh như sau:

Ảnh ban đầu

Ảnh đã qua tiền xử lý

Hình 1.5. Minh họa ảnh sau tiền xử lý


7
1.1.4.3. Tách đối tượng
Tách đối tượng (hay phân vùng ảnh) là tách một ảnh đầu vào thành các vùng
thành phần để biểu diễn phân tích, nhận dạng ảnh. Đây là phần phức tạp khó khăn nhất
trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh.
1.1.4.4. Mô tả/ biểu diễn
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng cộng với mã liên kết với
các vùng lận cận. Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho
xử lý tiếp theo bằng máy tính. Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn
đặc trưng gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng
hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh
nhận được.
Ảnh sau khi số hoá sẽ được lưu vào bộ nhớ, hoặc chuyển sang các khâu tiếp theo
để phân tích. Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ cực
lớn và không hiệu quả theo quan điểm ứng dụng và công nghệ. Thông thường, các
ảnh thô đó được biểu diễn lại theo các đặc điểm của ảnh được gọi là các đặc trưng ảnh
như: biên ảnh, vùng ảnh.
1.1.4.5. Nhận dạng ảnh
Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng

cách so sánh với mẫu chuẩn đã được học từ trước.
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong
khoa học và công nghệ là: nhận dạng ký tự, nhận dạng văn bản, nhận dạng vân tay,
nhận dạng mã vạch, nhận dạng khuôn mặt, nhận dạng chữ số,..
1.1.5. Một số khái niệm trong xử lý ảnh
1.1.5.1. Điểm ảnh
Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc
màu nhất định. Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp
sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của
ảnh số gần như ảnh thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh.
1.1.5.2. Độ phân giải ảnh
Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh
số được hiển thị. Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao
cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp
tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y
trong không gian hai chiều.


8
1.1.5.3. Mức xám của ảnh
Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độ
xám của nó. Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùng
trong xử lý ảnh.
Định nghĩa: Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá
trị số tại điểm đó.
Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức
phổ dụng. Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức
xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255).
1.2. Các phƣơng pháp xử lý ảnh
1.2.1. Lọc mịn ảnh

Lọc mịn ảnh là một dạng lọc thông thấp, là giá trị của một điểm ảnh, là trung
bình trọng số của các điểm ảnh lân cận, hay giá trị điểm ảnh là kết quả của các điểm
ảnh lân cận với một nhân. Nhân có kích thước tuỳ ý 3x3, 5x5, kích thước nhân càng
lớn thì càng nhiều điểm lân cận ảnh hưởng vào điểm ảnh kết quả.
Lọc mịn ảnh có tác dụng hạn chế ảnh bị nhiểu.
1.2.2. Nhị phân ảnh
Là quá trình biến đổi một ảnh xám thành ảnh nhị phân. ảnh nhị ảnh là ảnh mà giá
trị của các điểm ảnh chỉ được biểu diễn bằng một trong hai giá trị là 0 (Đen) và 255
(Trắng) (tương ứng với 0 và 1).
Vì giá trị của điểm ảnh được biểu diễn bởi 2 giá trị là 0 hoặc 1, nên một điểm ảnh
được biểu diễn bằng 1 bit nên ảnh có kích thước rất nhỏ.
Gọi giá trị cường độ sáng tại một điểm ảnh là I(x,y) .
INP(x,y) là cường độ sáng của điểm ảnh trên ảnh nhị phân .
(Với 0 < x < image.width) và (0 < y < image.height).
Để biến đổi ảnh xám thành ảnh nhị phân. Ta so sánh giá trị cường độ sáng của
điểm ảnh với một ngưỡng nhị phân T.
Nếu I(x,y) > T thì INP(x, y) = 0 (0).
Nếu I(x,y) > T thì INP(x, y) = 255 (1).
1.2.3. Chỉnh nghiêng
Chỉnh nghiêng ảnh là một phép biến đổi tuyến tính của toạ độ điểm ảnh. Trước
hết ta phải xác định góc nghiêng tổng thể của đối tượng và ta dịch chuyển điểm ảnh
đối tượng theo phương ngang tuỳ theo giá trị góc nghiêng tổng thể này và giá trị y của
điểm này.


9

Hình 1.6. Xác định độ nghiêng của ảnh
Chuyển gốc toạ độ về trọng tâm ảnh như hình b
Góc nghiêng của kí tự được qui ước tính là góc từ trục tung, hướng về bên trái có

giá trị dương, hướng về bên phải có giá trị âm.
Góc nghiêng tổng thể kí tự là hướng trung bình của các điểm ảnh đối tượng có
giá trị góc khoảng –450 đến 450 theo quy ước tính góc trên. Các điểm ảnh đối tượng có
hướng ngồi khoảng –450 đến 450 không tính.
1.2.4. Chuẩn kích thước
Chuẩn kích thước ảnh kí tự về một kích thước cố định và phóng sát bốn biên của
ảnh.
Phóng ảnh là thực hiện phép biến đổi sau:
f s x, y  f x sx , y sy 
Với (x, y) là toạ độ điểm ảnh sau khi phóng và sx ,sy là tỷ lệ phóng theo trục x và
y tương ứng, fx(x,y) là giá trị điểm ảnh kết quả ứng với giá trị toạ độ (x, y).
Chú ý: Sau khi phóng ảnh, ảnh có thể bị rời rạc, răng cưa biên. Để khắc phục tình
trạng này, ta thực hiện một số xử lý bằng phép đóng morphology.
1.2.5. Lấp khoảng trống ảnh
1.2.5.1. Một số định nghĩa
Giả sử A và B là hai tập trong không gian Z2, aЄ A thì a=(a1, a2). Phép dịch
chuyển của tập A đối với x=(x1, x2) ký hiệu(A)x, được định nghĩa.
Ax  c| c  a  x, với a  A
Phép phản chiếu của tập B, ký hiệu B*, được định nghĩa:
B*  x| x b, với b  B
Phép bù của một tập A, ký hiệu Ac, được định nghĩa:
AC  x| x  A
Hiệu của hai tập hợp A và B, ký hiệu A-B, được định nghĩa:
A  B  x| x  A, x  B


10
1.2.5.2. Phép giãn ảnh
Giả sử A, B là hai tập thuộc Z2,  là tập hợp rỗng, phép giãn của A đối với B, ký
hiệu AB, được định nghĩa:

A  B  x| B* x  A 
Tập B thường được gọi là thành phần cấu trúc.
1.2.5.3. Phép co ảnh
Giả sử A, B là hai tập thuộc Z2, phép co của A đối với B, ký hiệu AB được
định nghĩa:
AB  x| Bx  A
1.2.5.4. Phép đóng ảnh
Giả sử A, B là hai tập thuộc Z2, phép đóng của A đối với B, ký hiệu AB được
định nghĩa:
A  B  A  BB
Phép đóng có tác dụng làm đầy những khoảng nhỏ (tuỳ thuộc vào thành phần cấu
trúc B) thường xảy ra trên đường biên.
Thành phần cấu trúc thường được sử dụng là thành phần cấu trúc đối xứng có
gốc (0, 0) là ở tâm như hình:
0

1

0

1

1

1

0

1


0

Hình 1.7. Các thành phần cấu trúc đối xứng.
Nhưng do ảnh được quét với độ phân giải 300 dpi và đối với những chữ có bụng
được viết khá nghiêng thì khi thực hiện phóng với thành phần cấu trúc trên, tức thực
hiện phép giãn rồi thực hiện phép co, thì phép giãn làm cho phần bụng bị dính lại với
nhau do với mỗi hướng ngang và đứng đều được giãn 2 điểm ảnh. Để hạn chế điều này
ta sử dụng 2 thành phần cấu trúc không đối xứng và thực hiện phép đóng 2 lần trên 2
thành phần cấu trúc này, vì khi thực hiện phép giãn thì chỉ cần giãn về 1 phía:
0

1

0

0

0

0

1

1

0

0

1


1

0

0

0

0

1

0

Hình 1.8. Các thành phần cấu trúc không đối xứng
.


11
1.2.6. Phát hiện biên và làm trơn biên
1.2.6.1. Phát hiện biên
Biên của ảnh được thiết lập bằng cách nhân chập ảnh với phần tử có cấu trúc như
sau:
0

1

0


1

1

1

0

1

0

Hình 1.9. Thành phần cấu trúc phát hiện biên
1.2.6.2. Dò biên và mã hóa đường biên
Ta có giải thuật dò tìm biên như sau:
Bước 1: Quét ảnh đến khi gặp điểm ảnh đen. Gọi nó là pixel 1
Bước 2: Lặp
- Nếu ”điểm ảnh hiện thời là đen“ thì “dò ngược”
- Ngược lại “sang phải” đến khi “gặp pixel 1”

Hình 1.10. Minh họa dò biên
1.2.7. Xác định hướng của điểm biên (Freeman code)
Các hướng được quy ước như sau:

Hình 1.11. Hướng quy ước mã hóa


12
Với hướng quy ước trên, đường biên được mã hóa như sau:


Hình 1.12. Đường biên đã được mã hóa
1.2.8. Làm trơn đường biên
Làm trơn đường biên là duyệt theo đường biên, nếu hai điểm liên tiếp trên đường
biên có hiệu số hướng lớn hơn 1 thì có thể hiệu chỉnh để có đường biên mà hai điểm
liên tiếp có hiệu số hướng bằng 1.
Theo mã hướng Freeman, hiệu số hướng của 2 điểm liên tiếp nhau trên đường
biên được định nghĩa :
Gọi ci là mã hướng tại điểm biên đang xét pi , ci+1 là mã hướng của điểm kế tiếp
trên đường biên pi+1
Đặt d=ci+1-ci và Dabs=|d| nếu |d|4 và dabs=8-|d| nếu |d|>4
Ta có các trường hợp sau:
- dabs1 : Điểm biên trơn.
- dabs=2 và ci chẵn, ci+1 chẵn : bỏ pi+1 và thay hướng pi như sau:

Hình 1.1. Dabs=2 và ci chẵn , ci+1 chẵn


13
- dabs=2 và ci lẻ , ci+1 lẻ : Bỏ pi+1 và thay hướng pi như hình sau:

Hình 1.14. Dabs=2 và ci lẻ, ci+1 lẻ

Hình 1.15. Dabs=3 và ci chẵn, ci+1 lẻ
- dabs=3, ci lẻ, ci+1 chẵn

Hình 1.16. Dabs=3, ci lẻ, ci+1 chẵn


14
1.3. Các phƣơng pháp nhận dạng chữ số viết tay

Có nhiều phương pháp trong các hệ thống nhận dạng chữ số viết tay, có thể kể
đến như : đối sánh mẫu, thống kê, cấu trúc, mạng nơ-ron, SVM,…
1.3.1. Phương pháp đối sánh mẫu
Đây là phương pháp tương đối đơn giản dựa trên việc so sánh các nguyên mẫu
với nhau để nhận dạng chữ số. Toán tử đối sánh xác định mức độ giống nhau giữa hai
véc tơ (nhóm các điểm, hình dạng, độ cong…) các kỹ thuật đối sánh có thể tiếp cận
theo ba hướng:
Đối sánh trực triếp: Ảnh chứa chữ số đầu ở dạng xám hoặc nhị phân được so
sánh trực tiếp mới tập mẫu chuẩn dựa trên một số đặc trưng tương đồng nào đó.
Các mẫu biến dạng và đối sánh mềm: Ý tưởng cơ bản là đối sánh một cách tối ưu
mẫu chưa biết với tất cả các mẫu có thể mà các mẫu này có thể kéo giãn ra hoặc co lại.
Chỉ một không gian đặc trưng được thành lập, các véc tơ chưa biết được đối sánh bằng
cách sử dụng quy hoạch động và một hàm biến dạng.
Đối sánh giảm nhẹ: Kỹ thuật này sử dụng hình dáng đặc trưng cơ bản của ảnh
chứa chữ số, trên cơ sở một số vùng đối sánh đã được đánh giá tốt, các phần tử của
ảnh được so sánh với các vùng đối sánh này.
Kỹ thuật đối sánh mẫu chỉ áp dụng tốt đối với nhận dạng chữ số in, còn đối với
chữ số viết tay thì các kỹ thuật này tỏ ra kém hiệu quả.
1.3.2. Phương pháp tiếp cận cấu trúc
Phương pháp này dựa vào việc mô tả đối tượng nhờ một số khái niệm biểu diễn
đối tượng cơ sở trong ngôn ngữ tự nhiên. Đặc trưng của phương pháp phân tích cấu
trúc là nhìn nhận mỗi mẫu chữ như được cấu thành từ những đối tượng hình học, quan
tâm tới các nét, hướng và đặc tả những đối tượng cũng như quan hệ giữa chúng. Các
phương pháp cấu trúc áp dụng cho các bài toán nhận dạng chữ số được phát triển theo
hai hướng sau:
Phương pháp ngữ pháp : Vào khoảng giữa thập niên 1960, các nhà khoa học bắt
đầu nghiên cứu các luật của ngôn ngữ học để phân tích tiếng nói và chữ viết. Sau đó
các luật đa dạng của chính tả, từ vựng và ngôn ngữ học đã được áp dụng cho các chiến
lượt nhận dạng.
Phương pháp đồ thị : Các đơn vị chữ số viết tay được mô tả bởi các cây hoặc đồ

thị. Các dạng nguyên thủy của ký tự (các nét) được lựa chọn bởi một hướng tiếp cận
cấu trúc. Đối với mỗi lớp, một đồ thị hoặc cây được thành lập trong giai đoạn huấn
luyện để mô tả các nét, các ký tự hoặc các từ. Giai đoạn nhận dạng gán một đồ thị
chưa viết vào một trong các lớp bằng cách sử dụng một độ đo để so sánh các đặc điểm
giống nhau giữa các đồ thị.


15
1.3.3. Phương pháp học máy với SVM (Support vector machine)
1.3.3.1. Giới thiệu SVM
SVM là một phương pháp phân lớp xuất phát từ lý thuyết học thống kê, dựa trên
nguyên tắc tối thiểu rủi ro cấu trúc. SVM sẽ cố gắng tìm cách phân lớp dữ liệu sao cho
có lỗi xảy ra trên tập kiểm tra là nhỏ nhất. Đây là một phương pháp mới trong lĩnh vực
trí tuệ nhân tạo, các thuật toán sử dụng cho SVM phát triển rất nhanh, cùng với khả
năng tính toán mạnh mẽ của máy tính đã tạo nên được những ứng dụng cho thực tế.
1.3.3.2. Ý tưởng
Cho trước một tập huấn luyện, được biểu diễn trong không gian vector, trong đó
mỗi tài liệu là một điểm, phương pháp này tìm ra một lớp siêu phẳng f quyết định tốt
nhất có thể chia các điểm trên không gian này thành ra hai lớp riêng biệt bởi khoảng
cách của điểm dữ liệu gần nhất.
Ý tưởng của phương pháp SVM là ánh xạ (tuyến tính hoặc phi tuyến) dữ liệu vào
không gian các vector đặc trưng (space of feature vectors) mà ở đó một siêu phẳng tối
ưu được tìm ra để tách dữ liệu thuộc hai lớp khác nhau.
Mục đích của phương pháp SVM là tìm được khoảng cách biên lớn nhất.


16

CHƢƠNG 2
MÔ HÌNH MẠNG NEURAL TÍCH CHẬP

Một trong những mô hình Deep Learning tiên tiến giúp chúng ta xây dựng được
những hệ thống thông minh với độ chính xác cao đó là Convolutional Neural Network
(CNNs – Mạng nơ-ron tích chập). Trong chương này, chúng tôi sẽ trình bày về
Convolution (tích chập) cũng như ý tưởng của mô hình CNNs trong nhận dạng chữ số
viết tay.
2.1. Mạng neural nhân tạo
2.1.1. Sơ lược về neural sinh học
Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: Bộ não con người bao
gồm khoảng 1011 neuron tham gia vào khoảng 1015 kết nối trên các đường truyền.
Mỗi đường truyền này dài khoảng hơn một mét. Các neuron có nhiều đặc điểm chung
với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế bào
khác không có được, đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên
các đường mòn neuron, các con đường này tạo nên hệ thống giao tiếp của bộ não.
Những thành phần chính trong cấu trúc của một neural trong bộ não con người.

Hình 2.1. Mô hình neural sinh học
Trong đó :
-Các Soma là thân của neural.
-Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu
(dưới dạng xung điện thế) đến cho soma xử lý. Bên trong soma các dữ liệu đó được
tổng hợp lại. Có thể xem gần đúng sự tổng hợp ấy như là một phép lấy tổng tất cả các
dữ liệu mà neural nhận được.


17
-Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon. Khác với
dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu từ
Neural đi các nơi khác. Chỉ khi nào điện thế trong soma vượt quá một giá trị ngưỡng
nào đó (threshold) thì axon mới phát một xung điện thế, còn nếu không thì nó ở trạng
thái nghỉ.

-Axon nối với các dendrites của các neural khác thông qua những mối nối đặc
biệt gọi là synapse. Khi điện thế của synapse tăng lên do các xung phát ra từ axon thì
synapse sẽ nhả ra một số chất hoá học (neurotransmitters); các chất này mở "cửa" trên
dendrites để cho các ions truyền qua. Chính dòng ions này làm thay đổi điện thế trên
dendrites, tạo ra các xung dữ liệu lan truyền tới các Neural khác.
Có thể tóm tắt hoạt động của một Neural như sau: Neural lấy tổng tất cả các điện
thế vào mà nó nhận được và phát ra một xung điện thế nếu tổng ấy lớn hơn một
ngưỡng nào đó. Các Neural nối với nhau ở các synapses. Synapse được gọi là mạnh
khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các Neural khác. Ngược lại, một
synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn.
Các synapses đóng vai trò rất quan trọng trong sự học tập. Khi chúng ta học tập
thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa các
Neural. Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các
synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các Neural càng nhiều,
càng nhạy bén.
2.1.2. Mạng Neural nhân tạo
Mạng Nơron nhân tạo được thiết kế để mô hình một số tính chất của mạng nơron
sinh học. Để mô phỏng các tế bào thần kinh và các khớp nối thần kinh của bộ não con
người, trong mạng nơron nhân tạo cũng có các thành phần có vai trò tương tự các
thành phần trong nơron thần kinh. Hai thành phần chính cấu tạo nên mạng nơron nhân
tạo là các nơron và các synapse (mô phỏng các khớp nối thần kinh).
Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra.
Input Xi

Tổng  So sánh với ngưỡng

Weight Wi
Output
Hình 2.2. Mô hình Neural nhân tạo ở mức đơn giản



×