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ạ
Trang 1BỘ 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
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn: TS TRẦN CAO ĐỆ
Trang 3LỜ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
Trang 4LỜ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
Trang 5MỤ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
Trang 6Chươ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
Trang 7DANH 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
Trang 8Hì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
Trang 9DANH 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
Trang 10TÓ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),
Trang 11Forms 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,
Trang 12Chương 1: TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU 1.1 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
Trang 13Biể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ệ 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)
Hình 1.1: Hệ thống xử lí biểu mẫu tự động
Trang 14• 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 đồ,
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
Hình 1.2: Phân tích cấu trúc ô nhập.
Trang 15phâ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]
Để 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
Hình 1.3: Nhận dạng biểu mẫu.
Trang 16biể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 readableformat)
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í
Hình 1.4: Nhận dạng ký tự viết tay.
Trang 171.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í 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
Hình 1.5: Sơ đồ hoạt động của hệ thống.
Xử lí biểu mẫu
Cơ sở dữ liệumẫu biểu mẫuBiểu mẫu trắng Biểu mẫu đã điền
Kết hợp nhãn và thông tin vùng nhập
Nhận dạng biểu mẫu
Trích xuất dữ liệu
Nhận dạng dữ liệu
Cơ sở dữ liệu khai thác
Trích đặc trưng cấu trúc vùng nhập
Trích xuất nhãn
vùng nhập
Tập tin XML
Trang 181.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
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
Hình 1.6: Tạo mô hình biểu mẫu
Trang 19mẫ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
Trang 20mẫ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
Trang 21Chươ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
Trang 22Chươ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 Tổng quan về biểu mẫu
2.1.1 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:
Trang 23• 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à:
• 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
Hình 2.1: Kiểu ô nhập dạng ô ký tự
Trang 24Mỗ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)
• 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)
• 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
Hình 2.2: Kiểu ô nhập đánh dấu.
Hình 2.3: Kiểu ô nhập dạng đường thẳng.
Trang 25• 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
Trang 26tất cả các đường thẳng ngang và dọc trong ảnh biểu mẫu là bước quan trọng đầu tiên của hầu hết ứng dụng xử lí biểu mẫu ([3],[10],[12],[16],[17]).
Quy trình chung để tách đường thẳng là tách tuần từ các đường thẳng dọc (horizontal line extraction) và các đường thẳng ngang (vertical line extraction) từ ảnh biểu mẫu Trong ảnh có nhiều đối tượng “tương tự” đường thẳng cũng được tách Trong số đó có nhiều đường thẳng không tạo nên cấu trúc vùng nhập nên cần được loại bỏ (lines emilination) Sau khi loại bỏ những đường thẳng nhận được hầu hết là thành phần của cấu trúc vùng nhập cần trích xuất (xem hình 2.4)
Cấu trúc vùng nhập được trích xuất dựa trên các đường thẳng ngang/dọc Tùy theo loại cấu trúc vùng nhập sẽ có giải thuật trích xuất tương ứng
Hình 2.4: Quy trình trích xuất đường thẳng.
Trang 272.2.1 Phương pháp trích đường thẳng
Khái niệm thông thường là mỗi đường thẳng có hai điểm đầu/cuối (start/end point), độ dầy (thickness) bằng một điểm ảnh (pixel), các pixel từ điểm bắt đầu đến điểm cuối là liên tục, hay còn được gọi là đường thẳng lí tưởng Đường thẳng cần trích từ ảnh biểu mẫu có nhiều điểm khác với đường thẳng lí tưởng Nó là một khối các điểm ảnh, có độ dầy lớn hơn một điểm ảnh, có đứt nét và nghiêng một góc Ө nào đó (hình 2.5)
Việc diễn dịch hình 2.5 thành một đường thẳng được gọi là trích xuất đường thẳng Hiện có nhiều phương pháp trích đường thẳng đã được đề xuất, dựa vào hai hướng tiếp cận chính: biến đổi Hough (Hough Transform-based, HT) và vectơ hóa (vectorization)([1],[15],[18]) Trong đó hướng tiếp cận vectơ hóa ảnh có các phương pháp dựa vào: tách biên (contour-based), làm mỏng (thinning-based), (run-graph-based), (mesh-pattern-based) và dãy điểm ảnh (pixel-tracking-based) Hướng tiếp cận vectơ hóa ứng dụng nhiều trong lĩnh vực phân tích và nhận dạng ảnh tài liệu (Document Analysis and Recognition) [18]
Phương pháp dựa vào biến đổi Hough có thể được xem là phương pháp tổng quát, thường được dùng nhất, để trích đường thẳng từ ảnh, đường thẳng có thể không liền nét và nghiêng một góc bất kỳ Khuyết điểm của phương pháp này là tốc
độ chậm và rất khó khăn trong việc chọn ngưỡng (threshold) độ dài của đường thẳng sao cho có thể phân biệt giữa đường thẳng ngắn và nhiễu Để cải thiện tốc độ nhiều cải tiến đã được đề nghị như: gradient-based HT, randomized HT, probabilistic HT và sampling HT [15]
Hình 2.5: Dạng tổng quát của đường thẳng trong ảnh.
Phần đầu Phần cuối
Trang 28Các phép toán hình học (morphological operations) được dùng để trích xuất đường thẳng đề xuất bởi Li Xingyuanet al.[16] Phương pháp này xử lí khá tốt đối với trường hợp nhiễu và các đường thẳng mất nét Tuy nhiên, đường thẳng kết quả
dể bị lệch so với đường thẳng cần trích Các phép toán mở (opening morphological operation) và đóng (closing morphological operation) thường làm mất thông tin các đường thẳng đứt nét Phương pháp này có tốc độ xử lí khá chậm [15]
Phương pháp chiếu (projection) được đề xuất bởi Jiun-Lin Chen et al [19] Đây là một cải tiến của tiếp cận biến đổi Hough, tốc độ nhanh Ý tưởng của phương pháp là chia ảnh thành các dãi ngang dọc (horizontal/vertical strips) đồng dạng Thực hiện phép chiếu ngang đối với dãi dọc và phép chiếu dọc đối với dãi ngang Đỉnh của kết quả chiếu chỉ ra vị trí của đường thẳng Khuyết điểm của phương pháp này là không xử lí được đường thẳng nghiêng, bị ảnh hưởng bởi các nét viết chồng lên đường thẳng và các đường thẳng gần biên của ảnh dể bị biến dạng Ngoài
ra một vài đường cong cũng được trích xuất như đường thẳng
Trong đề tài này chúng tôi chọn phương pháp dựa vào hướng tiếp cận Directional Single-Connected Chain ([1], [13]) đề xuất bởi Y Zhen et al Ưu điểm của phương pháp được chọn là có thể trích các đường thẳng với góc nghiên bất kỳ, chịu đựng nhiễu tốt và tốc độ khá nhanh
2.2.2 Phương pháp DSCC (Directional Single-Connected Chain)
Đây là một phương pháp dựa trên hướng tiếp cận vectơ hóa ảnh Ý tưởng chính là dùng một thành phần cấu trúc ảnh (image structure element) có tên gọi
“Directional Single-Connected Chain” như một vectơ cơ sở (elementary vector) Mỗi DSCC có kích thước (size) thích hợp và có cấu trúc dể dàng lưu trữ và xử lí Bằng cách ghép (merge) các DSCC lại với nhau (dựa trên một số ràng buộc) ta sẽ lọc ra được các đường thẳng
2.2.2.1 Định nghĩa DSCC
Có hai loại DSCC: DSCC ngang và DSCC dọc, mỗi loại dùng để trích xuất (extract) các đường thẳng ngang và dọc tương ứng Các đường thẳng xéo (diagonal)
Trang 29vẫn được trích xuất dựa trên DSCC ngang hoặc dọc.
Để tiện cho việc định nghĩa ta chọn DSCC ngang làm ví dụ: DSCC ngang
Ch được tạo bởi một mảng các chuỗi điểm ảnh (run-length) R1R2 R m , trong đó
mỗi R i là một chuỗi điểm ảnh dọc
R ix i , ys i , ye i={x , y ∣∀ p x , y=1, x= x i , y ∈[ ys i , ys e]∧p x i , ys i−1= p xi , ye i1=0}
(2.1)
Trong đó:
• p(x,y): giá trị của điểm ảnh (x,y), 1: điểm ảnh đen, 0 điểm ảnh trắng.
• x i ,ys i ,ye i : toạ độ x, tọa độ y bắt đầu và kết thúc của R i tương ứng.
Mỗi hai chuỗi điểm ảnh R i và R i+1 kề nhau phải thỏa mãn hai điều kiện sau:
1 được kết nối theo chiều dọc: x i+1 = x i + 1 và
2 là kết nối đơn (single connected)
Theo hình 2.6, kết nối đơn là kết nối mà mỗi cạnh của R i (1 < i < m) chỉ có một và chỉ một chuỗi điểm ảnh được kết nối thuộc C h Điều kiện này chỉ đúng đối
Hình 2.6: DSCC ngang (nguồn [13]).
Trang 30với các chuỗi điểm ảnh bên phải của R 1 và bên trái của R m
Đối với chuỗi bên trái của R 1 và bên phải của R m thì, hoặc không có chuỗi
điểm ảnh nào được kết nối (ví dụ: bên phải R 13), hoặc nhiều hơn một chuỗi điểm
ảnh được kết nối (ví dụ: R 14 , R 15 bên trái R 1), hoặc chỉ một chuỗi điểm ảnh được kết nối nhưng chuỗi điểm ảnh này lại được kết nối với nhiều hơn một chuỗi điểm ảnh
cùng phía với R 1 hoặc R m (ví dụ: R 9) Các chuỗi điểm ảnh
R1R2R3 R7, R11R12R13, R8,R9,R10,R14và R15 là các DSCC ngang
Việc xác định DSCC dọc C v cũng được thực hiện tương tự như chiều ngang
Thuộc tính quan trọng nhất của một đường thẳng là các chuỗi điểm ảnh của
nó kết nối đơn theo hướng (running direction) Một đường thẳng lý tưởng chỉ có một DSCC Thực tế thì nó có thể bị đứt nét, cắt bởi các ký tự và được tạo ra bởi nhiều DSCC gần nhau Dựa theo thuộc tính này, DSCC rất thích hợp để xác định các đường thẳng
2.2.2.2 Nối các DSCC
Rất nhiều đường thẳng được tạo bởi nhiều DSCC, để trích xuất được đường thẳnh mong muốn cần ghép các DSCC lại với nhau Điều kiện ghép dựa vào khái niệm “khoảng cách 2 đường thẳng” (co-line distance)
Hình 2.7: Minh họa việc trích các DSCC ngang
(Nguồn: [13])
Trang 31Khoảng cách 2 đường thẳng chỉ ra khả năng hai DSCC có thể ghép lại với nhau thành đường thẳng hay không Giả sử ta có một đường thẳng cắt giữa một DSCC C= R1R2 R n là ŷ(x), khoảng cách giữa hai đường thẳng giữa 1 DSCC
• dcc': khoảng cách từ điểm giữa (mid-points) của C' đến phần mở rộng
(2.2)
Hình 2.8: Khoảng cách giữa hai đường thẳng (co-line distance) (Nguồn: [1])
nếunếu
(2.3)
Trang 32của C Giá trị này càng nhỏ thì khả năng ghép C và C' càng cao
Lưu ý: chỉ những chuỗi điểm ảnh bình thường (normal run-length, chuỗi
điểm ảnh có chiều dài nhỏ hơn hai lần chiều rộng của DSCC, ngược lại là abnormal run-length) mới được xét.
• M: số lượng chuỗi điểm ảnh (bình thường) trong C'
C' có thể ghép với C nếu thỏa mãn các điều kiện sau:
1) Điều kiện mở rộng tuyến tính: d cc '−d xW với W là chiều rộng
trung bình của C
2) Điều kiện khoảng cách: có ba khả năng
(a) Rỗng: nếu dx <= T1 (T1=15), C và C' được ghép Ngược lại, khoảng cách quá lớn nên C' không thể ghép với C
(b) Tồn tại một DSCC khác và nó có chiều rộng nhỏ hơn hai lần chiều rộng trung bình của C: xử lí giống trường hợp (a)
(c) Tồn tại một DSCC khác và nó có chiều rộng lớn hơn hai lần chiều rộng trung bình của C Ở đây đường thẳng ngang bị cắt bởi một đường thẳng dọc Giá trị ngưỡng nhỏ T2 được dùng Nếu dx = T2, C và C' được ghép, ngược lại thì không
Các bước ghép hai DSCC:
1 Tìm chuỗi bắt đầu Cs: là chuỗi dài nhất chưa được ghép
2 Dựa vào một phía của Cs, sắp xếp các chuỗi Ci'(i=1,2, ,n) theo thứ tự tăng dần của “khoảng cách đường thẳng”
3 Dựa vào M (M=3) chuỗi đầu tiên, nếu chúng ta tìm ra chuỗi Ck' có khoảng cách giữa hai đường thẳng nhỏ nhất, thỏa hai điều kiện ghép ở trên, khi đó
sẽ ghép Cs và Ck'
4 Lặp lại hai bước 2 và 3 đối với hai phía (trái/phải) của Cs
5 Nếu tất cả các chuỗi đều được xét thì kết thúc, ngược lại quay lại bước 1
Trang 332.2.2.3 Một số phương pháp nâng cao hiệu quả giải thuật
Hiệu quả của giải thuật được đánh giá dựa vào hai yếu tố: tốc độ và tính chính xác Các giải thuật trích xuất đường thẳng dựa theo hướng tiếp cận vectơ hóa
có tốc độ chậm hơn phương pháp chiếu Vì số vectơ tạo ra trong quá trình xử lí rất nhiều [1] Tuy nhiên cũng có một số phương pháp nâng cao tốc độ nhưng vẫn giữ nguyên độ chính xác
Tăng độ liền nét của chuỗi điểm ảnh (Run-Length Smearing)
Do việc in ấn, sao chép và quét, có thể làm xuất hiện những điểm không liền nét nhỏ (small breaks) trên đường thẳng, nguyên do này có thể phát sinh nhiều chuỗi điểm ảnh làm chậm tốc độ của giải thuật Bằng cách “vá” những điểm đứt nét nhỏ (hơn một ngưỡng nào đó – 5 điểm ảnh) hay tăng độ liền nét của chuỗi điểm ảnh
sẽ cải thiện tốc độ của giải thuật Theo [1], số DSCC giảm khoảng 20%
Trong thao tác tăng độ liền nét bổ sung thêm chức năng làm liền nét các đường thẳng dạng chấm chấm (dashed lines) Nên giải thuật này có thể mở rộng trích xuất được đường thẳng dạng chấm chấm với ràng buộc khoảng cách giữa các điểm chấm chấm nhỏ hơn ngưỡng nào đó (5 điểm ảnh)
Xóa các DSCC ngắn (Removal of Small DSCC)
Có hơn 50% DSCC có độ dài nhỏ hơn 3 điểm ảnh Các DSCC này được sinh
ra từ ký tự, nhiễu và một số rất ít là các đường thẳng bị mất nét (broken lines) Việc loại bỏ các DSCC này góp phần cải thiện tốc độ giải thuật Điều kiện loại bỏ là:
• Có chiều dài nhỏ hơn ba điểm ảnh
• Có chiều dài nhỏ hơn năm điểm ảnh có một hoặc hai cạnh kết nối với DSCC khác
Loại bỏ các đường thẳng không tạo nên cấu trúc ô nhập
Rất nhiều đường thẳng sau khi được trích xuất không tạo nên cấu trúc ô nhập Các đường thẳng này thường được tạo ra từ các ký tự trong ảnh biểu mẫu
Trang 34Các đường thẳng này sẽ được loại bỏ.
Các đường thẳng thỏa mãn điều kiện sau sẽ được loại bỏ:
• Đường thẳng ngang: không giao nhau với đường thẳng dọc nào và có chiều dài nhỏ hơn một ngưỡng nào đó (10 điểm ảnh) hoặc chỉ giao nhau với một đường thẳng dọc
• Đường thẳng dọc: không giao nhau với bất kỳ đường thẳng ngang nào
2.3 Thực nghiệm
Ảnh được chọn trong thực nghiệm là ảnh biểu mẫu thu được từ máy photocopy có chức năng quét ảnh, máy quét và chụp từ màn hình Ảnh thu được sau khi số hóa được xử lí chống nghiên (deskew), xóa khung (remove border) và chuyển về ảnh nhị phân
Mỗi ảnh biểu mẫu dùng làm thực nghiệm chứa nhiều loại thông tin in sẵn như: logo, ký tự (hoa, thường), gồm nhiều loại ô nhập có cấu trúc và kích thước khác nhau
Mục tiêu thực nghiệm nhằm đánh giá ưu/khuyết điểm của giải thuật, ưu điểm thể hiện ở những yêu cầu sau:
• Trích chính xác đường thẳng có vị trí không lệch với vị trí đường thẳng gốc
• Loại bỏ tốt các đối tượng có hình dáng “tương tự” đường thẳng như: như logo, đường cong, ký tự in hoa,
• Đường thẳng có chiều dài ngắn (ô nhập dạng checkbox, “răng cưa”)
Giải thuật trích xuất đường thẳng thỏa mãn tốt những yêu cầu trên Sau đây là một
số hình ảnh minh họa kết quả:
Trang 35Hình 2.9: Các ô nhập đồng dạng, có kích thước tương đương.
Hình 2.10: Các ô nhập không đồng dạng và có kích thước khác nhau.
Trang 36Hì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.
Hình 2.12: Các ô nhập đồng dạng và có kích thước khác nhau.
Trang 37Việc trích xuất sai thường do những nguyên nhân chính: đường thẳng bị đứt nét khoảng cách lớn (>10 pixel), phần ký tự nhãn quá gần hoặc đè (overlap) lên đường thẳng hoặc hai đường thẳng song song có nhiều chổ “dính” nhau.
Hình 2.14: Lỗi trích đường thẳng Hình 2.13: Ô nhập dạng đường thẳng không liền nét.
Trang 38Chương 3: PHÂN TÍCH BIỂU MẪU
Mục tiêu chính của chương III là trình bày phương pháp trích xuất thông tin cấu trúc ô nhập và nhãn của vùng nhập
Phần phương pháp trích xuất xuất cấu trúc ô nhập sẽ giới thiệu một phương pháp trích xuất dựa vào loại giao điểm của các đường thẳng ngang dọc
Phần trích xuất nhãn sẽ dùng phần mềm mã nguồn mở VietOCR (viết dựa vào công cụ Tessseract OCR của Google)
Cuối cùng là phần thực nghiệm kiểm tra hiệu quả của giải thuật trích xuất cấu trúc ô nhập
3.1 Giới thiệu
Phân tích biểu mẫu là một dạng đặc biệt của bài toán Phân tích Ảnh Tài liệu (Document Image Analysis)([11],[27]) Phân tích là khâu quan trọng nhất trong quá trình xử lí biểu mẫu [8] Ở mức toàn cục (global), việc phân tích sẽ xử lí toàn tập tin ảnh biểu mẫu, như chống nghiên (deskew), phân tích hình học (graphical analysis)
và phân tích văn bản (text analysis) chẳng hạn; ở mức cục bộ, đó là trích xuất các thành phần trên biểu mẫu, ví dụ như thông tin người dùng điền vào, đây là việc phân tích ở mức vật lí (physical analysis) Ngoài ra còn có phân tích ở mức luận lí (logic analysis), nhằm chỉ ra ý nghĩa hoặc mối quan hệ của những thành phần trên biểu mẫu
Do vậy, phương pháp phân tích biểu mẫu rất đa dạng, tùy thuộc mức độ, nội dung phân tích và thường xoay quanh việc thực hiện ba chức năng chính [3]:
◦ Gom nhóm và định vị các các thành phần trên biểu mẫu dựa vào kiểu thông tin: nhóm kiểu ô nhập, nhóm chữ viết
◦ Xác định mối liên hệ giữa nhóm ô nhập và chữ viết
◦ Tách chữ viết khỏi ô nhập Chức năng này còn giải quyết vấn đề chữ viết
đè lên ô nhập (chữ mất nét)
Trang 39Việc phân tích ở mức vật lí tập trung vào phần ảnh có chứa thông tin về vùng nhập (input field) Mỗi vùng gồm hai phần: nhãn và ô nhập có cấu trúc xác định (giới hạn ở dạng cấu trúc vùng nhập tạo bởi các đường thẳng ngang và dọc) Các đường thẳng trong biểu mẫu đã trích xuất sẽ được gom nhóm (lines grouping) tạo nên các cấu trúc ô nhập Trong đề tài này sẽ trình bày cách gom nhóm đường thẳng thành 3 cấu trúc: ô nhập chữ nhật, ô nhập răng cưa và đường thẳng (xem mục 3.2) Nhãn ô nhập được trích xuất bằng chương trình nhận dạng ký tự Tesserract (xem mục 3.3).
Hình 3.1: Phân tích biểu mẫu trắng (blank form)
Trang 40Có hai hướng phân tích: phân tích cấu trúc vùng nhập và nhãn vùng nhập đối với biểu mẫu trắng hay biểu mẫu chưa điền thông tin(blank form), và phân tích nội dung viết trên biểu mẫu đã điền thông tin (filled form)([4]).
3.1.1 Phân tích biểu mẫu trắng
Mục tiêu chính của giai đoạn này là trích xuất các thông tin về cấu trúc và nhãn vùng nhập in sẵn để tạo mô hình biểu mẫu.Phân tích cấu trúc vùng nhập (input field structure) nhằm trích xuất và xác định các thuộc tính cấu trúc của ô nhập, các thuộc tính này gồm:
◦ Loại: ô ký tự (textbox), đường thẳng (line), ô ký tự dạng răng cưa (tooth structure), ô chọn (checkbox), bảng biểu (table),
◦ Vị trí và kích thước: tọa độ bắt đầu, chiều cao/rộng,
◦ Kiểu dữ liệu: kiểu số, kiểu chuỗi ký tự, kiểu hỗn hợp số chữ, kiểu logic,
Phân tích nhãn vùng nhập (input field label) nhằm trích xuất các thông tin về nhãn của vùng nhập Quá trình này được thực hiện thông qua một chương trình OCR (Optical character recognition) ký tự in và bộ nhận dạng ký tự in Tesseract (tesseract ocr engine)[20] sẽ được dùng Kết quả quá trình này là trích xuất được các chuỗi ký tự là ứng cử viên (candidate) làm nhãn một vùng nhập
Tiếp theo là ánh xạ (mapping) mỗi vùng nhập với một nhãn phù hợp Đây là việc phân tích mức luận lí
Tất cả thao tác trên được thực hiện tự động Và hiệu quả của quá trình phân tích được đánh giá thông qua mức độ tự động cao và tính chính xác
Sau cùng tất cả thông tin về vùng nhập và kích thước ảnh biểu mẫu trắng sẽ được lưu lại thành một tập tin XML Tập tin này là mô hình của một biểu mẫu