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

Nghiên cứu mô hình trí tuệ nhân tạo để phân loại công văn và phục vụ số hóa dựa trên hình ảnh

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 (2.5 MB, 50 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM
KHOA CÔNG NGHỆ THÔNG TIN

----------------- 🙣🙡-----------------

NGUYỄN BÁ LỘC

NGHIÊN CỨU MƠ HÌNH TRÍ TUỆ NHÂN TẠO
ĐỂ PHÂN LOẠI CƠNG VĂN VÀ PHỤC VỤ SỐ
HĨA DỰA TRÊN HÌNH ẢNH

KHĨA LUẬN TỐT NGHIỆP

Tp.Hồ Chí Minh – Năm 2022


TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN BÁ LỘC

NGHIÊN CỨU MƠ HÌNH TRÍ TUỆ NHÂN TẠO
ĐỂ PHÂN LOẠI CƠNG VĂN VÀ PHỤC VỤ SỐ
HĨA DỰA TRÊN HÌNH ẢNH
CHUN NGÀNH: KHOA HỌC MÁY TÍNH

KHĨA LUẬN TỐT NGHIỆP

NGƯỜI HƯỚNG DẪN KHOA HỌC: Ths. Trịnh Huy Hoàng


MỤC LỤC

TP.HCM – NĂM 2022

1


MỤC LỤC
MỤC LỤC ................................................................................................... 1
LỜI CẢM ƠN.............................................................................................. 4
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ............................... 5
DANH MỤC HÌNH ẢNH .......................................................................... 5
Chương 1: Giới thiệu tổng quan về đề tài ................................................ 5
1.1.

Bài tốn về phân loại cơng văn bằng hình ảnh: ................................................. 7

1.2.

Mục tiêu thực hiện của đề tài ............................................................................. 9

1.3.

Hướng tiếp cận và giải pháp cho bài toán phân loại .......................................... 9

1.3.1.

Hướng tiếp cận ............................................................................................ 9

1.3.2.


Yêu cầu:..................................................................................................... 10

1.3.3.

Phạm vi:..................................................................................................... 10

1.4.

Đóng góp của luận văn .................................................................................... 10

1.5.

Tình hình nghiên cứu hiện tại: ......................................................................... 11

Chương 2: Cơ sở lý thuyết ....................................................................... 12
2.1.

Tổng quan về Tesseract ................................................................................... 12

2.2.

Mạng nơ-ron hồi quy (RNN) ........................................................................... 15

2.3.

Long short term memory (LSTM) ................................................................... 17

2.3.1. Ý tưởng cốt lõi của LSTM ............................................................................ 18
2.3.2. Bên trong LSTM ........................................................................................... 19

2.4.

Mơ hình ngơn ngữ (Language model) ............................................................. 22

2.4.1. Statistical Language Models ( Count-based) ................................................ 22
2.4.2. N-gram Language Models ............................................................................ 22
2.4.3. Neural Network Language Models (Continuous-space) .............................. 23

Chương 3 : Thực nghiệm và đánh giá kết quả....................................... 24
3.1.

Cơ chế hoạt động của Tesseract ....................................................................... 24

3.1.1. Cài đặt Tesseract ........................................................................................... 27
3.1.2. Tiền xử lý cho Tesseract: .............................................................................. 28
3.2.

Xử lý dữ liệu văn bản đầu vào cho mơ hình phân loại .................................... 29

3.3.

Các mơ hình được huấn luyện ......................................................................... 32

3.3.1. Mơ hình XGBoost......................................................................................... 32
2


3.3.2. Mơ hình Random Forest Classifer ................................................................ 36
3.3.3. Mơ hình LSTM ............................................................................................. 41
3.4.


Kết quả phân loại và so sánh các mơ hình: ...................................................... 45

Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ........................... 48
4.1.

Kết luận ........................................................................................................... 48

4.2.

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

TÀI LIỆU THAM KHẢO ........................................................................ 49
Tiếng Việt: ................................................................................................................. 49
Tiếng Anh: ................................................................................................................. 49

3


LỜI CẢM ƠN
Trong thời gian nghiên cứu và thực hiện đề tài, được sự giúp đỡ
của các thầy cô và bạn bè góp ý cho luận văn được hồn thành một cách
hoàn chỉnh. Em xin gửi lời cảm ơn chân thành đến:
Em xin chân thành cảm ơn thầy Th.S Trịnh Huy Hồng tạo điều
kiện cho em tham gia vào khóa luận tốt nghiệp. Cảm ơn thầy đã tận tình
dẫn dắt và hết lịng tạo điều kiện để em hồn thành khóa luận.
Em cũng xin chân thành cảm ơn quý Thầy Cô trong khoa Công
Nghệ Thông Tin của trường Đại học Sư Phạm Thành Phố Hồ Chí Minh
đã tận tình giảng dạy và trang bị cho em những kỹ năng mềm và những
kiến thức về chuyên môn cần thiết trong suốt quá trình học tập tại

trường.

4


DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
AI:
Artificial intelligence
IoT:
Internet of Things
JS:
Java Script
KYC:
Know Your Customer
LM:
Language Model
LSTM: Long short term memory
NLP:
Natural Language Processing
OCR:
Optical Character Recognition
PIL:
Pillow
QĐ:
Quyết định
RNN:
Recurrent Neural Network
SVD:
Singular Value Decomposition
TF-IDF: Term frequency–inverse document frequency

TTg:
Thủ tướng giao
XGBoost: Extreme Gradient Boosting

DANH MỤC HÌNH ẢNH
Hình 1. 1: Hình ảnh cơng văn .......................................................................................... 8
Hình 1. 2: Ứng dụng trí tuệ nhân tạo để tự động phân loại cơng văn và phục vụ số hóa
tài liệu .............................................................................................................................. 9
Hình 2. 1: Xác định vị trí của text bằng OCR ............................................................... 12
Hình 2. 2: Quá trình OCR.............................................................................................. 13
Hình 2. 3: Kiến trúc Tesseract OCR .............................................................................. 14
Hình 2. 4: Mạng nơ-ron thơng thường .......................................................................... 15
Hình 2. 5: Kiến trục của mạng RNN ............................................................................. 16
Hình 2. 6: Các dạng của RNN ....................................................................................... 17
Hình 2. 7: Mơ-đun lặp lại trong RNN tiêu chuẩn chứa một lớp duy nhất..................... 17
Hình 2. 8: Mô-đun lặp lại trong một LSTM chứa 4 lớp tương tác ................................ 18
Hình 3. 1: Kiến trúc nhận dạng văn bản chữ in trong Tesseract.................................... 24
Hình 3. 2: Đường cơ sở hình cong ................................................................................ 25
Hình 3. 3: Cắt các ký tự liền nhau ................................................................................. 25
Hình 3. 4: Sơ đồ nhận dạng từ ....................................................................................... 26
Hình 3. 5: Các đặc trưng ký tự được nhận dạng ............................................................ 26
Hình 3. 6: Đường cong học tập cho mơ hình XGBoost ban đầu................................... 33
Hình 3. 7: Đường cong học tập của mơ hình XGBoost sau khi tăng siêu tham số
n_estimators ................................................................................................................... 34
Hình 3. 8: Đường cong học tập của mơ hình XGBoost sau khi tăng siêu tham số
n_estimators và giảm siêu tham số eta .......................................................................... 35

5



Hình 3. 9: Đường cong học tập của mơ hình XGBoost sau khi thay đổi các siêu tham
số n_estimator, eta, submaple và colsample_bytree ...................................................... 36
Hình 3. 10: Báo cáo đánh giá mơ hình RandomForestClassifier .................................. 37
Hình 3. 11: Đường cong học tập của mơ hình RandomForestClassifier ....................... 38
Hình 3. 12: Báo cáo đánh giá mơ hình RandomForestClassifier sau khi điều chỉnh
tham số ........................................................................................................................... 39
Hình 3. 13: Đường cong học tập của mơ hình RandomForestClassfier sau khi điều
chỉnh tham số ................................................................................................................. 40
Hình 3. 14: Kiến trúc mơ hình LSTM của bài tốn ....................................................... 42
Hình 3. 15: Tham số của từng tầng trong mơ hình huấn luyện ..................................... 43
Hình 3. 16: Q trình huấn luyện của mơ hình LSTM.................................................. 44
Hình 3. 17: Biểu đồ biểu diễn độ chính xác của mơ hình ............................................. 44
Hình 3. 18: Biểu đồ biểu diễn độ mất mát của mơ hình ................................................ 45
Hình 3. 19: Cơng văn chỉ đạo ........................................................................................ 46

6


Chương 1: Giới thiệu tổng quan về đề tài
1.1.

Bài toán về phân loại cơng văn bằng hình ảnh:
Cách mạng cơng nghiệp 4.0 sử dụng các sản phẩm ứng dụng công nghệ thơng tin
trí tuệ cao để giải quyết hiệu quả các hoạt động nghiệp vụ trên nhiều lĩnh vực
chuyên môn. Đặc biệt, thủ tục giấy tờ ngày càng sử dụng nhiều ứng dụng của
Internet vạn vật (IoT), trí tuệ nhân tạo (AI), dữ liệu lớn. Do đó, các thủ tục giấy
tờ sẽ đạt tiêu chuẩn một cách nhanh chóng, hiệu quả và tiết kiệm chi phí.
Theo Quyết định số 28/2018 / QĐ-TTg [4] ngày 7 tháng 12 năm 2018 của Thủ
tướng Chính phủ về việc gửi và nhận đường truyền điện tử trong hệ thống hành
chính cơng, đường truyền điện tử có giá trị pháp lý và hiệu lực thi hành. Vì vậy,

văn bản chính thức đã trở thành phương tiện liên lạc, trao đổi thông tin, truyền
tải mệnh lệnh chính giữa các cơ quan, tổ chức và cần được số hóa, lưu trữ.
Vì vậy, xây dựng mơ hình trí tuệ nhân tạo giúp phân loại công văn và phục vụ số
hóa tài liệu.

7


Hình 1. 1: Hình ảnh cơng văn

8


1.2.

Mục tiêu thực hiện của đề tài
Bài toán được đặt ra ở đây là việc văn bản điện tử chính thức đã trở thành phương
tiện liên lạc, trao đổi thông tin, truyển tải mệnh lệnh chính giữa các cơ quan, tổ
chức và cần được số hóa, lưu trữ. Thì u cầu mà hệ thống phân loại và lưu trữ
các loại cơng văn phải có độ chính xác cao và tốc độ xử lý nhanh.
Bài tốn được mơ tả như sau:
 Input : Ảnh công văn đầu vào
 Output: Tên công văn được phân loại
 Điều kiện ràng buộc: đầu vào là file ảnh cơng văn(jpg, png, …)

Ảnh
cơng
văn đầu
vào


Mơ hình trí
tuệ nhân tạo

Kĩ thuật xử
lí ảnh

Kết quả
phân
loại
cơng
văn

Hình 1. 2: Ứng dụng trí tuệ nhân tạo để tự động phân loại cơng văn và phục
vụ số hóa tài liệu
1.3.

Hướng tiếp cận và giải pháp cho bài toán phân loại
1.3.1. Hướng tiếp cận
Bài toán của đề tài được chia thành 2 nhiệm vụ chính đó là:
+ Nhiệm vụ thứ nhất: Trích xuất kí tự văn bản từ hình ảnh (OCR)
+ Nhiệm vụ thứ hai: Phân loại đoạn kí tự được trích xuất (Text
Classification)
Đối với nhiệm vụ thứ nhất, bài toán OCR ( Optical Character Recognition)
hay còn gọi là Nhận dạng ký tự bằng quang học. Đây là công nghệ được áp dụng
để đọc kí tự trên một tệp ảnh thành định dạng kí tự. OCR ngày càng được sử dụng
nhiều hơn để số hóa trong các ngành cơng nghiệp khác nhau nhằm cắt giảm khối
lượng công việc thủ công. Điều này làm cho việc trích xuất và lưu trữ thơng tin
từ các tài liệu kinh doanh, biên lai, hộ chiếu, v.v. trở nên rất dễ dàng và hiệu quả.
Ngoài ra, khi bạn tải lên tài liệu của mình cho KYC ( Know Your Customer),
OCR được sử dụng để trích xuất thơng tin từ các tài liệu này và lưu trữ chúng để

tham khảo trong tương lai. Việc số hóa sử dụng OCR rõ ràng có những lợi thế
rộng rãi như lưu trữ và thao tác văn bản dễ dàng, chưa kể đến lượng phân tích
khó lường mà bạn có thể áp dụng cho dữ liệu này. Ngồi những lợi ích của OCR
đem lại cho bài tốn thì cũng có một số khó khăn đối với đề tài như là kí tự văn
9


bản là tiếng Việt, OCR chỉ nhận dạng được khoảng 80 – 90% trên hình ảnh rõ
nét, khó có thể nhận dạng được chữ viết tay.
Đối với nhiệm vụ thứ hai, bài toán Text Classification hầu hết các phương
pháp máy học áp dụng cho bài toán phân loại văn bản đều sử dụng cách biểu diễn
văn bản dưới dạng véc tơ đặc trưng. Điểm khác biệt duy nhất chính là không gian
đặc trưng được chọn lựa. Tuy nhiên ở đây ta thấy nảy sinh một số vấn đề cơ bản:
Số lượng từ xuất hiện trong văn bản sẽ rất lớn. Như vậy, mỗi véc tơ có thể có
hàng ngàn đặc trưng, hay nói cách khác mỗi véc tơ sẽ có số chiều rất lớn. Do vậy
các véc tơ sẽ không đồng nhất về kích thước. Để giải quyết vấn đề thông thường
chúng ta sẽ lựa chọn đặc trưng được đánh giá là hữu ích, bỏ đi những đặc trưng
khơng quan trọng. Đối với phân loại văn bản, quá trình này rất quan trọng bởi vì
véc tơ văn bản có số chiều rất lớn, trong đó thành phần dư thừa cũng rất nhiều.
Vì vậy các phương pháp chọn lựa đặc trưng rất hiệu quả trong việc giảm chiều
của véc tơ đặc trưng văn bản, chiều của véc tơ văn bản sau khi được giảm đi
nhưng khơng mất đi độ chính xác phân loại.
1.3.2. Yêu cầu:
Xây dựng hệ thống phân loại công văn phổ biến.
1.3.3. Phạm vi:
- Áp dụng trí tuệ nhân tạo giúp phân loại công văn và phục vụ số hóa dựa
trên hình ảnh.
- Nghiên cứu các mơ hình trí tuệ nhân tạo để rút trích thơng tin ảnh.
- Cài đặt, tích hợp, cấu hình hệ thống đề xuất cho cơ sơ dữ liệu ảnh thực
tế.

1.4.

Đóng góp của luận văn
 Tính khoa học của đề tài:
- Áp dụng các mơ hình máy học như: RandomForest, LSTM, XGBoost,..
vào nghiên cứu và ứng dụng cho đề tài.
- Có độ chính xác và tốc độ xử lý nhanh với việc sử dụng framework
Tesseract OCR.
 Tính thực tiễn:
Luận văn xây dựng ứng dụng theo nhu cầu thực tế về việc số hóa hình ảnh
và ứng dụng trí tuệ nhân tạo trong việc phân loại văn bản hay công văn
khác nhau.

10


1.5.

Tình hình nghiên cứu hiện tại:
Có nhiều phương pháp để tạo ra một phần mềm dạng OCR, độ chính xác
của các phương pháp này phụ thuộc vào công nghệ tạo nên phần mềm. Các
phương pháp này đạt được độ tin cậy trong các hình ảnh có chất lượng tốt và vừa.
Độ chính xác của việc rút trích văn bản là điều quan trọng nhất. Nhóm tác
giả Kirill Safronov [1] cho rằng một số sai sót trong q trình chuyển đổi thường
không quá quan trong trừ các trường hợp như rút trích số serial từ ảnh chụp,…
Để khắc phục tình trạng kết quả xuất ra khơng chính xác của cơng nghệ
OCR, nhiều công nghệ khác đã ra đời, tác giả A.Vinutha M H [2] đã ứng dụng
định hướng robot ( Optical Character Recognition Based Auto Navigation of
Robot). Việc định hướng của robot dựa vào bảng tín hiệu như là một cột mốc
đánh dấu đường đi tiếp theo của robot. Định hướng tự động của các robot trong

một vùng lớn đòi hỏi nhiều bảng tín hiệu khác nhau với mơ hình nhận dạng duy
nhất. Ngồi ra, hệ thống này cịn cho phép nhận diện vị trí riêng.
Bên cạnh việc cải thiện độ chính xác, chúng ta cần có sự thay đổi kích
thước của thiết bị nhận dạng, tác giả Ali Ahmadi [3] đã đề cập trong nghiên cứu
của mình, tốc độ xử lý và độ chính xác cao là yêu cầu lớn hiện nay của các thiết
bị nhận dạng kí tự nhỏ, ví dụ như bút biết nhận dạng.

11


Chương 2: Cơ sở lý thuyết
2.1.

Tổng quan về Tesseract
Nhận dạng ký tự quang học ( Optical Character Recognition, viết tắt là
OCR), là phần mềm máy tính được tạo ra để chuyển các hình ảnh của chữ viết
tay hoặc chữ đánh máy thành các văn bản tài liệu. OCR được hình thành từ một
lĩnh vực nghiên cứu về nhận dạng mẫu, trí tuệ nhân tạo và thị giác máy tính.
Những chuỗi dữ liệu được sinh ra từ việc nhận dạng ký tự quang học có thể được
sử dụng cho nhiều việc, ví dụ: giúp số hóa các tài liệu cũ, dịch sang các ngôn ngữ
khác hoặc để kiểm tra và xác minh văn bản. Mặc dù công việc nghiên cứu học
thuật vẫn tiếp tục, một phần công việc đã được chứng minh. Bất cứ nơi nào có
thể tìm thấy văn bản, OCR có thể được áp dụng. Một ví dụ về OCR như dưới
hình:

Hình 2. 1: Xác định vị trí của text bằng OCR

12



OCR là một quy trình thường bao gồm một số quy trình phụ để thực hiện chính
xác nhất có thể. Các quy trình phụ thường bao gồm:






Tiền xử lý hình ảnh
Cục bố hóa văn bản
Phân đoạn ký tự
Nhận dạng ký tự
Hậu xử lý

Hình 2. 2: Quá trình OCR
Tất nhiên, các quy trình phụ trong danh sách trên có thể khác nhau, nhưng
đây là những bước gần như cần thiết để tiếp cận nhận dạng ký tự tự động. Trong
phần mềm OCR, mục đích chính là xác định và nắm bắt tất cả các từ duy nhất
bằng các ngôn ngữ khác nhau từ các ký tự văn bản viết.
Trong gần hai thập kỉ, hệ thống nhận dạng ký tự quang học đã đươc sử
dụng rộng rãi để cũng cấp tính năng nhập văn bản tự dộng vào các hệ thống máy
tính. Tuy nhiên, trong suốt thời gian qua, các hệ thống OCR thông thường chưa
bao giờ vượt qua được khả năng đọc nhiều hơn một số loại phông chữ và định
dạng trang.
Khác với những phần mềm vì mục tiêu thương mại, Tesseract là một thư
viện khơng phải là chương trình nhận dạng kí tự quang học. Nó có mã nguồn mở,
được công khai dưới giấy phép Apache 2.0, và được phát triển dưới sự tài trợ của
Google từ năm 2006. Tesseract được đánh giá là một trong số ít những thư viện
nhân dạng kí tự quang học mã nguồn mở tốt nhất hiện nay. Tesseract đã phát triển
đến version 3.x và có thể hoạt động trên 3 hệ điều hành phổ biến là Window, Mac

và Linux. Công cụ này hỗ trợ nhận diện kí tự của hơn 100 ngơn ngữ khác nhau,
bao gồm cả tiếng Việt.
Tesseract 3.x phụ thuộc vào quy trình nhiều giai đoạn, ở đó chúng ta có thể
phân biệt qua các bước:
 Tìm từ
13


 Tìm dịng
 Phân loại kí tự
Việc tìm kiếm từ được thực hiện bằng cách sắp xếp các dòng văn bản thành
các đốm màu, các dòng và vùng được phân tích để tìm độ cao cố định hoặc văn
bản theo tỷ lệ. Các dòng văn bản được chia thành các từ khác nhau tùy theo loại
khoảng cách kí tự. Việc nhận dạng sẽ được tiến hành như một quá trình hai lần.
Trong lần vượt qua đầu tiên, một nỗ lực được thực hiện để nhận ra lần lượt từng
từ. Mỗi từ đạt yêu cầu được chuyển đến bộ phân loại thích ứng làm dữ liệu huấn
luyện. Sau đó, trình phân loại thích ứng sẽ có cơ hội nhận dạng chính xác hơn.

Hình 2. 3: Kiến trúc Tesseract OCR
Về sự hạn chế của Tesseract, chỉ hoạt động tốt nhất khi có sự phân đoạn rõ
ràng của từ nền khỏi văn bản nền. Trong thực tế, có thể cực kỳ khó khăn để đảm
bảo các loại thiết lập này. Có nhiều lý do khiến chúng ta không nhận được đầu ra
chất lượng tốt từ Tesseract như việc hình ảnh bị nhiễu trên nền. Chất lượng hình
14


ảnh càng tốt thì kết quả nhận dạng càng tốt. Tesseract khá mạnh nhưng có những
hạn chế sau:
 OCR khơng chính xác như một số giải pháp thương mại có sẵn.
 Khơng hoạt động tốt với hình ảnh bị ảnh hưởng bởi hiện vật bao gồm tắt

một phần, phối cảnh méo mó và nền phức tạp.
 Nó có thể khơng nhận dạng được và báo cáo đâu là đầu ra OCR
 Khơng phải lúc nào việc phân tích thứ tự đọc tự nhiên của tài liệu cũng
tốt.
 Bản quét chất lượng kém có thể tạo ra OCR chất lượng kém.
 Nó khơng tiết lộ thơng tin về phơng chữ thuộc họ văn bản nào.
2.2. Mạng nơ-ron hồi quy (RNN)
Trước tiên chúng ta cùng nhìn lại mơ hình mạng nơ-ron dưới đây:

Hình 2. 4: Mạng nơ-ron thơng thường
Như đã biết thì mạng nơ-ron bao gồm 3 phần chính là Input layer, Hidden
layer, Output layer, ta có thể thấy là đầu vào và đầu ra của mạng nơ-ron này là
độc lập với nhau, Như vậy mơ hình này khơng phù hợp với những bài tốn dạng
chuỗi mơ tả, hình thành câu,.. vì những dự đoán tiếp theo như từ tiếp theo phụ
thuộc vào vị trí của nó trong câu và những từ đằng trước nó. Và như vậy RNN ra
đời với ý tưởng chính là sử dụng một bộ nhớ để lưu lại thơng tin từ bước tính
tốn xử lý trước để dựa vào nó đưa ra dự đốn chính xác nhất cho bước dự đoán
hiện tại. RNN được gọi là hồi quy (Recurent) bởi lẽ chúng thực hiện cùng một
tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép
tính trước đó. Nói cách khác, RNN có khả năng nhớ các thơng tin được tính tốn
trước đó. Trên lý thuyết, RNN có thể sử dụng được thông tin của một văn bản rất
15


dài, tuy nhiên thực tế thì nó chỉ có thể nhớ được một vài bước trước đó mà thơi.
Một mạng nơ-ron hồi quy RNN có dạng như sau:

Hình 2. 5: Kiến trục của mạng RNN
Giải thích một chút: Nếu như mạng nơ-ron chỉ là input layer x đi qua hidden
layer h và cho ra output layer y với full connected giữa các layer thì trong RNN,

các input xt sẽ được kết hợp với hidden layer ht−1 bằng hàm fW để tính tốn ra
hidden layer ht hiện tại và output yt sẽ được tính ra từ ht, W là tập các trọng số
và nó được ở tất cả các cụm, các L1,L2,...,Lt là các hàm mất mát sẽ được giải
thích sau. Như vậy kết quả từ các q trình tính tốn trước đã được "nhớ" bằng
cách kết hợp thêm ht−1 tính ra ht để tăng độ chính xác cho những dự đốn ở
hiện tại. Cụ thể q trình tính tốn được viết dưới dạng toán như sau:
ht=fW(ht−1,xt)
Hàm fW chúng ta sẽ xử dụng hàm tanh, công thức trên sẽ trở thành :
ht=tanh(Whhht−1+Wxhxt)
yt=Whyht
Đến đây có 3 thứ mới xuất hiện: Wxh,Whh,Why. Đối với mạng nơ-ron chỉ sử
dụng một ma trận trọng số W duy nhất thì với RNN nó sử dụng 3 ma trận trọng
số cho 2 q trình tính tốn: Whh kết hợp với "bộ nhớ trước" ht−1 và Wxh kết
hợp với xt để tính ra "bộ nhớ của bước hiện tại" ht từ đó kết hợp với Why để tính
ra yt.
Ngồi mơ hình Many to Many như ta thấy ở trên thì RNN cịn rất nhiều dạng
khác như sau:

16


Hình 2. 6: Các dạng của RNN
2.3.

Long short term memory (LSTM)

Mạng bộ nhớ dài-ngắn (Long Short Term Memory networks), thường được
gọi là LSTM - là một dạng đặc biệt của RNN, nó có khả năng học được các phụ thuộc
xa. LSTM được giới thiệu bởi Hochreiter & Schmidhuber (1997) [4], và sau đó đã
được cải tiến và phổ biến bởi rất nhiều người trong ngành. Chúng hoạt động cực kì

hiệu quả trên nhiều bài toán khác nhau nên dần đã trở nên phổ biến như hiện nay.
LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term
dependency). Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của
chúng, chứ ta khơng cần phải huấn luyện nó để có thể nhớ được. Tức là ngay nội tại
của nó đã có thể ghi nhớ được mà khơng cần bất kì can thiệp nào.
Mọi mạng hồi quy đều có dạng là một chuỗi các mơ-đun lặp đi lặp lại của
mạng nơ-ron. Với RNN chuẩn, các mô-dun này có cấu trúc rất đơn giản, thường là
một tầng tanh.

