Mô tả thuật toán Tách và Nối thích nghi

Một phần của tài liệu (LUẬN văn THẠC sĩ) đánh giá sự ảnh hưởng của tham số đến kết quả phân tách của thuật toán whitespace (Trang 44 - 58)

Tiêu chuẩn xác định vùng đồng nhất để nối ghép[14]:

Hai vùng tương ứng rm và rn được coi là đồng nhất nếu chúng thảo mãn điều kiện sau:

45 Trong đó: def 0 | 1 | m m m m r r r r M                | | | m n m m m r n r r r m n N M N M M N N             2 2 , , 1 | ( , | ) ( , | ) m m m n m n r r r r k i r k i r m n I k j M I k j M N N                 

Trong đó: Nm và Nn biểu thị số vùng con trong mỗi vùng tương ứng rm

và rn. M|rm và M|rn biểu thị giá trị trung bình của mỗi vùng tương ứng Nm và Nn.

Một số thuật toán tiêu biểu cho hướng tiếp cận này là Tab-stop.

c) Ưu điểm

- Có thể áp dụng với các loại trang tài liệu có cấu trúc phức tạp vì thuật toán này không quan tâm đến việc phân đoạn các thành phần cơ sở, mà chỉ chia trang tài liệu thành các vùng hình chữ nhật và xem xét giá trị trung bình của nó. Như vậy các trang tài liệu có thể bỏ qua khâu xác định và hiệu chỉnh độ nghiêng

- Có thể áp dụng cho các loại trang tài liệu có nhiều loại font chữ khác nhau

- Tốc độ thực hiện nhanh hơn so với Top-down và Bottom-up

d) Nhược điểm

- Hiệu quả của thuật toán phụ thuộc vào giá trị trung bình của vùng được xét, trong một số tình huống thì giá trị trung bình của vùng văn bản và vùng đồ họa là như nhau. Cho nên thuật toán này vẫn có thể phân đoạn nhầm. - Không có một giá trị hằng số τ cho mọi trang tài liệu vì thế việc xác định giá τ là một vấn đền khó.

46

2.1.4. Đánh giá và lựa chọn thuật toán.

Từ những phân tích trên cho thấy ưu điểm của hướng tiếp cận bottom- up là nhược điểm của hướng tiếp cận Top-down và ngược lại. Do đó, trong những năm gần đầy đã có nhiều các thuật toán phát triển theo hướng lai ghép (Hybrid) giữa top-down và bottom-up, một trong các thuật toán tiêu biểu như Tab-Stop [14], ...Các thuật toán dựa trên phương pháp bottom-up để xác định các đường phân tách (ví dụ như, các khoảng trắng hình chứ nhật, các tab-stop, ...), từ đó suy ra cấu trúc tổng quát của trang ảnh. Sau đó, thuật toán sử dụng phương pháp bottom-up cùng với các đường phân tách để xác định các vùng chữ. Các thuật toán lai ghép đã khắc phục được hạn chế của hướng tiếp cận Top-down đó là có thể thực hiện được các trường hợp trang ảnh có cấu trúc ảnh non-Mahattan và hướng tiếp cận bottom-up. Điểm mẫu chốt của các thuật toán Hybrid là xác định các đường phân tách. Tuy nhiên, việc xác định các khoảng trắng phân tách lại là một bài toán gặp phải rất nhiều khó khắn bởi nhiều lý do, ví dụ như có những vùng chứ ở quá gần nhau, các vùng chứ được căn lề trái phải không thẳng hàng hoặc khoảng cách giữa các thành phần liên thông là quá lớn,... điều này đã làm cho các thuật toán hiện tại thường mắc phải các lỗi quên hoặc xác định nhầm các đường, phần. Để phân tách một trang ảnh tài liệu thành các vùng dữ liệu thuần nhất, đối với nhiều thuật toán tiên tiến đã sử dụng tập tất cả các phân tách được trình bày trên từng trang ảnh tương ứng.

