B GIÁO DỤC VÀ ĐÀO TO
TRƯỜNG ĐẠI HỌC BÁCH KHOA NỘI
—————————————
Nguyễn Thái Bình
ỨNG DỤNG HÌNH
NGÔN NGỮ CHO BÀI TOÁN
NHẬN DẠNG CHỮ VIẾT TAY
Chuyên ngành: Khoa học dữ liệu
LUẬN VĂN THẠC KHOA HỌC
KHOA HỌC DỮ LIỆU
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. Nguyễn Bình Minh
NỘI - 2019
SĐH.QT9.BM11 Ban hành lần 1 ngày 11/11/2014
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập Tự do Hạnh phúc
BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC
Họ và tên tác giả luận văn : Nguyễn Thái Bình
Đề tài luận văn: Ứng dụng hình ngôn ngữ cho bài toán nhận dạng
chữ viết tay
Chuyên ngành: Khoa học dữ liệu
Mã số SV: CB180056
Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn
xác nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng
ngày 26/10/2019 với các nội dung sau:
1. Bổ sung phân tích kết quả, thời gian thực thi (Chương 6, trang 75):
Hình 6.2 là một số mẫu dữ liệu được tiến hành kiểm thử. Bảng 6.5 là kết
quả đầu ra của các hình nhận dạng. Nhìn chung, kết quả tốt hơn
thuộc về các hình sự kết hợp của hình ngôn ngữ. Lấy dụ
trong mẫu dữ liệu e, tự ‘a’ bị nhận nhầm ‘à’ khi sdụng hình
CRNN, nhưng nếu hình nhận dạng không dấu sửa lại thành
dấu thì hiện tượng này không còn. Kết quả cửa mô hình OCRLMPipeline
mô hình OCRLMJoint trong mẫu d thể hiện thành phần hình ngôn
ngữ trong hình OCRLMPipeline tính chất suy diễn khi chuyển từ
‘Bình Thuận’ sang ‘Bình Phước’. Ví dụ c cho thấy mô hình OCRLMJoint
hoạt động khá tốt khi có thể đưa ra được hai số ‘0’.
Bảng 6.5 so sánh kết quả thực thi mô hình trên toàn bộ tập dữ liệu kiểm
thử. Thời gian chạy được tiến hành đo đạc trên hai thiết bị phần cứng
CPU (2.9 GHz Intel Core i9) GPU (GTX 2080 Ti). Bảng kết quả cho
thấy hình OCRLMJoint tốc độ thực thi nhanh nhất trong khi
hình OCRLMPipeline thời gian chạy lâu nhất do phải kết hợp chạy
hai mô hình con.
SĐH.QT9.BM11 Ban hành lần 1 ngày 11/11/2014
2. Trình bày thêm nghiên cứu liên quan tới nhận dạng tiếng Việt
Nhận dạng chữ viết tay tiếng Việt bước đầu cũng những sự quan tâm.
Hướng tiếp cận chủ yếu vẫn rời rạc hoá các tự tiến hành nhận
dạng ký tự đơn lẻ. Việc phân tách ký tự được nghiên cứu với đề xuất của
Van cùng cộng sự, 2015 [34] dựa trên các đặc trưng như độ dốc, cấu trúc
độ lõm của hình ảnh tự để phân tách hiệu quả. Nghiên cứu của
Pham-Van cùng cộng sự, 2014 [28] thực hiện nhận dạng ký tự tiếng Việt
rời rạc. Với mỗi tự sau khi được phân tách sẽ được phân loại bộ
bằng việc đếm các thành phần liên thông của ảnh. Sau đó sử dụng đặc
trưng wavelet Haar tạo thành 256 đặc trưng sử dụng bộ phân loại
SVM để tiến hành gán nhãn chi tiết.
3. Hiệu chỉnh lỗi soạn thảo:
Vị trí
Lỗi
Sau khi chỉnh sửa
Trang 37 dòng 11, 12, 13
label
nhãn
Trang 37 dòng 11
training set
Dữ liệu huấn luyện
Trang 37 dòng 12
test data
Điểm dữ liệu kiểm thử
Trang 37 dòng 14, 21
test
Kiểm thử
Trang 24 dòng 17
Đại diện từ
Biểu diễn từ
Trang 44
ground truth
Nhãn thực tế
Trang 24
Word embedding
Đại diện từ
Ngày 04 tháng 11 năm 2019
Giáo viên hướng dẫn Tác giả luận văn
CHỦ TỊCH HỘI ĐỒNG
Lời cam đoan
Tôi - Nguyễn Thái Bình - cam kết luận văn y công trình nghiên cứu của bản thân
tôi, dưới sự hướng dẫn của TS. Nguyễn Bình Minh. Các kết quả công bố trong báo
cáo y trung thực, không phải sao chép của bất kỳ một nhân, hoặc tổ chức đã
được công bố nào khác. Tất cả các trích dẫn được tham chiếu ràng.
Ngày 8 tháng 11 năm 2019
Tác giả luận văn:
Xác nhận của người hướng dẫn
2
Lời cảm ơn
Đầu tiên, em xin được gửi lời cảm ơn chân thành đến các thầy giáo, giáo thuộc
trường đại học Bách Khoa Nội. Đặc biệt các thầy giáo, giáo thuộc Viện
Công nghệ Thông tin Truyền Thông. Chính các thầy giáo đã trang bị cho em
những kiến thức quý báu trong thời gian em học tập và nghiên cứu tại trường. Đồng
thời em cũng xin được gửi lời cảm ơn đặc biệt đến TS. Nguyễn Bình Minh. Các thầy
người đã chỉ dẫn tận tình, cho em những kinh nghiệm quý báu để em thể hoàn
thành luận văn tốt nghiệp này. Thầy luôn động viên, giúp đỡ em trong những thời
điểm khó khăn nhất.
Em xin gửi lời cảm ơn tới gia đình bạn bè. Lời động viên tinh thần từ gia đình
và bạn luôn động lực để em tiến lên phía trước.
Học viên: Nguyễn Thái Bình, CB180056, khoá 2018B, lớp 18B.KHDL.KH
3
Tóm t ắt nội dung
Việc số hoá dữ liệu một trong những mục tiêu quan trọng trong nhiều ngành nghề
lĩnh vực, Một trong những điểm làm hạn chế việc số hoá hoàn toán chính việc nhận
dạng chữ viết tay. Đã nhiều nghiên cứu v bài toán y nhưng tới nay việc nhận
dạng chữ viết tay vẫn còn nhiều vấn đề khó giải quyết, một phần do mỗi người một
phong cách viết khác nhau nên chữ viết tay rất đa dạng, phần khác do vấn đề v mặt
dữ liệu, việc thu thập chữ viết tay gán nhãn điều gặp rất nhiều khó khăn đặc
biệt với những ngôn ngữ ít phổ biến như tiếng Việt.
Luận văn sẽ trình bày đề tài nghiên cứu nhận dạng chữ viết tay tiếng Việt. Luận
văn sẽ đưa ra những thành tựu nổi bật trong lĩnh vực này, tổng hợp những nghiên cứu
liên quan, những điểm khó khăn trong bài toán nhận dạng chữ viết tay nói chung
chữ viết tay tiếng Việt nói riêng. T đó đề xuất hướng nghiên cứu cho bài toán y
giúp cải thiện độ chính xác trong nhận dạng. Do không bộ dữ liệu chuẩn, nghiên
cứu đầu tiên sẽ tập trung vào việc tiến hành thu thập, y dựng tập dữ liệu chữ viết
tay tiếng Việt, tiếp theo sẽ thực hiện nghiên cứu, đề xuất giải pháp giúp làm tăng chất
lượng nhận dạng bằng cách áp dụng hình ngôn ngữ vào bộ nhận dạng chữ viết tay.
4
Mục lục
Lời cam đoan 2
Lời cảm ơn 3
Tóm tắt nội dung 4
Danh sách hình v 8
Danh sách bảng 9
Tổng quan 12
1.1 Động lực nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 Mục tiêu nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Đóng góp của nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Cấu tr úc luận văn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
sở thuyết 16
2.1 Học y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Mạng neural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Thị giác y tính . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4 X lý ngôn ngữ tự nhiên . . . . . . . . . . . . . . . . . . . . . . . . 32
Các nghiên cứu liên quan 36
3.1 Nhận dạng tự đơn lẻ . . . . . . . . . . . . . . . . . . . . . . . . . 36
5
3.2 Nhận dạng chuỗi tự . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3 Connectionist Temporal Classification (CTC) . . . . . . . . . . . . . 43
3.4 hình ngôn ngữ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5 hình ngôn ngữ điều kiện . . . . . . . . . . . . . . . . . . . . . 49
3.6 hình transformer . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Dữ liệu chữ viết tay 57
4.1 Thu thập dữ liệu chữ viết tay . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Tạo chữ viết tay từ font . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3 Các phương pháp tăng cường dữ liệu . . . . . . . . . . . . . . . . . . 59
hình đề xuất 61
5.1 Vấn đề cần giải quyết . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.2 hình ghép nối (OCRLMPipeline) . . . . . . . . . . . . . . . . . . 62
5.3 hình kết hợp (OCRLMJoint) . . . . . . . . . . . . . . . . . . . . 65
Thử nghiệm đánh giá 68
6.1 Dữ liệu kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.2 Cài đặt kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.3 Kết quả thử nghiệm đánh giá . . . . . . . . . . . . . . . . . . . . 72
Kết luận 76
6
Danh sách hình v
2.1 Multilayer perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Kiến tr úc CNN cho bài toán nhận dạng thực thể trong thị giác y tính 27
2.3 Ứng dụng nhân chập để làm mờ ảnh . . . . . . . . . . . . . . . . . . 28
2.4 Ứng dụng nhân chập để phát hiện cạnh . . . . . . . . . . . . . . . . . 28
2.5 Một số ứng dụng của phép nhân chập . . . . . . . . . . . . . . . . . 28
2.6 Minh họa hoạt động của phép nhân chập . . . . . . . . . . . . . . . . 29
2.7 Minh họa hoạt động của max pooling layer . . . . . . . . . . . . . . . 31
3.1 Các dụ từ tập MNIST test . . . . . . . . . . . . . . . . . . . . . . 36
3.2 Kiến trúc hình CRNN được đề xuất bởi Shi cùng cộng sự, 2016 [31] 41
3.3 Ánh xạ giữa các phần của ảnh đầu vào sang vector đặc trưng . . . . . 42
3.4 Kết hợp CTC với mạng neural trong bài toán OCR . . . . . . . . . . . 43
3.5 Gán nhãn ảnh theo không gian . . . . . . . . . . . . . . . . . . . . . 44
3.6 Kết hợp CTC với mạng neural trong bài toán OCR . . . . . . . . . . . 45
3.7 Kiến tr úc hình Window-base language model . . . . . . . . . . . 48
3.8 Kiến tr úc hình RNN language model . . . . . . . . . . . . . . . . 50
3.9 Kiến tr úc hình Encoder - Decoder . . . . . . . . . . . . . . . . . 51
3.10 Kiến tr úc hình Transformer . . . . . . . . . . . . . . . . . . . . . 53
3.11 Scale Dot-Product Attention . . . . . . . . . . . . . . . . . . . . . . 54
3.12 Multi-head attention . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.1 Mẫu dữ liệu ảnh chữ viết tay địa chỉ Việt Nam . . . . . . . . . . . . 57
4.2 Mẫu dữ liệu ảnh chữ viết tay sinh ra từ font . . . . . . . . . . . . . . 58
4.3 Tăng cường dữ liệu bằng phép biến đổi Skewing . . . . . . . . . . . . 59
7
4.4 Tăng cường dữ liệu bằng phép biến đổi Distortion . . . . . . . . . . . 59
4.5 Tăng cường dữ liệu bằng phép biến đổi Blurring . . . . . . . . . . . . 60
4.6 Tăng cường dữ liệu bằng cách thay đổi nền . . . . . . . . . . . . . . . 60
4.7 Mẫu dữ liệu chữ viết tay sinh ra từ cách ghép từ đơn . . . . . . . . . . 60
5.1 hình CRNN đề xuất bởi Wang cùng cộng sự . . . . . . . . . . . . 63
5.2 hình sequence to sequence . . . . . . . . . . . . . . . . . . . . . 63
5.3 Kết hợp hình nhận dạng tự quang học với hình dịch . . . . 63
5.4 Kiến tr úc hình OCRLMJoint . . . . . . . . . . . . . . . . . . . . 65
6.1 Thống số lượng tự trong một nhãn dữ liệu . . . . . . . . . . . . 69
6.2 Một số mẫu dữ liệu kiểm thử . . . . . . . . . . . . . . . . . . . . . . 74
8
Danh sách bảng
3.1 So sánh hiệu năng giữa transformer và mạng hồi quy sử dụng LSTM.
Kết quả thực hiện trong nghiên cứu của Lakew cùng cộng sự, 2018 [20] 54
6.1 Kiến tr úc thực nghiệm hình CRNN . . . . . . . . . . . . . . . . . 71
6.2 So sánh lỗi nhận dạng giữa các hình . . . . . . . . . . . . . . . . 72
6.3 So sánh lỗi nhận dạng tiếng Việt không dấu . . . . . . . . . . . . . . 73
6.4 So sánh ảnh hưởng của hình ngôn ngữ tới độ lỗi của các hình . 73
6.5 So sánh thời gian chạy mỗi hình thực hiện trên dữ liệu test . . . . 74
6.6 Kết quả nhận dạng một số mẫu dữ liệu kiểm thử . . . . . . . . . . . . 75
9
Danh sách từ viết tắt
ANN Artificial Neural Network
BPTT Backpropagation Through Time
LSTM Long Short-Term Memory
NLP Natural Language Processing
RNN Recurrent Neural Network
RNN-LSTM Recurrent Neural Network sử dụng Long Short-Term Memory
Seq2seq Sequence to Sequence
10
Danh sách các hiệu
Phép nhân từng thành phần (element-wise multiplication).
m Số chiều vector input.
n Kích thước tầng ẩn.
k Số chiều vector ouput.
L Số tầng RNN trong mạng Deep RNN.
D Tập dữ liệu.
E
t
Hàm lỗi tương ứng với input x
t
.
x
t
Vector input thứ t trong chuỗi input.
y
t
Vector vọng tương ứng x
t
.
o
t
Vector output thứ ứng với đầu vào x
t
.
b Ma trận thành phần bias giữa các tầng.
U Ma trận trọng số liên kết tầng input tầng ẩn.
W Ma trận trọng số liên kết 2 tầng ẩn.
V Ma trận trọng số liên kết tầng ẩn tầng output.
U Ma trận cập nhật cho trọng số U.
W Ma trận cập nhật cho trọng số V.
V Ma trận cập nhật cho trọng số W.
11
1. Tổng quan
1.1 Động lực nghiên cứu
Nhận dạng tự quang học (OCR) một lĩnh vực nghiên cứu quan trọng, tính ứng
dụng cao trong hầu hết các lĩnh vực ngành nghề, giúp tiết kiệm công sức lao động.
Với OCR, một lượng lớn các tài liệu giấy được số hoá, không chỉ giúp lưu tr hiệu
quả còn giúp dữ liệu thể được truy cập, tiếp cận dễ dàng hơn.
Tính ứng dụng của công nghệ OCR thể hiện trong nhiều ngành nghề lĩnh vực,
dụ:
Lĩnh vực tài chính ngân hàng sử dụng OCR trong xử séc, form mẫu đơn điền
thông tin. Với quy trình tr uyền thống hiện tại, séc viết ra sẽ được scan, số hoá,
chữ được xác minh séc sẽ được hủy ngay sau đó. Các bước hiện tại đều
phải được xử bởi con người, OCR nếu sẽ góp phần rất lớn làm tăng quá
tr ình xử lý truyền thống, tiết kiệm thời gian công sức.
Trong ngành pháp , rất nhiều giấy tờ, văn bản được tạo ra như văn bản luật,
bản khai, hồ sơ, di chúc. Với OCR, việc số hoá sẽ giúp việc tìm kiếm, tra cứu dễ
dàng, nhất với các công ty đa quốc gia, cần tra cứu, luật pháp thị trường các
nước.
Lĩnh vực y tế cũng lĩnh vực cần ứng dụng OCR, đơn thuốc, phác đồ điều trị,
chuẩn đoán, kết luận của bác thể được số hoá. Các thông tin này nếu được
tổng hợp trên tất cả các bệnh viện, sở y tế thể tạo ra sở dữ liệu chăm sóc
12
sức khoẻ từ đó thể khai thác giải quyết các bài toán khó trong dự đoán, điều
tr ị bệnh.
Lợi ích của OCR được thể hiện qua các điểm:
Khả năng tìm kiếm: Khi các văn bản giấy được số hoá, thể dễ dàng lưu tr
dưới dạng tệp tài liệu thông dụng như word, pdf, txt. Những file này thể được
tìm kiếm sử dụng những trình tìm kiếm thông dụng.
Khả năng chỉnh sửa: Đôi khi những văn bản giấy cần được chỉnh sửa nội dung,
khi đã được số hoá, việc y trở nên rất đơn giản.
Khả năng truy cập: khi tài liệu được số hoá bởi OCR và lưu trữ trong các sở
dữ liệu, thể được truy cập từ mọi nơi.
Khả năng lưu trữ, sao lưu: Số hoá tài liệu giúp giảm không gian lưu trữ cho cùng
một loại thông tin. Đồng thời cũng dễ dàng được sao lưu, khôi phục trong trường
hợp bị mất.
Khả năng dịch: một hệ thống OCR thể số hoá nhanh các tài liệu giấy, khi kết
hợp với hệ thống dịch thuật, một văn bản một ngôn ngữ thể được chuyển
sang một ngôn ngữ bất kỳ.
Hiện nay nhận dạng tự Latin đánh y được xem bài toán đã được giải quyết,
tỷ lệ chính xác thực tế đã đạt hơn 99% (một số ứng dụng đòi hỏi tỷ lệ chính xác cao
vẫn cần con người kiểm tra lại lỗi). Với chữ viết tay, đây vẫn đề tài cần nhiều
nghiên cứu. Độ chính xác nhận dạng với văn bản chữ viết tay hiện nay còn khá thấp
từ 80% tới 90% chủ yếu do tính đa dạng trong cách viết chất lượng của văn
bản scan. Với những ngôn ngữ phổ biến, nhiều dữ liệu như tiếng Anh, tiếng Nhật,
chất lượng nhận dạng chữ viết tay thể cao hơn tới 98%, tuy nhiên với những ngôn
ngữ không phổ biến như tiếng Việt, bài toán nhận dạng chữ viết tay vẫn còn rất nhiều
thách thức, chủ yếu do lượng dữ liệu còn hạn chế từ đó ít được giới nghiên cứu quan
tâm.
13
1.2 Mục tiêu nghiên cứu
Hành vi phổ biến của con người khi đọc một văn bản đọc lướt, khi đó mắt thu nhận
một phần nội dung não sẽ xử để ghép nối những nội dung còn thiếu. dụ câu
“Hôm nay tôl đl chơi”. Nhìn qua ai cũng sẽ hiểu nội dung của câu nói đó. Nhưng thực
chất nếu để ý kỹ từng tự một, thì chữ ‘i’ trong từ ‘tôi’ và ‘đi’ đã bị thay thế bằng
‘l’. Nếu y tính xử , đây sẽ một câu ko ý nghĩa, nhưng với con người điều đó
lại bình thường.
Hiện tượng thiếu chữ, sai chữ lại càng phổ biến trong văn bản chữ viết tay khi mỗi
người một phong cách viết khác nhau, cùng một từ mỗi người thể viết thừa thiếu
chữ cái nào đó. Chất lượng của văn bản scan thể không đồng nhất, nội dung thể
bị mất hay nhiễu. Điều y khiến cho hình nhận dạng tự không thể đưa ra được
nội dung chính xác.
Lấy ý tưởng từ hành vi xử lý của con người, đồ án nghiên cứu sự kết hợp giữa xử
lý ảnh truyền thống (trong nhận dạng tự quang học) và hình ngôn ngữ (để suy
luận những thông tin còn thiếu từ đầu ra của nhận dạng tự), từ đó giúp làm tăng
chất lượng nhận dạng.
1.3 Đóng góp của nghiên cứu
Đồ án tập tr ung vào hai phần chính:
y dựng tập dữ liệu cho nhận dạng chữ viết tay. Do giới hạn v nguồn lực, đồ
án sẽ tập trung xử dữ liệu chữ viết tay cho địa chỉ Việt Nam. Dữ liệu sẽ được
thu thập từ hai nguồn dữ liệu thực do người viết dữ liệu sinh từ font y
tính.
y dựng hình nhận dạng chữ viết tay tiếng Việt. Đồ án sẽ xoay quanh việc
thử nghiệm các cách kết hợp giữa hình xử ảnh và hình ngôn ngữ, so
sánh với các kỹ thuật trong OCR truyền thống đề xuất hình giải quyết bài
toán nhận dạng chữ viết tay với dữ liệu chữ viết tay địa chỉ.
14