Xác định vị trí các khung điền

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 73)

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

3.2.4Xác định vị trí các khung điền

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:

i) Toàn bộ biểu mẫu đƣợc tiến hành gán nhãn và phân tách khung điền và chữ viết tay.

ii) Sử dụng phép chiếu theo chiều ngang để xác định vị trí các khung điền thông tin.

iii) Đối với mỗi khung điền đã xác định ở bƣớc trƣớc, chúng ta sử dụng phép chiếu theo chiều dọc để xác định vị trí các cột trong khung. Trong thuật toán này, chúng ta đã sử dụng hai phép chiếu theo chiều dọc và chiều ngang để xác định khung điền. Do đã phân tách chữ viết tay ra khỏi khung điền nên quá trình tiến hành phép chiếu sẽ không bị ảnh hƣởng của các chữ viết tay. Do đó độ chính xác khi xác định khung điền sẽ tăng lên nhƣng tốc độ xử lý sẽ bị chậm đi.

(2)Thuật toán có bỏ qua các khoảng trắng:

i) Sử dụng phép chiếu theo chiều ngang để xác định vị trí của các khung điền thông tin.

ii) Đối với từng khung điền thông tin vừa xác định đƣợc, chúng ta tiến hành sử dụng phép gán nhãn để phân tách chữ viết tay và khung điền. iii) Đối với mỗi khung điền, sau khi loại bỏ chữ viết tay, chúng ta sẽ tiến

hành chiếu theo chiều dọc để xác định vị trí chính xác của từng cột trong khung.

77

Nhận xét: Mặc dù các chữ viết tay trong khung điền có thể gây ra nhiễu đối với quá trình nhận dạng vị trí của các khung điền, đặc biệt là trong phép chiếu theo chiều dọc để xác định các cột trong khung điền thông tin. Tuy nhiên chúng sẽ không gây ảnh hƣởng gì nhiều đối với phép chiếu theo chiều ngang để xác định vị trí của các khung. Do đó phép chiếu theo chiều ngang có thể đƣợc tiến hành đầu tiên để xác định vị trí các khung điền. Sau đó, chúng ta mới tiến hành phép gán nhãn đối với mỗi khung để phân tách chữ viết tay và khung điền. Và nhƣ thế là chúng ta đã bỏ qua đƣợc các khoảng trắng giữa các khung trong quá trình xử lý mà độ chính xác của thuật toán vẫn đạt cao.

3.2.5 Xác định thông tin ẩn chứa trong các khung điền.

Sau khi đã xác định đƣợc vị trí các khung, chúng ta sẽ tiến hành nhận dạng phân tích cấu trúc các chấm nhỏ của từng khung. Để xác định cấu trúc tổ chức của các chấm nhỏ, chúng ta sẽ thực hiện phép chiếu theo chiều dọc. Phân tích hình phổ của phép chiếu sẽ cho chúng ta cấu trúc sắp xếp của các chấm nhỏ.

Hình 3.17 : Phép chiếu theo chiều dọc các điểm ảnh

3.3 Các thuật toán khác áp dụng cho biểu mẫu động

Ở phần trên, chúng tôi đã trình bày các kỹ thuật cơ bản để áp dụng nhận dạng cho biểu mẫu động. Tuy nhiên, ở phần này chúng tôi xin trình bày thêm một số kỹ thuật nhận dạng khác để nâng cao hiệu quả trong quá trình nhận dạng biểu mẫu động.

78

3.3.1 Thuật toán bóc viền

Có một thực tế mà chúng ta găp phải là các ảnh scan vào không chỉ có đƣờng biên là màu trắng, mà có thể có các đƣờng biên là màu đen, và chúng có thể gây ảnh hƣởng rất lớn đến quá trình nhận dạng ảnh.

Hình 3.18: Ảnh scan có đường viền màu đen

Để khắc phục trƣờng hợp này, trƣớc tiên chúng ta phải khử các đƣờng viền đen này. Thực tế nghiên cứu nhiều ảnh scan khác nhau chúng tôi nhận thấy rằng các điểm đen trên đƣờng viền phân bố một cách rời rạc, không liên tục, có xen kẽ các điểm trắng (hoặc cụm điểm trắng), và có các hình dạng rất khác nhau tùy thuộc vào chất lƣợng máy Scan và góc nghiêng của ảnh.

Do vậy để khử đƣờng các đƣờng viền đen này chúng tôi đề xuất giải pháp khử đƣờng viền bằng cách dựa vào phƣơng pháp phân cụm có tính đến mật độ (Density-Based Clusturing). Đặc điểm của phƣơng pháp phân cụm :

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

 Có thể phân cụm với nhiều hình dạng khác nhau, kể các các hình dạng bất thƣờng

 Chấp nhận nhiễu

 Chỉ thực hiện duyệt một lần

 Cần tham số mật độ cho điều kiện kết thúc

