Hình 17. Phép toán kéo giãn trong việc nhận dạng các đường kẻ nghiêng. (a) ảnh nguyên bản. (b) α = ±22.5. (c) α = ±45. (d) α = ±67.5
Trường hợp nhận dạng các đối tượng đường thẳng không phải là các đường kẻ ngang hoặc đường kẻ dọc sẽ được minh họa trong Hình 17. Một phép toán kéo giãn đơn giản (tương đương với phép quay một góc α) sẽ được thực hiện trên các đối tượng đường thẳng này. Với một điểm ảnh có toạ độ (i, j) ta tính giá trị B = (tgα*j) trong đó α là góc nghiêng của đường thẳng so với mặt phẳng ngang. Khi đó điểm ảnh có toạ độ (i, j) sẽ được di chuyển tới toạ độ (i+B, j). Hình 17b là kết quả của phép kéo giãn Hình 17a khi góc α = 22.5 độ. Hình 17c với góc α = 45 độ. Hình 17d với góc α = 67.5 độ.
Xác định các thành phần tuyến tính, lƣu giữ thông tin của chúng, bao gồm các đƣờng thẳng dài hay các đƣờng thẳng ngắn
Xác định các nét bút không phải là văn bản, lƣu giữ thông tin các đối tƣợng này, dựa vào việc phân tích nét bút của các thành phần liên thông
Kết hợp các nét bút trong một chuỗi, xác định các đối tƣợng không phải là văn bản dựa vào thành phần liên thông mới sau khi đã thực hiện một số phép toán hình thái.
Trích ra thông tin từ các vùng bao chuỗi văn bản dựa vào hình chữ nhật giới hạn của các chuỗi trong ảnh ban đầu. Lấy ra các đối tƣợng ảnh từ lớp đối tƣợng ảnh.
Các trường hợp α = -22.5, α = -45, α = -67.5 không được chỉ ra ở trên nhưng tương tự như các trường hợp đưa ra trên Hình 17. Rõ ràng rằng đường kẻ có góc nghiêng 22.5 trên Hình 17a sẽ chuyển thành đường kẻ ngang trên Hình 17b. Sau khi thực hiện phép kéo giãn ta có thể thực hiện quét từng dòng để xác định các đường kẻ ngang. Tham số để xác định xem đường thẳng có là một đối tượng ảnh hay không khi đó sẽ là T1*cosα, bởi vì sau khi thực hiện phép kéo giãn độ dài của đường thẳng sẽ thay đổi. Cuối cùng là thực hiện phép kéo giãn ngược lại để khởi tạo lại ảnh ban đầu với góc nghiêng là góc đối của phép kéo giãn vừa thực hiện. Hai phép biến đổi trên không làm mất thông tin của ảnh mà chỉ tìm được những đường thẳng thích hợp để xác định chúng là các đối tượng ảnh.
Nếu như một bức ảnh được số hoá chính xác thì phần lớn đường kẻ nằm ngang hoặc nằm thẳng đứng với góc nghiêng là 0 hay 90 độ, hay nghiêng một góc 45 độ. Do đó phần lớn các đường kẻ sẽ được xác định một cách đơn giản chứ không cần phải thực hiện phép biến đổi như ở trên, điều đó sẽ giúp nâng cao tốc độ xử lý của hệ nhận dạng. Với trường hợp chỉ có một số lượng nhỏ các đường kẻ nằm nghiêng ngoại trừ các trường hợp 0, ±22.5, ±45, ±67.5 hay ±90 độ thì chúng nên được xử lý ở các bước sau để tiết kiệm thời gian xử lý của CPU.
2.3.2. Phân tích các thành phần liên thông của nét bút
Mặc dù đã xác định được các thành phần tuyến tính là các đối tượng ảnh ở bước trên nhưng tài liệu vẫn còn các đối tượng ảnh, là những đối tượng có kích thước khác biệt. Trong phần 2 này chúng ta sẽ xem xét từng thành phần liên thông bắt gặp khi quét toàn bộ ảnh theo từng dòng. “Thành phần liên thông” (CCs) [14] nghĩa là các điểm ảnh màu đen thuộc về một vùng giới hạn liên thông tám, trong đó mỗi điểm ảnh đen sẽ liên thông tám với một điểm ảnh đen khác trong vùng giới hạn. Trong CCs các điểm ảnh liên thông tám có thể thuộc về đối tượng văn bản hay đối tượng ảnh và nằm trong vùng giới hạn hình chữ nhật. Mỗi một hình bao chữ nhật sẽ là một thành phần CCs. Một thành phần CCs sẽ nắm giữ các thông tin sau: toạ độ nhỏ nhất và lớn nhất của hình chữ nhật, số lượng điểm ảnh màu đen. Phương pháp phân tích CCs ở đây giống với phương pháp đã đưa ra trong [14] nhưng khác nhau ở một số khía cạnh sau:
1. Thành phần CCs được tạo ra sau khi đã xác định được các thành phần LC và xoá chúng khỏi tài liệu, so với việc tạo ra CCs ngay từ ban đầu của [14].
2. Thứ hai là chúng ta sẽ sử dụng thông tin độ đậm đặc của CCs để xác định các đối tượng ảnh.
Ngay khi CCs được xác định là một đối tượng ảnh, chúng sẽ được đưa vào lớp đối tượng ảnh và xoá chúng khỏi tài liệu ảnh, khi đó tài liệu ảnh chỉ bao gồm các đối tượng văn bản.
Trong phần này các thành phần liên thông – CCs được tạo ra nhờ sử dụng phương pháp tách cạnh, toạ độ các điểm ảnh của vùng bao giới hạn của một CCs được ký hiệu là (Xi, Yi), i = 1, 2, 3, .., n, trong đó n là tổng số điểm ảnh bao vùng giới hạn. Các thông số quan trọng sau sẽ được tính toán:
1) MaxBox, biểu diễn toạ độ lớn nhất và nhỏ nhất hình bao chữ nhật của CCs 2) WBRatio, biểu diễn độ đậm đặc của các điểm ảnh đen trong vùng giới hạn của
MaxBox.
3) HWRatio biểu diễn tỉ lệ giữa hai chiều của vùng giới hạn MaxBox. Nếu HWRatio < 1 thì đặt HWRatio = 1 / HWRatio.
Khi đó CCs sẽ được coi là một đối tượng ảnh nếu các thông số trên thoả mãn 1 trong các điều kiện sau:
A) WBRatio ≤ T2, B) HWRatio ≥ T3, hoặc
C) Độ dài của cạnh dài hơn của MaxBox ≤ T4.
Trong đó T2, T3 và T4 là các tham số được thiết lập trước giống như T1. Điều kiện A để xác định các đường kẻ mà có góc nghiêng không nằm trong các trường hợp 0, ±22.5, ±45, ±67.5 hay ±90, bởi vì số lượng các điểm ảnh trắng trong MaxBox của các đường kẻ nghiêng sẽ nhiều hơn so với CCs của văn bản. Hơn thế nữa điều kiện A còn để xác định các hình có kích thước lớn và có WBRatio nhỏ. Sử dụng điều kiện B để xác định các hình dài nhưng có bề rộng nhỏ. Sử dụng điều kiện C để xác định các đối tượng ảnh mà nhỏ hơn cả ký tự văn bản, chẳng hạn các điểm nhiễu.
Kết thúc bước này, một số lượng lớn các đối tượng ảnh sẽ được xác định. Tuy nhiên có một số thành phần của văn bản cũng bị xoá đi vì được xác định là đối tượng ảnh, chẳng hạn như dấu chấm câu (.), nét bút của một số ký tự Trung Quốc, dấu chấm trên chữ cái i hay một số dấu trong kiểu chữ Tiếng Việt. Tuy nhiên dấu chấm rất giống như một điểm nhiễu, có thể khôi phục đối tượng này ở những bước xử lý sau nếu như nó nằm trong môi trường văn bản. Việc mất một số nét của ký tự Trung Quốc cũng sẽ
được giải quyết ở một số bước sau. Để không làm mất dấu của ký tự Tiếng Việt cần điều chỉnh tham số T4 thích hợp để không loại bỏ dấu của Tiếng Việt.
2.3.3. Kết hợp các nét ký tự tạo thành các chuỗi văn bản
Trong đặc trưng thứ 2 của phần 2.2 độ dài của khoảng trắng giữa các ký tự hay giữa các từ thường là nhỏ, do đó chúng ta có thể nhóm chúng cùng với nhau. Nếu như khoảng cách giữa hai điểm ảnh màu đen là nhỏ, chẳng hạn như số lượng điểm ảnh trắng giữa chúng nhỏ hơn một tham số T5, chúng ta sẽ thay thế các điểm ảnh màu trắng giữa chúng là màu đen. Điều này giống như chúng ta dùng bút tô màu đen để tô lên các điểm ảnh trắng. Hướng của bút lông này là theo chiều ngang hoặc chiều dọc. Hình 18 chỉ ra một thí dụ về việc dùng bút để tô các điểm ảnh. Mục đích bước này là xây dụng các thành phần liên thông mới (NCCs) bằng việc kết hợp nét bút của các ký tự, NCCs được xây dựng dựa vào đặc trưng 2 của phần 2.2. Có thể tóm tắt lại mục đích của bước này như sau đây:
1. Những dấu chấm (.), ký hiệu “-“, và một số nét bút bị xoá đi ở bước trước có thể khôi phục lại được.
2. Việc kết hợp các nét bút và các ký tự sẽ giúp dễ dạng nhận dạng vùng văn bản, bởi vì một chuỗi văn bản được kết hợp tạo thành NCCs sẽ thể hiện tính đặc trưng của văn bản rõ rảng hơn.
3. Thao tác dùng bút lông để tô những điểm ảnh thích hợp sẽ giúp phân tách các đối tượng ảnh một cách rõ ràng hơn và giúp các bước xử lý sau này dễ dàng phân tách hai đối tượng văn bản và ảnh.
2.3.4. Thực hiện các phép toán hình thái
Bước này bao gồm một thao tác co ảnh và một thao tác giãn ảnh. Mục đích của các phép toán hình thái này nhằm mục đích loại bỏ khả năng có thể xảy ra khi ký tự tiếp xúc với đối tượng ảnh hay các chuỗi ký tự tiếp xúc với nhau và sau đó xây dựng lại thành phần NCCs mới như trong 2.3.3 để cuối cùng phân tách chuỗi văn bản và ảnh.
2.3.5. Phân tích các thành phần liên thông mới (NCCs)
Bước này thực hiện giống như bước 2.3.2 tuy nhiên nó sẽ làm việc với NCCs thay vì CCs như trong 2.3.2. Một cách tương tự, chúng ta sẽ duyệt qua tất cả các điểm biên của NCCs bằng cách quét ảnh theo từng dòng và lấy ra toạ độ của tất cả các điểm biên. Ba thông số quan trọng, MaxBox2, WBRatio2, HWRatio2 sẽ được tính. Thành phần NCCs sẽ được coi như là một đối tượng ảnh khi các thông số trên thoả mãn 1 trong những điều kiện sau:
WBRatio2 ≤ T6,
Độ dài của cạnh dài hơn trong MaxBox2 ≤ T7,
Độ dài của cạnh nhỏ hơn trong MaxBox2 ≤ T8, hay
Độ dài của cạnh nhỏ hơn trong MaxBox2 ≤ T7 và HWRatio2 ≥ T9 Trong đó T6, T7, T8 và T9 là các các tham số ngưỡng cho trước [28].
Trong bước này hướng của chuỗi văn bản cũng sẽ được đánh giá. Trường hợp WBRatio2 không đủ cao, chúng ta sẽ tìm cách thu nhỏ lại hình chữ nhật bao của NCCs. Chính vì lý do đó, các điểm biên trong ảnh của NCCs sẽ được quay để tìm hình bao chữ nhật nhỏ nhất. Trong thuật toán này mỗi lần sẽ được quay 10 độ, vì vậy cần có 8 lần quay cho mỗi NCCs. Sau đó hình bao chữ nhật nhỏ nhất sẽ được quay ngược lại ngần ấy độ, kết quả là hình chữ nhật nghiêng sẽ là hình bao nhỏ nhất của NCCs và khi đó góc của hình chữ nhật nghiêng sẽ là hướng của chuỗi ký tự.
Kết thúc bước này, toàn bộ các đối tượng ảnh được nhận dạng sẽ được đưa vào lớp đối tượng ảnh.
2.3.6. Biểu diễn cấu trúc thông tin của các chuỗi văn bản
Trong 2.3.5, khi một đối tượng NCCs được coi là một chuỗi ký tự, hình bao MaxBox2 sẽ được biểu diễn dưới cấu trúc sau:
Char_Box { double Angle; int Coe[4];},
Trong đó Angle biểu diễn hướng của chuỗi ký tự. Khi Angle = 0, hình bao là hình chữ nhật và Coe[4] biểu diễn toạ độ góc trên bên trái và góc dưới bên phải của hình bao. Khi Angle > 0, hình bao sẽ là một hình chữ nhật nghiêng và Coe[4] biểu diễn toạ độ góc trên bên trái và góc dưới bên phải. Kết quả của bước này là trích ra được các thông tin từ vùng giới hạn chuỗi ký tự, cũng chính là ghi lại thông tin các vùng bao hình chữ nhật từ tài liệu ảnh ban đầu. Nếu dựa vào các thông tin này chúng ta lấy ra các vùng giới hạn của chuỗi ký tự từ ảnh ban đầu, phần còn lại của ảnh khi đó sẽ là các đối tượng ảnh.
2.3.7. Thiết lập các tham số
Các bước thực hiện của thuật toán phân tách văn bản - ảnh đã được mô tả ở trên. Dễ dàng nhận thấy một điều rằng phương pháp dựa trên quy tắc này cần tới 9 tham số ngưỡng để phân tách chuỗi văn bản và ảnh. Việc thiết lập các tham số này sẽ ảnh hưởng tới tính hiệu quả của thuật toán. Mỗi một tham số có thể thiết lập một cách riêng rẽ hoặc thiết lập dựa trên một vài thuộc tính của tài liệu ảnh. Thông qua kết quả thực nghiệm của một số tài liệu ảnh chuẩn, việc thiết lập các thông số này đạt hiệu quả hơn nhiều. Trong luận văn này những tham số dưới đây được thiết lập dựa trên [28] và kết quả thực nghiệm 4.1 được trình bày ở phần cuối của luận văn:
T1 = 1.5*Hav; T2=0.3; T3 =5.5; T4 = 0.35*Hav; T5 = 0.6*Hav; T6 = 0.4; T7 = 0.7*Hav; T8 = 0.25*Hav; T9 = 5;
Ngoại trừ các tham số T2, T3, T6 và T9, tất cả các tham số còn lại đều phụ thuộc vào Hav, Trong đó Hav là độ cao trung bình của ký tự được tính theo số điểm ảnh. Điều đó có nghĩa là chỉ cần một giá trị, Hav, để thiết lập các tham số. Hav có thể được thiết lập bằng tay hoặc được tính tự động bằng cách sử dụng phương pháp Histogram như trong [31]. Trong thực nghiệm được trình bày ở phần 4.1 Hav được thiết lập bằng tay. Việc lựa chọn độ cao trung bình của ký tự làm tham số sẽ rất thuận lợi cho ứng dụng và đặc biệt hiệu quả đối với các tài liệu ảnh kỹ thuật. Việc chọn tham số như vậy không những đảm bảo tính hiệu quả của thuật toán mà còn đáp ứng được tính khách quan của tài liệu được đưa vào.
2.4. Kết luận chƣơng
Chương này đã trình bày một thuật toán phân tách văn bản và ảnh một cách hiệu quả. Thuật toán sẽ hoạt động tốt và hiệu quả ở một số khía cạnh sau:
1. Nó có thể phân tách ảnh và văn bản trong trường hợp 2 đối tượng này tiếp xúc với nhau, điều này dường như có thể rất khó với các thuật toán khác, chẳng hạn như [34].
2. Có thể nhận dạng khá tốt các ký tự của Trung Quốc. 3. Việc xác định hướng của văn bản là rất dễ dàng.
4. Phần lớn các tham số đều được tính qua đại lượng Hav, đại lượng này cho phép có thể thay đổi được. Điều này giúp cho thuật toán khá là thuận tiện. Kết quả ảnh thu được của thuật toán cũng sẽ không bị ảnh hưởng lớn vào Hav khi mà giá trị Hav nằm trong một khoảng giá trị là độ cao trung bình của một ký tự.
5. Thuật toán cũng sẽ không bị ảnh hưởng khi ảnh có nhiều điểm nhiễu.
Tuy nhiên cũng sẽ dễ dàng nhận thấy thuật toán cũng còn một số điểm hạn chế. Chúng ta có thể tóm tắt lại các loại lỗi mà thuật toán gặp phải như sau:
1. Khi mà độ đậm đặc của đối tượng ảnh quá cao hay độ đậm đặc của vùng văn bản thấp sẽ dẫn đến nhận dạng nhầm đối tượng ảnh là văn bản.
2. Đôi khi một phần của hình tròn lại được tách ra thành một đối tượng của văn bản bởi vì thuật toán xác định và xoá các thành phần tuyến tính gặp phải lỗi vì không loại bỏ được thành phần này.
3. Một số ký hiệu văn bản đặc biệt như “.”, “1”, “l” hoặc “I” hay các đường kẻ gạch ngang thường cho kết quả không tin cậy.
4. Đối với sơ đồ có các hình mũi tên, thông thường thuật toán sẽ không chuyển được các hình mũi tên theo chiều ngang và chiều dọc.
5. Nếu hai chuỗi ký tự được đặt song song và đặt quá gần nhau, chúng có thể được nhóm lại như là một chuỗi ký tự. Bởi vì thuật toán sẽ sự dùng hình bao chữ nhật để trích ra các ký tự, vì vậy tất cả các thành phần nằm trong hình bao sẽ được hiểu là một thành phần văn bản. Lỗi sẽ xảy ra khi có một vài thành phần của đối tượng ảnh nằm trong hình bao đó.
Dù vẫn còn một số hạn chế trong việc nhận dạng một số đối tượng nhưng có thể khắc phục được vấn đề này dựa vào việc điều chỉnh tham số. Hơn thế nữa trong một số tình huống việc thực hiện chuyển tất cả các thành phần tuyến tính thoả mãn điều kiện sang thành đối tượng ảnh có thể để lại những điểm ảnh rời rạc thuộc đối tượng ảnh mà