ẢNH
2.1 Tách vùng nhập dữ liệu trên ảnh
2.1.1 Đặc trƣng bài toán
Sau các bước tiền xử lý lọc nhiễu, xác định góc nghiêng, công việc tiếp theo cần tiến hành đó là xác định các vùng văn bản cần xử lý, đây cũng chính là đầu vào cho phần nhận dạng dữ liệu.
Văn bản tôi xử lý trong khuôn khổ luận văn này là văn bản dạng form nhập dữ liệu dựa trên mẫu form đã có sẵn. Sau khi form được nhập dữ liệu và quét lại vào máy tính, dựa trên mẫu có sẵn và đối chiếu với ảnh scan, ta tìm các vùng trên ảnh scan được nhập dữ liệu và xử lý nhận dạng trên các vùng này. Dữ liệu sau khi nhận dạng sẽ được lưu lại tương ứng với các trường dữ liệu trong form mẫu. Khi xử lý văn bản, ta không cần nhận dạng toàn bộ văn bản mà chỉ giới hạn nhận dạng trên các vùng mà thông tin được nhập vào.
Điểm khác biệt trong việc phân vùng ảnh trên form nhập dữ liệu và phân vùng ảnh trên văn bản tổng quát là : đối với form nhập dữ liệu, ta thực hiện phân vùng trên ảnh đã biết trước cấu trúc và ta chỉ cần tách ra các vùng đã được định nghĩa từ trước là sẽ được nhập dữ liệu để sau đó tiến hành nhận dạng trên các vùng này. Chính nhờ việc biết trước một số thông tin mà kết quả phân vùng chính xác hơn rất nhiều cũng như thời gian xử lý giảm đi đáng kể do ta chỉ cần tách ra một số vùng cần thiết.
Hình 2-2: Form sau khi đƣợc in ra, điền thông tin và scan vào máy tính
Khi tách vùng trên ảnh scan, ta luôn phải đối chiếu với ảnh mẫu để xác định vị trí tương ứng của các vùng trên ảnh scan so với các vùng trên ảnh mẫu.
Xác định các vùng cần nhận dạng luôn luôn là công việc quan trọng nhất trong nhận dạng form nhập dữ liệu. Các phương pháp hiện nay thường dùng một số đối tượng có đặc điểm nổi bật trên form để làm mốc quy chiếu
2.1.2 Xác định vùng nhập liệu dựa trên các mốc quy chiếu
Phân vùng ảnh theo hướng tiếp cận này, ta đặt một hệ trục tọa độ vào ảnh mẫu và tương ứng với nó là một hệ trục tọa độ trên ảnh scan. Sau khi khớp được hai hệ trục tọa độ này cũng như tìm được tỉ lệ chính xác giữa kích thước của hai ảnh, ta sẽ có tương ứng 1:1 giữa một điểm trên ảnh mẫu và một điểm trên ảnh scan.
scale y y scale x x i i i i ' '
Công thức 2-1: Tọa độ tƣơng ứng giữa 1 điểm trên ảnh scan và 1 điểm trên ảnh gốc trong đó xi,yi làtọa độ của điểm i trong ảnh mẫu, x’i,y’i là tọa độ của điểm tƣơng ứng với nó trong ảnh scan.
Trên cơ sở sự tương ứng này, ta tách được được các vùng cần xử lý trên ảnh scan tương ứng với các vùng đã được xác định trước trên ảnh mẫu.
Để khớp hai hệ trục tọa độ giữa hai ảnh, ta đưa vào ảnh mẫu một số đối tượng đặc biệt( như một đường thẳng dày, khung bao quanh …). Khi nhận dạng được các đối tượng này trên ảnh scan, ta có thể khớp được hai hệ trục tọa độ.
Dưới đây là hình vẽ minh họa ảnh gốc và ảnh scan, sau khi khớp hai hệ trục tọa độ ta tách được vùng cần nhận dạng.
Hình 2-3: (a) ảnh gốc; (b) ảnh scan sau khi tiền xử lý
Nhận xét :
Ưu điểm : đơn giản, dễ hiểu, dễ cài đặt, tính toán đơn giản
Nhược điểm : độ chính xác không cao nhất là trên những ảnh có kích thước lớn
2.1.3 Xác định vùng dựa vào vị trí tƣơng đối đến các các mốc quy chiếu trên form
Trong phương pháp phân vùng trình bày ở trên, do trong quá trình scan, ảnh có thể bị biến dạng làm cho vị trí các vùng thay đổi. Thêm vào đó, sai số trong việc xác định góc quay và độ dịch của ảnh cũng ảnh hưởng đến vị trí tuyệt đối của các vùng. Theo phương pháp này, các vùng càng xa gốc tọa độ thì sai số về vị trí càng lớn. Tuy nhiên phương pháp này đơn giản và dễ cài đặt.
Để giảm bớt sai số, tách vùng ảnh thường được thực hiện thông qua vị trí tương đối đến các mốc quy chiếu. Việc chọn các đối tượng làm mốc quy chiếu có ảnh hưởng rất lớn đến độ chính xác. Một số phương pháp có thể kể đến như [12] sử dụng chuỗi ký tự được nhận dạng trên form, [27] sử dụng ma trận giao điểm của các đường thẳng, [20] [21] sử dụng danh sách các khối đối tượng( cụm ký tự, ảnh,…). Các phương pháp này một mặt khá nhạy cảm với nhiễu và biến dạng của ảnh, mặt khác có thể kém chính xác khi không xác định được đầy đủ các đối tượng trong danh sách.
Khối lượng tính toán lớn cũng là một trong những vấn đề cần cân nhắc. Tuy nhiên các phương pháp này có thể áp dụng được trên form tổng quát.
Phương pháp tách vùng tôi trình bày trong phần này sử dụng các block là các hộp đen hoặc các ô tròn bên lề form. Đây là các đối tượng bền vững với nhiễu và biến dạng ảnh. Chi phí tính toán nhỏ cùng với độ chính xác cao là lý do tôi lựa chọn phương pháp này.
Theo đó, Vị trí của vùng sẽ được tính thông qua vị trí tương đối, là vị trí tới đối tượng lân cận đã đƣợc phát hiện trên ảnh. Vị trí này thay đổi tùy thuộc vào đối
tượng và kết quả xác định những đối tượng trước đó. Những đối tượng đầu tiên cần được phát hiện trên ảnh là những đối tượng có đặc điểm nổi bật nhất - các block đen bên lề của form. Trong phần xác định góc nghiêng ở chương trước, các block đen trên ảnh có một vai trò rất quan trọng, dựa vào các ô này ảnh có thể được khử nghiêng và phát hiện ảnh ngược nhanh hơn rất nhiều so với các phương pháp tổng quát. Bên cạnh đó, ý nghĩa chính của việc sử dụng các ô đen là để cung cấp một mốc quy chiếu từ đó xác định vị trí các vùng nhập dữ liệu.
2.1.3.1 Phát hiện các block đen bên cạnh ảnh
Trong phần trước, để tìm được góc nghiêng của ảnh, chỉ cần xác thực sự tồn tại của dãy ô đen bên cạnh ảnh. Tuy nhiên để có thể dựa vào các đối tượng này để xác định những vùng nhập liệu thì trước hết phải biết được ảnh là ảnh của form mẫu nào và thứ tự tương ứng của các block so với các block của mẫu.
Trình tự thực hiện như sau :
Bƣớc 1: xác định tất cả các block bên lề của ảnh( thực hiện ở chương trước) Bƣớc 2: nội suy các ô bị mất
Blocks là những đối tượng có kích thước tương đối, có mức xám bằng không do đó khá bền vững trước những biến dạng của ảnh cũng như không bị ảnh hưởng bởi nhiễu trừ những trường hợp đặc biệt. Tuy nhiên block đầu tiên và cuối cùng có thể bị mất nếu các block đặt quá sát lề và khi scan ảnh bị đặt lệch.
Những block không tìm thấy sẽ được nội suy từ những block khác với khoảng cách đến block gần nhất bằng khoảng cách trung bình giữa các block
Hình 2-4: Nội suy block bị mất
Bƣớc 3: đối chiếu khoảng cách giữa các block này với các block trong mẫu để
xác định tỉ lệ co giãn ảnh với giả thiết là ảnh co giãn theo cùng một tỉ lệ ở cả chiều dọc và chiều ngang
Hình 2-5: Khoảng cách các block trong mẫu và trong ảnh scan
Tỉ lệ co giãn giữa ảnh so với mẫu ở trên là
1
H scale
H
Công thức 2-2: độ co giãn của ảnh scan so với ảnh mẫu
Sau các bước trên ta đã có được sự tương ứng 1:1 giữa các block trên ảnh và trên mẫu cũng như tỉ lệ co giãn ảnh. Những thông tin này sẽ được sử dụng để xác định các vùng nhập liệu.
2.1.3.2 Xác định vùng nhập liệu
Như đã phân tích ở trên, khoảng cách của một đối tượng đến một đối tượng khác càng gần thì việc sử dụng đối tượng này để suy ra vị trí của đối tượng kia càng chính xác. Với các thông tin đã biết trước về vị trí tuyệt đối của các vùng nhập liệu và các mốc quy chiếu trong mẫu, ta cần suy ra vị trí tương đối của từng vùng nhập liệu đến mốc quy chiếu gần nhất để tìm vị trí của các vùng này trên ảnh.
Với hướng tiếp cận của giải pháp này, sau tiền xử lý ảnh các mốc quy chiếu đầu tiên là các block đen bên cạnh ảnh. Các vùng nhập liệu tìm được bởi các mốc quy chiếu này sẽ tiếp tục được đưa vào danh sách quy chiếu và có thể được sử dụng để tìm vị trí các vùng nhập liệu khác. Việc xác định các vùng được thực hiện như vậy cho đến khi xác định được tất cả các vùng nhập liệu trên ảnh.
Trình tự thực hiện như sau :
Bƣớc 1: tương ứng các block trên ảnh với các block trong mẫu, đưa vào tập
mốc quy chiếu
Giả sử trong mẫu có n blocks : b b1, 2,...,bn, ta tìm được n blocks trong ảnh
' ' '
1, 2,..., n
b b b tương ứng với các blocks trong mẫu. Đưa hai tập này vào hai tập mốc quy chiếu Q và '
Q
Hình 2-6: Tƣơng ứng các mốc quy chiếu trong ảnh scan và trong mẫu
Bƣớc 2: Chọn ra vùng nhập liệu trong mẫu có mốc quy chiếu gần nhất.
Tập vùng nhập liệu được định nghĩa trong mẫu là A, tìm vùng nhập liệu
i i
a a A sao cho tồn tại một mốc quy chiếu q qj( jQ) thỏa mãn khoảng cách từ qj
Hình 2-7: Mốc quy chiếu gần nhất đến các vùng nhập liệu
Ví dụ như trong mẫu trên, block 1 là đối tượng mốc quy chiếu gần nhất của vùng 1 và vùng 2. Vùng 1 được chọn do khoảng cách của nó đến mốc quy chiếu là gần nhất.
Bƣớc 3: xác định vùng tìm kiếm cho vùng nhập liệu được chọn ra ở bước 2
được suy ra từ mốc quy chiếu gần vùng này nhất và tỉ lệ co giãn tìm được ở trên. Trên mẫu vùng aiđược giởi hạn bởi hình bao H Xa( mina ,Ymina ,Xmaxa ,Ymaxa ), qj được giới hạn bởi hình bao Hq(Xminq ,Yminq ,Xmaxq ,Ymaxq ), mốc quy chiếu tương ứng với qj tìm được trên ảnh là '
j
q được giởi hạn bởi hình bao ' ' ' ' '( minq , minq , maxq , maxq )
q
H X Y X Y . Vùng xác định để tìm kiếm aitrên ảnh là ' ' ' '
'( mina , mina , maxa , maxa )
a
H X Y X Y được suy ra bởi Ha,Hq, Hq' và tỉ lệ co giãn ảnh scalenhư sau :
Tìm ' min
a
X , giả sử ( mina minq ) ( mina maxq )
abs X X abs X X thì
' '
mina minq ( mina minq )
X X X X scale
Công thức 2-3: Vùng tìm kiếm đƣợc suy ra từ mốc quy chiếu và độ co giãn ảnh
Làm tương tự với các cạnh còn lại ta sẽ xác định được Ha'
Bƣớc 4: Nhận dạng vùng này, đánh dấu vùng này đã được xác định và thêm
vùng này vào danh sách quy chiếu. Quay lại bước 2.
Nhận dạng vùng nhập liệu được xác định bởi hình bao Ha' theo các phương pháp được trình bày trong 3.2. Sau khi nhận dạng vùng baoHa' sẽ được chính xác hóa. Ta thêm vùng nhập liệu aivà vùng nhập liệu đã nhận dạng '
i
a vào hai tập mốc quy chiếu Q và '
Q . Hai vùng nhập liệu này có thể được coi là mốc quy chiếu để tìm kiếm các vùng nhập liệu tiếp theo.
Hình 2-9: Vùng nhập liệu đƣợc sử dụng làm mốc quy chiếu
Hình 2-10: Cập nhật khoảng cách đến mốc quy chiếu gần nhất
Kết luận : qua quá trình nghiên cứu, giải pháp này đã chứng minh được tính hiệu quả và thực dụng trong việc nhận dạng form dữ liệu, đặc biệt là trong việc nhận dạng với số lượng lớn. Những ưu điểm và nhược điểm của phương pháp
Ưu điểm :
Cho độ chính xác cao, thời gian xử lý nhanh
Dễ kiểm soát và bảo trì Nhược điểm :
Ảnh buộc phải có các block ở bên lề, có thể tạo ra một số vấn đề về mặt thẩm mỹ
2.1.4 Xác định vùng nhận dạng dựa trên vị trí tƣơng đối đến các đƣờng thẳng
Đặc điểm của kiểu form nhập dữ liệu là dữ liệu được nhập vào các ô trên form, các ô này được bao quanh bởi các đường thẳng, thêm vào đó trên form còn có thể có khung hoặc các đường phân cách khu vực, đường trang trí. Do đó chúng tôi đã đưa ra giải pháp xác định vùng nhập dữ liệu thông qua việc xác định các đường thẳng [3].
Trong phương pháp này, trước tiên ta tìm tất cả các đường thẳng có trong ảnh. Sau đó các đường thẳng này sẽ được đối chiếu với các đường thẳng có trong form mẫu để xác định thứ tự chính xác và khử nhiễu. Cuối cùng sau khi nhận dạng được các đường thẳng, vùng nhập dữ liệu sẽ được tính thông qua tọa độ gián tiếp tới các đường thẳng đó. Và bởi vì các tọa độ gián tiếp này là các tọa độ địa phương nên độ chính xác trong việc xác định các vùng là rất cao.
2.1.4.1 Mô tả thuật toán xác định đƣờng thẳng:
Trong ảnh của văn bản cần xử lý, các đường thẳng thường không phải là các đường thẳng lý tưởng mà chỉ là một tập hợp các điểm ảnh có thể xấp xỉ bởi một đường thẳng. Trong bài toán này, do việc tính toán vị trí các vùng nhận dạng sử dụng hệ tọa độ tương đối theo chiều thẳng đứng và theo chiều ngang nên trong việc xác định đường thẳng không cần xem xét đến các đường thẳng theo các hướng khác.
Theo giả thiết ở trên chúng tôi đưa ra thuật toán xác định đường thẳng dựa vào số lượng các điểm ảnh đen kề nhau liên tiếp theo chiều thẳng đứng và theo chiều ngang( còn gọi là các black run). Một đường thẳng bao gồm một tập các black run liền kề nhau. Ngưỡng nhận dạng cũng được áp dụng để loại bỏ các black run quá ngắn ( các black run thuộc về đường thẳng hay thuộc về chữ hoặc các đối tượng đồ họa khác). Sau khi duyệt toàn bộ ảnh để lọc ra các black run đủ dài, các black run này sẽ được nhóm lại để tạo thành các đường thẳng.
2.1.4.2 Thuật toán xác định đƣờng thẳng
Thuật toán được thực hiện qua bốn bước
Bƣớc 1: Duyệt toàn bộ ảnh, loại bỏ các black run ngắn, chỉ giữ lại các black
run đủ dài( lớn hơn ngưỡng)
Bƣớc 2 : Hợp các black run gần nhau lại để tạo thành đường thẳng.
Bƣớc 3 : Sau khi hợp các black run lại thành đường thẳng, thực hiện lại
Bƣớc 4 : Lọc các đường thẳng còn lại dựa theo tỉ lệ giữa độ rộng và độ cao
của đường. Các đường thẳng đạt tiêu chẩn là các đường thẳng có tỉ lê : độ rộng/độ cao > 10 hoặc độ cao/độ rộng > 10 ( bởi vì các đường thẳng của ta có đặc điểm là dài và hẹp). Bước này sẽ lọc được chữ hoặc hình ảnh có kích cỡ lớn trong văn bản.
Kết quả của việc lọc các đường thẳng :
Hình 2-11: (a)ảnh sau khi tiền xử lý; (b)ảnh sau khi lọc các black run ngắn theo chiều ngang (c) ảnh sau khi hợp cách black run dài theo chiều ngang;
(d) ảnh sau khi lọc các black run ngắn theo chiều thẳng đứng (e)ảnh sau khi hợp các black run dài theo chiều thẳng đứng
(f)các đƣờng thẳng xác định đƣợc trên ảnh
Trong việc lọc các đường thẳng, nếu lấy ngưỡng nhận dạng quá lớn thì các đường thẳng thu được sẽ không đầy đủ, ngược lại nếu lấy ngưỡng quá nhỏ thì sẽ còn lại rất nhiều nhiễu do chữ và các đối tượng đồ họa. Khi xử lý với những ảnh chứa các
đường thẳng có độ dày ≥ 2 pixel, ta có thể lấy ngưỡng tương đối lớn mà không làm mất thông tin trong việc nhận dạng đường. Tuy nhiên, bởi vì chúng ta phải xử lý với cả những ảnh scan có chất lượng kém nên cần tìm ra giải pháp để khắc phục việc mất thông tin.