Thuật toán phát hiện góc nghiêng văn bản

Một phần của tài liệu Nghiên cứu một số kỹ thuật hiệu chỉnh biểu mẫu và ứng dụng luận văn thạc sĩ (Trang 54 - 61)

L ỜI CẢM ƠN

3.4.Thuật toán phát hiện góc nghiêng văn bản

* Xử lý đối tượng ảnh ngoại lệ

Sau giai đoạn tiền xử lý ảnh ta thu được ảnh trung gian. Thuật toán phát hiện góc nghiêng sẽ làm việc với ảnh trung gian này để tìm ra góc nghiêng cho văn bản và sau đó dùng thuật toán xoay ảnh để xoay ảnh ban đầu với góc nghiêng vừa tìm được.

Tuy nhiên, do ảnh tiến hành xử lý được thu nhận từ nhiều nguồn khác nên chất lượng ảnh cũng như các đối tượng trên ảnh cũng khác nhau. Nên một điểm cần được xét đến trong thuật toán phát hiện góc nghiêng là xử lý những ảnh văn bản phức tạp hoặc các trường ngoại lệ. Ta sẽ lần lượt đưa ra các phương án xử lý cho các trường hợp này.

+ Ả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à hình 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 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 đó.

+ Các đối tượng bao nhau.

Một 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 lân cận như đã được đề cập ở trên. Vì với những đối tượng này rất dễ dẫn đến sự nhầm lẫn khi xác định đối tượng chủ đạo trong ảnh.

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 là bảng biểu.

Như vậy, 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 biệt chúng, lấy được các đối tượng ký tự chủ đạo bị bao bởi các đối tượng lớn hơn. Khi đó, việc xác định góc nghiêng khi áp dụng biến đổi Hough lên các đối tượng này mới cho ta kết quả chính xác.

Ở đây, ta 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

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 là quá ít. 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 thuật toán, 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ẽ bỏ qua khâu đánh dấu nó và kết luận rằng đó là 1 đối tượng bao hàm đối tượng khác như bảng biểu chẳng hạn. 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 điều đó có nghĩa là đối tượng này sẽ hoà vào nền và xem như bóc dần đối tượng lớn để làm nổi bật lên 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.

+ Tiến trình xác định chu tuyến cho các đối tượng thực hiện như sau: - Duyệt các điểm ảnh từ trên xuống dưới từ trái sang phải. Xét điểm hiện tại là (x, y).

- Nếu gặp một điểm ảnh có màu khác màu nền, ta sẽ áp dụng thuật toán xác định chu tuyến cho đối tượng chứa điểm ảnh này và gán tất cả các điểm biên của đối tượng này cùng một giá trị nhãn. Kết thúc hàm dò biên đối tượng:

- Nếu kích thước của đối tượng không phải là quá lớn tức là kích thước của chúng bé hơn 200 pixel, ta sẽ tiếp tục quá trình tìm biên cho các đối tượng tiếp theo bắt đầu từ một điểm ảnh láng giềng bên phải. Gọi (x1,y1) là điểm láng giềng bên phải của đối tượng ảnh nếu: x1=x và điểm (x1,y1-1) thuộc biên của đối tượng ảnh đang xét.

- Ngược lại nếu đối tượng có kích thước quá lớn. Ta thiết lập lại màu cho các điểm biên của đối tượng thành màu nền, không gán nhãn cho biên và xét tiếp các điểm ảnh bên trong bắt đầu từ (x,y+1).

- Nhưng nếu gặp một điểm ảnh đã xét rồi tức là đã được gán một nhãn, ta sẽ bỏ qua đối tượng tương ứng với nhãn đó để xét các đối tượng mới bằng cách nhảy tới điểm (x1,y1) với (x1,y1-1) có nhãn bằng nhãn (x,y) và y1 lớn nhất trong số các điểm có cùng nhãn.

* Thuật toán:

Về cơ bản thuật toán phát hiện góc nghiêng văn bản dựa vào biến đổi Hough gồm các bước chủ yếu sau:

Bước 1: Duyệt ảnh theo thứ tự từ trên xuống và từ trái qua phải, với mỗi điểm ảnh.

* Nếu gặp một điểm vùng (x,y) chưa xét thực hiện các bước:

+ Áp dụng thuật toán xác định chu tuyến với đầu vào là (x,y) và màu tương ứng.

+ Dùng hình chữ nhật ngoại tiếp kiểm tra nếu đối tượng có kích thước bình thường (thoả mãn ngưỡng) thì áp dụng biến đổi Hough lên trung điểm cạnh đáy của hình chữ nhật ngoại tiếp đối tượng đó.

* Nếu gặp một điểm đã xét, tìm một điểm ảnh trên cùng dòng có nhãn bằng với điểm ảnh đang xét và tiến hành duyệt lại từ đây. Đồng thời phải cập nhật lại giá trị trong mảng tích luỹ.

Bước 2: Dựa vào kết quả của phép biến đổi Hough ước lượng góc nghiêng cho văn bản.

Bước 3: Dựa vào góc nghiêng xác định được từ bước 2 áp dụng thuật toán xoay ảnh.

Tuy nhiên, nếu áp dụng biến đổi Hough cho tất cả các đối tượng của ảnh, thì thuật toán sẽ không chính xác hoặc là tốn nhiều thời gian thực hiện hoặc cả hai. Vì vậy chúng ta không áp dụng biến đổi Hough cho tất cả các đối tượng sau khi tìm được chu tuyến của chúng mà loại ra những đối tượng có kích thước quá lớn, hoặc là rất bé so với ký tự thường…..

Sơ đồ giải thuật: (adsbygoogle = window.adsbygoogle || []).push({});

Hình 3.6 Sơ đồ giải thuật tổng quát Image source Dò biên Tìm điểm đặc trưng Áp dụng biến đổi Hough Xác định đường thẳng Hough Kiểm tra còn đối tượng ảnh cần xét Lưu mảng tích lũy Xác định góc nghiêng dựa vào

mảng tích lũy

Xoay ảnh Image result

Đúng

Một phần của tài liệu Nghiên cứu một số kỹ thuật hiệu chỉnh biểu mẫu và ứng dụng luận văn thạc sĩ (Trang 54 - 61)