Hình 3.19: Các kiểu hình dạng khác nhau của cụm, mỗi màu tương ứng với một cụm

Trƣớc khi đi vào thuật toán khử đƣờng viền đen, chúng ta có thể hiểu một cách khái quát về phƣơng pháp phân cụm dựa trên mật độ nhƣ sau:

- Tham số mật độ cho điều kiện kết thúc

Eps: là bán kính lớn nhất của cụm

MinPts: số điểm tối thiểu trong một cụm. - Tập hàng xóm:  Eps q p dist D q q N( ) {  ( , )  Trong đó

 D: Cơ sở dữ liệu điểm

80

- Điểm lân cận trực tiếp (Direct density – reachable): một điểm p là điểm lân cận trực tiếp từ điểm q với Eps và MinPts, nếu p thuộc vào NEps(q) và |NEps(q)|

>= MinPts.

Hình 3.20: Mô tả điểm lân cận trực tiếp

- Điểm lân cận (Density – reachable): một điểm p là điểm lân cận từ một điểm q với Eps và MinPts, nếu tồn tại một chuỗi các điểm p1,p2,…, pn sao cho p1= q, pn= p và pi+1 là điểm lân cận trực tiếp từ pi.

Hình 3.21: Mô tả điểm lân cận

- Điểm nối (Density – connected): Một điểm p là điểm nối tới điểm q với Eps và MinPts, nếu tồn tại một điểm o sao cho cả p và q đều có thể là điểm lân cận với điểm o

81

Hình 3.22: Mô tả điểm nối

- Quy ƣớc một cụm (cluster): một cụm đƣợc định nghĩa là một tập hợp lớn nhất các điểm nối

Áp dụng phƣơng pháp phân cụm, chúng tôi đề xuất phƣơng pháp khử đƣờng viền đen có thể thực hiện các bƣớc chính sau:

Bước 1: Xuất phát từ điểm p ta đi tìm một cụm, sao cho p thuộc vào cụm đấy Bước 2: Đặt tất cả các điểm trong cụm của p là điểm trắng

Bước 3: Lặp lại bước 1 cho tới khi không còn tồn tại cụm nào.

Chú ý : Thuật toán này chỉ áp dụng với các điểm gần viền là màu đen, không áp dụng với các điểm đen bên trong

82

Hình 3.23: Ảnh scan có đường viền màu đen và ảnh sau khi đã bóc viền đen

Nhận xét: Dựa trên kết quả thực nghiệm sau khi áp dụng thuật toán đối với 60 biểu mẫu văn bản thuộc về 4 loại khác nhau, chúng tôi thấy rằng kết quả thu đƣợc hoàn toàn có thể so sánh với kết quả của các thuật toán khác. Thời gian để nhị phân hóa ảnh có độ phân giải là 300 DPI với 10 lần lặp chỉ là 25ms. Điều này chứng minh rằng thuật toán có thể áp dụng rất hiệu quả khi ta cần xử lý văn bản với số lƣợng lớn.

3.3.2 Thuật toán xác định góc nghiêng 3.3.2.1.Thuật toán sử dụng phép chiếu 3.3.2.1.Thuật toán sử dụng phép chiếu

Trong phần nay chúng tôi không đi sâu vào giải thích về phƣơng pháp phép chiếu mà chỉ nêu tóm tắt các bƣớc chính cần thực hiện: (adsbygoogle = window.adsbygoogle || []).push({});

– Các điểm đen trên hình ảnh sẽ đƣợc chiếu theo các đƣờng thẳng song song vào một mảng tích lũy (A). Mỗi phần tử của mảng tƣơng ứng với

83

một đƣờng chiếu và giá trị của nó là số điểm đen nằm trên đƣờng chiếu đó.

– Sử dụng phép chiếu đối với mỗi góc nghiêng giả định, ta thu đƣợc một tập các mảng tích lũy (Aθ). Dựa vào hàm đánh giá F(Aθ) với MINANGLE ≤ θ ≤ MAXANGLE, ta tìm đƣợc góc nghiêng chính xác θ của ảnh là góc làm cho giá trị của hàm đánh giá F(Aθ) đạt cực đại Dựa trên các đặc trƣng của văn bản ta có hai hàm đánh giá :

     n i i A i A A F 1 2 1(  ) ( [ ] [ 1])

Áp dụng phƣơng pháp phép chiếu, ta thử với từng góc θ nằm trong khoảng ( MINANGLE, MAXANGLE). Góc θ tìm đƣợc là góc có hàm đánh giá tƣơng ứng đạt giá trị cực đại.

Tối ƣu thuật toán

Từ thực tế nghiên các loại biểu mẫu khác nhau, chúng tôi nhận thấy các văn bản dạng biểu mẫu có nhiều đƣờng thẳng, nhiều hình chữ nhật song song với hƣớng của văn bản; khi văn bản bị nghiêng với một góc θ, thì các hình này không bị biến dạng nhiều. Cùng với cách làm trên, chi phí tính toán tập trung nhiều vào việc tính tổng số điểm đen trên đƣờng chiếu. Để khắc phục nhƣợc điểm này chúng ta có thể không cần tính đến tất cả các điểm đen trên đƣờng chiếu mà chỉ xét xem đƣờng chiếu đƣờng chiếu thuộc về kiểu nào trong hai loại: đƣờng chiếu có chứa ít nhất một điểm đen (gọi là đƣờng chiếu đen – gọi tắt là đƣờng đen) và đƣờng chiếu không có chứa điểm đen (gọi là đƣờng chiếu trắng – gọi tắt là đƣờng trắng).

Theo cách này, chúng ta sẽ phân tích ảnh ở tất cả các góc nghiêng θ có thể bằng cách vẽ các đƣờng chiếu song song trên ảnh ở các góc nghiêng này, và xác định các đƣờng các đƣờng đen và các đƣờng trắng. Theo đó các đối tƣợng (nhƣ textline, đƣờng thẳng, hình chữ nhật, bảng…) có thể đƣợc xấp xỉ bằng các hình bình

84

hành. Việc ƣớc lƣợng góc nghiêng của ảnh dựa trên diện tích các hình bình hành hoặc phần bù của các hình bình hành đó.

Hình 3.24: (a) Ảnh scan, các đường màu đỏ là các đường chiếu ở góc nghiêng θ. (b) Ảnh được xấp xỉ bởi các hình bình hành

Để tăng cƣờng độ chính xác chúng ta có thể chia nhỏ đƣờng chiếu bằng cách chia ảnh thành các vùng có độ rộng nhƣ nhau. Ta coi mỗi vùng nhƣ là một ảnh con, và việc phân tích ảnh đƣợc áp dụng trên mỗi một ảnh con này.

85

Hình 3.25: (a) Ảnh scan. (b) (c) (d) Ảnh các đường chiếu đen và trắng ở các góc nghiêng -2.50, -3.50, 20

Đặt A(θ) là diện tích các hình bình hành tƣơng ứng với góc nghiêng θ, T là tổng diện tích của toàn bộ ảnh và B(θ) = T - A(θ) là diện tích phần bù của các hình bình hành. Khi đó góc nghiêng của ảnh sẽ đƣợc ƣớc lƣợng bởi giá trị lớn nhất của tất cả các B(θ ) hay θ* = Max{ B(θ)} [12].

Để tính đƣợc kích thƣớc của vùng trắng, đơn giản chúng ta chỉ việc đếm số điểm ảnh trên đƣờng trắng. Với mỗi một đƣờng chiếu ta làm nhƣ sau:

IF nếu là điểm ảnh màu đen THEN

Chúng ta dừng lại, trả lại giá trị 0, và chuyển sang duyệt đƣờng chiếu tiếp theo

ELSE

Tăng số điểm ảnh trắng lên 1, chuyển sang điểm tiếp theo trong đƣờng chiếu

Trong phƣơng pháp này chúng ta phải phân tích ảnh ở nhiều góc khác nhau, và số lƣợng các đƣờng chiếu là lớn, chi phí của thuật toán tập trung vào việc xác

86

định các đƣờng chiếu. Để nâng cao hiệu quả của thuật toán, chúng ta nên tập chung vào việc giảm chi phí tính toán trên các đƣờng chiếu đó.

Nhận thấy các đƣờng chiếu là các đƣờng song song nhau nên hệ số góc của các đƣờng chiếu này là nhƣ nhau, do vậy chúng ta chỉ cần tính một lần hệ số góc cho mỗi một lần phân tích ảnh ở góc nghiêng θ. Để tránh tính toán trên các số thực chúng tôi sử dụng các đƣờng chiếu là các đƣờng thẳng Bresenham. Với mỗi một góc nghiêng θ, chúng ta sẽ tính trƣớc các điểm trên đƣờng thẳng Bresenham. Sau đó, với mỗi đƣờng chiếu ta sẽ sử dụng lại tập điểm đã tính trƣớc.

Tuy nhiên độ chính xác phụ thuộc vào việc ảnh đó đƣợc chia làm bao nhiêu phần. Nếu chia quá nhỏ thì đối với các góc nghiêng gần nhau (chỉ cách nhau 0.2 o

hoặc 0.3 o) sẽ gần nhƣ không có sự sai khác nhau về tổng diện tích vùng trắng. Do vậy, việc xác định góc nghiêng sẽ không chính xác trong trƣờng hợp này. Để khắc phục nhƣợc điểm đó, chúng ta sẽ sử dụng phƣơng pháp này để ƣớc lƣợng nhanh một góc A, sau đó sử dụng phƣơng pháp ở mục 3.2.2, để chính xác hóa góc nghiêng của ảnh.

Tối ƣu các tham số.

Văn bản sau khi qua máy quét thƣờng tạo ra một hình ảnh bị nghiêng với góc nghiêng nằm trong khoảng [-150

, 150]. Ta sẽ tìm góc nghiêng của ảnh trong khoảng này (MINANGLE = -15, MAXANGLE = 15). Đây là một khoảng xác định phù hợp, vì nếu khoảng tìm kiếm quá lớn sẽ làm tăng thời gian xử lý, ngƣợc lại nếu khoảng quá nhỏ thì có nhiều khả năng góc nghiêng sẽ nằm ngoài khoảng. Trong trƣờng hợp góc nghiêng của hình ảnh vƣợt quá khoảng tìm kiếm thì điều đó cũng sẽ đƣợc phát hiện trong bƣớc xử lý tiếp theo (phân vùng ảnh), khi đó ta sẽ thực hiện tìm kiếm lại góc nghiêng với một khoảng tìm kiếm rộng hơn. (adsbygoogle = window.adsbygoogle || []).push({});

Độ chênh lệch trong việc chọn từng góc θ trong khoảng tìm kiếm cũng có ảnh hƣởng quan trọng đối với hiệu năng và độ chính xác. Ví dụ nhƣ nếu mỗi góc θ cách nhau một khoảng 0.1 và khoảng tìm kiếm là ±150

thì cần xét với 300 trƣờng hợp, độ chính xác của góc nghiêng thu đƣợc là ±0.10. Việc tính hàm ƣớc lƣợng đối

87

với tất cả các góc nghiêng có thể nhƣ vậy là không cần thiết, thay vào đó chúng tôi sử dụng khoảng cách 20

để ƣớc lƣợng ở bƣớc đầu tiên. Sau đó dựa vào kết quả thu đƣợc, chúng tôi thu hẹp khoảng tìm kiếm và khoảng cách giữa các góc cần ƣớc lƣợng để đạt đƣợc độ chính xác cao hơn. Thực nghiệm cho thấy trong bƣớc đầu tiên, nếu lấy khoảng cách là 10

hoặc 20 không làm thay đổi độ chính xác của thuật toán.

Để tăng cƣờng hơn nữa hiệu quả tính toán, trong bƣớc đầu tiên khi độ chính xác là nhỏ, do đó không cần phải sử dụng ảnh lớn và chi tiết. Chúng tôi sử dụng ảnh cỡ khoảng 50DPI (thu nhỏ từ ảnh ban đầu) cho bƣớc sử dụng thuật toán 3.2.3, còn trong các bƣớc tiếp theo (thuật toán 3.2.2) thì sử dụng ảnh gốc để đảm bảo độ chính xác.

88

3.3.2.2.Thuật toán sử dụng đƣờng thẳng dày.

Để xác định góc nghiêng của biểu mẫu, chúng ta có thể thiết kế them trên biểu mẫu một “đường thẳng dày”. Đó là một đƣờng thẳng song song với mép trên của phiếu và có một độ dày nhất định để tránh đƣờng thẳng bị mất nét. Chúng ta sẽ nhận dạng đƣờng thẳng này và độ nghiêng của nó dựa trên thuật toán Hough.

Một vấn đề dễ nhận thấy là thuật toán Hough chỉ tìm những đƣờng thẳng mảnh (có độ dày 1 điểm ảnh). Do vậy nếu áp dụng ngay thuật toán Hough thì sẽ đi đến kết quả không nhƣ mong muốn, vì thuật toán này sẽ tìm đƣợc rất nhiều đƣờng thẳng trên đƣờng thẳng dày này với các độ nghiêng không giống nhau.

Để áp dụng đƣợc thuật toán Hough, chúng ta quan niệm đƣờng thẳng dày là tập hợp các đƣờng thẳng mảnh song song và kề cận nhau hợp thành. Thay vì nhận dạng đƣờng thẳng dày, chúng ta sẽ nhận dạng tập hợp các đƣờng thẳng đó.

Trƣớc tiên, ta có một phát biểu sau: trong vùng của đường thẳng dày, xét tất cả tập hợp của các đường thẳng mảnh song song với nhau và có độ dài bằng độ dài đường thẳng dày, khi đó tập hợp mà có các đường thẳng song song với đường thẳng dày sẽ có số lượng các đường thẳng là lớn nhất.

Ta có thể chứng minh phát biểu này một cách đơn giản nhƣ sau:

Giả sử đƣờng thẳng dày có độ dày là a và độ dài là b, ta dễ dàng nhận ra một tập hợp bao gồm a đƣờng thẳng mảnh song song nhau có độ dài b và song song

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 73)