Năm 1998, nhóm tác giả Ogleg Okun, Pietikainen, Jaakko Sauvola thuộc khoa kỹ nghệ điện điện tử và công nghệ thông tin trƣờng đại học Oulu Finland đề xuất phƣơng pháp phân loại đối tƣợng dùng logic mờ ( Fuzzy logic ) để loại bỏ bớt những đối tƣợng phi ký tự và sau đó dùng vector chỉ phƣơng tƣơng tự nhƣ phƣơng pháp phân tích láng ghiềng để chỉ ra góc lệch cho văn bản. Zhixin Shi và Govindaraju thuộc trung tâm phân tích và nhận dạng văn bản trƣờng đại học quốc gia Mỹ tại Buffalo đề xuất một phƣơng pháp phát hiện góc nghiêng văn bản bằng phƣơng pháp nén chạy dài mờ (Fuzzy Runlength). Nhóm tác giả E. Kavallieratou, N. Fakotakis và G. Kokkinakis thuộc trƣờng đại học Patras Hy lạp đề xuất một phƣơng pháp hoàn toàn mới, dùng tích phân lớp Cohen xác định góc nghiêng văn bản.
51
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƢƠNG 3
NÂNG CAO TỐC ĐỘ VÀ CHẤT LƢỢNG PHÁT HIỆN GÓC NGHIÊNG 3.1 Xử lý ảnh có độ phân giải thấp
Mục đích của giai đoạn này là biến đổi những ảnh có độ phân giải thấp tức là các đối tƣợng bị phân đoạn. Sau khi đã đƣa đƣợc ảnh nhiều màu phức tạp về một ảnh thứ cấp với các đối tƣợng ký tự đơn sắc, nếu độ phân giải ảnh thấp một ký tự cũng có thể bị phân thành nhiều vùng đối tƣợng, hình 3 minh họa một ảnh văn bản nghiêng có độ phân giải thấp. Từ hình vẽ ta có thể thấy, một số ký tự bị chia cắt thành nhiều phần riêng biệt. Nhiệm vụ của ta là nối chúng lại với nhau để đƣợc các ký tự.
Tuy các vùng đối tƣợng của một ký tự có cùng một màu nhƣng vì chúng không liên thông nên lẽ ra phải áp dụng biến đổi Hough cho một ký tự, nhƣng vì sự chia cắt ta lại áp dụng cho các phần của ký tự đó dẫn đến đƣa ra góc lệch sai cho văn bản.
Để khắc phục một phần sự rời rạc các đối tƣợng ta dùng các phép toán hình thái để hàn gắn một đoạn đứt của đối tƣợng. Trƣớc hết ta định nghĩa một phép toán hình thái.
Sử dụng ý tƣởng của phép giản ảnh, trong thuật toán để hàn các đoạn đứt của các ký tự lại với nhau ta duyệt ảnh hai lần theo hai chiều dọc và ngang. Một điểm ảnh sẽ đƣợc gán lại giá trị màu nếu thỏa mãn điều kiện hai điểm ảnh trực tiếp bên trên và bên dƣới của nó có cùng một màu và gán lại giá trị màu đó cho điểm ảnh ở giữa.
52
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Tƣơng tự nếu hai điểm bên trái và bên phải có cùng một màu thì cũng gán lại màu cho điểm ảnh ở giữa .
3.2 Tự động xác định ngƣỡng phân loại
Sau khi đã xây dựng đƣợc hàm dò biên tổng quát cho một đối tƣợng bất kỳ. Bƣớc tiếp theo ta sẽ dùng hàm này để xác định ra các đối tƣợng trong ảnh cùng với biên của chúng. Một cách trực tiếp giống nhƣ một số thuật toán khác, ta có thể dùng biến đổi Hough áp dụng lên đáy của các hình chữ nhật ngoại tiếp các đối tƣợng này và ƣớc lƣợng góc nghiêng cho văn bản. Tuy nhiên, ở đây chúng tôi không làm nhƣ vậy, và biến đổi Hough đƣợc áp dụng sau khi đã loại bớt đi một số đối tƣợng bằng các ngƣỡng kích thƣớc.
3.2.1. Mục đích và ý nghĩa việc dùng ngưỡng.
Mục đích của việc dùng ngƣỡng là dựa vào thƣớc đo kích thƣớc để phân loại đối tƣợng. Nói cách khác, dùng ngƣỡng phân loại ta có thể phân biệt đƣợc một cách tƣơng đối những đối tƣợng là ký tự và đối tƣợng phi ký tự. Nhờ biết phân biệt đối tƣợng, ta sẽ chỉ làm việc với các đối tƣợng có kích thƣớc chủ đạo trong ảnh do đó độ chính xác của thuật toán đƣợc cải thiện đáng kể.
Hình 3.2: Ví dụ về một ảnh văn bản nghiêng với nhiều đối tƣợng phức tạp và ít ký tự
53
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
3.2.2 Ý tưởng xuất phát
Giả sử ta có một ảnh văn bản nghiêng nhƣ hình 3.2 trên đây. Rõ ràng đây là một ảnh văn bản phức tạp với nhiều đối tƣợng phi ký tự và số ký tự chữ cái trong ảnh trên là rất ít. Mặc dù vậy, chúng ta vẫn cho rằng ảnh bị nghiêng. Vậy ta đã căn cứ vào đâu khi kết luận ảnh bị nghiêng ? Đây chính quan điểm nhìn nhận sự vật của mắt ngƣời. Nếu ta lấy các chữ cái làm chủ đạo trong ảnh và căn cứ vào chúng thì ta sẽ thấy rằng ảnh bị nghiêng. Nhƣng nếu ta căn cứ vào đối tƣợng là căn nhà ở góc trái bên dƣới của ảnh thì ta cũng có thể nói rằng ảnh hoàn toàn không nghiêng. Nhƣ vậy, việc ảnh nghiêng hay không là do ta chọn những đối tƣợng nào làm chủ đạo trong ảnh và căn cứ vào chúng để kết luận. Trong một ảnh văn bản, thông thƣờng các đối tƣợng ký tự chiếm nhiều hơn những đối tƣợng khác. Xuất phát từ quan điểm nhìn nhận sự vật của mắt ngƣời và đặc thù trên đây của ảnh văn bản, gợi ý cho chúng ta một hƣớng giải quyết bài toán góc nghiêng là xác định các đối tƣợng chủ đạo trong ảnh chính là các ký tự, và căn cứ vào chúng để ƣớc lƣợng góc nghiêng.
Ý tƣởng để xác định các đối tƣợng có kích thƣớc chủ đạo trong ảnh là dùng kỹ thuật lập biểu đồ tần xuất hay histogram kích thƣớc để ƣớc lƣợng một ký tự có tần số xuất hiện nhiều nhất trong văn bản mà ta gọi là đối tƣợng chuẩn. Với mỗi một ảnh đầu vào, ta sẽ xác định một đối tƣợng chuẩn riêng và tự động trong chƣơng trình. Sau đó, lấy đối tƣợng này làm chuẩn và so sánh các đối tƣợng còn lại với nó. Những đối tƣợng có kích thƣớc xấp xỉ bằng kích thƣớc của đối tƣợng này sẽ đƣợc chọn để áp dụng biến đổi Hough. Một đối tƣợng đƣợc xem là xấp xỉ bằng kích thƣớc của đối tƣợng khác nếu chênh lệch kích thƣớc giữa chúng bé hơn một ngƣỡng đƣợc định nghĩa trƣớc.
3.2.3 Phương pháp thực hiện
Trƣớc khi xác định đối tƣợng chuẩn, ta sẽ loại bớt những đối tƣợng có kích thƣớc đƣợc xem là kỳ lạ và nhiễu, chúng là những đối tƣợng hoặc quá bé hoặc quá lớn so với một ký tự bình thƣờng trong văn bản. Thực nghiệm cho thấy, trong một ảnh văn bản, dù ở font chữ nào, ở cỡ chữ 10 một ký tự có
54
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
chiều rộng luôn lớn hơn 3 pixel, chiều cao luôn lớn hơn 3 và chu tuyến có ít nhất 12 pixel . Tƣơng tự nhƣ vậy trong các văn bản bình thƣờng, một ký tự có chiều rộng và chiều cao bé hơn 50 pixel với font chữ 48. Nhƣ vậy, loại trừ đầu tiên mà ta dễ dàng có đƣợc là bỏ qua những đối tƣợng này ngay trong quá trình xác định chu tuyến. Và chỉ lƣu lại những đối tƣợng có kích thƣớc thõa mãn các điều kiện trên cho các trình xử lý tiếp theo. Đối tƣợng chuẩn đƣợc đặc trƣng bởi ba kích thƣớc chiều rộng, chiều dài và chu vi và đƣợc ký hiệu là
WidAvr, HeiAvr và PrmAvr. Để ƣớc lƣợng đƣợc các kích thƣớc này của đối tƣợng chuẩn, ở đây ta dùng kỹ thuật lập biểu đồ tần xuất hay histogram các kích thƣớc của đối tƣợng.
Giả sử tất cả các đối tƣợng đã đƣợc xác định chu tuyến và sau khi loại bỏ những đối tƣợng có kích thƣớc kỳ lạ, ta đƣợc mảng Rec[N] chứa các hình chữ nhật ngoại tiếp các đối tƣợng. Những hình chữ nhật này cũng mang ba thông tin Rec[i].Wid,
Rec[i].Hei và Rec[i].Prm tƣơng ứng là chiều rộng, chiều cao và chu vi của đối tƣợng đƣợc dò biên lần thứ i. Ta sẽ dùng mảng này để xác định các kích thƣớc WidAvr,
HeiAvr và PrmAvr. Phƣơng pháp xác định các giá trị này tƣơng tự nhƣ nhau. Chẳng hạn, để xác định giá trị cho PrmAvr từ mảng Rec[N] ta thực hiện theo các bƣớc sau:
Bước 1: Từ mảng Rec[N], tính histogram cho các phần tử Rec[i].Prm tƣơng tự nhƣ histogram của một màu trong ảnh. Histogram của Rec[i].Prm cho biết số đối tƣợng có chu vi chu tuyến ngoài bằng Rec[i].Prm trong ảnh. Ta ký hiệu là His[Rec[i].Prm].
Bước 2: Dùng một kỹ thuật gom các histogram theo các phân đoạn. Ví dụ histogram của những giá trị trong phân đoạn từ 0 đến 30 đƣợc cộng dồn vào histogram của 20 theo công thức: His[20]=His[20]+ His[Rec[i].Prm] và His[Rec[i].Prm] đƣợc gán lại bằng 0 nếu Rec[i].Prm thuộc khoảng từ 0 tới 30 với mọi i từ 1 đến N.
Bước 3: Sắp xếp các mảng His [M] lại theo chiều tăng dần. Giá trị chu vi ứng với His lớn nhất đƣợc chọn làm chu vi trung bình. Trong thuật toán, phân đoạn dùng gom histogram của các chu vi đƣợc chọn có độ dài là 16, nghĩa là những đối tƣợng có
55
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
chu vi trong một miền có độ rộng 16 đƣợc gom lại cho đối tƣợng có giá trị chu vi nằm giữa miền đó.
Cách xác định WidAvr và HeiAvr hoàn toàn tƣơng tự nhƣ cách xác định
PrmAvr nhƣng khoảng giá trị gom histogram đƣợc dùng là 8. Hình vẽ 3.3, 3.4 dƣới đây minh hoạ sơ đồ phân bố histogram của Prm[i] trƣớc và sau khi gom .
Sau khi đã có các giá trị ngƣỡng, việc dùng chúng để phân loại đối tƣợng chỉ đơn giản là so sánh kích thƣớc của một đối tƣợng với các ngƣỡng này. Một đối tƣợng chỉ đƣợc áp dụng biến đổi Hough nếu chiều rộng và chiều cao của nó không lớn hơn 4 lần chiều rộng và chiều cao của đối tƣợng trung bình và có chu vi bé hơn 6 lần chu vi của đối tƣợng trung bình.
chu vi 0 30 60 90 120 150 400 350 300 250 200 150 100 50 histogram
56
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
3.3 Một vài trƣờng hợp ngoại lệ
Ảnh có quá ít ký tự.
Trƣờng hợp thứ nhất là trong ảnh có quá ít ký tự chữ cái, chƣa đủ để xác định đƣợc góc nghiêng. Các đối tƣợng trong ảnh chủ yếu là picture hoặc nhiễu, đặc biệt các ký tự nghiêng các góc khác nhau do đặc thù riêng của ảnh. Hình vẽ dƣới đây minh hoạ một ảnh văn bản nghiêng với số ký tự rất ít.
Nhƣ vậy, sau khi loại bỏ các đối tƣợng từ hàm xác định chu tuyến và dùng ngƣỡng kích thƣớc thì số đối tƣợng đƣợc lựa chọn để áp dụng biến đổi Hough sẽ còn lại rất ít. Nếu chúng ta vẫn tiếp tục các bƣớc tiếp theo và đƣa ra kết luận về góc nghiêng
1000 800 600 400 200 0 30 60 90 120 150 chu vi histogram
Hình 3.4: Sơ đồ phân bố histogram chu vi sau khi gom
PrmAvr
57
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
cho văn bản thì rõ ràng độ chính xác không đƣợc đảm bảo. Lý do đơn giản vì những đối tƣợng đƣợc lựa chọn chƣa chắc đã là những ký tự. Chúng có thể là những đối tƣợng phi ký tự nhƣng đƣợc lựa chọn vì kích thƣớc của chúng thoả mãn ngƣỡng. Việc xác định những đối tƣợng chủ đạo luôn mang tính tƣơng đối và càng chính xác khi số đối tƣợng ký tự trong ảnh càng nhiều, khi trong ảnh có ít ký tự thì càng không thể chắc chắn đƣợc rằng các đối tƣợng đƣợc chọn là ký tự.
Vì vậy, ta chỉ đƣa ra kết luận về góc nghiêng cho văn bản trong trƣờng hợp số lƣợng các đối tƣợng này phải lớn hơn một ngƣỡng nào đó. Trong chƣơng trình số lƣợng này đƣợc chọn bằng 70 đối tƣợng.
Các đối tượng bao nhau.
Trƣờng hợp ngoại lệ khác là các đối tƣợng bao nhau. Đây là một cản trở đối với những thuật toán xác định góc nghiêng khác đặc biệt là những thuật toán theo phƣơng pháp phân tích láng giềng thân cận nhƣ đã đƣợc đề cập ở trên. Mặc dù số ký tự trong văn bản có thể rất nhiều nhƣng các ký tự hầu hết bị chứa trong các đối tƣợng khác lớn hơn nhiều chẳng hạn nhƣ picture hay bảng biểu . Hình vẽ dƣới đây minh họa cho cho trƣờng hợp các ký tự bị bao bởi đối tƣợng ảnh.
Khi đó, nhiệm vụ của chúng ta là phải nhận ra đƣợc sự bao hàm giữa các đối tƣợng và tách, lấy đƣợc các đối tƣợng ký tự bị bao bởi các đối tƣợng lớn hơn. Ở đây, ta
58
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
dùng một kỹ thuật bóc dần những đối tƣợng lớn ngoại cỡ để xác định những ký tự trong đó. Một đối tƣợng đƣợc gọi là có kích thƣớc ngoại cỡ đƣợc quy ƣớc là đối tƣợng có chiều rộng và chiều cao lớn hơn 200 pixel. Nếu trong quá trình dò biên ta gặp một đối tƣợng nhƣ vậy, ta sẽ cách li nó ra ra khỏi tập đối tƣợng đang xét. Các đối tƣợng này sẽ đƣợc dùng đến nếu cuối cùng số đối tƣợng đƣợc chọn để áp dụng biến đổi Hough bé hơn 70. Ta xem nhƣ đối tƣợng này là một ảnh và tiếp tục duyệt các đối tƣợng bên trong nó để lấy ra những đối tƣợng ký tự.
Trong cài đặt, ta dùng một kỹ thuật gọi là bóc dần. Bình thƣờng, sau khi xác định đƣợc chu tuyến ngoài cho một đối tƣợng ta sẽ không duyệt những điểm ảnh bên trong đối tƣợng này bằng cách đánh dấu lại đối tƣợng đó. Nhƣng nếu đối tƣợng có kích thƣớc rất lớn, ta sẽ lờ đi không đánh dấu nó nữa. Thay bằng đánh dấu đối tƣợng ta thay đổi màu cho các điểm biên thành màu nền, xem nhƣ chƣa xét đối tƣợng này và tiếp tục xét các đối tƣợng bên trong nó. Kỹ thuật này gọi là bóc dần vì mỗi lần xác định đƣợc biên của một đối tƣợng lớn ta thay đổi màu của các điểm biên thành màu nền tƣơng tự nhƣ bóc dần đối tƣợng để trật ra các ký tự bên trong nó.
Để đánh dấu các đối tƣợng, ta dùng phƣơng pháp gán nhãn cho các đối tƣợng. Mỗi một đối tƣợng nếu không phải là một điểm cô lập sẽ mang một nhãn là một số nguyên dƣơng. Các đối tƣợng khác nhau mang các nhãn khác nhau. Những phần tử thuộc biên của một đối tƣợng sẽ đƣợc gán nhãn bằng nhau và bằng nhãn của đối tƣợng này
59
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƢƠNG 4
CÀI ĐẶT THỬ NGHIỆM
Thuật toán đƣợc cài đặt bằng ngôn ngữ C ++
trên Windows trong môi trƣờng visual C ++
của Microsoft.