Xây dựng hệ thống tích hợp

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tách và nhận dạng số viết tay trong phiếu nhập dữ liệu (Trang 63 - 80)

Trong các chương trước, tôi đã trình bày các bước trong quy trình nhận dạng ảnh bao gồm tiền xử lý, tách vùng, nhận dạng. Một vấn đề xuyên suốt toàn bộ luận văn đó là nhận dạng ảnh được thực hiện dựa trên các thông tin đã biết trước về mẫu sử dụng để tạo ra ảnh. Các thông tin này cần được lưu trữ, sắp xếp một cách hợp lý nhằm hỗ trợ cho nhận dạng và quản lý.

Khác với các hệ thống nhận dạng ảnh khác như hệ thống chấm thi trắc nghiệm, hệ thống bầu cử,… Những hệ thống này là những hệ thống gắn chặt với một nghiệp vụ cụ thể và thông thường chỉ có một hặc vài loại phiếu nhập. Các thông tin trên phiếu nhập được liên kết với các dữ liệu có ngữ nghĩa trong cơ sở dữ liệu và được sử dụng để thực hiện các chức năng của hệ thống như phân loại sinh viên, lập báo cáo,... Phiếu nhập trong những hệ thống này hoàn toàn có thể được thay thể bởi một form trong chương trình để nhập thông tin vào từ máy tính thay vì điền vào phiếu trên giấy sau đó nhận dạng.

Hệ quản trị phiếu nhập được xây dựng ở đây là một chương trình trung gian. Là phần chỉ liên quan đến xử lý ảnh được tách riêng ra khỏi các hệ thống trên. Trong hệ thống này các mẫu phiếu được thiết kế và nhận dạng để được sử dụng trong các ứng dụng độc lập khác. Dữ liệu nhận dạng tương ứng cũng được đưa vào cơ sở dữ liệu của các ứng dụng đó. Hệ quản trị phiếu không nhằm mục đích quản lý các dữ liệu nhận dạng được mà chỉ quản lý các thông tin dùng để định nghĩa và hỗ trợ cho nhận dạng.

Bên cạnh quản trị phiếu nhập, hệ thống hoàn thiện cũng cần phải có một quy trình xử lý ảnh tích hợp các giải pháp đã trình bày ở các chương 2, 3 bắt đầu từ khi nhận được ảnh cho đến khi có được kết quả nhận dạng cuối cùng.

Chương xây dựng hệ thống tích hợp sẽ tập trung vào các chức năng : quản trị phiếu nhập( thiết kế form, lưu trữ và quản lý form), hỗ trợ nhận dạng form.

3.1 Phân tích bài toán

Chức năng quản trị phiếu nhập đảm nhiệm tất cả các công việc liên quan đến lưu trữ, thiết kế, chỉnh sửa form. Người dùng có thể lựa chọn form đã tạo từ trước, hoặc tạo ra form mới để chỉnh sửa. Những thay đổi đến bất cứ thành phần nào trên form sẽ được ghi nhận. Sau đó, form có thể được xuất ra ảnh hoặc in ra giấy, khi đã được điền thông tin form được quét qua máy scan và tạo ra các file ảnh cần xử lý.

Chức năng hỗ trợ nhận dạng hỗ trợ người dùng thực hiện xử lý ảnh một cách trực quan. Người dùng có thể tiến hành các chức năng xử lý ảnh riêng biệt như tách nền, chỉnh góc nghiêng, tìm đường thẳng để thấy được các kết quả trung gian trong toàn bộ quá trình xử lý. Kết quả cuối cùng khi tích hợp các module nhận dạng sẽ được

lưu lại và sử dụng sau đó với các mục đích cụ thể ví dụ như đưa vào cơ sở dữ liệu của ứng dụng có sử dụng mẫu phiếu của ảnh được xử lý.

Mô tả form

Mẫu form mà luận văn hướng đến áp đặt một số quy tắc cần thiết giúp nâng cao độ chính xác khi nhận dạng. Một mẫu form nhập liệu điển hình có những đặc điểm như sau:

 Form có thể có các dòng chữ bao gồm tiêu đề của mẫu, nội dung, hướng dẫn nhập liệu, chú thích,…

 Form có thể có một dãy block ở bên lề .

 Form có thể chứa mã của mẫu phiếu và mã của số thứ tự tờ trong mẫu, giúp cho việc tự động xác định mẫu khi xử lý ảnh.

 Form có thể chứa các hình ảnh, biểu tượng được thêm vào để trang trí, các đường thẳng để phân chia khu vực nhập liệu,…

 Form có các vùng đánh dấu được định nghĩa cụ thể bao gồm số hàng, số cột, hình dạng( tròn/vuông) để phục vụ cho việc hiển thị và các thông tin đơn định dạng, đa định dạng, nhóm dòng/cột để phục vụ cho nhận dạng.

 Form có các ô nhập dữ liệu dạng số, ký tự được định nghĩa bao gồm các thông số hiển thị như : số ô, kích thước ô, độ dày đường bao,… và các thông số hỗ trợ nhận dạng như định dạng của dữ liệu sẽ được nhập vào trong ô : chữ/số/số vuông.

