BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
ĐỖ THANH CAO
PHÂN TÍCH CẤU TRÚC VÀ
NHẬN DẠNG BIỂU MẪU
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Cần Thơ - 2010
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
ĐỖ THANH CAO
PHÂN TÍCH CẤU TRÚC VÀ
NHẬN DẠNG BIỂU MẪU
Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn: TS. TRẦN CAO ĐỆ
Cần Thơ - 2010
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “Phân tích cấu trúc và nhận dạng biểu
mẫu” 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ả
Đỗ Thanh Cao
i
LỜI CẢM TẠ
Để hoàn thành luận văn này tôi đã nhận được sự hướng dẫn khoa học của
tiến sĩ Trần Cao Đệ, giảng viên Khoa Công nghệ Thông tin và Truyền thông trường
Đại học Cần Thơ. Thầy đã có nhiều định hướng, gợi mở cách giải quyết vấn đề cho
tôi rất tốt, nhờ đó tôi đã vượt qua nhiều khó khăn trong lúc thực hiện. Lời cám ơn
đầu tiên tôi xin gửi đến Thầy, tôi cảm thấy thật may mắn khi được làm việc với
Thầy.
Bên cạnh đó, tôi xin cám ơn gia đình đã ủng hộ tinh thần và dành cho tôi
nhiều thời gian để nghiên cứu.
Tiếp theo, tôi xin cám ơn các đồng nghiệp ở Bộ môn Tin học đã giúp tôi làm
nhiều việc lẻ ra tôi phải làm. Xin cám ơn Ban Giám hiệu trường Đại học An Giang
đã tạo điều kiện cho tôi được đi học nâng cao trình độ.
Sau cùng, xin chân thành cám ơn các giảng viên Khoa Khoa Công nghệ
Thông tin và Truyền thông trường Đại học Cần Thơ đã cung cấp nhiều kiến thức
quý báo trong quá trình theo học chương trình cao học tại Khoa. Xin cám ơn các
bạn Huỳnh Phước Hải, Phạm Thiên Ân và Nguyễn Chế Linh đã nhiệt tình giúp tôi
thu thập mẫu chữ viết tay.
Chân thành cám ơn.
Đỗ Thanh Cao
ii
MỤC LỤC
Chương 1:TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU ...................................................13
1.1.Giới thiệu...................................................................................................................13
1.2.Hệ thống xử lí biểu mẫu tự động...............................................................................14
1.2.1.Số hóa biểu mẫu giấy.........................................................................................15
1.2.2.Phân tích biểu mẫu.............................................................................................15
1.2.3.Nhận dạng biểu mẫu .........................................................................................16
1.2.4.Nhận dạng dữ liệu viết tay.................................................................................17
1.3.Phạm vi của đề tài......................................................................................................18
1.3.1.Mô hình hóa biểu mẫu (form modeling)............................................................19
1.3.1.1.Đăng ký biểu mẫu (form registration)........................................................19
1.3.1.2.Mô hình biểu mẫu (form template)............................................................19
1.3.2.Phân tích biểu mẫu.............................................................................................20
1.3.3.Nhận dạng biểu mẫu..........................................................................................20
1.3.4.Nhận dạng dữ liệu viết tay.................................................................................21
1.4.Bố cục của luận văn...................................................................................................21
Chương 2:BIỂU MẪU VÀ TRÍCH XUẤT ĐƯỜNG THẲNG TỪ ẢNH BIỂU MẪU .....23
2.1.Tổng quan về biểu mẫu.............................................................................................23
2.1.1.Khái niệm biểu mẫu...........................................................................................23
2.1.2.Lợi ích của biểu mẫu..........................................................................................23
2.1.3.Các kiểu vùng nhập của biểu mẫu.....................................................................24
2.1.4.Kiểu dữ liệu chứa trong biểu mẫu.....................................................................26
2.1.4.1.Thông tin in sẵn..........................................................................................26
2.1.4.2.Thông tin điền vào.....................................................................................26
2.2.Trích xuất đường thẳng từ biểu mẫu (Line Extraction).............................................26
2.2.1.Phương pháp trích đường thẳng.........................................................................28
2.2.2.Phương pháp DSCC (Directional Single-Connected Chain)............................29
2.2.2.1.Định nghĩa DSCC......................................................................................29
2.2.2.2.Nối các DSCC...........................................................................................31
2.2.2.3.Một số phương pháp nâng cao hiệu quả giải thuật.....................................34
2.3.Thực nghiệm..............................................................................................................35
Chương 3:PHÂN TÍCH BIỂU MẪU ..................................................................................39
3.1.Giới thiệu...................................................................................................................39
3.1.1.Phân tích biểu mẫu trắng....................................................................................41
3.1.2.Phân tích biểu mẫu đã điền................................................................................42
3.2.Nhóm các đường thẳng vào các loại ô nhập (Line Grouping)...................................42
3.2.1.Đặt vấn đề..........................................................................................................42
3.2.2.Các kiểu giao nhau của hai đường thẳng ngang và dọc.....................................43
3.2.3.Phương pháp trích xuất cấu trúc vùng nhập......................................................47
3.2.3.1.Dạng chữ nhật............................................................................................48
3.2.3.2.Dạng răng cưa............................................................................................49
3.2.3.3.Dạng đường thẳng......................................................................................51
3.2.3.4.Một số phương pháp nâng cao hiệu quả giải thuật trích xuất cấu trúc.......51
3.3.Trích xuất nhãn với Tesseract và VietOCR................................................................52
3.3.1.Tesseract.............................................................................................................53
3.3.2.VietOCR.............................................................................................................54
3.3.3.Trích nhãn (Label Extraction)............................................................................54
3.4.Thực nghiệm..............................................................................................................56
iii
Chương 4:MÔ HÌNH HÓA VÀ NHẬN DẠNG BIỂU MẪU..............................................59
4.1.Mô hình hóa biểu mẫu...............................................................................................59
4.1.1.Nội dung.............................................................................................................59
4.1.1.1.Thông tin chung.........................................................................................59
4.1.1.2.Thông tin về nhãn.......................................................................................60
4.1.1.3.Thông tin về cấu trúc ô nhập......................................................................60
4.1.2.Cấu trúc..............................................................................................................62
4.1.3.Lưu trữ...............................................................................................................63
4.1.3.1.XML và DOM............................................................................................63
4.1.3.2.Các phần tử (thẻ) XML trong tập tin mô hình...........................................64
4.1.3.3.Kết hợp thông tin ô nhập và nhãn tương ứng.............................................67
4.2.Nhận dạng biểu mẫu..................................................................................................69
4.2.1.Phương pháp nhận dạng biểu mẫu.....................................................................69
4.2.2.Nhận dạng biểu mẫu bằng từ khóa....................................................................71
4.3.Thực nghiệm..............................................................................................................75
4.3.1.Mô hình hóa:......................................................................................................75
4.3.2.Nhận dạng biểu mẫu..........................................................................................76
4.3.2.1.Mô tả tập dữ liệu........................................................................................76
4.3.2.2.Phương pháp kiểm chứng...........................................................................76
Chương 5:NHẬN DẠNG KÝ TỰ VIẾT TAY OFFLINE VỚI SVM..................................78
5.1.Giới thiệu...................................................................................................................78
5.2.Nhận dạng ký tự viết tay............................................................................................78
5.2.1.Đặt vấn đề..........................................................................................................78
5.2.2.Mô hình nhận dạng............................................................................................79
5.2.2.1.Tiền xử lí....................................................................................................79
5.2.2.2.Trích xuất đặc trưng...................................................................................80
5.3.Phương pháp huấn luyện và nhận dạng.....................................................................82
5.4.Thực nghiệm..............................................................................................................82
5.4.1.Mô tả tập dữ liệu................................................................................................82
5.4.2.Huấn luyện và nhận dạng...................................................................................82
5.4.3.Kết quả...............................................................................................................82
Chương 6:KẾT LUẬN.........................................................................................................84
6.1.Những kết quả đã đạt được........................................................................................84
6.1.1.Trích xuất đường thẳng......................................................................................84
6.1.2.Trích xuất cấu trúc vùng nhập............................................................................84
6.1.3.Mô hình hóa biểu mẫu.......................................................................................84
6.1.4.Nhận dạng biểu mẫu..........................................................................................84
6.1.5.Nhận dạng ký tự viết tay....................................................................................85
6.2.Hướng phát triển của đề tài........................................................................................85
iv
DANH MỤC HÌNH
Hình 1.1: Hệ thống xử lí biểu mẫu tự động..........................................................................13
Hình 1.2: Phân tích cấu trúc ô nhập.....................................................................................14
Hình 1.3: Nhận dạng biểu mẫu.............................................................................................15
Hình 1.4: Nhận dạng ký tự viết tay.......................................................................................16
Hình 1.5: Sơ đồ hoạt động của hệ thống..............................................................................17
Hình 1.6: Tạo mô hình biểu mẫu..........................................................................................18
Hình 1.7: Nhãn và ô nhập của biểu mẫu..............................................................................19
Hình 2.1: Kiểu ô nhập dạng ô ký tự.....................................................................................23
Hình 2.2: Kiểu ô nhập đánh dấu...........................................................................................24
Hình 2.3: Kiểu ô nhập dạng đường thẳng............................................................................24
Hình 2.4: Quy trình trích xuất đường thẳng.........................................................................26
Hình 2.5: Dạng tổng quát của đường thẳng trong ảnh.........................................................27
Hình 2.6: DSCC ngang (nguồn [13])...................................................................................29
Hình 2.7: Minh họa việc trích các DSCC ngang (Nguồn: [13])...........................................30
Hình 2.8: Khoảng cách giữa hai đường thẳng (co-line distance) (Nguồn: [1])....................31
Hình 2.9: Các ô nhập đồng dạng, có kích thước tương đương.............................................35
Hình 2.10: Các ô nhập không đồng dạng và có kích thước khác nhau................................35
Hình 2.11: Các ô nhập đồng dạng có kích thước khác nhau và biểu mẫu chứa logo...........36
Hình 2.12: Các ô nhập đồng dạng và có kích thước khác nhau...........................................36
Hình 2.13: Ô nhập dạng đường thẳng không liền nét..........................................................37
Hình 2.14: Lỗi trích đường thẳng.........................................................................................37
Hình 3.1: Phân tích biểu mẫu trắng (blank form).................................................................39
Hình 3.2: (a) là cấu trúc đóng, (b) là cấu trúc mở................................................................41
Hình 3.3: Các kiểu giao nhau của hai đường thẳng ngang và dọc.......................................42
Hình 3.4: Cấu trúc ba phần của một đường thẳng ngang (Nguồn: [12])..............................44
Hình 3.5: Sắp xếp các đường thẳng theo thứ tự...................................................................46
Hình 3.6: Ma trận chứa giá trị giao nhau của các đường thẳng...........................................47
Hình 3.7: Thứ tự duyệt ma trận giao điểm để xác định cấu trúc chữ nhật...........................47
Hình 3.8: Thứ tự duyệt ma trận giao điểm để xác định cấu trúc "răng cưa"........................49
Hình 3.9: Lỗi đường thẳng dọc ở giữa cấu trúc...................................................................50
Hình 3.10: Lỗi đường thẳng ngang và dọc ở cuối cấu trúc..................................................51
Hình 3.11: Lỗi đường thẳng ngang và dọc ở đầu cấu trúc...................................................51
Hình 3.12: Kết quả trích xuất cấu trúc vùng nhập................................................................56
Hình 3.13: Kết quả trích xuất cấu trúc vùng nhập (tiếp theo)..............................................56
Hình 3.14: Nhận dạng phần văn bản trong ảnh biểu mẫu....................................................57
Hình 3.15: Nhận dạng văn bản trong một phần của ảnh biểu mẫu......................................57
Hình 4.1: Thông tin nhãn của vùng nhập.............................................................................59
Hình 4.2: (a) đặc trưng một ô nhập chữ nhật, (b) đặc trưng một dãy các ô nhập liền nhau.59
Hình 4.3: Đặc trưng ô nhập dạng "răng cưa".......................................................................60
Hình 4.4: Đặc trưng của đường thẳng..................................................................................60
Hình 4.5: Đặc trưng được biểu diễn dưới dạng cây tài liệu (document tree).......................61
Hình 4.6: Tương quan về vị trí giữa nhãn và cấu trúc ô nhập..............................................66
Hình 4.7: Vị trí của nhãn so với vùng nhập.........................................................................67
Hình 4.8: Tính độ tương đồng (khớp) của biểu mẫu và mô hình biểu mẫu.........................71
Hình 4.9: Công cụ mô hình hóa biểu mẫu............................................................................74
Hình 4.10: Hai biểu mẫu có cấu trúc gần giống nhau..........................................................75
Hình 5.1: Mô hình nhận dạng ký tự viết tay (Nguồn: [38]).................................................78
Hình 5.2: Chuẩn hóa ảnh (Nguồn: [38])...............................................................................78
v
Hình 5.3: Chọn đặc trưng theo trọng số của từng vùng (Nguồn: [38])................................79
Hình 5.4: Trích chọn các biểu đồ chiếu ngang, dọc và 2 đường chéo (Nguồn: [38])..........79
Hình 5.5: Trích chọn các khối bên ngoài của chữ (Nguồn: [38]).........................................80
Hình 5.6: Biểu đồ so sánh kết quả tỷ lệ nhận dạng..............................................................82
vi
DANH MỤC BẢNG
Bảng 3.1: Định nghĩa các loại giao điểm của đường thẳng ngang và dọc........................43
Bảng 3.2: Công thức xác định từng loại giao điểm............................................................45
Bảng 4.1: Mô tả các loại cấu trúc vùng nhập.....................................................................63
Bảng 4.2: Thông tin chung của mỗi mô hình......................................................................64
Bảng 4.3: Đặc trưng từng loại vùng nhập..........................................................................64
Bảng 4.4: Các thẻ chứa thông tin chung............................................................................65
Bảng 4.5: Các thẻ chứa thông tin vùng nhập.....................................................................65
Bảng 5.1: Kết quả phân loại trên tập ký tự tiếng Việt (89 lớp)...........................................80
vii
TÓM TẮT ĐỀ TÀI
Biểu mẫu (form) được dùng nhiều trong các giao dịch hành chính và thương
mại. Vấn đề đặt ra là làm sao chuyển được nội dung viết/in trên biểu mẫu giấy
thành dạng máy đọc được (ASCII, unicode chẳng hạn). Vấn đề này liên quan đến
các nghiên cứu trong lĩnh vực: Phân tích & nhận dạng biểu mẫu (form analysis and
recognition), phân tích cấu trúc tài liệu (document analysis), nhận dạng chữ in và
nhận dạng chữ viết tay (OCR).
Có thể chia quá trình hiểu nội dung biểu mẫu theo ba bước. Bước đầu tiên là
phân tích và xây dựng cấu trúc của biểu mẫu được dùng, tức là phân tích và xây
dựng mô hình biểu mẫu (form template) ở dạng cơ sở dữ liệu, chứa trong tập tin
XML chẳng hạn. Bước kế đến là nhận diện đúng biểu mẫu khi cho một biểu mẫu đã
điền thông tin (filled form). Cuối cùng là áp dụng mô hình biểu mẫu tương ứng với
biểu mẫu đã điền thông tin để có thể cắt lấy từng phần ảnh tương ứng với từng
trường (field) trong biểu mẫu mang đi xử lí và nhận dạng chữ viết/chữ in.
Luận văn này đề cập đến hai bước đầu tiên trong quá trình “hiểu” biểu mẫu
nêu trên. Trước tiên, mỗi loại biểu mẫu (cụ thể là một form trống, chưa điền thông
tin) sẽ được phân tích và mô tả cấu trúc trong một tập tin XML, đây là mô hình biểu
mẫu. Có thể coi mẫu của biểu mẫu là một danh sách các trường (ô để điền thông
tin), mỗi trường có một tên và nhãn hay từ khoá đi kèm cùng với toạ độ của trường.
Ngoài ra còn có các thông tin khác để trợ giúp quá trình nhận dạng chữ viết trong
trường, chẳng hạn nội dung điền vào là số (chiffre) hay kí tự mẫu tự (alphabet). Như
vậy, mỗi form có thể được đặc trưng bởi danh sách các từ khoá diễn giải cho các
trường in trên biểu mẩu. Việc nhận dạng chữ in (các từ in trên biểu mẫu) sẽ được
thực hiện bởi công cụ nguồn mở Tesseract. Bước nhận dạng biểu mẫu có thể dựa
trên tập từ khoá này, cụ thể là đo độ tương đồng giữa các từ khoá đặc trưng cho biểu
mẫu với tập hợp các từ (in) nhận dạng được trên biểu mẫu đã điền thông tin đang
được quan tâm. Vấn đề nhận dạng chữ viết tay cũng được trình bày, thực nghiệm
trên tập dữ liệu tiếng Việt tự xây dựng.
Từ khoá: phân tích biểu mẫu (form analysis), nhận dạng biểu mẫu (form
recognition), phân tích tài liệu (document analysis), nhận dạng chữ in (OCR), trích
xuất đường thẳng (line detection), nhận dạng chữ viết tay (handwriting
recognition), xử lí biểu mẫu (form processing), máy học vectơ hỗ trợ (SVM),...
viii
ABSTRACT
Forms are still used in administrative and commercial transactions. The
question is how to convert the form’s written/printed content into a format that
computers can read (for example ASCII or Unicode). This requires three relating
domains, namely Form Analysis and Recognition, Document Analysis, and Optical
Character Recognition (OCR).
The procedure of form understanding can be divided into three steps. The
first step is to analyze and build the form structure or form template as a database
which is, for example, contained in an XML file. The second step is to correctly
recognize the form of a filled form. Then the last step is to apply the relevant form
template of the filled form to extracting the image portion corresponding to each
field on the form which recognition of written/printed content is required.
This thesis covers the first two steps of the above form understanding
procedure. First of all, a form type (in particular, a blank form) is analyzed and from
that its structure is presented in an XML file. This is called form template. It can be
considered that form template is a list of fields (where information is filled on the
actual form); each field is described by a name, a label or a keyword, and its
coordinates. Besides, there is other information in order to support the recognition
of the field’s content, which is digits or alphabet characters. Therefore, each field
can be characterized by a list of keywords describing the field. The recognition of
printed content is carried out by the open source software Teseract. Then, the form
recognition step can be based on this list of keywords. In other words, that is to
measure the analogy between the keywords characterized the form using the set of
printed words recognized. The recognition of handwritten characters is also covered
in this thesis, in which my self-built Vietnamese character set is used for the
experiment.
Keywords: form analysis, form recognition, document analysis, OCR, line
detection, handwriting recognition, form processing, SVM,....
ix
Chương 1:
1.1.
TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU
Giới thiệu
Ngày nay, việc sử dụng các biểu mẫu (form) trong các giao dịch thương mại
và hành chính đã trở nên rất phổ biến, góp phần vào chuẩn hóa các giao dịch và
thúc đẩy hành chính điện tử. Việc điền thông tin vào biểu mẫu và nộp cho nơi có
trách nhiệm xử lí không còn quá xa lạ với nhiều người, ví dụ khi đến ngân hàng
giao dịch chúng ta được yêu cầu ghi thông tin vào những biểu mẫu tương ứng như
biểu mẫu gửi tiền, biểu mẫu rút tiền, biểu mẫu chuyển khoản...; một ví dụ khác ở
Phòng Quản lí Xuất Nhập cảnh có các biểu mẫu: xin cấp hộ chiếu, xin gia hạn hộ
chiếu, xin thị thực, …
Việc nhập thông tin từ biểu mẫu vào máy tính hiện vẫn được xử lí hầu hết
theo cách thủ công. Con người đọc thông tin đã được điền trên biểu mẫu, sau đó
dùng bàn phím (keyboard) để nhập thông tin đó vào máy tính. Công việc này tốn
nhiều chi phí về thời gian và công sức cũng như phát sinh sai sót do cả hai yếu tố
khách quan và chủ quan. Trong những tình huống phải xử lí một số lượng lớn biểu
mẫu (biểu mẫu điều tra dân số, thi trắc nghiệm,...), loại biểu mẫu có thông tin cần
nhập rất nhiều, hay giao dịch cần thời gian đáp ứng nhanh, thì việc xử lí biểu mẫu
thủ công càng bộc nhiều hạn chế, thậm chí, trong vài trường hợp là không khả thi.
Ví dụ việc chấm thi trắc nghiệm trong các kỳ thi tú tài, đại học. Hệ thống xử lí biểu
mẫu tự động sẽ khắc phục khó khăn vừa nêu.
Ở nước ta hiện nay việc chấm thi trắc nghiệm tự động ở các kỳ thi lớn (tú tài,
đại học) đã được ứng dụng phổ biến cũng như lĩnh vực điều tra dân số cũng đã ứng
dụng hệ thống xử lí biểu mẫu tự động. Phòng Nhận dạng và Công nghệ Tri thức
(Viện Công nghệ Thông tin) đã có phần mềm MarkRead phục vụ việc chấm thi trắc
nghiệm, điều tra dân số,... đã được thương mại hóa [22].
Hệ thống xử lí biểu mẫu tự động là một hệ thống nhập liệu tự động. Nó có 2
chức năng chính: (i) hỗ trợ nhập liệu nhanh chóng, chính xác và tiện dụng; (ii)
thông tin sau khi nhập vào phải được lưu trữ, xử lí, thống kê, tra cứu dễ dàng trong
máy tính.
12
Biểu mẫu giấy trước khi được xử lí cần phải được số hóa (digitalization). Có
hai hình thức số hóa: trực tiếp, thông qua các thiết bị bảng điện tử (electronic
clipboard device hay tablet) và gián tiếp, thông qua máy quét ảnh (scanner), máy
ảnh kỹ thuật số (camera),... Tùy theo hình thức số hóa mà kỹ thuật xử lí biểu mẫu
sẽ khác nhau. Trong đề tài này chúng tôi chỉ nghiên cứu việc xử lí biểu mẫu dạng
ảnh quét (form image). Ảnh này chứa các thông tin trên biểu mẫu, gồm các thông
tin in sẵn (preprinted data) và thông tin đã điền vào (filled data).
1.2.
Hệ thống xử lí biểu mẫu tự động
Hình 1.1: Hệ thống xử lí biểu mẫu tự động
Hệ thống xử lí biểu mẫu tự động có các chức năng chính (Hình 1.1):
•
Số hóa biểu mẫu giấy (digitalization of form).
•
Phân tích biểu mẫu (form analysis).
13
•
Nhận dạng biểu mẫu (form recognition)
•
Nhận dạng dữ liệu viết tay (OCR - Optical Character Recognition hay
HandWritter recognition).
1.2.1.
Số hóa biểu mẫu giấy
Đây là bước đầu tiên trong quá trình xử lí biểu mẫu. Bước này có nhiệm vụ
chuyển thông tin từ biểu mẫu giấy thành thông tin dưới dạng ảnh, với những định
dạng ảnh quen thuộc (bmp, png, tif, jpeg,....). Ảnh này chứa thông tin nguyên cả
biểu mẫu. Thông thường máy quét ảnh được dùng để số hóa, với độ phân giải
300dpi hoặc cao hơn, không gian màu là RGB hoặc Grayscale. Ảnh của biểu mẫu
được lưu trong bộ nhớ máy tính trước khi được xử lí. Trong giai đoạn này ảnh được
tiền xử lí (preprocessing): chống nghiên (deskew), khử nhiễu (noise removal), …
Chất lượng ảnh càng tốt thì kết quả xử lí càng cao và ngược lại.
1.2.2.
Phân tích biểu mẫu
Do tất cả thông của biểu mẫu đều được biểu diễn dưới dạng ảnh (image). Để
có thể “hiểu” nội dung trên biểu mẫu thì ảnh này phải được phân tích (form image
analysis). Phân tích ảnh biểu mẫu có nhiệm vụ trích xuất (capture) các thông tin trên
biểu mẫu. Các thông tin này gồm: cấu trúc các ô nhập (xem hình 1.2), chữ viết in,
ký hiệu đặc biệt, màu sắc, lưu đồ, biểu đồ,.....
Hình 1.2: Phân tích cấu trúc ô nhập.
Tùy theo nhu cầu mà chọn loại thông tin cần phân tích, trích xuất và phương
pháp phân tích phù hợp. Những thông tin của biểu mẫu được trích xuất từ giai đoạn
14
phân tích được dùng như các đặc trưng dùng trong việc mô hình hóa biểu mẫu, nhận
dạng biểu mẫu, và cũng được dùng trong giai đoạn trích xuất dữ liệu của hệ thống
nhận dạng dữ liệu, như nhận dạng chữ viết tay điền vào biểu mẫu chẳng hạn.
1.2.3.
Nhận dạng biểu mẫu
Tùy theo nhu cầu thu thập thông tin, mỗi cơ quan, đơn vị sẽ có những loại
biểu mẫu tương ứng, số loại biểu mẫu thường nhiều. Mỗi loại biểu mẫu chỉ được
dùng cho một mục tiêu thu thập thông tin cụ thể và có cấu trúc xác định. Muốn trích
xuất dữ liệu chính xác từ biểu mẫu phải xác định được loại biểu mẫu (nhận dạng).
Nhận dạng sai thì việc trích xuất dữ liệu sẽ sai. Đây là giai đoạn đầu tiên của quá
trình xử lí biểu mẫu. Mức độ tự động hóa của hệ thống phụ thuộc rất lớn vào chức
năng nhận dạng biểu mẫu.
Nhận dạng biểu mẫu là định danh (identification) một ảnh thuộc một loại
biểu mẫu nào đó trong tập hợp nhiều loại biểu mẫu (xem hình 1.3). Việc nhận dạng
sẽ dựa vào thông tin đặc trưng của biểu mẫu: như mã vạch (barcode), màu sắc
(color), ký hiệu đặc biệt (symbol), cấu trúc vùng nhập, từ khóa,....tiếp theo dùng các
giải thuật máy học hoặc so khớp mẫu để nhận dạng. Biểu mẫu là một loại ảnh tài
liệu (document image) đặc biệt và phương pháp so khớp được dùng phổ biến để
nhận dạng [11].
Hình 1.3: Nhận dạng biểu mẫu.
Để có thể dùng phương pháp so khớp, thông tin về loại biểu mẫu được biểu
diễn dưới dạng mô hình biểu mẫu (form prototype, form template). Mỗi mô hình
15
biểu mẫu chứa các thông tin đặc trưng một biểu mẫu, được biểu diễn bằng những
cấu trúc dữ liệu dể dàng xử lí được trong máy tính. Mỗi hệ thống đều có sẵn một cơ
sở dữ liệu mô hình biểu mẫu (form prototype database). Cơ sở dữ liệu này có thể
được cập nhật trong quá trình sử dụng.
Việc nhận dạng một biểu mẫu là việc so khớp (matching) những đặc trưng
của biểu mẫu đó với thông tin các biểu mẫu đã được lưu trong cơ sở dữ liệu. Dựa
vào mức độ tương đồng để xác định được loại biểu mẫu.
1.2.4.
Nhận dạng dữ liệu viết tay
Sau khi biểu mẫu đã được nhận dạng, bước tiếp theo là diễn dịch dữ liệu cần
quan tâm thành những định dạng điện tử quen thuộc (electronic format, computer
readable format).
Hình 1.4: Nhận dạng ký tự viết tay.
Thông tin cần trích xuất từ ảnh biểu mẫu thì đa dạng: chữ viết (text), biểu
tượng, lưu đồ, biểu đồ, thông tin đánh dấu (checkbox),.... Nhưng thông dụng nhất
vẫn là thông tin chữ viết. Nên khi nói đến nhận dạng dữ liệu trích xuất từ biểu mẫu
thường được xem là nhận dạng ký tự viết tay.
Có hai cách viết ký tự lên biểu mẫu: viết liên tục và viết rời rạc. Cách viết rời
rạc là mỗi ký tự trong một ô (xem hình 1.4), cách viết này có nhiều ưu điểm hơn
cách viết liên tục vì ít sai sót và dể xử lí. Tuy nhiên có nhược điểm là viết chậm,
thiếu tự nhiên. Cách viết liên tục là cách viết tự nhiên, có thể viết nhanh nhưng khó
xử lí.
16
1.3.
Phạm vi của đề tài
Nhiều hệ thống xử lí biểu mẫu tự động chỉ xử lí trên những loại biểu mẫu
được thiết kế hướng đến việc xử lí bằng máy tính, chứa nhiều thông tin đặc thù
nhưng không cần thiết đối với con người. Trong thực tế hầu hết các loại biểu mẫu
được thiết kế không nhằm mục đích xử lí bằng máy tính. Do đó, bài toán xử lí biểu
mẫu tự động được chia thành hai lớp: (1) lớp bài toán xử lí biểu mẫu có chứa nhiều
thông tin đánh dấu hướng đến việc xử lí bằng máy tính và (2) lớp bài toán xử lí biểu
mẫu tổng quát, tức các biểu mẫu khi xử lí hệ thống không yêu cầu thay đổi hình
thức và nội dung có sẵn của nó. Giải quyết lớp bài toán (2) là mục đích của đề tài
này.
Xử lí biểu mẫu
Biểu mẫu trắng
Trích xuất nhãn
vùng nhập
Biểu mẫu đã điền
Trích đặc trưng
cấu trúc vùng nhập
Nhận dạng biểu mẫu
Cơ sở dữ liệu
mẫu biểu mẫu
Kết hợp nhãn và
thông tin vùng nhập
Trích xuất dữ liệu
Nhận dạng dữ liệu
Tập tin XML
Cơ sở dữ liệu
khai thác
Hình 1.5: Sơ đồ hoạt động của hệ thống.
Để xử lí loại biểu mẫu tổng quát, đề tài tập trung giải quyết hai mục tiêu
chính là: nghiên cứu vấn đề mô hình hóa và nhận dạng biểu mẫu.
Bên cạnh đó, để hoàn chỉnh một hệ thống xử lí biểu mẫu, vấn đề nhận dạng
ký tự viết tay cũng được trình bày. Sơ đồ hoạt động của hệ thống thể hiện ở hình
1.5.
17
1.3.1.
Mô hình hóa biểu mẫu (form modeling)
1.3.1.1. Đăng ký biểu mẫu (form registration)
Các hệ thống xử lí biểu mẫu chỉ có thể xử lí các dạng biểu mẫu biết trước,
nên loại biểu mẫu mà mỗi hệ thống có thể xử lí là hữu hạn. Một loại biểu mẫu mới
muốn được xử lí trong hệ thống thì thông tin của nó cần được “khai báo”. Việc này
được gọi là đăng ký biểu mẫu với hệ thống hay gọi tắt là đăng ký biểu mẫu.
Hiện có hai hình thức đăng ký: thủ công và tự động. Với hình thức thủ công,
người dùng phải tự xác định các thông tin cần thiết và nhập vào hệ thống. Việc này
mất nhiều thời gian nhưng vẫn là cách làm khá phổ biến ([2],[5]). Để cải thiện, hình
thức đăng ký tự động được đề nghị. Với cách mới này, những thông tin có thể xác
định tự động sẽ do máy tính đảm nhiệm, ví vụ như vị trí, loại vùng nhập chẳng hạn
[6]. Tốc độ sẽ nhanh hơn và tiện lợi hơn. Kiểu dữ liệu vùng nhập thì do con người
xác định. Đề tài này chọn cách đăng ký tự động, hoàn thiện hơn [6], đó là việc trích
nhãn tự động và ánh xạ vùng nhập với nhãn tương ứng. Các thông tin đăng ký sẽ
được lưu lại dưới dạng một mô hình biểu mẫu.
Hình 1.6: Tạo mô hình biểu mẫu
1.3.1.2. Mô hình biểu mẫu (form template)
Mô hình biểu mẫu chứa các thông tin đặc tả một loại biểu mẫu. Mỗi biểu
mẫu có một mô hình riêng. Mô hình biểu mẫu được dùng trong các tác vụ xử lí biểu
18
mẫu khác như: nhận dạng, trích xuất dữ liệu,.... Mỗi ứng dụng sẽ có những yêu cầu
mô hình hóa riêng dựa trên thông tin chứa trong ảnh biểu mẫu. Nên công việc quan
trọng nhất trong mô hình hóa là phân tích biểu mẫu. Phân tích biểu mẫu có nhiệm
vụ trích lọc (extraction) các thông tin cần mô hình hóa.
Thường các biểu mẫu trắng (blank form – biểu mẫu chưa được điền thông
tin) sẽ được dùng để mô hình hóa.
1.3.2.
Phân tích biểu mẫu
Phân tích biểu mẫu là quá trình trích xuất các thông tin ghi trên biểu mẫu từ
tập ảnh của nó. Phân tích là khâu quan trọng nhất của quá trình xử lí biểu mẫu.
Mục đích chính của việc phân tích biểu mẫu là trích xuất các thông tin cần
quan tâm trên biểu mẫu như: ký tự (nhãn), cấu trúc ô nhập (loại ô nhập). Các thông
tin này sẽ được dùng cho giai đoạn mô hình hóa, nhận dạng và trích xuất dữ liệu
điền vào biểu mẫu .
Nhãn (label)
Ô nhập (textbox)
Hình 1.7: Nhãn và ô nhập của biểu mẫu.
1.3.3.
Nhận dạng biểu mẫu
Hướng tiếp cận của đề tài là không dùng các giải thuật máy học và không
dựa vào các thông tin đánh dấu như mã vạch, màu sắc, ký hiệu đặc biệt in trên biểu
19
mẫu. Việc bổ sung thông tin đánh dấu làm tăng chi phí việc sử dụng biểu mẫu.
Phương pháp được dùng là so khớp để nhận dạng biểu mẫu, đặc trưng là bộ từ khóa
(keywords). Cách làm này giúp giảm chi phí in biểu mẫu và dể dàng bổ sung một
loại biểu mẫu mới vào hệ thống.
Tập hợp các nhãn trích xuất từ biểu mẫu trắng được chọn làm đặc trưng hay
được xem như bộ từ khóa của biểu mẫu đó. Mỗi biểu mẫu sẽ có bộ từ khóa khác
nhau, đặc trưng cho một biểu mẫu. Việc nhận dạng dựa trên bộ từ khóa này. Quá
trình nhận dạng có thể mô tả như sau: biểu mẫu cần nhận dạng sẽ được trích các từ
khóa, các từ khóa này được so khớp với bộ từ khóa từng loại biểu mẫu trong cơ sở
dữ liệu biểu mẫu. Nếu độ tương đồng lớn hơn một ngưỡng nào đó thì biểu mẫu đó
được nhận dạng.
Trình nhận dạng ký tự in Tesseract tiếp tục được dùng trong giai đoạn nhận
dạng biểu mẫu.
1.3.4.
Nhận dạng dữ liệu viết tay
Các ký tự của thông tin viết tay đều biểu diễn dưới dạng ảnh. Để máy tính có
thể “hiểu” được thì các nội dung viết tay trên các vùng ảnh tương ứng của biểu mẫu
phải được nhận dạng. Tức diễn dịch nội dung viết tay được điền trên biểu mẫu
thành các ký tự máy hiểu được (dạng text).
Trong đề tài này, chúng tôi chỉ xử lí dạng ký tự viết tay rời rạc được viết vào
các ô nhập dạng chữ nhật liên tục, mỗi ô một ký tự, viết từ trái sang phải, nét viết
mỗi ký tự nằm trọn vẹn trong ô.
1.4.
Bố cục của luận văn
Nội dung luận văn này gồm 6 chương:
Chương 1 – Giới thiệu: trình bày những vấn đề liên quan đến hệ thống xử lí
biểu mẫu tự động và phạm vi của đề tài.
20
Chương 2 – Biểu mẫu và trích xuất đường thẳng trên biểu mẫu: giới
thiệu khái niệm biểu mẫu, phân loại biểu mẫu, các loại thông tin điền trong biểu
mẫu. Tiếp theo trình bày phương pháp trích xuất đường thẳng từ ảnh biểu mẫu. Giới
thiệu chi tiết phương pháp Directional Single-Connected Chain (DSCC) để trích
xuất các đường thẳng trong ảnh biểu mẫu.
Chương 3 – Phân tích biểu mẫu: Trong chương này sẽ giải quyết vấn đề
trích xuất thông tin cấu trúc vùng nhập và nhãn. Từ kết quả các đường thẳng được
trích xuất ở chương hai, một phương pháp gom nhóm các đường thẳng này thành
cấu trúc ô nhập sẽ được trình bày. Giới thiệu phương pháp trích xuất nhãn dùng
công cụ OCR (Tesseract và VietOCR).
Chương 4 – Mô hình hóa và nhận dạng biểu mẫu: Thông tin về mô hình
biểu mẫu sẽ được trình bày chi tiết: nội dung, cấu trúc, lưu trữ và cách truy xuất.
Trong chương này một số phương pháp nhận dạng biểu mẫu cũng được giới thiệu
và phương pháp dùng từ khóa để nhận dạng sẽ được trình bày chi tiết.
Chương 5 – Nhận dạng ký tự viết tay offline dùng SVM: trình bày về
một mô hình dạng ký tự viết tay dạng offline dùng phương pháp máy học SVM.
Việc huấn luyện và kiểm tra dựa trên trên tập dữ liệu do chúng tôi tự xây dựng.
Chương 6 – Kết luận: đánh giá các kết quả đã đạt được và đề xuất hướng
phát triển của đề tài.
21
Chương 2:
BIỂU MẪU VÀ TRÍCH XUẤT ĐƯỜNG
THẲNG TỪ ẢNH BIỂU MẪU
Không có một hệ thống xử lí tất cả các loại biểu mẫu, nên mục tiêu chính của
chương này là giới thiệu những loại biểu mẫu được dùng phổ biến nhất và sẽ được
nghiên cứu phương pháp xử lí trong đề tài này. Chương 2 có hai nội dung chính:
tổng quan về biểu mẫu và phương pháp trích xuất đường thẳng từ ảnh biểu mẫu
(form frame line extraction).
Trong phần 2.1 tổng quan về biểu mẫu, chúng tôi sẽ trình bày về khái niệm,
lợi ích, phân loại biểu mẫu,....
Tiếp theo, trong phần 2.2 chúng tôi sẽ giới thiệu một số phương pháp trích
xuất đường thẳng từ ảnh biểu mẫu và trình bày chi tiết phương pháp Directional
Single-Connected Chain (DSCC).
Cuối cùng là một số kết quả thực nghiệm của phương pháp trích xuất đường
thẳng đã chọn.
2.1.
2.1.1.
Tổng quan về biểu mẫu
Khái niệm biểu mẫu
Biểu mẫu là một loại tài liệu chứa những khoảng trống (trường, vùng nhập)
cho phép chúng ta chọn lựa hoặc điền thêm thông tin. Một loại biểu mẫu thường là
một chuỗi tài liệu có nội dung tương tự nhau. Nội dung biểu mẫu thường đã được in
trước một phần, là các thông tin chung.
Chủng loại biểu mẫu rất đa dạng, tùy thuộc vào mục đích sử dụng. Nội dung
của biểu mẫu thường là: mệnh lệnh, yêu cầu, đơn đặt hàng, bài kiểm tra,.....
2.1.2.
Lợi ích của biểu mẫu
Biểu mẫu là một loại tài liệu đặc biệt, được dùng ngày càng nhiều do một số
lợi ích sau:
22
•
Người sử dụng viết ít hơn, do một số thông tin chung được in sẵn trên
biểu mẫu, nên chỉ cần điền vào một số thông tin cần thiết là có thể hoàn chỉnh một
tài liệu biểu mẫu. Ngoài ra, trên biểu mẫu còn có các thông tin chỉ dẫn giúp người
điền thông tin dễ dàng và chính xác hơn.
•
Thông tin thống nhất: do biểu mẫu được thiết kế và in sẵn với cấu trúc
xác định nên các thông tin cần thiết điền trên biểu mẫu là thống nhất. Dễ dàng kiểm
tra tính đúng đắn của thông tin.
•
Thuận lợi trong việc xử lý: tính xác định về mặt cấu trúc và tính nhất
quán về mặt thông tin nên dễ dàng hơn trong việc xử lý kể cả xử lý thủ công và xử
lý tự động. Đặc biệt là thuận lợi trong việc xử lý bằng máy tính điện tử.
2.1.3.
Các kiểu vùng nhập của biểu mẫu
Để đem lại những lợi ích cho việc điền và xử lí, các vùng nhập (input fields)
của biểu mẫu được thiết kế với cấu trúc xác định. Thông tin điền vào được giới hạn
trong các cấu trúc này. Việc chứa các cấu trúc vùng nhập là điểm đặc thù của ảnh
biểu mẫu so với các loại ảnh tài liệu khác.
Cấu trúc vùng nhập rất đa dạng, tùy theo mục đích sử dụng. Mỗi cấu trúc
được dùng để việc điền và xử lí dể dàng một loại thông tin nào đó. Các cấu trúc
vùng nhập thường dùng nhất là:
Hình 2.1: Kiểu ô nhập dạng ô ký tự
•
Kiểu trường nhập theo ô từng ký tự (Textbox Field): cho phép điền
thông tin dạng rời rạc theo từng ký tự vào các ô nhập (Boxed Discrete Characters).
Có các dạng như các ô liên tục dính liền nhau, các ô rời nhau hoặc dạng răng cưa.
23
Mỗi ký tự được viết trong một ô xác định. Dạng này thích hợp cho những trường
chứa thông tin quan trọng cần có sự phân biệt rõ ràng tránh nhầm lẫn như: họ tên,
ngày tháng năm sinh, mã hồ sơ, mã vùng... Mỗi trường thường có nhiều ô nhập
(InputTextBoxArea) .
•
Kiểu trường nhập đánh dấu (CheckBox Field): cho phép chọn lựa
trong một hoặc thông tin được in sẵn, ví dụ trường giới tính nam/nữ, nghề nghiệp...
Mỗi trường nhập đánh dấu có thể có một hoặc nhiều ô nhập đánh dấu tương ứng với
số thông tin chọn lựa (InputCheckBoxArea) .
Hình 2.2: Kiểu ô nhập đánh dấu.
•
Kiểu trường nhập dạng đường thẳng (Line Field): cho phép điền thông
tin dạng chuỗi ký tự liên tục, có cấu trúc liên tục hoặc chấm chấm (Dashed Line).
Mỗi trường thường có một hoặc nhiều dòng (InputLineTextArea).
Hình 2.3: Kiểu ô nhập dạng đường thẳng.
•
Kiểu trường nhập dạng bảng (table form): cho phép điền thông tin tổ
chức dạng bảng, thường là dạng thông tin liên tục giống dạng đường thẳng. Kiểu
trường nhập này không thuộc phạm vi nghiên cứu của đề tài này.
24
•
Kiểu trường nhập tự do (free field): cho phép điền thông tin dạng hình
ảnh như ảnh chụp, hình vẽ, sơ đồ, chữ ký,......
Kiểu trường nhập dạng bảng và tự do không thuộc phạm vi nghiên cứu của
đề tài này.
2.1.4.
Kiểu dữ liệu chứa trong biểu mẫu
Thông tin trên biểu mẫu gồm 2 phần: phần được in sẵn và phần thông tin
được điền vào.
2.1.4.1. Thông tin in sẵn
▪
Chữ viết/số: chữ viết dạng in, thường là cùng font, rõ ràng.
▪
Hình ảnh: hình logo, mã vạch, màu sắc, kí hiệu đặc biệt, …..
2.1.4.2. Thông tin điền vào
▪
Chữ viết/số: chữ/số viết tay.
▪
Luận lí: biểu diễn dữ liệu của các ô chọn.
▪
Hình ảnh: hình dán vào, chữ ký, sơ đồ,....
Việc phân loại kiểu dữ liệu nhập cho các trường có ý nghĩa quan trọng trong
việc nhận dạng nội dung viết tay. Phạm vi nghiên cứu của đề tài chỉ tập trung nhận
dạng chữ viết tay dưới dạng ký tự rời rạc theo từng ô, do đó có thể chia dữ liệu nhập
thành các kiểu như sau: kiểu số (Number), kiểu chữ hoa (UpperAlpha), kiểu hỗn
hợp chữ hoa-số (UpperAlphaNum), kiểu chữ (Alpha), kiểu hỗn hợp chữ-số
(AlphaNum), kiểu khác (các kiểu có thể có còn lại).
2.2.
Trích xuất đường thẳng từ biểu mẫu (Line Extraction)
Mục tiêu chính của xử lí biểu mẫu là trích xuất nội dung đã được điền vào
các vùng nhập. Đa số các vùng nhập có cấu trúc dạng hình chữ nhật (rectangle) giới
hạn bởi các đường thẳng ngang (horizontal lines) và đường thẳng dọc (vertical
lines). Các đường thẳng này là thành phần cấu trúc cơ sở của cấu trúc vùng nhập. Vị
trí và sự kết hợp (interlace) của nó tạo nên bố cục (layout) của biểu mẫu, được dùng
để phân tích (analysis) và nhận dạng (recognition) biểu mẫu. Do đó việc trích xuất
25