Hình 2. 7: Mô-đun lặp lại trong RNN tiêu chuẩn chứa một lớp duy nhất

17


LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mơ-đun trong nó có
cấu trúc khác với RNN chuẩn. Thay vì chỉ có một tầng mạng nơ-ron, chúng có tới 4
tầng tương tác với nhau một cách rất đặc biệt.

Hình 2. 8: Mơ-đun lặp lại trong một LSTM chứa 4 lớp tương tác
Giờ thì đừng hoang mang về chi tiết bên trong chúng ngay, chúng ta sẽ khám
phá chúng chi tiết chúng ở bước sau. Điều bạn cần làm bây giờ là làm hãy làm quen
với các kí hiệu mà ta sẽ sử dụng ở dưới đây:

Ở sơ đồ trên, mỗi một đường mang một véc-tơ từ đầu ra của một nút tới đầu
vào của một nút khác. Các hình trong màu hồng biểu diễn các phép tốn như phép
cộng véc-tơ chẳng hạn, cịn các ơ màu vàng được sử dụng để học trong các từng
mạng nơ-ron. Các đường hợp nhau kí hiệu việc kết hợp, cịn các đường rẽ nhánh ám
chỉ nội dung của nó được sao chép và chuyển tới các nơi khác nhau.
2.3.1. Ý tưởng cốt lõi của LSTM
Chìa khóa của LSTM là trạng thái tế bào (cell state) - chính đường

