ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bùi Thế Hân NGHIÊN CỨU VỀ NHẬN DẠNG
CHỮ IN TIẾNG VIỆT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Lê Anh Cường HÀ NỘI - 2009 Nghiên cứu nhận dạng chữ in tiếng việt Bùi Thế Hân
i
Lời cảm ơn
Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc tới TS. Lê Anh Cường, người
đã không chỉ hướng dẫn em tận tình trong suốt năm học và thời gian làm luận văn.
Mà còn là người đã khơi dậy trong em lòng yêu nghề, yêu Công Nghệ Thông Tin.
Đồng thời Thầy cũng là người giúp em nhìn thấy con đường đi của riêng mình. Một
lần nữa xin được nói lời cảm ơn với Thầy.
Em xin bày tỏ lòng biết ơn tới các thầy, cô giáo trong Khoa Công nghệ thông
tin - Trường Đại học Công nghệ - ĐHQGHN. Các thầy cô đã dạy bảo, chỉ dẫn
chúng em và luôn tạo điều kiện tốt nhất cho chúng em học tập trong suốt quá trình
học đại học đặc biệt là trong thời gian làm khoá luận tốt nghiệp.
Tôi xin cảm ơn các bạn sinh viên lớp K50CB trường Đại học Công nghệ và
các bạn trong lớp KHMT, đã giúp đỡ tôi trong suốt quá trình học tập.
Cuối cùng con xin gửi tới bố mẹ và toàn thể gia đình lòng biết ơn và tình cảm
yêu thương.
Hà Nội, ngày 22 tháng 5 năm 2009
Bùi Thế Hân
Nghiên cứu nhận dạng chữ in tiếng việt Bùi Thế Hân
Chương 2 Cơ sở lý thuyết cho phân đoạn ảnh 5
2.1 Khái niệm ảnh số 5
2.2 Nhị phân hóa 6
2.3 Biểu đồ sắc thái của hình ảnh (Histogram) 8
2.4 Thành phần liên thông 8
2.4.1 Khái niệm điểm lân cận 9
2.4.2 Thành phần liên thông: Liên thông bốn và liên thông tám 9
Chương 3 Phân đoạn ảnh cho nhận dạng văn bản
11
3.1 Tiền xử lý ảnh 11
3.1.1 Nhị phân hóa 11
3.1.2 Lọc nhiễu 11
3.1.3 Xoay lại ảnh 12
3.2 Tách đoạn 14
3.3 Tách dòng 14
3.3.1 Tách dòng dựa vào các đường kẻ ngang 14
3.3.2 Tách dòng dựa vào thành phần liên thông 15
3.3.3 Tách dòng dựa vào khoảng trắng giữa các dòng 16
3.4 Tách từ 17
3.4 Tách ký tự 18
Chương 4 Trích chọn đặc trưng 20
4.1 Khái niệm cơ bản 20
4.1.1 Đặc trưng ảnh – Image Features 20
4.1.2 Trích chọn đặc trưng – Feature Extraction 20
4.2 Vai trò của trích chọn đặc trưng 20
4.3 Một số phương pháp trích chọn đặc trưng 21
4.3.1 Phương pháp trích chọn đặc trưng GSC 21
Nghiên cứu nhận dạng chữ in tiếng việt Bùi Thế Hân
iv
4.3.1 Trích chọn đặc trưng theo hướng hình học 22
Hình 2.2: Ví dụ chuyển ảnh đa mức xám sang ảnh nhị phân 6
Hình 2.3 ví dụ về chuyển ảnh nhị phân 7
Hình 2.4 Minh họa biểu đồ Histogram ngang. 8
Hình 2.5a: Ví dụ lân cận bốn 9
Hình 2.5b: Ví dụ lân cận tám 9
Hình 2.6: Hai ví dụ về thành phần liên thông 4-connected 9
Hình 2.7: Hai ví dụ về thành phần liên thông 8 10
Hình 3.1 Ví dụ về nhiễu đốm 11
Hình 3.2 Ảnh sau khi áp dụng lọc trung vị. 12
Hình 3.3: Histogram của một văn bản không nghiêng. 13
Hình 3.4: Histogram của văn bản nghiêng 13
Hình 3.5 Ví dụ minh họa cắt đoạn 14
Hình 3.6: Các đường đặc trưng của một dòng văn bản 15
Hình 3.7: Biểu đồ phân cách của ngưỡng. 18
Hình 3.8: Các vị trí chính xác, vị trí cắt nhập nhằng. 19
1.1 Đặt vấn đề
Nhận dạng kí tự quang học (OCR – Optical Character Recognition) là một bài
toán chuyển các hình ảnh của chữ viết tay hoặc chữ đánh máy (thường được quét
bằng máy scanner) thành các văn bản tài liệu. Do bài toán vẫn còn nhiều vấn đề
chưa được giải quyết một cách triệt để, như vấn đề về tốc độ xử lý, độ chính xác của
tách từ, hay độ chính xác của nhận dạng. Và vì vậy vẫn nhận được nhiều sự quan
tâm nghiên cứu, đặc biệt cho tiếng Việt. Nhận dạng văn bản được áp dụng trong quá
trình tự động hoá các công việc văn phòng như nhập liệu, lưu trữ văn bản, sách báo,
phân loại thư tín, …, những công việc đòi hỏi nhiều thời gian của con người.
Hiện nay cũng có rất nhiều bài báo đề cập đến bài toán nhận dạng kí tự quang
học, nhằm cải tiến các phương pháp phân đoạn ảnh, nhận dạng. Song vẫn chưa giải
quyết một cách triệt để những vấn đề khó khăn của bài toán thường gặp phải. Đặc
biệt là đối với việc nhận dạng các kí tự tiếng Việt, gặp rất nhiều khó khăn, do tính
riêng biệt của tiếng Việt: Số kí tự nhiều, các kí tự lại có dấu…Nên bài toán vẫn còn
thu hút được sự quan tâm, nghiên cứu nhằm giải quyết những vấn đề khó khăn của
bài toán một cách triệt để.
Một số hệ nhận nhận dạng văn bản đã và đang được áp dụng rất nhiều vào ứng
dụng như FineReader của hãng AABBYY, OmmiPage của hãng Scansoft được
dùng để nhận dạng các văn bản tiếng Anh,… VNDOCR của Viện công nghệ thông
tin cho các văn bản tiếng Việt.
Bài toán nhận dạng văn bản được thực hiện qua ba giai đoạn chính: Phân đoạn
ảnh, nhận dạng từ và hậu xử lý. Trong luận văn này chúng tôi đi sâu vào nghiên cứu
cải tiến công đoạn phân đoạn ảnh. Bên cạnh đó kết hợp với mô đun nhận dạng [3]
để xây dựng thành một hệ thống nhận dạng văn bản hoàn thiện. Bài toán mà chúng
tôi đang nghiên cứu được thực hiện qua các giai đoạn như mô tả trong hình I.1.1.
Chương I: Giới thiệu Bùi Thế Hân
2
Hình 1.1 Sơ đồ hệ nhận dạng văn bản tiếng Việt.
Đầu vào của hệ thống nhận dạng của chúng ta là một hình ảnh scan từ một văn
dạng văn bản hoàn chỉnh.
1.2 Nội dung nghiên cứu của khóa luận
Bài toán thực hiện trong khóa luận này là bài toán nhận dạng chữ in tiếng Việt
ứng dụng trong quá trình tự động hóa các công việc văn phòng. Bài toán này gồm 3
công đoạn chủ yếu. Nhưng trong khoá luận này tập trung chủ yếu vào việc nghiên
cứu cải tiến ứng dụng phân đoạn ảnh vào nhận dạng văn bản tiếng Việt: giải pháp
và các thực nghiệm. Đồng thời cũng nghiên cứu lý thuyết cơ bản về các hệ nhận
dạng đã được xây dựng và phát triển. Để xây dựng được một hệ thống nhận dạng
hoàn chỉnh chúng tôi đã thực hiện việc cài đặt các giải pháp đề xuất trong luận văn,
kết hợp với các bộ nhận dạng kí tự có sẵn.
Tách đoạn, tách dòng, tách từ và tách ký tự là bốn nội dung quan trọng của
quá trình phân đoạn ảnh. Độ chính xác của mỗi giai đoạn có thể làm ảnh hưởng đến
độ chính xác của giai đoạn khác, cũng như của toàn bộ hệ thống. Chúng tôi nghiên
cứu đánh giá một số phương pháp được sử dụng để thực hiện các nội dung đó, và áp
dụng nó vào bài toán nhận dạng văn bản chữ in tiếng Việt.
Trong giai đoạn nhận dang kí tự, trong luận văn này chúng tôi đề xuất sử dụng
mô hình mạng neuron cho việc nhận dạng.
1.3 Cấu trúc khóa luận
Các phần còn lại của khóa luận có cấu trúc như sau:
Chương 2 trình bày cơ sở lý thuyết của phân đoạn ảnh, bao gồm các khái niệm
cơ bản, các kỹ thuật cơ bản được sử dụng trong phân đoạn ảnh.
Chương 3 trình bày chi tiết về phân đoạn ảnh cho nhận dạng văn bản. Đồng
thời chúng tôi đưa ra những giải pháp nhằm cải tiến chất lượng cũng như tốc độ của
phân đoạn ảnh. bao gồm các thuật toán xác định góc nghiêng văn bản, các thuật
toán tách đoạn,tách dòng, tách từ và tách ký tự.
Chương I: Giới thiệu Bùi Thế Hân
4
Chương 4: Trình bày các phương pháp trích chọn đặc trưng cơ bản. Áp dụng
các phương pháp trích chọn đặc trưng cho tiếng Việt.
Máy tính hay máy in sử dụng những ô vuông nhỏ này để hiển thị hay in ra bức ảnh.
Để làm được điều đó máy tính hay máy in chia màn hình, trang giấy thành một
mạng lưới chứa các ô vuông, sau đó sử dụng các giá trị chứa trong file ảnh để định
ra mầu sắc, độ sáng tối của từng pixel trong mạng lưới đó - ảnh số được hình thành.
Việc kiểm soát, định ra địa chỉ theo mạng lưới như trên được gọi là bit mapping và
ảnh số còn được gọi là ảnh bit-maps.
Hình 2.1 Ví dụ về quá trình lấy mẫu.
Chương 2:Cơ sở lý thuyết cho phân đoạn ảnh Bùi Thế Hân
6
Một bức ảnh số a[m, n] gồm có m hàng và n cột, phần giao giữa một hàng và
một cột được 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 đó.
2.2 Nhị phân hóa
Ảnh nhị phân là ảnh số mà trong đó giá trị mỗi điểm ảnh có thể nhận một
trong hai giá trị 0 hoặc 1.
Quá trình phân đoạn ảnh yêu cầu ảnh đầu vào phải là ảnh nhị phân, trong khi
đó ảnh đầu vào của hệ thống là một ảnh đa mức xám, chính vì vậy mà cần phải thực
chuyển ảnh đa mức xám sang ảnh nhị phân để thực hiên phân đoạn (hình II.2.2 ).
Hình 2.2: Ví dụ chuyển ảnh đa mức xám sang ảnh nhị phân.
Quá trình này được thực hiện nhờ vào hàm phân ngưỡng:
Dest(x, y) = 1 if Source(x, y) >= T
0 if Source(x, y) < T
Trong đó, Source(x,y) là giá trị điểm ảnh ở vị trí (x,y) của ảnh nguồn,
Dest(x,y) là giá trị điểm ảnh tương ứng ở vị trí (x,y) của ảnh đích. T là giá trị
ngưỡng. Tuy nhiên, giá trị cụ thể của ngưỡng lại phụ thuộc vào từng ảnh, vùng ảnh
lượng điểm ảnh ở những độ sáng tương ứng. Hoặc nói dễ hiểu hơn Histogram là 1
biểu đồ trong đó cột đứng tượng trưng cho số điểm ảnh còn cột ngang tượng trưng
cho dãy sắc độ chuyển từ đen (bên trái) sang trắng (bên phải).
Chúng ta có thể nhìn vào Histogram để đánh giá về sắc thái và mức độ tương
phản của một hình. Trong hầu hết các ứng dụng đồ hoạ chuyên nghiệp đều cung cấp
cho ta công cụ này. Và trong phần review của các máy ảnh số sau này cũng thường
có phần hiển thị histogram.
Hiện nay có hai loại Histogram phổ biến là: Histogram theo chiều ngang và
Histogram theo chieu doc.
Hình 2.4 Minh họa biểu đồ Histogram ngang.
2.4 Thành phần liên thông
Chương 2:Cơ sở lý thuyết cho phân đoạn ảnh Bùi Thế Hân
9
2.4.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
(x + 1, y); (x – 1, y), (x, y + 1), (x, y – 1)
được gọi là lân cận bốn (hình 2.3a) của điểm P, và các điểm
(x - 1, y - 1); (x – 1, y + 1); (x + 1, y - 1); (x + 1, y + 1)}
Tám điểm đến được gọi là lân cận 8 (hình II.1.5b) của điểm P. Hình 2.5a: Ví dụ lân cận bốn
Hình 2.5b: Ví dụ lân cận tám
nghiêng, có thể bị đứt nét nên để tăng chất lượng nhận dạng ta cần phải có một quá
trình tiền xử lý ảnh để nâng cao chất lượng ảnh đầu vào trước khi đưa vào nhận
dạng.
3.1.1 Nhị phân hóa
Đầu vào ban đầu của hệ nhận dạng là một ảnh đa mức xám. Mà phân đoạn ảnh
chúng ta xử lý trên ảnh nhị phân, chính vì vậy chúng ta phải thực hiện chuyển về
ảnh nhị phân.
Phương pháp mà chúng tôi sử dụng để chuyển sang ảnh nhị phân là xác định
dựa vào ngưỡng. Ngưỡng được xác định dựa trên phân phối mức xám của ảnh đã
được trình bày ở trên.
3.1.2 Lọc nhiễu
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 đốm 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 đốm thì vẫn thường thấy.
Hình 3.1 Ví dụ về nhiễu đốm
Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân
12
Trong khóa luận này chúng tôi chỉ giới hạn ở việc xử lý các nhiễu đốm, việc
loại bỏ các nhiễu đốm được thực hiện bằng cách áp dụng bộ lọc trung vị (median
filter).
Lọc trung vị: Cho I là ảnh, với mỗi điểm P trong ảnh ta lấy cửa sổ W(P), sau
đó lấy trung vị và gán điểm P.
Hình 3.2 Ảnh sau khi áp dụng lọc trung vị.
3.1.3 Xoay lại ảnh
Ảnh đầu vào của chúng ta là ảnh scan lên rất dễ bị xoay. Chính vì vậy việc
xoay lại ảnh hay khử độ nghiêng của ảnh là rất cần thiết, cho việc xử lý sau này.
Công việc xoay văn bản gồm 2 giai đoạn chính là:
Hình 3.4: Histogram của văn bản nghiêng.
Thuật toán xác định Histogram để xác định góc nghiêng:
Mô tả thuật toán:
h là chiều cao của ảnh (tính theo điểm ảnh).
entireBlackPoints là số điểm đen tích lũy, sau khi duyệt hết toàn bộ bức
ảnh.
avgPointLine là số điểm đen trung bình tại một đường nằm ngang của
ảnh
lineBlackPoint là số điểm đen tích lũy của một dòng.
Delta là phương sai của điểm đen trên một đường nằm ngang với số điểm
đen trung bình.
Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân
14 Ta thấy rằng góc lệch của văn bản thường chỉ nằm trong khoảng [-25, 25] độ.
Chính vì vậy ta quay ảnh tại các góc trong khoảng [-25,25] với bước nhảy góc là
stepAngle, và tính giá trị Delta tại mỗi lần quay, góc quay mà tại đó giá trị lớn nhất
của theta, sẽ ứng với góc nghiêng của văn bản.
3.2 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.
Hình 3.5 Ví dụ minh họa cắt đoạn
Để tách thành các đoạn (hay các vùng ảnh) chúng ta sử dụng 2 đặc trưng:
Khoảng cách trắng giữa các đoạn sẽ lớn hơn khoảng trắng giữa các dòng, lùi đầu
dòng của dòng kế tiếp.
Nhận xét:
Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân
16
Ư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 (không dính) 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.
Nhược điểm: 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.
3.3.3 Tách dòng dựa vào khoảng trắng giữa các dòng
Trong đề tài này chúng tôi đề xuất một phương pháp tách dòng đó là tách
dòng dựa vào khoảng trắng và kết hợp Histogram ngang.
Ý tưởng của phương pháp này đó là dựa vào khoảng trắng giữa các dòng với
nhau. Khoảng trắng giữa các dòng chính là nơi ta đặt nhát cát để tách các dòng với
nhau.
Phương pháp này có ưu điểm là tốc độ rất nhanh. Nhưng nhược điểm của
phương pháp này là do sự xuất hiện của nhiễu. Nhiễu có thể làm mất khoảng trắng
giữa các dòng, dẫn dến hiện tượng tách sai dòng (Một dòng thành hai hoặc ba
dòng). Để giải quyết được nhược điểm của phương pháp này tôi đã kết hợp phương
pháp này với Histogram ngang cho các trường hợp nghi ngờ tách hai dòng hay ba
dòng. Histogram ngang dựa trên đặc điểm các điểm đen chỉ phân bố chủ yếu tại các
đường thuộc các dòng, tại khoảng giữa các dòng thì rất ít. Ta tìm Histogram ngang
của văn bản và xác định một ngưỡng threshold nào đó, đối với các đường mà trên
đó số điểm đen < threshold thì sẽ được chọn làm phân cách giữa các dòng.
Các bước thực hiện:
Bước 1: Xác định khoảng trắng giữa các dòng và chọn làm vạch phân cách
hay là vị trí cắt các dòng. Quá trình được lặp lại cho đến khi hoàn tất công việc tách
dòng trong đoạn. Chiều cao của mỗi dòng phài > minHeightLine (tránh trường hợp
tách các dấu thành một dòng)
Bước 2: Xác định độ cao trung bình của các dòng trong một đoạn(
avgHeightLine ). Thực nghiệm ta thấy ValueHistogram được tính: