Thiết kế hệ thống

Một phần của tài liệu Nhận dạng các biểu mẫu tài liệu (Trang 60)

3.1 Hệ thống xử lý biểu mẫu động

3.1.4Thiết kế hệ thống

3.1.4.1.Kiến trúc hệ thống

Kiến trúc của hệ thống đƣợc thể hiện nhƣ trong hình 2. Nó bao gồm: hệ thống chuẩn bị biểu mẫu tạo ra các biểu mẫu động; hệ thống xử lý biểu mẫu, nó có nhiệm vụ trích lọc chữ viết và các thông tin đƣợc nhúng trong biểu mẫu động; và ứng dụng phần mềm/phần cứng hoạt động theo thứ tự đƣa thông tin vào biểu mẫu.

Hình 3.2. Hệ thống biểu mẫu động.

3.1.4.2.Hệ thống chuẩn bị biểu mẫu

Hệ thống này bao gồm một PC với một trình soạn thảo biểu mẫu động (chuẩn bị cho biểu mẫu động) và một máy in.

63

Trình soạn thảo biểu mẫu động là một trình có khả năng sắp xếp các khung đầu vào cùng với tiêu đề của chúng và có khả năng đƣa thông tin vào giống nhƣ các trình soạn thảo biểu mẫu thông thƣờng. Các thông tin đƣa vào có thể đƣợc chọn theo danh sách dựa trên menu.

(2)Nhúng thông tin

Để nhúng thông tin chúng ta sử dụng các điểm có hình dạng đƣờng tròn và các hình chữ nhật (giống nhƣ hình bao).

Đƣờng kính của điểm chấm tròn là 0.1mm và chiều dài đầy đủ của hình chữ nhật là 0.25mm và chúng đại diện cho các ký tự 0 và 1.

Thông tin đƣợc nhúng vào trong khung bao gồm: - Thuộc tính của mục sẽ điền vào.

- Kiểu ký tự sẽ đƣợc sử dụng trong các khung (ví dụ: bảng chữ cái tiếng Anh, con số, ký tự đặc biệt ..)

- Phƣơng hƣớng, chỉ dẫn. - Tiêu đề.

Các thuộc tính đƣợc phân loại theo các mục trên khung thông tin nhập vào và dựa trên ý nghĩa của chúng. Đôi khi, một nội dung giống nhau có thể đƣợc gọi bởi các tiêu đề khác nhau do đó chúng ta phân loại các trƣờng tên theo nghĩa của chúng. Điều này không chỉ làm tăng tốc độ nhận dạng chữ viết tay, mà nó còn hƣớng dẫn trong quá trình xử lý và xây dựng cơ sở dữ liệu từ các thông tin đƣợc chiết xuất. Các thuộc tính có thể là: “Văn bản”, “Địa chỉ”, “Họ tên”, “Nghề nghiệp”, “Tài khoản”, “Số lƣợng”, “Chất lƣợng”, “Ngày, tháng, tuần”, ….

Chúng ta nhận các biểu mẫu đƣợc sử dụng bởi nhân viên quản trị tại các trƣờng học và sau đó phân loại các nội dung vào các mục thuộc tính đƣợc gợi ý ở trên. Chúng ta biểu diễn dữ liệu này trong 8 bít.

64

Kiểu ký tự là kiểu đƣợc sử dụng trong biểu mẫu và chúng ta sử dụng 8 bít cờ để biểu thị rõ mỗi kiểu của ký tự. Điều này làm tăng tốc độ nhận dạng. Chúng ta chia loại các ký tự nhƣ trong bảng 1 và gán 1 bít duy nhất cho mỗi kiểu ký tự.

Bit No Character Type

1 Alphabet 2 Digit 3 Punctuation 4 Special Character 5 Other 6 Unused 7 Unused 8 Unused Bảng 3.1: Character Type Bit No Direction 1 Recognize 2 Store to database 3 Send by Mail 4 Store the image

5 Compare to the DB

6 Unused

7 Unused

8 Unused

Bảng 3.2 : Direction