Các thuật toán phân tách trang hiện nay đều phụ thuộc rất nhiều vào kết quả của quá trình lọc khoảng trắng, chỉnh góc nghiêng, tức là các tham số điều kiện để quyết định các khoảng trắng có được giữ lại hay không, góc nghiêng có phù hợp hay không.

Ta thấy trong hướng tiếp cận Top-down có thuật toán Whitespace là thuật toán tương đối nổi tiếng bởi vì nó khá đơn giản nhưng nó lại rất hiệu

47

quả trong việc phát hiện nền trang ảnh và đã có trong bộ mã nguồn mở OCROpus. Hiện tại có rất nhiều các thuật toán sử dụng nó như là một trong các bước cơ bản để phát triển thuật toán. Cho nên việc tiếp tục nghiên cứu và cả tiến nó là một vấn đề có ý nghĩa thực tiễn.

2.2. Thuật toán phân tích trang tài liệu Whitespace

2.2.1. Giới thiệu

Có nhiều hướng tiếp cận khác nhau để giải quyết bài toán phân tích cấu trúc vật lý trang ảnh tài liệu (phân đoạn trang). Hướng tiếp cận dựa vào hình chiếu (e.g., RecursiveX-YCuts [17]) sử dụng hình chiếu ngang và dọc để chia đệ quy trang thành các vùng hình chữ nhật nhỏ hơn. Hướng tiếp cận dựa vào các phép biến đổi hình thái học (e.g., Run-Length Smearing [16]) sử dụng các phần tử cấu trúc để “nối” các đối tượng tiền cảnh của trang lại với nhau và từ đó xác định các phân đoạn của trang. Hướng tiếp cận dựa vào phân tích cấu trúc nền của trang (e.g., Whitespace [6])cố gắng tìm các khoảng trắng hình chữ nhật lớn nhất để phân tách các vùng trong trang. Hướng tiếp cận dựa vào phân tích kết cấu (texture-base analysis) (e.g., Docstrum[14]) tìm cách xây dựng các biểu đồ thể hiện mối tương quan giữa các thành phần liên thông để gom nhóm chúng thành các vùng lớn hơn. Hoặc là tìm các tab-stop[15] để phân tách các cột, sau đó gom nhóm các phần của cột thành các khối đồng nhất.

Hướng tiếp cận dựa vào nền trang sử dụng các vùng hình chữ nhật để miêu tả cấu trúc của nền.Theo một cách tự nhiên, các đối tượng tiền cảnh thường được miêu tả bởi các hình chữ nhật, nên các khoảng trắng nền cũng sẽ được miêu tả bởi một tập hợp các hình chữ nhật. Phương pháp miêu tả trong[16] sử dụng quét dòng để tìm các khoảng trắng hình chữ nhật cục bộ lớn nhất, sau đó mới lựa chọn các hình chữ nhật dựa trên một số tiêu chí tối ưu. Mặc dù thuật toán quét này là hiệu quả nhưng khó thực thi (vì phải miêu

48

tả một cấu trúc hình học phức tạp và xem xét nhiều trường hợp đặc biệt) và kết quả trả về không theo thứ tự (không biết được cái nào là tốt nhất, xấu nhất).Một thuật toán dễ thực thi và kết quả trả về được sắp xếp theo thứ tự được miêu tả trong [16].

Mặc dù thuật toán Whitespace cho kết quả tốt tuy nhiên thuật toán Whitespace phụ thuộc rất nhiều vào việc lựa chọn bộ các tham. Trong luận văn này tôi sẽ trình bày tóm tắt lại thuật toán và chủ yếu đi sâu vào đánh giá sự ảnh hưởng của tham số đến kết quả phân tích của thuật toán Whitespace. Tiến hành một số thử nghiệm so sánh chứng minh trên 1600 trang ảnh của bộ dữ liệu UW-III.

2.2.2. Whitespace Cover