chạy thơng ngang phía trên của sơ đồ hình vẽ.
Trạng thái tế bào là một dạng giống như băng truyền. Nó chạy xuyên
suốt tất cả các mắt xích (các nút mạng) và chỉ tương tác tuyến tính đơi chút.
Vì vậy mà các thơng tin có thể dễ dàng truyền đi thông suốt mà không sợ bị
thay đổi.

18


LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho
trạng thái tế báo, chúng được điều chỉnh cẩn thận bởi các nhóm được gọi là
cổng (gate).
Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi
một tầng mạng sigmoid và một phép nhân.

Tầng sigmoid sẽ cho đầu ra là một số trong khoản [0, 1][0,1], mơ tả có
bao nhiêu thơng tin có thể được thơng qua. Khi đầu ra là 00 thì có nghĩa là
khơng cho thơng tin nào qua cả, cịn khi là 11 thì có nghĩa là cho tất cả các
thơng tin đi qua nó.
Một LSTM gồm có 3 cổng như vậy để duy trì và điều hành trạng thái của tế
bào.
2.3.2. Bên trong LSTM
Bước đầu tiên của LSTM là quyết định xem thông tin nào cần bỏ đi từ
trạng thái tế bào. Quyết định này được đưa ra bởi tầng sigmoid - gọi là “tầng

