TRƯỜNG ĐẠI HỌC LẠC HỒNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:
NGHIÊN CỨU GIẢI PHÁP VÀ XÂY DỰNG
PHẦN MỀM THỬ NGHIỆM CHUYỂN CÁC
DÒNG VĂN BẢN TIẾNG VIỆT TRONG HÌNH
ẢNH SANG VĂN BẢN DẠNG TEXT VÕ HOÀNG MINH
BIÊN HÒA,THÁNG 06/2012
MỤC LỤC
3.2 Tổng quan về xây dựng và huấn luyện mạng neural 33
3.2.1 Mô hình của một neural nhân tạo 33
3.2.2 Các kiểu hoc với mạng neural 48
3.2.3 Tổng quan về các thuật toán học 37
Chƣơng 4 – XÂY DỰNG PHẦN MỀM
4.1 Sơ đồ xử lý của chương trình 40
4.2 Xây dựng chương trình 41
4.2.1 Môi trường phát triển 41
4.2.2 Sơ đồ thiết kế 41
4.2.3 Các engine xử dụng trong chương trình 42
4.2.4 Danh sách các class chính 42
Chƣơng 5 – THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
5.1 Thử nghiệm 43
5.2 Đánh giá kết quả 46
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Kết luận 47
Hướng phát triển 47
Tài liệu tham khảo 48 DANH MỤC CÁC HÌNH VẺ, SƠ ĐỒ
DANH MỤC CÁC BẢNG
Bảng 3.1 Các luật về đặc trưng cấu trúc 29
Bảng 4.1 Danh sách các class chính trong chương trình 42
Bảng 5.1 Thử nghiệm chương trình với font Times New Roman 45
Bảng 5.2 Thử nghiệm chương trình với font Arial 46
LỜI MỞ ĐẦU
Những năm gần đây, nhu cầu số hóa tài liệu ngày càng bùng nổ. Hiện nay ở nước
ta, tất cả các yêu cầu về lưu trữ tài liệu, dịch thuật tự động…đều có thể thực hiện tốt nếu
có một phần mệm nhận dạng chữ in tiếng Việt hiệu quả, có độ chính xác cao và độ thực
thi nhanh. Hiện tại trên thị trường đã có một số phần mềm nhận dạng chữ in tiếng Việt,
tuy nhiên kết quả nhận được còn có nhiều hạn chế. Do đó việc nghiên cứu phương pháp
để xây dựng một hệ nhận dạng văn bản tiếng Việt là vấn đề hết sức quan trọng và có ý
nghĩa cao trong thực tiễn. Dó là lý do tôi chọn đề tài” Nghiên cứu giải pháp và xây dựng
phần mềm thử nghiệm chuyển các dòng văn bản tiếng việt trong hình ảnh sang văn bản
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. 2
1.2
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:
3
Đầu vào hệ thống nhận dạng của chúng ta là một hình ảnh scan từ một văn bản
tiếng Việt hoặc một tập tin hình ảnh chứa văn bản tiếng Việt bất kì. Đầu ra là một văn bản
đã được nhận dạng. Để xử lý được điều này hệ thống nhận dạng của chúng ta sẽ trải qua
1.4 tài:
Đề tài “Nghiên cứu giải pháp và xây dựng phần mềm thử nghiệm chuyển các dòng
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.
Xây dựng một chương trình nhận dạng văn bản in tiếng Việt với độ chính xác cao
(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).
5
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. 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. 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 = (m1 + m2) / 2
5. 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ý.
7
Cho một điểm P với tọa độ (x, y), khi đó bốn điểm
N
1
(x + 1, y), N
2
được gọi là lân cận 8 của điểm P.
Hình 2.3
Hai điểm P
1
, P
2
được gọi là liên thông bốn với nhau nếu thỏa mãn một trong hai điều
kiện:
P
2
là lân cận bốn của P
1
(hoặc P
1
là lân cận bốn với P
2
)
Tồn tại điểm P
3
mà P
3
là lân cận bốn của P
2
và P
3
là lân cận tám của P
2
và P
3
là lân cận tám của P
1
. Hình 2.5
Để 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ở:
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]
9 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
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
Mỗi nút n
i
là một khối gồm một hay nhiều đường chạy (run length) xếp chồng lên nhau
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).
Mỗi nút (khối) được đặc tả bởi các tọa độ hình chữ nhật biên (góc trên bên trái (X
u
, Y
u
) và
góc dưới bên phải (X
e
, Y
e
)).
11
(i) c
i
B
(ii) n
j
, n
k
c
i
, có một đường chạy (n
j
, n
j1
, n
j
, n
k
)
và n
j
c
i
thì n
k
c
i
Các khái niệm cơ sở:
: 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.
: 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.
: 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
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 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
X
u
(c
i
) = min{X
u
(n
j
)}, n
j
c
i
Y
u
(c
i
) = min{Y
u
(n
i
13
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
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)
Nhiệm vụ của thuật toán phân trang là lấy được các vùng văn bản X = {X
i
}, các thước R
= {H
i
, V
j
} và các vùng không văn bản.
14
i
), X
e
(O
i
), Y
u
(O
i
), Y
e
(O
i
)). Ta có:
Các khoảng cách theo chiều ngang và chiều dọc của hai đối tượng được định nghĩa
như sau: X
i
= {t
j
} và I
j
= {t
j
}, V
i
= {c
j
}
D
x
(O
i
, O
j
) = max(X
u
(O
i
), X
u
(O
j
)) – min(X
l
(O
i
), X
l
(O
j
))
D
y
15
O
i
gần nhau theo chiều dọc và chồng lấp theo chiều ngang ở một khoảng các T
d
, kí hiệu
Vclose(O
i
,T
d
)
, nếu:
D
y
(o
j
, o
jl
) < T
d
, V
x
(o
j
, o
j1
) > 0.5
Hình 2.11
Ta có nhận xét là:
Nếu D
x
(O
i
, O
j
) < 0 thì các đối tượng O
i
và O
j
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 O
i
= {o
j
} là |o
i
| > 1, ta có: O
i
gần nhau theo chiều ngang và chồng lấp theo chiều dọc ở một khoảng các T
O
i
, l = 1,2…p và
D
x
(o
j
, o
jl
) < T
d
, V
y
(o
j
, o
j1
) > 0.25
D
x
(o
jp
, o
k
) < T
d
, V
y
(o
jp
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
: 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.
17 Hình 2.13
: 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.
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.
19 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 (connected-
component labeling) để tách phần văn bản ra khỏi ảnh. Sau đó thực hiện tách dòng.
2.6
Để 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 :