2.2.2.1. Định nghĩa bài toán

Chúng ta xác định bài toán hình chữ nhật trắng cực đại như sau. Giả sử rằng chúng ta có một tập hợp các hình chữ nhật C = {r0,..., rn } trong mặt phẳng, tất cả được chứa trong một hình chữ nhật giới hạn đã cho rb. Trong phân tích bố cục, ri sẽ thường tương ứng với các khung giới hạn của các thành phần được kết nối trên trang, và hình chữ nhật giới hạn tổng thể rb sẽ đại diện cho toàn bộ trang. Ngoài ra, giả sử rằng chúng ta có một hàm đánh giá cho các hình chữ nhật Q : R4 → R thỏa mãn, cho bất kỳ hai hình chữ nhật rr'

nào mà.

r r' Q(r) ≤ Q(r') (1)

Trong trường hợp được mô tả tại [14], hàm Q chỉ đơn giản là diện tích của hình chữ nhật, điều được dễ dàng nhìn thấy thoả mãn điều kiện được nêu trong Phương trình 1. Bài toán hình chữ nhật trắng cực đại là tìm một hình chữ nhật r^ rb nhằm tối đa hóa Q(T) trong số tất cả các hình chữ nhật có thể

r rb, trong đó r không trùng với bất kỳ hình chữ nhật nào trong C. Hoặc, được biểu diễn bằng ký hiệu toán học:

49

Trong

đó: (2)

Hình 2.11: Hình minh họa bước đệ quy của thuật toán Cover khoảng trắng phân nhánh - giới hạn. Xem giải thích ở nội dung văn bản.

2.2.2.2. Thuật toán

Như đã nói ở trên, có một số thuật toán cho các bài toán hình chữ nhật trống cực đại, bao gồm các thuật toán từ hình học tính toán (ví dụ [15]) và phân tích tài liệu (ví dụ [6]). Thật đáng tiếc, các thuật toán này thực hiện khá phức tạp và không được sử dụng rộng rãi.

Thuật toán được trình bày trong bài viết này cho bài toán hình chữ nhật trống cực đại có thể được sử dụng với những obstacles là các hình chữ nhật bao quanh điểm hoặc ký tự.

Ý tưởng chính tương tự với các phương pháp sắp xếp nhanh hoặc nhánh cận (quicksort or branch-and-bound methods). Nó được minh họa trong Hình 2.1.1. Hình 2.1.1(a) cho thấy sự khởi đầu của thuật toán: chúng ta có một giới hạn bên ngoài và một tập hợp các hình chữ nhật (obstacles). Nếu không có obstacles nào được chứa trong giới hạn thì chúng ta đã hoàn thành công việc: bản thân giới hạn là hình chữ nhật cực đại cho những obstacles. Nếu một hoặc nhiều obstacles được chứa trong giới hạn, chúng ta chọn một trong những hình chữ nhật này làm một “pivot” (Hình 2.1.1 (b)). Tốt nhất là chọn một hình chữ nhật nằm ở trung tâm của giới hạn. Giả sử chúng ta biết rằng hình chữ nhật cực đại không thể chứa bất kỳ obstacles, đặc biệt, nó

50

không thể chứa pivot. Do đó, có bốn khả năng giải bài toán hình chữ nhật trắng cực đại: về bên trái và bên phải của pivot (Hình 2.1.1 (c)) hoặc ở trên và bên dưới pivot (Hình 2.1.1 (d)). Chúng ta tính toán các obstacles chồng lấp lên mỗi bốn hình chữ nhật phụ này và đánh giá một giới hạn trên về chất lượng của các hình chữ nhật trống cực đại có thể có trong mỗi hình chữ nhật phụ; do đặc tính đơn điệu (Phương trình 1), hàm chất lượng Q được áp dụng cho các hình chữ nhật phụ đảm nhiệm vai trò của một giới hạn trên. Các hình chữ nhật phụ và các obstacles và tính chất liên quan của chúng được xếp vào một hàng đợi ưu tiên và các bước trên được lặp đi lặp lại cho đến khi hình chữ nhật không chứa obstacles đầu tiên xuất hiện ở đầu hàng đợi ưu tiên; hình chữ nhật này là giải pháp tối ưu tổng thể cho bài toán hình chữ nhật trống cực đại theo hàm chất lượng Q. Thuật toán này được cho trong phần giả mã ở dưới.