19


cổng quên” (forget gate layer). Nó sẽ lấy đầu vào là ht−1 và xt rồi đưa ra kết
quả là một số trong khoảng [0, 1][0,1] cho mỗi số trong trạng thái tế bào Ct−1

. Đẩu ra là 11 thể hiện rằng nó giữ tồn bộ thơng tin lại, cịn 00 chỉ rằng tồn
bộ thơng tin sẽ bị bỏ đi.
Quay trở lại với ví dụ mơ hình ngơn ngữ dự đốn từ tiếp theo dựa trên
tất cả các từ trước đó, với những bài tốn như vậy, thì trạng thái tế bào có thể
sẽ mang thơng tin về giới tính của một nhân vật nào đó giúp ta sử dụng được
đại từ nhân xưng chuẩn xác. Tuy nhiên, khi đề cập tới một người khác thì ta
sẽ khơng muốn nhớ tới giới tính của nhân vật nữa, vì nó khơng cịn tác dụng
gì với chủ thế mới này.

Bước tiếp theo là quyết định xem thông tin mới nào ta sẽ lưu vào trạng
thái tế bào. Việc này gồm 2 phần. Đầu tiên là sử dụng một tầng sigmoid được
gọi là “tầng cổng vào” (input gate layer) để quyết định giá trị nào ta sẽ cập
nhập. Tiếp theo là một tầng tanhtanh tạo ra một véc-tơ cho giá trị
mới \tilde{C_t}Ct~ nhằm thêm vào cho trạng thái. Trong bước tiếp theo, ta
sẽ kết hợp 2 giá trị đó lại để tạo ra một cập nhập cho trạng thái.
Chẳng hạn với ví dụ mơ hình ngơn ngữ của ta, ta sẽ muốn thêm giới
tính của nhân vật mới này vào trạng thái tế bào và thay thế giới tính của nhân
vật trước đó.

