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

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 86 - 89)

Để 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 với đƣờng thẳng dày, tập hợp các đƣờng thẳng này cũng tạo nên đƣờng thẳng dày. Ta sẽ chứng minh tập hợp này có số lƣợng đƣờng thẳng là lớn nhất.

Giả sử có một tập hợp khác bao gồm a’ đƣờng thẳng song song nhau có độ dài b với a’ > a. Khi đó tổng diện tích các đƣờng thẳng trong tập hợp đó là a’.b > a.b là diện tích của đƣờng thẳng dày. Điều này vô lý.

89

Từ đó, chúng tôi đề xuất phƣơng pháp nhận đƣờng thẳng dày nhƣ sau: - Tìm tất cả các đƣờng thẳng trên ảnh phiếu có ngƣỡng lớn hơn hoặc bằng ngƣỡng của đƣờng thẳng dày.

- Xác định tập hợp các đƣờng thẳng song song (cùng nghiêng một góc giống nhau) và kề nhau trong các đƣờng thẳng trên.

- Trong các tập hợp trên, tìm tập hợp có số lƣợng đƣờng thẳng là lớn nhất. Đó chính là tập hợp tạo nên đƣờng thẳng dày.

Qua thực nghiệm, ngƣỡng của đƣờng thẳng dày nên chọn bằng 0.9 độ dài thực tế của đƣờng thẳng vì lý do chất lƣợng của ảnh. Thực tế cho thấy tìm đƣờng thẳng dày bằng phƣơng pháp này cho độ chính xác rất cao cả về vị trí và góc nghiêng của đƣờng thẳng, đạt 99%.

Chỉnh độ nghiêng

Sau khi tìm đƣợc góc nghiêng của đƣờng thẳng dày, ta đến bƣớc điều chỉnh lại ảnh. Trong bƣớc này ta chỉ thuần túy áp dụng phép quay nhƣ đã nói ở mục 2.4.4. Ta cần xét đến trƣờng hợp, khi đƣa phiếu vào quét, giấy bị lộn ngƣợc chiều, tức là đƣờng thẳng dày sẽ đƣợc tìm thấy ở gần mép dƣới của ảnh. Để nhận biết đƣợc trƣờng hợp này, ta có thể kiểm tra xem vị trí của đƣờng thẳng dày ở nửa trên hay nửa dƣới của ảnh. Nếu đƣờng thẳng dày ở nửa trên của ảnh, ta quay ảnh với góc nghiêng của đƣờng thẳng dày. Trong trƣờng hợp ngƣợc lại, ta quay ảnh một góc bằng góc nghiêng của đƣờng thẳng dày cộng với .

Sau khi quay ảnh, ta phải tính lại vị trí của đƣờng thẳng dày (khoảng cách từ mép trên của ảnh đến đƣờng thẳng), điều này quan trọng vì nó liên quan đến bƣớc nhận dạng khung.

90

a. Trƣớc khi xoay b. Sau khi xoay

Hình 3.27. Ảnh trước và sau khi xoay đúng chiều

Đối với trƣờng hợp phiếu trả lời đƣợc quét đúng chiều, khoảng cách mới r’ đƣợc tính nhƣ sau: r’ = ( height – height.sin – width.cos ) / 2 + r

Trong đó width và height là độ rộng và chiều cao của ảnh.  là góc giữa

véc tơ pháp tuyến của đƣờng thẳng dày với trục Ox. r là khoảng cách của đƣờng thẳng dày tới gốc tọa độ khi chƣa xoay.

a. Trước khi xoay b. Sau khi xoay

91

Trong trƣờng hợp ảnh bị quét ngƣợc chiều, r’ đƣợc tính theo công thức sau: r’ = ( height + height.sin + width.cos ) / 2 – r

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 86 - 89)