Để có được n giải pháp tốt nhất, chúng ta có thể tiếp tục mở rộng các nút từ hàng đợi ưu tiên cho đến khi chúng ta có được n giải pháp theo thứ tự chất lượng giảm dần. Tuy nhiên, rất nhiều trong số những giải pháp này sẽ chồng lấp lên nhau đáng kể. Biến thức tham lam sau của thuật toán cho việc tìm kiếm n giải pháp tốt nhất đã giải quyết vấn đề này. Sau khi chúng ta tìm thấy hình chữ nhật trống cực đại r^, chúng ta có thể thêm nó vào danh sách các obstacles và tiếp tục mở rộng. Khi chúng ta bỏ ra khỏi hàng đợi một trạng thái tìm kiếm, chúng ta kiểm tra xem danh sách các obstacles có thay đổi không, nếu có, tính toán lại chất lượng của nút và xếp lại nó vào hàng đợi. Điều này sẽ tạo ra một Cover tham lam của khoảng trắng với các hình chữ nhật cực đại và nhanh hơn đáng kể so với khởi động lại thuật toán.

Giả mã cho thuật toán như sau:

def find_whitespace(bound,rectangles):

queue.enqueue(quality(bound),bound,rectangles) while not queue.is_empty():

51 (q,r,obstacles) = queue.dequeue_max() if obstacles==[]: return r pivot = pick(obstacles) r0 = (pivot.x1,r.y0,r.x1,r.y1) r1 = (r.x0,r.y0,pivot.x0,r.y1) r2 = (r.x0,pivot.y1,r.x1,r.y1) r3 = (r.x0,r.y0,r.x1,pivot.y0) subrectangles = [r0,r1,r2,r3] for sub_r in subrectangles: sub_q = quality(sub_r) sub_obstacles =

[list of u in obstacles if not overlaps(u,sub_r)] queue.enqueue(sub_q,sub_r,sub_obstacles)

Hơn nữa, thay vì nhấn mạnh vào một Cover của các hình chữ nhật tách rời nhau hoàn toàn, chúng ta có thể cho phép một số trong số chúng chồng lấp một phần hoặc hoàn toàn. Việc thực hiện tìm kiếm cẩn thận các hình chữ nhật cực đại chồng lấp một phần này có thể đưa ràng buộc chồng lấp vào việc tính toán giới hạn trên trong quá trình phân tách. Tuy nhiên, thuật toán chạy đủ nhanh trên các bài toán thế giới thực, và số lượng các giải pháp chúng ta mong muốn thường đủ nhỏ, nó là đủ chỉ đơn thuần là để tạo ra các hình chữ nhật trống cực đại theo thứ tự chất lượng giảm dần bằng cách sử dụng thuật toán chưa sửa đổi, thử nghiệm cho sự chồng lấp của bất kỳ giải pháp mới nào với tất cả những giải pháp được xác định trước đó, và từ chối bất kỳ giải pháp mới nào chồng lấp quá nhiều với một giải pháp đã tìm thấy trước đây.

Một ứng dụng của thuật toán này cho việc tìm kiếm một lớp bọc tham lam của một tài liệu từ cơ sở dữ liệu UW-III với các hình chữ nhật trống cực đại được biểu thị trong Hình 2.2. Thời gian tính toán cho các cài đặt tham số xuất hiện thường xuyên bằng cách sử dụng một thuật toán xử lý C++ trên một máy tính xách tay 400MHz là dưới một giây. Do vậy, thuật toán này có thể