20


Giờ là lúc cập nhập trạng thái tế bào cũ Ct−1 thành trạng thái mới Ct
. Ở các bước trước đó đã quyết định những việc cần làm, nên giờ ta chỉ cần
thực hiện là xong.
Ta sẽ nhân trạng thái cũ với ft để bỏ đi những thông tin ta quyết định
quên lúc trước. Sau đó cộng thêm it∗Ct~. Trạng thái mơi thu được này phụ
thuộc vào việc ta quyết định cập nhập mỗi giá trị trạng thái ra sao.
Với bài tồn mơ hình ngơn ngữ, chính là việc ta bỏ đi thơng tin về giới
tính của nhân vật cũ, và thêm thơng tin về giới tính của nhân vật mới như ta

đã quyết định ở các bước trước đó.

Cuối cùng, ta cần quyết định xem ta muốn đầu ra là gì. Giá trị đầu ra
sẽ dựa vào trạng thái tế bào, nhưng sẽ được tiếp tục sàng lọc. Đầu tiên, ta chạy
một tầng sigmoid để quyết định phần nào của trạng thái tế bào ta muốn xuất
ra. Sau đó, ta đưa nó trạng thái tế bào qua một hàm tanh để có giá trị nó về
khoảng [-1, 1][−1,1], và nhân nó với đầu ra của cổng sigmoid để được giá trị
đầu ra ta mong muốn.
Với ví dụ về mơ hình ngơn ngữ, chỉ cần xem chủ thể mà ta có thể đưa
ra thơng tin về một trạng từ đi sau đó. Ví dụ, nếu đầu ra của chủ thể là số ít
hoặc số nhiều thì ta có thể biết được dạng của trạng từ đi theo sau nó phải như
thế nào.