Sau đây là một số mẫu phiếu được thiết kế bởi module quản trị phiếu nhập tuân thủ các ràng buộc đã xác định.

Với những đặc điểm trên, mẫu form được thiết kế phù hợp với các giả thiết về đặc trưng ảnh form nhập liệu đã nêu ở các chương trước :

 Diện tích của các đối tượng chiếm một phần nhỏ diện tích của toàn bộ ảnh( khử nhiễu, tách nền, nhị phân hóa ảnh).

 Trên form có các dòng chữ và có hướng nằm ngang từ trên xuống dưới, do đó có thể thực hiện phép chiếu để xác định góc nghiêng. Trên form cũng có thể có các block.

 Trên form có các đường thẳng là đường bao của các ô nhập liệu dạng số, có thể có khung hoặc các đường thẳng phân chia nội dung. Các đối tượng này có thể được dùng làm mốc quy chiếu

Với bài toán nêu ra như trên, phần quản trị form được chia làm hai gói chính : gói quản lý phiếu và gói hỗ trợ nhận dạng.

Chi tiết các chức năng của hệ thống :

1. Gói quản trị mẫu phiếu :

 Thêm, sửa , xóa mẫu phiếu.

 Định nghĩa các vùng nhập liệu

 Xuất ra file ảnh và ra máy in 2. Gói hỗ trợ nhận dạng :

 Tiền xử lý ảnh : lọc nhiễu, tách nền, khử nghiêng

 Phát hiện các mốc quy chiếu : hộp đen, đường thẳng

 Tách vùng, nhận dạng với thông tin về mẫu được cung cấp

3.2 Xây dựng hệ thống

Đối tƣợng/Khái niệm

Vai trò/ý nghĩa

Phiếu nhập Là một văn bản có thể được in ra dưới dạng ảnh để thu thập dữ liệu

Tờ

Mỗi phiếu nhập có thể bao gồm nhiều tờ, nghĩa là cùng một phiếu nhập nhưng khi scan vào máy tính có thể bao gồm nhiều tờ

Nhãn Các dòng chữ trên phiếu

Hình ảnh Các biểu tượng, các hình trang trí,.. có thể được đưa vào phiếu Block Các hộp đen ở cạnh lề của phiếu, mỗi tờ phiếu chỉ có một dãy

các hộp đen ở một lề của phiếu

Vùng đánh dấu Các vùng lựa chọn để người dùng tô đen bằng bút chì, bút bi Vùng nhập ký tự Các vùng để nhập dữ liệu theo các ô

Vùng nhập liệu Đại diện cho những vùng được điền dữ liệu vào phiếu bao gồm vùng đánh dấu, vùng nhập ký tự.

Đường thẳng ngang/dọc

Các đường thẳng được tìm tự động trên mẫu phiếu để làm mốc quy chiếu

Tác vụ Một dãy các thao tác xử lý ảnh để nhận dạng ra kết quả cuối cùng của các vùng nhập liệu

Vùng nhập liệu trên ảnh

Vùng nhập liệu tìm được trên ảnh

3.2.2 Mô hình khái niệm

Dựa vào các khái niệm đã nêu, ta xây dựng được mô hình khái niệm như hình vẽ

Hình 3-6: Mô hình khái niệm

Cơ sở dữ liệu : Cơ sở dữ liệu của hệ thống phải đảm bảo đáp ứng được tính

rõ ràng, đầy đủ. Do mỗi mẫu phiếu được xây dựng từ các thành phần nhỏ, do tần suất truy xuất dữ liệu không cao và lưu trữ dữ liệu không lớn nhưng lại cần sự gắn kết chặt chẽ. Cơ sở dữ liệu của hệ thống được chọn là các kho chứa XML.

Thiết kế các thẻ biểu diễn đối tƣợng trong kho chứa XML