Chiều hƣớng và chỉ dẫn là quy định hoặc câu lệnh để xử lý chữ viết tay và biểu mẫu của nó. Chúng ta sử dụng 8 bít cờ để thể hiện nó và mỗi một bít duy nhất đƣợc đại diện cho 1 chiều hƣớng nhƣ trong bảng 2.

65

Tiêu đề là nhãn đƣợc sử dụng trong biểu mẫu mô tả sẽ đƣợc viết vào trong khung. Một tiêu để đầy đủ có thể là quá dài để nhúng vào biểu mẫu, vì vậy chúng ta sẽ lấy 4 ký tự đầu tiên và biểu diễn chúng dƣới mã chuyển. Tiêu đề đƣợc đƣa vào trong giai đoạn cuối và đƣợc thể hiện bằng 8 bít NULL.

Với tổng thể biểu mẫu, chúng ta sử dụng một đƣờng thẳng ngang thể hiện dƣới dạng kết cấu điểm. Nó có thể đặt ở bất kỳ đâu song chúng ta nên đặt trên tiêu đề của biểu mẫu và thể hiện cho thuộc tính, tiêu đề của biểu mẫu …

Chúng ta tạo một tập dữ liệu bao gồm các mục đƣợc đề cập ở trên và biểu diễn chúng trên một đƣờng thẳng nhƣ là một chuỗi điểm bằng phƣơng pháp nhúng thông tin mô tả trong các phần tiếp theo. Chúng ta sẽ tiếp tục lặp chuỗi này cho phép nối thành đƣờng thẳng và sử dụng ít nhất là 3 đƣờng, do đó chúng ta sẽ tạo ra một kết cấu điểm cho khung.

Dữ liệu nhúng vào nằm ở phần trên của khung (hình 3.4).

Attribute Character type (adsbygoogle = window.adsbygoogle || []).push({});

Direction Title Terminal

Hình 3.3: Data set

Hình 3.4: Vùng mã hóa thông tin

3.1.4.3.Hệ thống xử lý biểu mẫu

Hệ thống này bao gồm một máy quét và một máy tính với phần mềm xử lý biểu mẫu. Giao diện của ứng dụng và ảnh của biểu mẫu đƣợc thể hiện trong hình 8,

66

và luồng xử lý đƣợc thể hiện nhƣ trong hình 9. Các thành phần của hệ thống đƣợc mô tả chi tiết nhƣ sau:

(1)Phần đọc biểu mẫu

Biểu mẫu đƣợc đọc bằng một máy quét ảnh. Sau khi quét ảnh chúng ta thu đƣợc 1 ảnh bitmap.

Hình 3.5: Một minh họa về biểu mẫu động

(2)Phân tách các ảnh

Chúng ta sẽ thu đƣợc ảnh của chữ viết tay bằng phƣơng pháp gán nhãn để loại trừ các điểm chấm nhỏ. Mặc dù có rất nhiều phƣơng pháp loại trừ các điểm chấm, song dựa trên tốc độ xử lý ảnh và hiệu quả, chúng ta chọn phƣơng pháp gán nhãn cho tình huống này. Bằng cách thực hiện phép trừ ảnh, trừ ảnh ban đầu với ảnh chữ chúng ta sẽ thu đƣợc ảnh khung.

(3)Phân đoạn các ký tự

Ảnh chữ viết tay đƣợc phân đoạn theo vị trí của khung và những ký tự này đƣợc giới hạn trong một khung.

67

Hình 3.6: Luồng xử lý

(4)Giải mã

Giải mã đƣợc áp dụng trên khung điền thông tin. Tại đây, chúng ta phải chú ý đến tình huống gối chồng của chữ viết tay tên khung và có thể làm hƣ hại đến một

68

vài vùng trong kết cấu điểm. Do đó, vùng dữ liệu nhúng vào đƣợc sao chép nhiều lần, sau đó chúng đƣợc chiết xuất và giải mã theo phƣơng pháp bình chọn đa số.

(5)Điều khiển nhận dạng

Chức năng này gửi thông tin từ (3) và (4) tới modul nhận dạng chữ viết tay (6) và cũng gửi kết quả nhận dạng tới giao diện hiệu chỉnh (7).

Máy nhận dạng ký tự

