Đề tài này nhằm đáp ứng các nhu cầu hiện nay về xử lý , nhận dạng ngôn ngữ tiếng Việt và tập trung nghiên cứu các phương pháp tách văn bản tiếng Việt từ hình ảnh chứa văn bản những tấm
Trang 11
Chương 1 GIỚI THIỆU ĐỀ TÀI
1.1 Đặt vấn đề
Ngày nay công nghệ thông tin là ngành khoa học mới nhưng tốc độ phát triển rất nhanh trên toàn thế giới Những ứng dụng của công nghệ thông tin cũng rộng khắp trong tất cả các lỉnh vực khoa học như: giáo dục, y tế, kinh tế, văn hóa,… nó góp phần giúp đời sống con người ngày càng hiện đại giảm đi những công việc nặng nhọc trong đời sống hằng ngày Nhận dạng và xử lý ảnh cũng là một trong những chuyên ngành của tin học có tầm ứng dụng to lớn Có thể kể ra hàng loạt các lĩnh vực áp dụng kỹ thuật nhận dạng ảnh như: xử lý ảnh chụp vệ tinh, dự báo thời tiết, điều khiển giao thông công cộng, nhận dạng vân tay, nhận dạng mặt người,….Hiện nay các đề tài và công trình nghiên cứu về chuyển đổi văn bản tiếng việt từ hình ảnh vẫn còn hạn chế và chưa đạt được kết quả như mong muốn mặc dù đây là một hướng được nhà nước ưu tiên phát triển Đề tài này nhằm đáp ứng các nhu cầu hiện nay về xử lý , nhận dạng ngôn ngữ tiếng Việt và tập trung nghiên cứu các phương pháp tách văn bản tiếng Việt từ hình ảnh chứa văn bản ( những tấm ảnh này có thể được thu thông qua máy scanner), từ đó xây dựng chương trình thử nghiệm
Trang 21.2 Mô hình giải quyết bài toán
Bài toán nhận dạng văn bản tiếng Việt được thực hiện qua ba giai đoạn chính: phân đoạn ảnh, nhận dạng kí tự và hậu xử lý Được thể hiện qua sơ đồ dưới đây:
Hình 1 1 Sơ đồ hệ nhận dạng văn bản tiếng Việt
Trang 31 Phân đoạn ảnh: Giai đoạn này có nhiệm vụ loại bỏ nhiễu nhằm nâng cao chất lượng
hình ảnh đầu vào Sau đó thực hiện việc nhị phân hóa, chỉnh nghiêng, tách đoạn, tách dòng, tách từ, tách kí tự
2 Nhận dạng kí tự: Đầu vào của giai đoạn này là ảnh của một kí tự, đầu ra là kí tự nhận
dạng được Thông thường trong phần này sử dụng một thuật toán máy học (dùng mạng Neural, mô hình Markov ẩn hoặc máy SVM) hoặc một bộ đối sánh mẫu
3 Hậu xử lý: Tổng hợp các kí tự nhận dạng được và hiển thị lên giao diện người dùng
Điều chỉnh nhận dạng sai dùng từ điển hoặc mô hình ngôn ngữ
1.3 Mức độ phức tạp của bài toán
Nếu phân chia quá trình đọc văn bản thành các tác vụ cơ bản thì các hệ nhận dạng hiện nay thực hiện các tác vụ đó khá chật vật và không phải khi nào cũng mang lại kết quả mong muốn Nhiều hệ thống nhận dạng đã làm việc khá tốt với các trang văn bản rõ nét, nhưng xét tổng thể thì vẫn còn khoảng cách khá lớn giữa tính năng của các hệ nhận dạng và đòi hỏi thực tế
Thực tế các trang văn bản không bao giờ đạt được mức độ sạch sẽ, chuẩn mực hoàn toàn Nhiễu bẩn hiện tại là một vấn đề lớn đối với các hệ OCR, bởi vì chỉ cần một vài chấm mực nhỏ chữ c có thể biến thành chữ o, hoặc chữ j thành chữ i Nếu tài liệu đã qua photocopy thì các nét mảnh có thể trở thành đứt đoạn, khi đó lỗi sẽ rất nhiều vì nhiều
hệ OCR sẽ chuyển mỗi ô liền nét thành một chữ cái riêng
Nếu văn bản có rất sạch sẽ đi chăng nữa thì sự phong phú của các kiểu font chữ cũng là một thách thức lớn với các hệ thống nhận dạng Các kiểu font chữ mang tính nghệ thuật ngày càng nhiều Ngoài sự phức tạp về font chữ và nhiễu ra, các hệ OCR cũng phải giải quyết các vấn đề về kích cỡ chữ khác nhau, góc nghiêng, bố cục văn bản, hệ thống dấu thanh…Vì thế các thuật toán nhận dạng phải đủ mềm dẻo để xử lý các khía cạnh phức tạp này Nếu không đủ mềm dẻo thì một khác biệt rất bé của kiểu chữ cũng đòi hỏi quản lý và xử lý riêng Ngược lại, quá mềm dẻo thì lỗi có thể rất nhiều, chẳng hạn chữ b
và chữ h khác nhau không nhiều có thể bị đồng nhất làm một
Trang 4Hình 1 2 Ảnh hưởng của chất lượng văn bản đến kết quả nhận dạng
1.4 Phạm vi đề tài:
văn bản tiếng việt trong hình ảnh sang văn bản dạng text” tập trung vào việc trình bày một quy trình tổng quát để giải quyết bài toán nhận dạng văn bản in tiếng Việt
và làm rõ phương pháp để giải quyết từng phần trong quy trình Có sự phân tích, so sánh, đánh giá giữa các phương pháp với nhau nhằm tìm ra phương pháp tối ưu để giải quyết bài toán
(khoảng 80%) với các văn bản scan có chất lượng tốt Tốc độ nhận dạng cao (thời gian nhận dạng trung bình 3-5 giây trên mỗi trang)
Trang 55
Chương 2 PHÂN ĐOẠN ẢNH VĂN BẢN
2 1 Nhị phân hóa ảnh số
Ảnh số được tạo nên từ hàng trăm ngàn cho đến hàng triệu ô vuông rất nhỏ được coi
là những thành tố của bức ảnh gọi là điểm ảnh (pixel) Giá trị mỗi điểm ảnh được gán cho một số nguyên biểu diễn màu sắc tại điểm ảnh đó
Hình 2 1 Ví dụ điểm ảnh
Đầu vào của hệ thống là một ảnh có màu bất kì, nhưng để thực hiện được việc phân đoạn ảnh thì bắt buộc phải thực hiện trên ảnh nhị phân Về cơ bản quá trình này sẽ thực hiện chuyển ảnh màu thành ảnh đa mức xám với các mức xám có giá trị từ 0 đến 255 dựa trên ba giá trị Red, Green, Blue của ảnh đầu vào Từ ảnh xám này, chúng ta sẽ so sánh mức xám của từng điểm ảnh với một ngưỡng cho trước để quyết định điểm ảnh đó sẽ là 0 hoặc 1
Hình 2 2 Ví dụ chuyển ảnh đa mức xám sang ảnh nhị phân
Trang 6Quá trình chuyển ảnh đa mức xám sang ảnh nhị phân nhằm phân hoạch một bức ảnh
ra làm 2 phần, một phần chứa các đối tượng (object hay foreground) trong bức ảnh và phần kia chứa nền ảnh Quá trình này gọi là phân hoạch ngưỡng (thresholding segmentation) được thực hiện nhờ vào hàm phân ngưỡng, trong trường hợp phân hoạch đơn ngưỡng thì công thức được sử dụng như sau:
Dest (x,y) =
Trong đó, Source(x,y) là giá trị điểm ảnh ở vị trí (x,y) của ảnh nguồn, Dest(x,y) là
một T duy nhất cho toàn bộ bức ảnh, có nghĩa là công thức trên áp dụng cho toàn ảnh trong quá trình phân hoạch thì ta gọi đó là cách dùng ngưỡng toàn cục (global thresholding) Ngược lại nếu sử dụng ngưỡng khác nhau tùy theo từng vùng trong ảnh, T biến thiên theo từng vị trí khác nhau và được tính toán lại tại từng vùng ảnh, có nghĩa là công thức trên áp dụng cho từng vùng cục bộ của ảnh với T thay đổi thì đó gọi là phương pháp dùng ngưỡng cục bộ (local thresholding)
Trong Đề tài này sử dụng phương pháp phân ngưỡng thích nghi (adaptive thresholding) theo phương pháp Otsu Ý tưởng chính của phương pháp này là tính ngưỡng T một cách tự động dựa vào giá trị điểm ảnh của ảnh đầu vào Phương pháp này cho kết quả là mỗi ảnh khác nhau có một ngưỡng tương ứng khác nhau bằng các bước xử
lý như sau:
1 Chọn một giá trị khởi tạo cho T: Thường chọn giá trị mang tính công thức, ví dụ T =
(min + max) / 2, T = giá trị trung bình, tránh dùng các giá trị mang tính định lượng thiết lập cứng)
2 Phân hoạch ảnh sử dụng T: Kết quả của bước này sẽ tạo ra 2 nhóm điểm ảnh: G1
chứa tất cả các điểm ảnh với giá trị (intensity) > T và G2 chứa các điểm ảnh với giá trị (intensity) <= T
3 Tính trung bình: Tính trung bình m1 và m2 của các điểm ảnh thuộc G1 và G2
4 Tính lại T dựa vào m1 và m2: T = (m1 + m2) / 2
5 Bước lặp: Lặp lại bước 2 đến 4 cho tới khi nào giá trị chênh lệch giữa T cũ và T mới
là không đáng kể (nhỏ hơn một giá trị cho trước Delta T) Delta T thường được sử dụng là sai số từ các phép tính toán trong quá trình xử lý
Trang 77
2 2 Thành phần liên thông
2 2 1 Khái niệm điểm lân cận
Cho một điểm P với tọa độ (x, y), khi đó bốn điểm
2 2 2 Thành phần liên thông: liên thông bốn và liên thông tám
kiện:
P2 là lân cận bốn của P1 (hoặc P1 là lân cận bốn với P2)
Tồn tại điểm P3 mà P3 là lân cận bốn của P2 và P3 là lân cận bốn của P1
Trang 8Hình 2.4 Ví dụ về thành phần liên thông 4
kiện:
P2 là lân cận tám của P1 (hoặc P1 là lân cận tám với P2)
Tồn tại điểm P3 mà P3 là lân cận tám của P2 và P3 là lân cận tám của P1
Hình 2.5 Ví dụ về thành phần liên thông 8
2 3 Phép chiếu và các profile
Để thực hiện phân đoạn trong nhận dạng, người ta thường sử dụng phép chiếu hình chữ nhật bao Dưới đây là một số khái niệm cơ sở:
Hình chiếu trên trục đứng (vertical projection profile)
Là tổng các điểm đen của hàng thứ i trên ảnh, được kí hiệu bằng vector đặc trưng V[i]
Trang 99
Với:
V[i]: Tổng các điểm đen của hàng thứ i trên ảnh
S[i,j]: Giá trị của điểm ảnh tại hàng i cột j (giá trị này bằng 1 nếu là điểm đen trong ảnh nhị phân)
m: Số dòng ảnh quét
Hình chiếu trên trục ngang (horizontal projection profile)
Là tổng các điểm đen của một cột j, được kí hiệu bằng vector đặc trưng H[j]
Với:
H[j]: Tổng các điểm đen của cột thứ j trên ảnh
S[i,j]: Giá trị của điểm ảnh tại hàng i cột j (giá trị này bằng 1 nếu là điểm đen trong ảnh nhị phân)
m: Số cột ảnh quét
Hình 2.6 Profile phép chiếu ngang, có được bằng cách tích lũy các hình chữ nhật bao
lên đường thẳng dọc
Trang 10Hình 2.7 Các profile chiếu ngang và dọc của một ảnh văn bản
2 4 Đồ thị kề khối
Một trang ảnh nhị phân P được biểu diễn bởi đồ thị kề khối BAG (Block Adjacent
Graph), kí hiệu B = (N, E) với:
N = {ni}: tập các nút
E = {e(ni, nj) | ni, nj N}: tập các cạnh nối nút ni và nj
với các biên trái, phải tương đối thẳng hàng (lệnh khác một đơn vị điểm ảnh)
góc dưới bên phải (X
Trang 1111
(i) ci B
(ii) nj, nk ci, có một đường chạy (nj, nj1, nj2,…,njp, njk) sao cho njl ci, l = 1,2, p
và e(nj, nj1), e(nj1, nj2)…e(njp-1, njp), e(njp, nk) E
(iii) Nếu e(nj, nk) và nj ci thì nk ci
Các khái niệm cơ sở:
Đường chạy (Run length): Các điểm ảnh nằm liên tục nhau theo chiều ngang tạo thành
một đường chạy
Khối (Block): Nhóm các đường chạy nằm kề nhau có điểm bắt đầu và kết thúc tương đối
thẳng hàng (lệch không quá 1 điểm ảnh) được gọi là một khối Mỗi khối được đặc tả bởi các tọa độ của hình chữ nhật
Khối kề: Hai khối được gọi là kề nhau nếu các hình chữ nhật biên của chúng có chung
nhau một số điểm
Liên thông: tập các khối kề nhau trên ảnh được gọi là liên thông nhau trên đồ thị khối
tương ứng
Ảnh nguồn Đồ thị kề khối
Hình 2.8 Đồ thị BAG
các nút BAG thỏa các điều kiện sau:
Trang 12Các tọa độ góc trên bên trái và góc dưới bên phải của một thành phần liên thông ci = {nj} là:
Dựa vào biểu diễn đồ thị kề khối BAG, ta trích chọn mỗi thành phần liên thông bằng cách tìm kiếm các nút BAG trong một đồ thị liên thông và mỗi nút khối trong B được truy cập O(|E|), thấp hơn hầu hết các phương pháp tuần tự (O(NlogN)) với một ảnh bitmap kích thước N*N
diện tích bé nhất bao phủ toàn bộ miền liên thông Hình bao được đặc tả bởi tọa độ góc bên trái và dưới phải
Kích thước của liên thông: là kích thước của hình chữ nhật bao
Khoảng cách liên thông:
Khoảng cách ngang: hiệu tọa độ x giữa hai tâm hai hình bao của hai liên thông Khoảng cách dọc: hiệu tọa độ y giữa hai tâm hai hình bao của hai liên thông
Phần giao của hai liên thông:
Phần giao ngang: hiệu tọa độ x giữa cạnh trên của hình bao liên thông phải và cạnh phải của hình bao trái
Phần giao dọc: hiệu tọa độ y giữa cạnh trên của hình bao liên thông dưới và cạnh dưới của hình bao trên
Hình 2.9 Hình bao liên thông
Xu(ci) = min{Xu(nj)}, nj ci
Yu(ci) = min{Yu(nj)}, nj ci
Xl(ci) = min{Xl(nj)}, nj ci
Yl(ci) = min{Yl(nj)}, nj ci
Trang 1313
Như vậy, một vùng các điểm đen kề nhau trên ảnh văn bản sẽ là một miền liên thông các khối tương ứng Trong trường hợp các kí tự không bị rạn nứt, đứt nét thì mỗi chữ hay dấu
sẽ là một miền liên thông
Nguyên tắc tạo từ và tạo dòng trong tiếng Việt là các kí tự được thể hiện liên tiếp nhau từ trái sang phải và từ trên xuống dưới, những phần tử cơ bản của một hàng chính là các thành phần liên thông
Như vậy các công đoạn của quy trình tách ảnh văn bản đã được chuẩn hóa ra thành các kí
tự riêng lẻ có thể được thực hiện theo sơ đồ:
Hình 2.10 Quy trình tách văn bản đã được chuẩn hóa
Một ảnh văn bản P bao gồm các vùng văn bản X (gọi là vùng văn bản hay vùng text) và các vùng không văn bản (vùng nontext) Các vùng không văn bản bao gồm vùng ảnh I, vùng vẽ D, thước ngang H, thước dọc V và vùng bảng T
P = (X, T, I, D, R)
Trang 14 Vùng văn bản và vùng ảnh có cùng các thành phần logic, và được định nghĩa một cách phân cấp như sau:
sau:
T, I, D}; dưới dạng hình chữ nhật bao với các tọa độ góc bên trên trái và góc dưới bên phải (Xu(Oi), Xe(Oi), Yu(Oi), Ye(Oi)) Ta có:
Trang 15Nếu Dx(Oi, Oj) < 0 thì các đối tượng Oi và Oj chồng lấp nhau theo phương dọc
Hơn nữa, cho trước một tập các đối tượng Oi = {oj} là |oi| > 1, ta có:
Trang 162.5 Lọc nhiễu
Trong thực tế nhận dạng theo cấu trúc rất nhạy với các nhiễu Những nhiễu nhỏ (chấm đen) hay những nhiễu lớn (vệt đen) sẽ làm thêm hoặc bớt số thành phần liên thông, thậm chí có thể thay đổi hoàn toàn cấu trúc kí tự Điều cần thiết đối với nhận dạng theo cấu trúc là phải có một chiến lược xử lý nhiễu một cách hiệu quả nếu muốn có một tỷ lệ nhận dạng cao Có 3 loại nhiễu ảnh chính và phổ biến là: nhiễu xung, nhiễu cộng và nhiễu nhân
Nhiễu xung: là một loại nhiễu khá đặc biệt có thể sinh ra bởi nhiều lý do khác
nhau như lỗi truyền tín hiệu, lỗi bộ nhớ, hay lỗi định thời trong quá trình lượng tử hóa Nhiễu này thường gây đột biến tại một số điểm ảnh Điển hình của loại nhiễu xung này là nhiễu muối tiêu (Salt-pepper noise) Các điểm ảnh bị nhiễu (noise pixel) có thể nhận các giá trị cực đại hoặc cực tiểu trong khoảng giá trị [0, 255] Với ảnh mức xám (gray scale), nếu một điểm ảnh có giá trị cực đại (tức cường độ sáng bằng 255) thì nó sẽ tạo ra một đốm trắng trên ảnh, trông giống như hạt “muối” Và ngược lại nếu một điểm ảnh có giá trị cực tiểu (tức cường độ sáng bằng 0) thì sẽ tạo ra một đốm đen, giống như “tiêu” Vậy nên còn gọi là ảnh muối tiêu Thông thường, khi nói một ảnh nhiễu muối tiêu 30% nghĩa là trong đó tỉ lệ các điểm ảnh nhiễu mang gia trị cực tiểu là 15% và cực đại là 15%
Hình 2.12 Một ảnh văn bản trước và sau khi được lọc nhiễu muối tiêu
Nhiễu cộng: thường phân bố khắp ảnh và được biểu diễn bởi: Y = X + n với Y:
ảnh quan sát, X: ảnh gốc và n là nhiễu
Trang 1717
Hình 2.13 Mô hình nhiễu cộng
Nhiễu nhân: cũng thường phân bố khắp ảnh và được biểu diễn bởi: Y = X.n
Trong nhận dạng nói chung và trong nhận dạng chữ viết nói riêng, nhiễu thường gặp và có nhiều ảnh hưởng đến kết quả nhận dạng là nhiễu muối tiêu và nhiễu vạch Hiện nay, chất lượng máy quét rất tốt vì thế nhiễu vạch đã giảm nhiều, tuy nhiên nhiễu muối tiêu thì vẫn thường thấy Có thể kể đến một số nguyên nhân gây nhiễu như nhiễu ngẫu nhiên, cắt chữ, nhiễu đứt nét do thu nhận ảnh và viền của ô chứa chữ Nhiễu do ngẫu nhiên: Nhiễu xuất hiện một cách ngẫu nhiên như các chấm đen,trắng nhỏ li ti Nhiễu do cắt chữ: Hai chữ quá gần nhau có các nét chữ lồng nhau mà ta không thể cắt chúng ra được Trong trường hợp như vậy nếu cắt một chữ sẽ cắt luôn cả nét của chữ bên cạnh (đây là nhiễu lớn) Nhiễu đứt nét do thu nhận ảnh: một ảnh scanner hoặc bản thân bản gốc chất lượng không tốt sẽ cho các chữ đứt nét
Đề tài sử dụng phương pháp lọc nhiễu bằng cách xét các thành phần liên thông Việc lọc nhiễu dựa trên ý tưởng các đốm nhiễu không thuộc vào một thành phần liên thông của một từ hoặc một dòng Phương pháp này tỏ ra rất hữu hiệu để tách các nhiễu nằm giữa các dòng và các đoạn Chúng ta sẽ lần lượt xác định các lược đồ histogram về chiều rộng và chiều cao của tất cả các thành phần liên thông trong văn bản Chiều rộng và chiều cao 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 rộng và chiều cao đặ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ó
Trang 18mỗ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, nếu
việc loại bỏ các thành phần liên thông lớn, nếu một thành phần liên thông c (w, h) được
khỏi ảnh văn bản
2.6 Tách đoạn
Khi quan sát ảnh quét ta dễ nhận ra, mỗi văn bản sẽ được chia thành các đoạn khác nhau Mỗi đoạn này có những đặc trưng khá tương đồng về cỡ chữ, font chữ Chính sự tương đồng đó sẽ tạo điều kiện thuận lợi, giảm bớt sự phức tạp trong giai đoạn xử lý phía sau
Nếu trang ảnh văn bản chỉ có một cột văn bản, để thực hiện tách dòng ta chỉ cần thực hiện phép chiếu trên ngang, tức là đếm số điểm đen trên mỗi dòng, và nhóm các dòng có giá trị phép chiếu ngang lớn hơn 0 thành các lớp Mỗi lớp này, trong những điều kiện lý tưởng là một dòng văn bản
Nếu trang ảnh văn bản có nhiều cột thì ta cần phải tinh chỉnh các cơ chế dò và điều chính độ nghiêng Bởi vì các dòng văn bản có thể nằm trong nhiều cột, và những cột này
có thể có những độ nghiêng khác nhau, mặt khác chúng có thể nằm chung với các ảnh, các biểu đồ, bản vẽ…do đó phương pháp chiếu ngang trong trường hợp này là không khả thi
Trong nhiều năm qua, các kỹ thuật trích chọn và phân trang ảnh văn bản đã được phát triển rất đa dạng và phong phú Tuy nhiên nói chung thì chúng có thể được chia thành 3 hướng tiếp cận chính: hướng top-down, hướng bottom-up và kết hợp giữa 2 hướng nói trên
Trong các kỹ thuật bottom-up, các từ được nhóm từ các kí tự đơn, các dòng văn bản được nhóm từ các từ, và các cột được nhóm từ các dòng văn bản Các phương pháp này thường mềm dẻo hơn các phương pháp top-down, nhưng chi phí tính toán tốn kém hơn và có thể có một số lỗi tích lũy khi đi từ các đặc trưng nhỏ sang các đặc trưng lớn Các phương pháp top-down bắt đầu bằng cách dò các đặc trưng lớn trong ảnh (ví dụ như các cột) và tiếp tực chia nhỏ cho đến khi đạt đến các đặc trưng nhỏ nhất (các kí tự đơn)
Để thủ tục làm việc hiệu quả, cần một tri thức ban đầu về cấu trúc của trang ảnh Nói chung các kĩ thuật top-down thường có tốc độ xử lý nhanh hơn các kỹ thuật bottom-up
Trang 1919
Hình 2.14 Phân tích top-down
Đề tài sử dụng phương pháp gán nhãn thành phần liên thông component labeling) để tách phần văn bản ra khỏi ảnh Sau đó thực hiện tách dòng
(connected-2.6 1 Tách liên thông bằng kĩ thuật đệ quy
Để tách liên thông người ta thường dùng kỹ thuật đệ quy cấp 8 (tại mỗi bước
chúng ta có tối đa 8 lựa chọn tiếp theo) Quy ước một tại toạ độ (x, y) có giá trị bằng 1
nếu là màu chữ, và bằng 0 nếu màu nền Giải thuật như sau :
Đưa tất cả các điểm liên thông với điểm(x,y) vào liên thông t
Procedure Chonvao((x,y) :điểm, t :liênthông)
Trang 20 Tách liên thông đệ quy
Procedure TáchLiênThôngĐQ(VAR LT: Danh_Sách_Liên_Thông)
Begin
T:=<danh sách rỗng>
t:=<liên thông rỗng>
For j:=1 to Height do For i:=1 to Width do đã_xét[i, j]:=False;
If (Điểm(x, y)=1) & (NOT Đã_xét[i, j]) then Begin
Chonvao( (i, j ),t);
Thêm _liên_thông_vào_Danh_Sách(T, t) ;
t :=<liên thông rỗng> ; End ; End;
Thuật toán này chỉ có ý nghĩa minh hoạ bản chất của tách liên thông Ta không chọn thuật toán này cài đặt vì chi phí đệ quy quá cao, chưa kể tốc độ thực hiện
2.6 2 Giải thuật cải tiến
Để gán nhãn cho thành phần liên thông ta có thể duyệt theo từng đường chạy Kỹ thuật này gán cho mỗi thành phần liên thông của ảnh nhị phân một nhãn riêng biệt Nhãn thường là các số tự nhiên bắt đầu từ một đến tổng số các thành phần liên thông trong ảnh
input
Ta thực hiện quét ảnh từ trái sang phải và từ trên xuống dưới Trong dòng thứ nhất chứa pixel đen, một nhãn duy nhất được gán cho mỗi đường chạy liên tục của pixel đen Với mỗi pixel đen của dòng tiếp theo, các pixel lân cận dòng trước và pixel bên trái được xem xét Nếu bất kì pixel lân cận nào được gán nhãn, nhãn tương tự được gán cho pixel đen hiện thời Ngược lại, nhãn tiếp theo chưa được sử dụng được chọn Thủ tục này được
sử dụng cho đến dòng cuối của ảnh
Lúc kết thúc tiến trình này, một thành phần liên thông có thể chứa các pixel có các nhãn khác nhau vì khi chúng ta xem xét lân cận của pixel đen, chẳng hạn pixel “?” (trong hình ví dụ), pixel đối với lân cận trái và những lân cận trong dòng trước có thể gán nhãn
Trang 2121
P P P
L ?
Lân cận của “?” P= dòng trước, L=lân cận trái Hình 2.15 Gán nhãn cho thành phần liên thông 2.7 Xử lí nghiêng Ảnh văn bản đầu vào của chúng ta là ảnh scan lên rất dễ bị nghiêng, việc văn bản bị nghiêng ảnh hưởng rất nghiêm trọng đến các bước tiếp theo như: tách khối, phân tích bố cục…, ngay cả khi góc nghiêng của văn bản rất nhỏ vào khoảng 5o Do đó một hệ thống xử lý ảnh văn bản thường phải giải quyết bài toán phát hiện góc nghiêng như một bước đầu tiên và tất yếu Chính vì vậy, cùng với sự phát triển của xử lý ảnh nói chung và xử lý ảnh văn bản nói riêng, bài toán xác định góc nghiêng văn bản cũng được quan tâm ngày càng nhiều và được tiếp cận dưới nhiều góc độ khác nhau Công việc xoay văn bản gồm 2 giai đoạn chính là: xác định góc nghiêng và xoay lại ảnh theo góc nghiêng đã xác định được Trong đó xác định góc nghiêng là vấn đề chủ yếu cần giải quyết, sau khi đã có được góc nghiêng thì việc xoay lại ảnh theo trục tọa độ tương đối đơn giản Tuy nhiên có một vấn đề cần lưu ý là số lượng góc nghiêng trong toàn văn bản, nghĩa là văn bản có thể có một hay nhiều góc nghiêng (mỗi đoạn nghiêng theo một góc khác nhau) Trong phạm vi Đề tài này sẽ chỉ tiếp cận ở mức xử lý văn bản nghiêng theo một góc
* * * * * * * 1 1 1 1 2 2 2
* * * * * * * 1 1 1 2 2 2 2
* * * * * * * * * 1 1 1 1 2 2 2 2 2
* * * * * 1 1 ? * *
* * * * * * * * * * * * * *
* * * * * * * *
* * * * * * * *
* * * *
Ảnh ban đầu Tiến trình gán nhãn
1 1 1 1 2 2 2 1 1 1 1 1 1 1
1 1 1 2 2 2 2 1 1 1 1 1 1 1
1 1 1 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 3 1 1 1 1 1 1 2
4 4 3 3 3 3 2 2
4 4 3 3 3 3 2 2
4 4 3 3
Sau khi quét đầy đủ Kết quả sau cùng
Trang 22Sử dụng biến đổi Hough:
Mỗi điểm (x,y) trong mặt phẳng được biểu diễn bởi cặp (r,) trong tọa độ cực
cũng tương ứng biểu diễm một đường thẳng trong mặt phẳng
Hình 2.16 Đường thẳng Hough trong toạ độ cực
là hình chiếu của gốc toạ độ O trên đường thẳng ta có:
hệ tọa độ Đề các Như vậy, những đường thẳng đi qua điểm (x,y) sẽ cho duy nhất một cặp (r,) và có bao nhiêu đường qua (x,y) sẽ có bấy nhiêu cặp giá trị (r,)
Ý tưởng của việc áp dụng biến đổi Hough trong phát hiện góc nghiêng văn bản là dùng một mảng tích luỹ để đếm số điểm ảnh nằm trên một đường thẳng trong không gian
Trang 2323
y x.cos+y.sin = r 1
thẳng đó Sau đó tính tổng số điểm ảnh nằm trên những đường thẳng song song nhau theo các góc lệch thay đổi Góc nghiêng văn bản tương ứng với góc có tổng giá trị mảng tích luỹ cực đại
Theo biến đổi Hough, mỗi một đường thẳng trong mặt phẳng tương ứng được biểu
hoạ cách dùng biến đổi Hough để phát hiện góc nghiêng văn bản Giả sử ta có một số điểm ảnh Đây là những điểm giữa đáy các hình chữ nhật ngoại tiếp các đối tượng đã được lựa chọn từ các bước trước
Ở đây, ta thấy trên mặt phẳng có hai đường thẳng song song nhau Đường thẳng thứ nhất có ba điểm ảnh nên giá trị mảng tích luỹ bằng 3 Đường thẳng thứ hai có giá trị
bằng 7
Hình 2.17 Biến đổi Hough phát hiện góc nghiêng
2.8 Tách dòng
2.8.1 Tách dòng dựa vào thành phần liên thông
Đây là phương pháp được sử dụng trong Đề tài Ý tưởng của phương pháp này là tìm tất cả các thành phần liên thông trong ảnh và sắp xếp theo thứ tự tăng dần của tung độ của điểm trên nhất Sau đó dựa vào sự tương quan giữa tung độ của điểm trên nhất, tung
Trang 24độ của điểm dưới nhất của mỗi thành phần liên thông để gộp các thành phần này vào một dòng văn bản
Ưu điểm của phương pháp này ta có thể tách được các dòng mà giữa chúng có phần giao với nhau và đường cắt giữa 2 dòng sẽ được đi theo một đường cong, chứ không phải là một đường thẳng như những cách khác Tuy nhiên phương pháp này chạy tương đối chậm, do thời gian tính toán thành phần liên thông Và phải duyệt lại thành phần liên thông nhiều lần
2.9 Tách từ
Sau khi văn bản đã được tách thành nhiều dòng, chúng ta tiếp tục tách từ dựa trên các dòng tìm được Đây là một bước quan trọng, là cơ sở để có thể tách kí tự và tiến hành nhận dạng Một số phương pháp sử dụng ngưỡng xác định trước Sau đó sẽ phân loại các
kí tự thuộc cùng một từ và các kí tự thuộc các từ khác nhau dựa vào việc so sánh khoảng cách theo trục x giữa các kí tự trong cùng một từ và các từ khác nhau với ngưỡng xác định trước này Phương pháp này khá dễ hiện thực Tuy nhiên, do sự đa dạng của bố cục văn bản, việc xác định một ngưỡng chung cho tất cả các loại văn bản là một điều khó khăn Hơn nữa, khoảng cách giữa các kí tự trong cùng một từ ở các dòng khác nhau có thể khác nhau Điều này có thể thấy rõ trong trường hợp khối văn bản được canh lề theo định dạng justify
Một số hướng tiếp cận sử dụng khoảng cách trung bình theo trục x giữa tất cả các
kí tự trong cùng một dòng làm ngưỡng để phân loại các kí tự trong cùng một từ với các kí
tự thuộc các từ khác
Hình 2.18 Biểu đồ phân cách của ngưỡng