1) Thẻ <FormTemplate/> đại diện cho một tờ của mẫu phiếu trong kho chứa XML

Các Thuộc tính : - FormId : mã phiếu - PaperId : mã tờ Các thẻ thành phần :

- Identifier : vùng mã của phiếu, giúp tự động tìm mẫu phiếu của ảnh cần xử lý

- FormBaseImage : ảnh nền của form - Name : tên của phiếu

- FormSize : kích cỡ phiếu bao gồm chiều rộng và chiều cao - Blocks : các ô đen ở bên lề để định vị

- UserInputs : các vùng nhập liệu - Labels : các nhãn

- Pictures : các ảnh, biểu tượng trang trí

- Lines : các đường thẳng, được tự động tìm kiếm trên phiếu 2) Thẻ <Identifier/ >

Các thẻ thành phần

- TopleftPosition : vị trí của khu vực mã phiếu - Bound : kích thước của cả vùng

- Style : cách hiển thị của khu vực

- NumberOfFormIdCells : số lượng các ô hiển thị mã phiếu - NumberOfPaperIdCells : số lượng các ô hiển thị mã tờ 3) Thẻ <Blocks/ >

Các thẻ thành phần

- Size : kích cỡ của một block

- NumberOfBlocks : số lượng của các block - BlockDistance : khoảng cách của các block - TopleftPosition : vị trí của block đầu tiên - Bound : kích thước của cả vùng

- ShapeType : ô có dạng hình chữ nhật/ellipse 4) Thẻ <DigitInputCells/ >

Thuộc tính : - Name

Các thẻ thành phần

- Bound : kích thước của cả vùng

- Style : cách hiển thị, định nghĩa độ rộng của ô nhập, viền, kích thước chữ số,…

- NumberOfCells : số lượng các ô trong vùng 5) Thẻ <CheckInputs/>

Thuộc tính : - Name

Các thẻ thành phần

- TopleftPosition : vị trí của ô đầu tiên - Bound : kích thước của cả vùng

- Style : cách hiển thị, định nghĩa kích thước của ô cần tô, hình dáng(vuông/tròn), kích thước ô,…

- Rows : số lượng và khoảng cách của các ô trong một hàng - Cols : số lượng và khoảng cách của các ô trong một cột

- SelectOption : nhóm các ô theo hàng/cột, trong một nhóm thì là đa lựa chọn hay đơn lựa chọn

6) Thẻ <Line/> Thuộc tính :

- LineId : mã đường thẳng Các thẻ thành phần :

- MinX, MinY, MaxX, MaxY : tọa độ của đường bao của đường thẳng 7) Thẻ <Task/> đại diện cho một tác vụ xử lý ảnh của mẫu phiếu trong kho

chứa XML Thuộc tính

- TaskId : mã của tác vụ Các thẻ thành phần :

- Template : mã của mẫu phiếu mà ảnh xử lý được tạo ra - Inputs : các vùng nhập liệu xác định được trên ảnh 8) Thẻ < Input>

Thuộc tính :

- Name : tên vùng nhập liệu trên ảnh Các thẻ thành phần :

- TopleftPosition : vị trí của vùng

- Bound : kích thước của cả vùng trên ảnh - Value : giá trị nhận dạng được của vùng

3.2.3 Biểu đồ các quy trình thiết kế, nhận dạng 1) Quy trình thiết kế mẫu phiếu 1) Quy trình thiết kế mẫu phiếu

Người sử dụng có thể tạo ra mẫu form mới hoặc mở các mẫu form cũ để chỉnh sửa. Quá trình thiết kế được hỗ trợ một cách trực quan, các đối tượng trên form như nhãn, vùng đánh dấu có thể được kéo, thả. Mẫu form có thể xuất ra ảnh để in ra và điền thông tin. Sau khi hoàn tất quá trình thiết kế, ảnh của form sẽ được xử lý để tách ra các đường thẳng. Cuối cùng thông tin về các đối tượng trên form cùng các đường thẳng tìm được sẽ được lưu vào kho dữ liệu dạng XML.

Mo mau phieu cu

Tao mau phieu moi Chinh sua mau

phieu Tim cac duong thang

trong mau phieu Luu mau phieu

Tao phieu moi Mo phieu

Hình 3-7: Quy trình thiết kế mẫu phiếu

2) Quy trình nhận dạng

a) Chưa biết trước mã của mẫu phiếu