52

được sử dụng như là một sự thay thế treo cho thuật toán Cover khoảng trắng được sử dụng bởi [14], và nó sẽ rất hữu ích cho bất cứ ai quan tâm đến việc thực hiện loại hệ thống phân đoạn trang này. Tuy nhiên, dưới đây, bài viết này mô tả một cách dùng thay thế của thuật toán có sử dụng các tiêu chí đánh giá khác nhau.

Hình 2.12: Áp dụng thuật toán tìm kiếm dòng ràng buộc cho các biến thức mô phỏng của một trang.

Các lề bên trong (obstacles) đã được tìm thấy tự động bằng cách sử dụng thuật toán được mô tả trong bài viết này và được thể hiện bằng màu xanh lá cây. Các dòng văn bản đã được tìm thấy bằng cách sử dụng công cụ tìm kiếm dòng ràng buộc và được thể hiện bằng màu đỏ nhạt. (a) Hai cột lân cận có định hướng khác nhau (điều này thường xảy ra ở hai bên gáy của một cuốn sách được quét). (b) Hai cột lân cận có kích cỡ phông chữ khác nhau, và kết quả là, các đường cơ sở không xếp thành hàng.

Thuật toán phân tích trang Whitespace được Breuel miêu tả trong [15] bao gồm các bước chính sau:

1. Tìm và phân loại các thành phần liên thông (CCs) thành ba nhóm dựa vào kích thước: nhóm lớn là các đối tượng hình ảnh, đường kẻ,… nhóm

53

vừa là các đối tượng ký tự, nhóm nhỏ là các đối tượng nhiễu, dấu của ký tự,… Từ CCs của nhóm vừa, ước lượng chiều cao của dòng (x-height) và khoảng cách giữa các ký tự, các từ và các dòng để tìm các bộ tham số cho thuật toán.

2. Tìm các khoảng trắng hình chữ nhật lớn nhất (gọi là các cover) dựa vào CCs và hình bao của trang ảnh tài liệu. Hai cover này có thể chồng lên nhau nhưng không quá ngưỡng t (t = 95% diện tích của cover tốt nhất)

3. Từ các cover tìm được, lọc lấy các cover dọc (các gutter) phân tách các cột và các cover ngang (các hspace) phân tách các đoạn dựa trên một số tiêu chí: kích thước và sự chồng gối lên nhau của các cover và mật độ CCs liền kề với cover…

4. Tìm các phân đoạn trang bằng cách áp dụng thuật toán tìm cover ở bước 2. Lúc này, các CCs được thay thế bằng các gutter và hspace.Để đảm bảo các phân đoạn trang không được trùng nhau, với mỗi phân đoạn trang vừa tìm được sẽ được cập nhật như một CC và tiếp tục tìm các phân đoạn trang tiếp theo.

Như vậy, điểm mấu chốt trong thuật toán Whitespace là thuật toán tìm các cover (thuật toán WCover). Tư tưởng chính của thuật toán WCover là phương pháp nhánh cận, từ một hình bao (của trang) và một tập hợp các hình chữ nhật (CCs) thuật toán có gắng chia hình bao thành các miền con sao cho không chứa hình chữ nhật nào trong đó. Cụ thể, thuật toán bao gồm các bước sau:

1.Tìm một CC làm điểm chốt “pivot”, sao cho, càng gần tâm của hình bao càng tốt (Hình 2.13: Fig. 1.b).

2.Chia hình bao làm bốn miền con: left, right, top, bottom so với pivot (Hình

2.13: Fig. 1.c,d).

3.Nếu miền con không chứa bất kỳ CC nào thì nó là một cover. 4.Ngược lại, lặp lại bước 1 và 2 với các miền con.

Một phần của tài liệu (LUẬN văn THẠC sĩ) đánh giá sự ảnh hưởng của tham số đến kết quả phân tách của thuật toán whitespace (Trang 44 - 58)

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

(89 trang)