21


2.4.

Mơ hình ngơn ngữ (Language model)
Language Model (LM) là một mơ hình đại diện cho những kiến thức đã
biết về một ngơn ngữ, những kiến thức ấy có thể là những từ, chuỗi các từ có thể
có hay mức độ thường xuyên mà chúng xuất hiện.
LM được chia thành ba nhóm đó là Statistical LM (Count-based), Neural
Network LM (Continuous-space) và Knowledge-based LM, Ngồi ra cịn một số
LM khác chẳng hạn như KenLM, ...
2.4.1. Statistical Language Models ( Count-based)
Những mơ hình thuộc nhóm này đều dựa trên việc đếm tần suất xuất
hiện của từng từ hay chuỗi, do đó nó cần một lượng dữ liệu lớn, càng nhiều
càng tốt.
Statistical LM là phân bố xác suất P(W), W∈V+ trên tập hợp tất cả các

chuỗi (câu văn) V+ có trong tập dữ liệu thuộc bộ từ vựng VV của một ngơn
ngữ nào đó.
Khi đó, P(W)≥0 và ∑W∈V+P(W) = 1.
Trong đó, xác suất của một chuỗi có độ dài KK được tính như sau:
P(w1w2...wK)=P(w1)P(w2∣w1)...P(wK∣w1w2...wK−1)=k=1∏KP(wk∣w1
w2...wk−1)
P(wk∣w1w2...wk−1) là xác suất của từ wk khi đã biết chuỗi w1w2...wk−1
và được tính bằng cách đếm chuỗi như sau:
P(wk∣w1w2...wk−1)=count(w1w2...wk−1)count(w1w2...wk)
Tuy nhiên, nếu K càng lớn thì tần suất xuất hiện của chuỗi K từ ấy càng
nhỏ và sẽ có trường hợp tần suất xuất hiện của chuỗi K−1 từ dẫn trước là
lớn, khiến cho xác suất P(wk∣w1w2...wk−1) gần như bằng 0, dẫn tới việc
chuỗi K từ ấy không bao giờ xảy ra (nói đơn giản hơn là chuỗi ấy khơng
có mặt trong tập huấn luyện). Giải pháp để giảm thiểu vấn đề này là thay
vì tính theo K−1 thì ta chỉ chọn N−1 từ dẫn trước thôi, và thế là ta có Ngram Language Models:
P(wk∣w1w2...wk−1)=P(wk∣wk−N+1wk−N+2...wk−1)
2.4.2. N-gram Language Models
Như vậy ta sẽ có xác suất của một chuỗi là như sau:
PN(W)=k=1∏KP(wk∣wk−N+1wk−N+2...wk−1)
Thơng thường người ta sẽ chọn N=1,2,3