Hình 3-9 mô tả quy trình nhận dạng ảnh của form nhập liệu khi chưa biết các thông tin về mã form của ảnh, nghĩa là khi xử lý module xử lý ảnh sẽ chưa có thông tin về kích cỡ form, vị trí các vùng nhập liệu, vị trí các block(nếu có),…. Module xử lý ảnh nhận vào một ảnh và sẽ phải tự động tìm kiếm các thông tin về mã form, mã tờ trên ảnh.

Để định danh form, [26] sử dụng các đặc trưng của form(cụm ký tự, cấu trúc bảng,…). Phương pháp này cho phép định danh một form bất kỳ mà không phải sử dụng các đối tượng ngoại lai. Tuy nhiên trong một form không phải bao giờ cũng có đủ đặc trưng để định dang.

Một số ứng dụng sử dụng các đối tượng định nghĩa thêm vào form như mã vạch để định danh form nhập liệu ví dụ như SimpleIndex, Taskmaster,… ; một số form lại dùng các ký hiệu tại các vị trí khác nhau trên ảnh để đánh dấu [33]. Trong khuôn khổ luận văn này, tôi sử dụng vùng mã với các số trong vùng được tự động sinh ra theo mã của form như hình 3-8. Vùng mã viết theo kiểu này có tính trực quan cao hơn

các cách thể hiện ở trên, thông qua đó người thao tác chương trình có thể dễ dàng biết được ảnh thuộc về kiểu form mẫu nào mà chưa cần tiến hành nhận dạng ảnh.

Hình 3-8: Vùng mã form trên ảnh

Khi nạp ảnh vào để xử lý, đầu tiên ảnh sẽ được khử nhiễu, tách nền, chính xác góc nghiêng( bằng phương pháp phép chiếu hoặc sử dụng block). Sau khi tiền xử lý, vùng mã form trên ảnh sẽ được tìm kiếm và nhận dạng để xác định mã form của ảnh.

Với các thông tin có được về form, các block sẽ được tìm kiếm và chính xác hóa. Các blocks này được sử dụng làm mốc quy chiếu để xác định vùng nhập liệu. Tuy nhiên nếu trên form không có block, các vùng nhập liệu vẫn có thể xác định được thông qua vị trí tương đối đến vùng mã( vùng mã cũng là một mốc quy chiếu) và các đường thẳng, sau đó những vùng nhập liệu nhận dạng được lại tiếp tục trở thành các mốc quy chiếu để nhận dạng các vùng nhập liệu khác.

Sau khi nhận dạng hoàn tất, kết quả nhận dạng cùng với các thông tin cần thiết sẽ được lưu lại cho các mục đích xử lý khác ( hậu xử lý).

Khu nhieu, tach nen, xac dinh nguong nhi phan

Khu nghieng bang blocks

Khu nghieng bang phep chieu

Xac dinh vung ma phieu

Tim thay blocks

Khong tim thay blocks

Khong tim thay vung ma phieu

Nap cac thong tin ve mau phieu

Tim duoc vung ma phieu

Chinh xac hoa cac blocks

Tach vung nhap lieu Nhan dang vung nhap lieu

Luu ket qua Tim cac duong

thang tren anh

Doi chieu cac duong thang tren anh voi cac duong tren mau

Tim thay block

Khong tim thay block Co blocks trong mau Khong co blocks

Doi chieu khong trung

Doi chieu dung hai cap duong thang

b) Biết trƣớc mã của mẫu phiếu

Trong trường hợp không định nghĩa vùng mã trên form, người thao tác chương trình sẽ phải cung cấp mã form như một tham số nhận dạng. Quy trình xử lý ảnh tương tự như trên, tuy nhiên do được cung cấp mã nên không cần phải tìm kiếm vùng mã trên ảnh.

Mặt khác do các thông tin về form được biết trước khi bắt đầu xử lý, các module xử lý ảnh như "xác định block" có thể sử dụng các thông tin đó để xử lý hiệu quả hơn.

Nap thong tin ve mau phieu

Khu nhieu, tach nen, xac dinh nguong nhi phan

Khu nghieng bang phep chieu

Khu nghieng bang blocks

Tim cac duong thang tren anh

Doi chieu cac duong thang tren anh voi cac duong trong mau

Tach vung nhap lieu

Doi chieu dung hai tap duong thang

Tim duoc blocks Khong tim duoc blocks

Doi chieu khong trung nhau

Nhan dang vung nhap lieu

Luu ket qua

Khong co blocks Co blocks trong mau phieu

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tách và nhận dạng số viết tay trong phiếu nhập dữ liệu (Trang 63 - 80)

Tải bản đầy đủ (PDF)

(96 trang)