Các mẫu ký tự viết tay sẽ đƣợc đƣa vào để nhận dạng. Để tăng tốc độ nhận dạng hệ thống sẽ sử dụng thông tin của kiểu ký tự và thuộc tính kèm theo.

(6)Giao diện hiệu chỉnh

Các ký tự nhận dạng sẽ đƣợc hiện thị lên trên chữ viết tay trong khung. (7)Tạo nhóm sheet

Dữ liệu đƣợc tạo ra bởi tiến trình từ (1) tới (7) đƣợc gói lại trong tập tin định dạng CSV.

3.1.4.4.Ứng dụng

Một ứng dụng đọc các sheet tạo bởi hệ thống xử lý biểu mẫu và họat động theo chúng. Nhƣ một ví dụ cụ thể cho ứng dụng, chúng ta tạo ra một khóa học đầu vào cho sinh viên tại trƣờng đại học. Đầu tiên, khi một ứng viên viết tên, địa chỉ email, và số khóa học,… của họ vào trong biểu mẫu, phần ứng dụng sẽ quét biểu mẫu và thực hiện các thao tác nhƣ đã mô tả. Sau đó khóa học đƣợc lƣu trữ vào cơ sở dữ liệu và một email gửi cho ứng viên để xác minh. Dựa trên ứng dụng này, việc lấy thông tin từ biểu mẫu tốt hơn là phƣơng pháp đƣa thông tin trực tiếp vào.

69 (adsbygoogle = window.adsbygoogle || []).push({});

3.2 Các thuật toán xử lý ảnh áp dụng cho xử lý biểu mẫu động

3.2.1 Khái niệm biểu mẫu động.

Biểu mẫu động là biểu mẫu mà các khung điền trong nó đƣợc tạo ra bởi cấu trúc các chấm nhỏ. Hình dạng của các chấm nhỏ nhƣ sau :

Hình 3.7: Hình ảnh của chấm nhỏ

Một cấu trúc có thể của khung điền thông tin nhƣ sau:

Hình 3.8: Một cấu trúc của khung

Và một biểu mẫu động nhƣ sau:

70

Chúng ta thấy rằng, với hai mẫu hình dạng khác nhau của chấm nhỏ là chấm tròn và chấm dẹt, chúng ta có thể có nhiều cách sắp xếp hai loại chấm này. Nếu chúng ta quan niệm rằng với mỗi cách sắp xếp sẽ tƣơng ứng với một ý nghĩa cụ thể nào đó thì chúng ta có thể mã hoá một số thông tin vào trong các khung. Các thông tin có thể đƣợc mã hoá sẽ chỉ cho ta biết các chữ viết tay trong khung điền của chúng ta là loại dữ liệu gì, ví dụ nhƣ là : họ tên, tuổi, địa chỉ, email....Một số kiểu cấu trúc các điểm chấm nhỏ có thể nhƣ sau:

hay:

Hình 3.10: Một số cấu trúc chấm nhỏ

Mỗi loại cấu trúc này sẽ tƣơng ứng với một loại dữ liệu riêng. Trong quá trình nhận dạng, sau khi phân tích cấu trúc các điểm nhỏ cấu tạo khung, ta sẽ biết dữ liệu trong khung là loại dữ liệu nào (chữ, số...), cách xử lý chúng ra sao, và cách lƣu trữ chúng ở đâu. Nhƣ vậy là thứ tự trƣớc sau của các khung điền thông tin trong biểu mẫu bây giờ sẽ trở nên không còn quan trọng nữa.

71

3.2.2 Lƣợc đồ xử lý biểu mẫu động.

Hình 3.11: Một lược đồ xử lý biểu mẫu động

Hình 3.9 là ví dụ về một mẫu biểu mẫu động đƣợc chúng tôi thí nghiệm. Các khung điền thông tin đƣợc cấu tạo bởi các cấu trúc điểm nhỏ khác nhau. Thông tin dùng để điều khiển quá trình nhận dạng nhƣ là các thuộc tính của chữ viết tay (ví dụ nhƣ tên, tuổi, địa chỉ…) và các nhóm ký tự đƣợc sử dụng trong chúng (ví dụ nhƣ các chữ số, các chữ cái alphabet,, các ký tự đặc biệt…) đƣợc mã hoá tại đỉnh của các khung điền theo các cấu trúc chấm nhỏ khác nhau.