22


Người ta cịn gọi mơ hình này với cái tên khác là (N-1)-order Markov
Models.
Nhưng mà, mơ hình này có các nhược điểm như sau:
 Sai điều kiện về sự phụ thuộc: Việc chuyển từ K−1 về N−1 ngay từ
đầu đã khơng đúng rồi.
 Bão hồ (Saturation): Data càng nhiều thì model sẽ càng tốt nhưng sẽ

đến lúc thêm data khác thì phân bố xác suất khơng thay đổi. Điều này
xảy ra với bigram, trigram khi số từ đạt tới hàng tỷ.
 Thiếu tính tổng qt hố: Từng thể loại, chủ đề, phong cách thì sẽ có
các kết hợp câu, từ khác nhau. Do đó với các nguồn dữ liệu khác nhau
thì chất lượng mơ hình sẽ khác nhau, nhất là khi tập train với test khác
kiểu viết thì performance của mơ hình sẽ rất tệ.
 Thưa thớt dữ liệu (Data sparseness): Khi thiếu dữ liệu hoặc dữ liệu
bị mất thì sẽ dẫn về lại vấn đề chuỗi khơng có mặt trong tập train mà
có mặt trong tập test khiến xác suất bằng 0, N-gram chỉ giảm hiện
tượng này chứ chưa giải quyết được hẳn.
2.4.3. Neural Network Language Models (Continuous-space)
Loại mô hình ngơn ngữ này được giới thiệu để xử lý vấn đề thưa
thớt dữ liệu (data sparseness) của N-gram Language Models. Mơ hình
kiểu này được chia làm hai dạng là Feed Forward Neural Networks
(FNNs) và Recurrent Neural Networks (RNNs).
Mọi mô hình kiểu này đều có input và output là:
 Input: Word Embedding hay Character Embedding, là chuyển từ hay
