CHƢƠNG 1 : KHÁI QUÁT VỀ XỬ LÝ ẢNH VÀ FORM TÀI LIỆU
2.2 PHÁT HIỆN VÀ HIỆU CHỈNH GÓC NGHIÊNG
2.2.4.1. Tiền xử lý
Trong bƣớc này, chúng ta sẽ lần lƣợt xác định các lƣợc đồ về chiều cao và chiều rộng của tất cả các thành phần liên thông trong văn bản. Chiều cao và chiều rộng xuất hiện nhiều lần nhất của các thành phần liên thông, gọi là W và H, sẽ đƣợc xác định nhờ vào việc tìm ra đỉnh của những lƣợc đồ này. W và H cũng chính là chiều cao và chiều rộng đặc trƣng của các kí tự trong văn bản.
Các thành phần liên thông có chiều cao và chiều rộng nhỏ hơn T0 × min{W, H} đƣợc xem là nhiễu và dấu, tức là đối với mỗi thành phần liên thông c(w, h), trong đó w và h là chiều cao và chiều rộng của nó. Nếu max{w, h} ≤ T0 × min{W, H}, c sẽ bị loại khỏi văn bản chúng ta đang xem xét.
Ngƣợc lại một thành phần liên thông c(w, h) đƣợc gọi là thành phần liên thông lớn khi min{w, h} ≥ 1/T0 × max{W, H}, nó cũng sẽ bị loại ra khỏi ảnh văn bản. T0 đã đƣợc kiểm nghiệm trên nhiều giá trị khác nhau trên nhiều ảnh văn bản và kết quả là giá trị tối ƣu nhất của T0 là 1/4.
2.2.4.2. Ước lượng thô
Sau khi thực hiện bƣớc tiền xử lý, chúng ta sẽ có đƣợc hai ảnh gọi là bottom profile và left profile. Bottom profile đƣợc tạo ra bằng cách thay thế mỗi thành phần liên thông bằng một điểm bottom most left, tƣơng tự left profile đƣợc tạo ra dựa trên các điểm left most bottom của các thành phần liên thông (xem hình 2.19). Đối với các góc trong khoảng [-45o
, 45o], các điểm bottom most left sẽ đặc trƣng cho đƣờng base lines của văn bản. Tuy nhiên trong trƣờng hợp góc nghiêng văn
bản lớn, các điểm left most bottom của thành phần liên thông sẽ biểu thị cho các base lines tốt hơn (xem các hình 2.20(a), 2.20(b), 2.20(c)).
Hình 2.19: Các điểm left most bottom và bottom most left của TPLT
(b)
(c)
Hình 2.20: Một ví dụ về ảnh văn bản và các profile của nó (a) là ảnh văn bản gốc, (b) là bottom profile, (c) là các left profile (d) và (e) là các lƣợc đồ phân bố góc của văn bản tìm đƣợc nhờ (b) và (c)
Trong mỗi profile (bottom hay left), góc của mỗi cặp điểm lân cận đƣợc tính và thống kê vào trong lƣợc đồ góc (xem hình 2.20(d) và 2.20(e)). Lân cận của một điểm p trong ảnh profile đƣợc xác định bằng cách quét tất cả các điểm (trừ p) trong một hình chữ nhật có kích thƣớc (2W, 2H) với tâm là điểm p, trong đó W và H đƣợc lấy ở bƣớc tiền xử lý. W và H là bao nhiêu sẽ tùy thuộc vào ảnh văn bản đầu vào. Do đó, phƣơng pháp của này chỉ dựa vào các tham số không đơn vị. Hình 2.20 là một ví dụ về lƣợc đồ góc của left profile và bottom profile. Mục đích chính của ƣớc lƣợng thô là tìm ra một khoảng 20o
mà góc nghiêng thực của văn bản thuộc về. Lý do chọn 20o
cho khoảng ƣớc lƣợng góc nghiêng sẽ đƣợc giải thích rõ trong phần sau. Trong mỗi profile chúng ta sẽ tính diện tích phần đen của mỗi khoảng, khoảng nào có diện tích lớn nhất trong 9 khoảng của đồ thị tƣơng ứng sẽ đƣợc chọn ra. Trong hai khoảng vừa tìm đƣợc, ta chọn khoảng có diện tích lớn hơn và đó cũng chính là khoảng mà góc nghiêng văn bản thuộc về. Trong hình 2.20, khoảng đƣợc chọn là khoảng tìm thấy từ left profile (hình 2.20(c)).
2.2.4.3. Áp dụng các phép biến đổi Morphology
Để tiện hơn cho việc mô tả phƣơng pháp chúng tôi đề nghị, chúng tôi xin trình bày ngắn gọn các định nghĩa căn bản của các phép toán Morphology.
Các phép giãn (dilation), co (erosion), mở (opening), và đóng (closing) của một ảnh nhị phân I bởi thành phần cấu trúc E đƣợc kí hiệu lần lƣợt là IE, IE,
E
I , và IE; và đƣợc định nghĩa nhƣ sau:
z Z z x y x I y E
E
I 2 for some and
x Z x y I y E E I 2 for every I E E E I I E E E I
Phép tự giãn (k-fold dilation) của tập hợp các thành phần cấu trúc E là:
Trong bƣớc này, chúng ta sẽ thực hiện các phép đóng và mở cho các dòng văn bản. Phép đóng dùng để nối các kí tự trong một từ, và các từ trong một dòng, phép mở để loại bỏ các thành phần liên thông rất nhỏ, cũng nhƣ các phần phụ trên hay phần phụ dƣới của ký tự. Do đó các dòng văn bản sẽ trở thành các vệt thon dài.
Tuy nhiên, để thực hiện các phép đóng, mở một cách hiệu quả nhất cần xác định kích cỡ và hình dạng của các phần tử cấu trúc thật chính xác. Cách tính toán đơn giản đƣợc mô tả nhƣ sau: Trung điểm của khoảng mà góc nghiêng văn bản thuộc về tìm đƣợc trong bƣớc ƣớc lƣợng thô chính là góc quay của phần tử cấu trúc. Ví dụ, trong hình 2.20, khoảng mà góc nghiêng văn bản rơi vào [30o
, 50o], thì góc quay của phần tử cấu trúc sẽ là 40o. Lý do mà chia góc quay của văn bản thành 9 phần và mỗi phần tƣơng ứng với 20o
là vì mỗi góc quay α của phần tử cấu trúc có thể phù hợp cho tất cả các văn bản có góc nghiêng trong khoảng [α – 10o, α + 10o
], nghĩa là khoảng chênh lệch là 20o. Qua thực nghiệm bằng cách quan sát và thử nghiệm trên một số lƣợng lớn các ảnh văn bản, cho thấy việc xác định góc quay cho các phần tử cấu trúc là rất quan trọng. Nó giúp cho kết quả của các phép đóng mở là đúng đắn nhất. Với một phần tử cấu trúc phù hợp, thì chỉ các từ trong cùng dòng mới kết hợp lại đƣợc với nhau trong khi đó từ trong các dòng khác nhau sẽ vẫn rời nhau (xem hình 2.21).
Hình 2.21: Những khoảng góc nghiêng khác nhau đƣợc sử dụng để ƣớc lƣợng góc nghiêng phù hợp cho phần tử cấu trúc
Gọi I là ảnh thu đƣợc sau khi khử nhiễu, dấu và những thành phần liên thông lớn. Ảnh Ico đƣợc tạo ra nhƣ sau:
m c n o
co I E E
I
Trong đó những phần tử cấu trúc 1×3 và 2×2 đƣợc chọn tƣơng ứng với Ec và
Eo; m và n đƣợc xác định bởi max{W / 2z, H / z} và max{W / 3z, H / 2z}; với z là độ thu nhỏ thích hợp của ảnh, z đƣợc tính nhƣ sau:
z = min{W / 4, H / 5}
α đƣợc tính bằng thuật toán ƣớc lƣợng thô; và m Ec và n Eo là những kết quả của phép quay những phần tử cấu trúc m Ec và n Eo bởi góc α (hình 2.22 là một minh họa của ảnh Ico).
Một lần nữa, có thể thấy rõ ràng rằng kích thƣớc và góc nghiêng của phần tử cấu trúc đƣợc xác định một cách tự động và chỉ dựa trên ảnh đƣa vào ban đầu. Với việc tính toán tự động này, thuật toán này có thể áp dụng để giải quyết vấn đề ƣớc lƣợng góc nghiêng của những văn bản có góc nghiêng tùy ý.
(b)
(d)
(f)
Hình 2.22: Một số ví dụ của việc dùng phép đóng và mở với các phần tử cấu trúc nghiêng (a) Và (d) là những ảnh đƣa vào ban đầu.
(b)Và (e) là những kết quả của việc áp dụng bƣớc tiền xử lý, ƣớc lƣợng thô, và phép đóng tƣơng ứng với hình (a) và (d).
(c) và (f) là những kết quả của việc áp dụng phép mở tƣơng ứng với hình (b) và (e).
2.2.4.4. Ước lượng tinh
Sau khi áp dụng phép đóng và phép mở, những dòng văn bản của ảnh đã đƣợc bôi đen đƣợc xem nhƣ là những thành phần liên thông. Trong bƣớc này, chúng ta sử dụng một thuật toán đơn giản để ƣớc lƣợng hƣớng của tất cả những thành phần liên thông và của toàn văn bản.
Gọi o là một thành phần liên thông, nghĩa là o = {(xi, yi), i = 1,.., n}. Gọi pi
(xi, yi) là một điểm tùy ý thuộc o. Chúng ta cần tìm góc α*
của thành phần liên thông o (xem hình 2.23).
Hình 2.23: Một thành phần liên thông dài với hệ tọa độ ảnh
Gọi p'i là kết quả của phép quay pi theo một góc với tâm c(xc,yc) của o, nghĩa là: p'i(x'i,y'i)
trong đó x'i(xixc)cos(ycyi)sinx
c c i c i y x x y y ( )cos ( )sin y'i
Gọi dyi là khoảng cách đại số giữa p'i và pi. dyi có thể đƣợc tính nhƣ sau:
( )sin cos ) ( 'i c i c i c i y y y y x x dy
Gọi T(α) là tổng những bình phƣơng của dyi, i=1,2,…n:
n i c i c i n i i y y x x dy T 1 2 1 2 sin cos
Trong đó c(xc, yc) là tâm của thành phần liên thông o.
Góc *của một thành phần liên thông o (với trục x) đƣợc xác định bởi:
* argminT
T() sẽ đạt cực trị nếu đạo hàm của nó bằng 0, nghĩa là T’(α)=0. Chúng ta có: cos sin 2 sin cos ] cos sin ) )( ( 2 sin ) ( cos ) [( 2 2 1 2 2 2 2 C B A y y x x x x y y T n i c i c i c i c i Trong đó: n i c i y y A 1 2 ) ( n i c i x x B 1 2 ) ( n x x y y C ( )( )
Cho nên: ) ( )sin2 2 cos2 ( ' B A C T
Bởi vì phƣơng trinh T’(α) có 2 nghiệm (sự khác nhau là π của hàm tan) mà:
2 or 2 1 Vì vậy: otherwise if 2 2 1 1 * T T
Vì phƣơng trình có 2 nghiệm 1, 2 nên khi thay vào biểu thức T() ta sẽ có đƣợc hai giá trị T1() và T2(), chọn ứng với biểu thức làm cho T() nhỏ hơn.
Sau khi áp dụng thuật toán này, mỗi thành phần liên thông đƣợc đặc trƣng bởi một cặp số (α*
, T(α*
)/n), trong đó n là số điểm thuộc thành phần liên thông đó. Một thành phần liên thông đƣợc xem là đáng tin cậy nếu nhƣ tỷ lệ T(α*
)/n nhỏ hơn một ngƣỡng đƣợc định nghĩa trƣớc là T1. Trong quá trình thực nghiệm, chúng tôi đặt T1 là 0.007. Chỉ những thành phần liên thông đáng tin cậy mới đƣợc giữ lại cho quá trình xử lý kế tiếp trong khi những cái khác sẽ đƣợc loại bỏ.
Từ kết quả của ƣớc lƣợng thô, giả sử rằng khoảng góc tìm đƣợc là [β, γ]. Bởi vì ƣớc lƣợng thô có thể đƣa ra những kết quả không chính xác, nên chúng tôi mở rộng khoảng này với một giá trị cho trƣớc là 2o, nghĩa là khoảng góc nghiêng của văn bản rơi vào sẽ là [β – , γ + ]. Trong quá trình trình thực nghiệm, ƣớc lƣợng thô có thể cho kết quả sai khi góc nghiêng của văn bản gần với biên giữa hai khoảng gần kề nhau. Chúng tôi cũng quan sát thấy rằng độ lệch đối với đƣờng biên của góc nghiêng thật sự không vƣợt quá 2o
. Cho nên, đƣợc đặt là 2o
.
Những thành phần liên thông đáng tin cậy mà hƣớng của nó rơi ra ngoài khoảng [β – , γ + ] sẽ bị loại bỏ. Sau đó, khoảng [β – , γ + ] sẽ đƣợc chia thành nhiều khoảng nhỏ hơn, mỗi khoảng sẽ có độ rộng tƣơng ứng là 0.1o, và đồ thị biểu diễn sự phân bố góc của tất cả những thành phần liên thông còn lại sẽ đƣợc tính với những khoảng nhỏ này. Cuối cùng, đỉnh của đồ thị này sẽ đƣợc chọn là góc nghiêng của toàn văn bản.
Chƣơng 3: CHƢƠNG TRÌNH THỬ NGHIỆM
3.1. BÀI TOÁN
Yêu cầu đƣợc đặt ra đối với chƣơng trình thử nghiệm là đọc đƣợc form tài liệu dạng ảnh. Thực hiện các thao tác soạn thảo phóng to, thu nhỏ v.v.. và phát hiện độ lệch của form tài liệu và thực hiện việc quay ảnh để hiệu chỉnh.
3.2. CHƢƠNG TRÌNH THỬ NGHIỆM
Chƣơng trình đƣợc cài đặt bàng công cụ Visual C#. Chƣơng trình có giao diện nhƣ hình sau:
Hình 3.1: Giao diện chƣơng trình thử nghiệm
Hai chức năng chính của chƣơng trình là lọc ảnh và phát hiện góc nghiêng của ảnh văn bản theo một số kỹ thuật đã nghiên cứu ở chƣơng 2. Ngoài ra, trên thanh công cụ còn có các chức năng thao tác ảnh nhƣ Rotate Image (quay ảnh),
Zoom In (phóng to) Zoom Out (thu nhỏ), Undo (quay trở lại ảnh gốc) và Save
(lƣu ảnh thành file trên ổ cứng).
Chức năng quay ảnh cho phép ngƣời dùng quay lại ảnh cho chính xác sau khi đã phát hiện góc nghiêng, hoặc có thể điều khiển góc lệch văn bản để kiểm tra độ chính xác của thuật toán với các góc lệch khác nhau, ngƣời dùng sẽ đƣợc nhập một góc quay bất kỳ rồi sử dụng các chức năng dò góc nghiêng để kiểm tra tính chính xác của thuật toán, chƣơng trình cài đặt 3 thuật toán dò tìm góc nghiêng của ảnh văn bản là thuật toán áp dụng biến đổi Hough, thuật toán láng giềng gần nhất và thuật toán áp dụng phép chiếu nghiêng. Các chức năng phóng to, thu nhỏ cho phép ngƣời dùng có thể tăng hoặc giảm kích thƣớc ảnh trƣớc và sau mỗi thao tác cho phù hợp với tầm quan sát. Chức năng Save ảnh cho phép lƣu lại ảnh mới sau khi đã lọc ảnh hay hiệu chỉnh góc nghiêng từ ảnh đầu vào.
Sau khi chọn một file ảnh (định dạng bmp, jpg, png) và click chuột chọn chức năng Skew Detection (Hough, K Nearest Neighbor hoặc Project Profile), chƣơng trình sẽ hiển thị góc nghiêng nếu ảnh bị nghiêng hoặc sẽ thông báo không xác định đƣợc góc nghiêng cho văn bản với những trƣờng hợp đặc biệt.
Các hình vẽ dƣới đây là màn hình giao diện chƣơng trình trƣớc và sau khi hiệu chỉnh góc nghiêng.
PHẦN KẾT LUẬN
Ngày nay, do sự phát triển và nhu cầu đòi hỏi của xã hội, một lƣợng lớn thông tin cần phải đƣợc nhập vào máy để xử lý. Trong số những thông tin cần nhập đó các phiếu điều tra dƣới dạng dấu ngày càng có chiều hƣớng gia tăng bởi do các nhà sản xuất muốn điều tra thị hiếu và mức tiêu thụ sản phẩm và cũng bởi do các nhà hoạch định chính sách muốn có những cuộc điều tra để xây dựng những chính sách phù hợp với thực tế và có thể nói còn muôn vàn lý do khác.
Hơn nữa, sự phát triển nhanh chóng của công nghệ thông tin trên cả hai lĩnh vực: Phần cứng và phần mềm đã cho phép kỹ thuật nhập liệu tự động phát triển theo nhiều phƣơng hƣớng khác nhau và đã đạt đƣợc những thành công nhất định. Chẳng hạn, ngày nay có thể mua đƣợc các scanner có thể quét nhiều trang (ADF) với tốc độ cao nhƣng giá lại rẻ chẳng khác gì scanner quét trang một so với trƣớc đó. Kỹ thuật nhập liệu tự động liên quan chặt chẽ với đồ hoạ, nhận dạng và thuật xử lý ảnh.
Trong các hệ thống nhập dữ liệu tự động, chất lƣợng của các phiếu thu nhận trong quá trình quét liên quan mật thiết đối với chất lƣợng nhận dạng phiếu. Những vấn đề thƣờng gặp phải trong quá trình thu nhận đó là: Độ lệch, độ dịch chuyển, xoay, biến dạng v.v.. của phiếu điều tra, cũng nhƣ vấn tách đƣợc các đối tƣợng hình học đƣợc dùng để đánh dấu trong phiếu. Xuất phát từ thực tế đó, luận văn nhằm nghiên cứu một số kỹ thuật xử lý ảnh giúp nâng cáo chất lƣợng ảnh FORM đầu vào nhằm nâng cao chất lƣợng các hệ thống nhận dạng Form mẫu và đã đạt đƣợc một số kết quả cụ thể sau:
Trình bày khái quát về xử lý ảnh và xử lý form tài liệu
Hệ thống hóa một số kỹ thuật nâng cao chất lƣợng nhận dạng form tài liệu liên qua đến việc khử nhiễu và hiệu chỉnh góc nghiêng
Cài đặt thử nghiệm chƣơng trình hiệu chỉnh góc nghiêng tài liệu
Luận văn đáp ứng yêu cầu thực tiễn: nâng cao chất lƣợng ảnh Form đầu vào nhằm nâng cao chất lƣợng các hệ thống nhận dạng Form mẫu, từ đó có thể áp dụng vào các lĩnh vực nhƣ tự động thu thập dữ liệu từ các mẫu đơn/báo biểu, tự động xử lý các hoá đơn, tự động phục hồi và copy tài liệu từ các ảnh quét, …
Do thời gian có hạn và khả năng còn nhiều hạn chế nên luận văn khó tránh khỏi những sai sót nhất định, rất mong đƣợc sự góp ý của thầy cô và bạn bè để luận văn đƣợc hoàn thiện hơn.
TÀI LIỆU THAM KHẢO
[1]. Junichi Kanai, Andrew D. Bagdanov. Projection profile based skew estimation algorithm for JBIG compressed images. Information Science Research Institute,