Cách thức mã hoá thông tin đƣợc sử dụng ở đây là hết sức đơn giản và chúng tôi chỉ sử dụng hai dạng chấm nhỏ để mã hoá thông tin theo mã nhị phân. Một hệ thống xử lý biểu mẫu động sẽ tách lọc các nội dung đầu vào, các thông tin đã đƣợc mã hoá từ biểu mẫu động và đầu ra sẽ là một văn bản theo yêu cầu.

72

3.2.3 Các phƣơng pháp tách chữ viết tay ra khỏi khung điền. 3.2.3.1.Tìm hiểu các thuật toán tách cơ bản. 3.2.3.1.Tìm hiểu các thuật toán tách cơ bản.

2.2.3.1.1 Thuật toán gán nhãn ( Labeling)

Đây là phƣơng pháp tính số điểm đen trong một vùng liên thông của các điểm đen, sau đó các điểm ảnh trong cùng một vùng liên thông sẽ đƣợc gán một nhãn giống nhau, đó là tổng số điểm đen vừa tính đƣợc. Có nhiều phƣơng pháp để thực hiện phƣơng pháp gán nhãn này. Ở đây, chúng tôi lựa chọn thuật toán đệ quy để thực hiện phép gán nhãn. Thuật toán đệ quy giúp tăng tốc độ tính toán đối với các mẫu biểu mẫu động có nhiều khung điền. Trong thuật toán này, nếu mỗi điểm đen đƣợc tìm thấy, nó sẽ tính các điểm đen hàng xóm liên kết với nó. Giá trị trả lại của thuật toán đó là số lƣợng điểm đen của các vệt đen.

2.2.3.1.2 Thuật toán hình thái học (Morphology)

Có hai thuật toán hình thái học để xử lý: phép co (contraction) và phép dãn (expansion)

(1)Có hai thuật toán contraction khác nhau:

a. Nếu một pixel trắng đƣợc tìm thấy thì tất cả 8 hàng xóm hoặc 4 hàng xóm của nó cũng sẽ bị chuyển thành trắng.

b. Nếu một điểm đen đƣợc tìm thấy, thì chúng ta sẽ kiểm tra 8 hàng xóm hoặc 4 hàng xóm của nó. Nếu có ít nhất một một hàng xóm của nó là điểm trắng thì nó sẽ chuyển thành trắng.

(2)Có hai thuật toán expansion khác nhau:

a. Nếu một điểm đen đƣợc tìm thấy, thì tất cả 8 hàng xóm hoặc 4 hàng xóm của nó cũng sẽ chuyển thành đen.

b. Nếu một điểm trắng đƣợc tìm thấy, thì chúng ta sẽ kiểm tra 8 hàng xóm hoặc 4 hàng xóm của nó. Nếu có ít nhất một hàng xóm của nó là đen thì nó sẽ chuyển thành đen.

73 (adsbygoogle = window.adsbygoogle || []).push({});

3.2.3.2. Tách chữ viết tay ra khỏi khung điền.

Theo các thuật toán cơ bản đƣợc trình bày ở phần trƣớc, chúng ta có các phƣơng pháp tách khác nhau:

a) Phân tách bằng thuật toán gán nhãn:

Một thuật toán đệ quy được sử dụng để tính các thành phần liên thông đen trong biểu mẫu. Từ đó số lượng điểm đen trong mỗi thành phần liên thông được xác định. Để thu được chữ viết tay mà không còn khung, ta xét các thành phần liên thông : Nếu số điểm đen trong thành phần liên thông bé hơn một ngưỡng cho trước thì toàn bộ thành phần liên thông sẽ bị xoá. Ta biết rằng số lượng điểm đen trong thành phần liên thông của các chấm nhỏ là nhỏ hơn rất nhiều so với số lượng các điểm đen trong thành phần liên thông của chữ viết tay. Do đó qua phép toán này, chúng ta sẽ thu được các chữ viết tay không còn khung điền.

Ngƣợc lại, để thu đƣợc khung điền thông tin mà đã loại bỏ đƣợc chữ viết tay, chúng ta cũng thực hiện tƣơng tự, chỉ khác ở chỗ thành phần liên thông nào có số lƣợng điểm đen lớn hơn ngƣỡng cho trƣớc thì sẽ bị xoá hoàn toàn.

b) Phân tách bằng các thuật toán hình thái học:

Morphology đƣợc sử dụng ở đây gồm có phép cophép dãn

Phép co : Nếu một điểm đen đƣợc tìm thấy, chúng ta sẽ xem xét các 4-hàng xóm hoặc 8-hàng xóm của nó và nó sẽ bị biến đổi thành điểm trắng nếu có ít nhất một hàng xóm của nó là điểm trắng.

Phép dãn : Nếu một điểm đen đƣợc tìm thấy thì các 4-hàng xóm hoặc 8- hàng xóm của nó sẽ đƣợc chuyển thành các điểm đen.

Đầu tiên, trang biểu mẫu sẽ đƣợc thực hiện nhiều lần phép co cho đến khi các khung điền thông tin bị biến mất. Lúc này trên ảnh chỉ cón lại các chữ viết tay, chúng ta sẽ thực hiện phép dãn để phục hồi lại các chữ viết tay. Phép co thực hiện bao nhiêu lần thì phép dãn cũng sẽ được thực hiện bấy nhiêu lần.

74

Để thu đƣợc chữ viết tay thông qua các biến đổi này, thì độ dày của các chữ viết tay phải dày hơn độ dày của các chấm nhỏ. Bởi vì nếu không có điều kiện này thì chữ viết tay cũng sẽ bị biến mất cùng khung điền thông tin sau một số bƣớc thực hiện phép co. Ngoài ra, sau khi thực hiện phép co, thì các chữ viết tay sẽ bị biến dạng bào mòn, đứt nét. Để khôi phục lại chúng, chúng ta sẽ sử dụng phép dãn. Tuy nhiên thƣờng là các chữ viết tay thu đƣợc sau khi thực hiện phép dãn sẽ dày hơn kích thƣớc thật của nó.

Phân tách sử dụng kết hợp phép gán nhãn và hình thái học

Chúng ta có một nhận xét rằng tốc độ của phép toán gán nhãn phụ thuộc vào số lƣợng điểm đen trong biểu mẫu. Dựa vào nhận xét này, chúng ta có thể tiến hành phân tách nhƣ sau :

Bƣớc 1 :Sử dụng phép toán co (contraction) để giảm bớt số lƣợng điểm đen. Bƣớc 2 : Áp dụng thuật toán gán nhãn để loại bỏ các vệt đen nhỏ.

Hình 3.12 : Khung trước khi tách

Hình 3.13 : Khung sau khi đã tách chữ viết tay

75

3.2.4 Xác định vị trí các khung điền. 3.2.4.1.Phƣơng pháp chiếu. 3.2.4.1.Phƣơng pháp chiếu.

Để xác định vị trí của các khung điền thông tin, chúng ta sẽ sử dụng phép chiếu (projection) theo chiều dọc và chiều ngang.

Thực hiện phép chiếu theo chiều dọc, chúng ta sẽ thu đƣợc các đƣờng thẳng ngang của các khung điền thông tin

Hình 3.15 : Phép chiếu theo chiều ngang

Thực hiện phép chiếu theo chiều ngang, chúng ta sẽ thu đƣợc vị trí của từng ô trong các khung.

76

Chú ý rằng để nâng cao chất lƣợng trong các phép chiếu, chúng ta nên tách bỏ phần chữ viết tay ra khỏi khung điền thông tin trƣớc khi thực hiện các phép chiếu.

3.2.4.2.Phƣơng pháp bỏ qua các khoảng trắng.

Chúng ta có nhận xét rằng: trong một biểu mẫu động, có rất nhiều khoảng trắng giữa các khung điền thông tin và thời gian xử lý biểu mẫu sẽ giảm đi đáng kể nếu chúng ta thực hiện phép toán gán nhãn mà bỏ qua các khoảng trắng này. Do đó, chúng ta sẽ tiến hành so sánh hai thuật toán sau:

(1)Thuật toán không bỏ qua các khoảng trắng:

Một phần của tài liệu Nhận dạng các biểu mẫu tài liệu (Trang 60)