ký tự sang vector số thực trong một không gian n chiều (dimensions)
cố định
 Output: Với mỗi output unit là xác suất của một từ hay ký tự khi đã
biết context. Context là gì thì cịn tùy thuộc vào dạng mơ hình sử dụng.
Đối với dạng FNNs, context là một chuỗi có độ dài cố định và là những từ
hay ký tự đúng trước ký tự đang xét, nghĩa là giống như N-gram Language
Models vậy đó.
Đối với dạng RNNs, context như của FNNs nhưng có độ dài khơng cố định
và dạng này giúp giải quyết vấn đề Limited context của FNNs, tức là khơng
cịn là N-gram nữa và các nhược điểm của N-gram Language Models
khơng cịn nữa.

23



Chương 3 : Thực nghiệm và đánh giá kết quả
3.1.

Cơ chế hoạt động của Tesseract

Hình 3. 1: Kiến trúc nhận dạng văn bản chữ in trong Tesseract
Cũng giống như hầu hết các chương trình nhận dạng ký tự quang học,
Tesseract có một kiến trúc điển hình từ trên xuống. Bước đầu bằng chức năng
tiền xử lý, một ngưỡng sẽ được chọn bởi bộ phân ngưỡng thơng qua một q
trình phân tích các điểm trong ảnh với giải thuật như là Otsu, sau đó ngưỡng này
sẽ được sử dụng để chuyển đổi ảnh màu hoặc ảnh xám đầu vào thành một ảnh
nhị phân, giả thiết chứa các vùng văn bản hình dạng đa giác.
Giai đoạn tiếp theo là ảnh nhị phân được đưa vào bộ Phân tích thành phần
liên thơng (Connected component analysis) để tìm ra hình dạng phác thảo của
những thành phần liên thơng. Đây là một tiến trình phức tạp mất nhiều thời gian
nhưng cần có để tách ra các ký tự có trong hình.
Khối Tìm các dịng văn bản và từ (Find text lines and words) thực hiện
các chức năng như xác định dòng chặn dưới và chặn trên, đối với mỗi dịng thì
cắt gọn từ trước khi xác định vùng của mỗi ký tự, ngoài ra cần nhận dạng khoảng
cách giữa chữ và số. Lọc dãy dòng khơng chỉ tìm dãy ký tự trong từng dịng mà
cịn phát hiện các ký tự có độ cao chênh lệch trong dòng như ký tự drop-cap, ký
tự chấm câu, ký tự dấu và nhiễu... Tuy nhiên, nếu ảnh số chứa các dịng có độ
nghiêng hoặc cong thì giải thuật trở nên phức tạp. Để giúp giảm bớt mất thông
tin khi nhận dạng ảnh nghiêng thì áp dụng giải thuật biến đổi Hough tìm góc
nghiêng để đưa ảnh số trở lại vị trí thơng thường. Trong trường hợp dịng có độ
24



×