Tìm hiểu kỹ thuật xử lý ảnh và xây dựng ứng dụng tách ảnh ký tự từ ảnh văn bản Ngày nay, công nghệ thông tin đang trên đà phát triển, thế giới đang phát triển mạnh mẽ với xu hướng toàn cầu hóa công nghệ thông tin, theo đó có rất nhiều ứng dụng tin học hiện đại được ra đời trong rất nhiều lĩnh vực: giáo dục, giải trí, kinh tế, y tế… Tin học được áp dụng rộng rãi trong đời sống. Tổng quan về xử lý ảnh và các phương pháp tiền xử lý ảnh Tìm hiểu các phương pháp tách ảnh ký tự từ ảnh văn bản Tìm hiểu ngôn ngữ lập trình matlab Xây dựng chương trình tách ảnh ký tự từ ảnh văn bản
Trang 1MỤC LỤC
MỤC LỤC 1
DANH SÁCH CÁC HÌNH VẼ 4
DANH SÁCH CÁC BẢNG BIỂU 5
DANH SÁCH CÁC TỪ VIẾT TẮT 6
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 7
1.1 Lý do chọn đề tài 7
1.2 Mục tiêu của đề tài 8
1.3 Giới hạn và phạm vi của đề tài 8
1.4 Nội dung thực hiện của đề tài 8
1.5 Phương pháp tiếp cận 9
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 10
2.1 Tổng quan về xử lý ảnh và bài toán xử lý ảnh văn bản 10
2.1.1 Khái niệm ảnh số 10
2.1.2 Ảnh nhị phân 11
2.1.3 Một số khái niệm cơ bản 11
2.1.4 Tổng quan về ảnh văn bản 14
2.1.5 Tổng quan về bài toán xử lý ảnh văn bản 16
2.2 Quá trình xử lý ảnh văn bản 19
2.2.1 Nhị phân hóa ảnh văn bản 19
2.2.2 Tách dòng văn bản 20
Trang 22.2.3 Tách từ văn bản 22
2.2.4 Tách ảnh ký tự 23
2.3 Tổng quan về matlab 26
2.3.1 Khái niệm Matlab 26
2.3.2 Tổng quan về cấu trúc dữ liệu của Matlab, các ứng dụng 27
2.3.3 Làm quen với Matlab 28
CHƯƠNG 3: NỘI DUNG THỰC HIỆN 32
3.1 Khảo sát một số hệ thống xử lý ảnh văn bản hiện có 32
3.1.1 VnDOCR 32
3.1.2 OminiPage 33
3.1.3 Finereader 33
3.1.4 ABBYY 33
3.2 Xây dựng chương trình tách ảnh ký tự từ ảnh văn bản bằng matlab 34
3.2.1 Chức năng tách dòng, tách từ, tách ký tự trong ảnh văn bản 34
3.2.2 Chức năng xuất ảnh của dòng, từ, ký tự 37
3.3 Kết quả thử nghiệm 38
3.3.1 Tập dữ liệu đầu vào 38
3.3.2 Kết quả đầu ra 42
CHƯƠNG 4: KẾT LUẬN 61
4.1 Kết quả đạt được của đề tài 61
4.2 Hạn chế của đề tài 61
4.3 Hướng phát triển của đề tài 61
TÀI LIỆU THAM KHẢO 62
Trang 3DANH SÁCH CÁC HÌNH
Hình 2- 1: Ví dụ về quá trình lấy mẫu 9
Hình 2- 2: Ảnh nhị phân 10
Hình 2- 3: Ví dụ về lận cận 4 13
Hình 2- 4: Ví dụ về lân cận 8 13
Hình 2- 5: Ví dụ về ảnh văn bản 14
Hình 2- 6: Sơ đồ nguyên lý hệ thống xử lý ảnh văn bản 16
Hình 2- 7: Tách dòng văn bản 21
Hình 2- 8: Tách ảnh ký tự 24
Hình 2- 9: Cửa sổ làm việc của matlab 28
Hình 2- 10: Cửa sổ Command History 29
Hình 2- 11: Cửa sổ Workspace 29
Hình 2- 12: Cửa sổ Variable Editor 30Y Hình 3- 1: Ảnh văn bản sau khi nhị phân hóa 35
Hình 3- 2: Ảnh văn bản sau khi bo viền của dòng 36
Hình 3- 3: Ảnh văn bản sau khi bi viền từ 36
Hình 3- 4: Ảnh văn bản sau khi bo viền ký tự 37
Hình 3- 5: Ảnh của dòng 37
Hình 3- 6: Ảnh của từ 37
Hình 3- 7: Ảnh của ký tự 38
Hình 3- 8: Ảnh văn bản chứa bảng chữ cái tiếng Nhật 38
Hình 3- 9: Ảnh văn bản chứa chữ cái tiếng Anh 39
Hình 3- 10: Ảnh văn bản chứa đoạn văn bằng tiếng Aixolen 39
Hình 3- 11 Ảnh văn bản chứa chữ cái tiếng anh in hoa phông chữ calibri 40
Hình 3- 12: Ảnh văn bản có chứa chữ cái tiếng anh in hoa phông chữ Wide Latin 40
Hình 3- 13: Ảnh văn bản có cấu trúc 3 cột 41
Hình 3- 14: Ảnh văn bản có cấu trúc của văn bản hành chính 41
Trang 4Hình 3- 15: Ảnh văn bản có nhiễu 42 Hình 3- 16: Ảnh văn bản khi có nhiễu 42
DANH SÁCH CÁC BẢNG BIỂ
Trang 5Bảng 3- 1: Bảng kết quả đầu ra: 43
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Ngày nay, công nghệ thông tin đang trên đà phát triển, thế giới đang phát triểnmạnh mẽ với xu hướng toàn cầu hóa công nghệ thông tin, theo đó có rất nhiều ứngdụng tin học hiện đại được ra đời trong rất nhiều lĩnh vực: giáo dục, giải trí, kinh tế, ytế… Tin học được áp dụng rộng rãi trong đời sống Với những người dùng máy tínhthường phải làm việc với hàng chồng tài liệu dưới dạng giấy hoặc file PDF, đôi khicần chuyển toàn bộ nội dung của một quyển sách trên giấy hoặc một bài báo trên giấy
in vào máy tính dưới dạng file word với đầy đủ nội dung và hình ảnh như trên giấy.Cách làm thế nào? Thông thường thì mọi người phải gõ lại từng trang giấy đó và nhưvậy đây quả là công việc rất mất thời gian Nếu scan tất cả các trang sách vào máytính dưới dạng file hình ảnh thì cũng rất bất tiện và không thể chỉnh sửa thêm bớt,copy được nội dung trong bài viết đó sang file word hoặc dạng soạn thảo khác Xuấtphát từ nhu cầu thực tế đó, các nhà nghiên cứu đã tìm ra một giải pháp chực kỳ thuậntiện là chụp lại hoặc scan tất cả những tài liệu đó rồi chuyển từ dạng ảnh sang văn bảnbằng quá trình nhận dạng chữ Hiện nay trên thị trường công nghệ đã có một số sảnphẩm phầm mềm nhận dạng rất tốt như:
- VietOCR có khả năng xử lý văn bản tiếng Việt tốt, độ chính xác khá cao vàtương thích với nhiều định dạng ảnh khác nhau nhưng phải có điều kiện là vănbản thuần
- FineReader hỗ trợ nhận dạng 179 ngôn ngữ (nhưng rất tiếc chưa có ngôn ngữtiếng Việt);
- Phần mềm ABBYY là phần mềm xuất hiện sau các sản phẩm trên thị trường
và dù mới chỉ là thế hệ sản phẩm đầu tiên hỗ trợ tiếng Việt đang được đánh giá
là giải pháp nhận dạng tiếng Việt chính xác và toàn diện tại Trung tâm Thôngtin - thư viện Đại học Quốc Gia Hà Nội
Trang 8Tuy nhiên để có được một chương trình nhận dạng thuần Việt và đạt được kếtquả tốt nhất cần phải trải qua nhiều quá trình nghiên cứu và cải thiện Trong đó bướcđầu và quan trọng nhất là xử lý ảnh đầu vào.
Xuất phát từ những lý do trên tôi đã quyết định lựa chọn đề tài “Tìm hiểu kỹ thuật xử lý ảnh và xây dựng ứng dụng tách ảnh ký tự từ ảnh văn bản” làm đồ án
tốt nghiệp của mình
1.2 Mục tiêu của đề tài
Mục tiêu của đề tài là:
- Tổng quan về xử lý ảnh và các phương pháp tiền xử lý ảnh
- Tìm hiểu các phương pháp tách ảnh ký tự từ ảnh văn bản
- Tìm hiểu ngôn ngữ lập trình matlab
- Xây dựng chương trình tách ảnh ký tự từ ảnh văn bản
1.3 Giới hạn và phạm vi của đề tài
Đề tài nghiên cứu tổng quan về ảnh số, ảnh tài liệu, trong đó có ảnh văn bản; vềcác phương pháp, kỹ thuật, quá trình xử lý ảnh văn bản
Nghiên ứu tổng quan về công cụ lập trình matlab Đây là công cụ được pháttriển từ C++ ứng dụng rộng rãi và thuận lợi cho việc xử lý ảnh, tự động hóa
Đề tài xây dựng chương trình xử lý ảnh văn bản bằng công cụ lập trình matlabnhằm phục vụ cho bài toán lớn là nhận dạng chữ
1.4 Nội dung thực hiện của đề tài
Hiện tại trên thị trường có nhiều phần mềm nhận dạng chữ, tiêu biểu trong đó cóABBYY, tuy nhiên các phần mềm đó vẫn còn tồn tại một số mặt hạn chế như: chưanhận dạng được chính xác một số văn bản có cấu trúc phức tạp, chưa khắc phục đượcnhững ảnh văn bản có kèm theo nhiễu xuất hiện trong quá trình scan, chụp hoặc donhiều lý do khách quan khác Nhận dạng là một bài toán lớn, khó mang tầm nghiên
Trang 9cứu quốc tế, đòi hỏi rất nhiều thời gian và công sức, vì vậy tác giả đề xuất thực hiệnnghiên cứu lý thuyết và xây dựng bước đầu quan trọng của quá trình nhận dạng chữ:
Tìm hiểu kỹ thuật xử lý ảnh và xây dựng ứng dụng tách ảnh ký tự từ ảnh văn bản
Nội dung thực hiện/nghiên cứu cụ thể như sau:
- Nghiên cứu tổng quan về xử lý ảnh và bài toán xử lý ảnh văn bản
- Nghiên cứu quá trình xử lý ảnh văn bản
- Khảo sát một số hệ thống xử lý ảnh văn bản hiện có trên thị trường
- Xây dựng chương trình tách ảnh ký tự từ ảnh văn bản bằng matlab
- Thử nghiệm chương trình và đưa ra kết quả thử nghiệm
- Kiểm thử chương trình
1.5 Phương pháp tiếp cận
- Cách tiếp cận: Tìm hiểu các chương trình nhận dạng chữ hiện có trên thịtrường
- Sử dụng phương pháp nghiên cứu:
o Phương pháp đọc tài liệu;
o Phương pháp phân tích mẫu;
o Phương pháp thực nghiệm
Trang 10CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về xử lý ảnh và bài toán xử lý ảnh văn bản
2.1.1 Khái niệm ả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 và thường được biết đến dưới tên gọi pixels.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ạnglưới chứa cấc ô vuông, sau đó sử dụng các giá trị chứa trong file ảnh để quyết địnhmàu sắc, độ sáng tối củ 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 như trên được gọi là bit mapping và ảnh số được gọi là bit – maps.
Hình 2- 1: Ví dụ về quá trình lấy mẫu
Trang 11Một bức ảnh số hóa a[m, n] gồm 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 đó.
Như vậy, ảnh số là tập hợp các điểm ảnh với mức xám phù hợp dùng để mô tảảnh gần với ảnh thật
Vị dụ ảnh nhị phân hóa:
Hình 2- 2: Ảnh nhị phân
2.1.3 Một số khái niệm cơ bản
a) Điểm ảnh – pixel
Ảnh trong thực tế là một ảnh liên tục về không gian và về giá trị độ sáng
Để có thể xử lý ảnh bằng máy tính cần phải tiến hành số hóa ảnh Trong quá
Trang 12trình số hóa, người ta biến đổi tín hiệu liên tục sang tín hiệu rời rạc thông quaquá trình lấy mẫu (rời rạc hóa về không gian) và lượng hóa thành phần giá trị
mà về nguyên tắc bằng mắt thường không phân biệt được hai điểm kề nhau.Trong quá trình này người ta sử dụng khái niệm Pixel – phần tử ảnh Như vậy,một ảnh là một tập hợp các pixel
Biên là một đặc tính rất quan trọng của đối tượng trong ảnh, nhờ vào biên
mà ta phân biệt được đối tượng này với đối tượng kia Một điểm ảnh có thể gọi
là điểm biên nếu ở đó có sự thay đổi đột ngột về mức xám Tập hợp các điểm biên tạo thành biên hay còn gọi là đường bao ảnh.
Trang 13f) Láng giềng
Trong xử lý ảnh có một khái niệm quan trọng, đó là láng giềng Có hai loại láng giềng: 4-láng giềng và 8-láng giềng.
4-láng giềng của một điểm (x, y) là một tập hợp bao gồm láng giềng dọc
và láng giềng ngang của nó: N4(x, y) = {(x+1, y), (x-1, y), (x-1, y+1)}(1.1)
8-láng giềng của (x, y) là một tập cha của 4-láng giềng và bao gồm lánggiềng ngang, dọc và chéo: N8(x, y) = N4(x, y) {(x+1, y+1), (x+1, y-1), (x-1, y+1)}
g) Vùng liên thông
Một vùng R được gọi là liên thông nếu bất kỳ hai điển (xA, yA) và (xB, yB)
thuộc vào R có thể được nối bởi một đường (xA, yA) … (xi-1, yi-1) … (xB, yB), màcác điểm (xi, yi) nào đều kề sát với điểm trước (xi-1, yi-1) và điểm tiếp theo (xi+1,yi+1) trên đường đó Một điểm ảnh (xk, yk) được gọi là kề với điểm (xi, yi) thuộcvào láng giềng của (xk, yk)
h) Khái niệm điểm lân cận
Cho một điểm P với tạo độ (x, y), khi đó 4 điểm:
N1(x+1, y); N2(x-1, y); N3(x, y+1); N4(x, y-1) được gọi là lan cận bốn(hình 2-3) của điểm P, và các điểm:
N1(x+1, y); N2(x-1, y); N3(x, y+1); N4(x, y-1); N5(x-1, y-1); N6(x-1,y+1); N7(x+1, y-1); N8(x+1, y+1) được gọi là lân cận tám:
Trang 15Ảnh văn bản có nhiều loại: ảnh đen trắng, ảnh màu, ảnh đa cấp xám với cácphần mở rộng như TIF, BMP, PCX… và ảnh này được đưa ra ở đây là ảnh đa cấpxám.
Hình 2- 5: Ví dụ về ảnh văn bản
a Cấu trúc vật lý
Bố cục vật lý của một văn bản mô tả vị trí và các đường danh giới giữa cácvùng có nội dung là khác nhau trong một trang tài liệu Quá trình phân tích bốcục văn bản là thực hiện việc tách từ một trang văn bản ban đầu thành các vùng
có nội dung cơ sở như hình ảnh nền, vùng văn bản, …
Trang 16Để mô tả bố cục vật lý của văn bản người ta sử dụng một cấu trúc hìnhhọc Với mỗi đối tượng trong cấu trúc là một phần tử chỉ chứa nội dung đồngnhất Các kiểu đối tượng hình học được định nghĩa như sau:
Block là đối tượng cơ sở tương ứng với một vùng hình chữ nhật chứamột phần nội dung của văn bản
Frame là một đối tượng hỗ hợp tương ứng với một hình chữ nhật baogồm một hoặc nhiều block hoặc bao gồm các frame
Page là đối tượng hình học hoặc hỗn hợp các thành phần cơ sở tươngứng với một vùng chữ nhật, nếu là đối tượng hỗn hợp nó chứa một hoặcnhiều block, một hoặc nhiều frame
Page set (tập trang) là một tập hợp của một hoặc nhiều page
Điểm gốc của cấu trúc (hay nút gốc) là một đối tượng ở mức cao nhấttrong sơ đồ phân cấp của cấu trúc hình học văn bản
Các thuật toán phân tích bố cục trang văn bản có thể được chia làm baoloại chính dựa theo phương pháp thực hiện của nó:
Bottom – up: Ý tưởng chính của các thuật toán này là bắt đầu từ nhữngphần tử nhỏ nhất (như từ các pixel hay từ các phần liên thông) sau đóliên tục nhóm chúng lại thành các vùng lớn hơn
Top – down: Thuật toán này bắt đầu từ vùng lớn nhất chứa cả trang vănbản sau đó liên tục phân chia thành các vùng nhỏ hơn
Các thuật toán không theo thứ vậc: như Fractal Signature, Adaptivesplit – and – merge …
b Cấu trúc logic
Ngoài bố cục vật lý, các trang tài liệu còn chứa đựng nhiều thông tin vềngữ cảnh và nội dụng như các tiêu đề, đoạn văn, đề mục, …và mỗi vùng nộidung này lại được gán các nhân logic hay nhân theo chức năng tương ứng, khácbiệt hoàn toàn với các nhân trong bố cục vật lý Hầu hết các tài liệu đều có một
Trang 17quy tắc đọc để có thể hiểu hết nội dung của tài liệu Với một số ngôn ngữ đặcbiệt như tiếng Trung, tiếng Ả-rập lại có các đọc khác biệt (như đọc từ phải quatrái, từ trên xuống) Tập hợp tất cả các yếu tố logic và chức năng trong một tàiliệu và mối quan hệ giữa chúng được gọi là cấu trúc logic của tài liệu.
2.1.5 Tổng quan về bài toán xử lý ảnh văn bản
a Giới thiệu về xử lý ảnh văn bản
Xử lý ảnh số thao tác trên các ảnh tự nhiên thông qua các phương pháp và
kỹ thuật mã hóa Ảnh sau khi thu nhận bằng các thiết bị thu nhận ảnh sẽ đượcbiến đổi thành ảnh số theo các phương pháp dố hóa được nhúng trong các thiết
bị kỹ thuật khác nhau và được biểu diễn trong máy tính dưới dạng ma trận 2chiều hoặc 3 chiều
Các phương pháp nhận dạng ảnh được sử dụng khi xử lý tế báo, nhiễm sắcthể, nhận dạng chữ … Thực chất của công việc nhận dạng chính là sự phân loạiđối tượng thành các lớp đối tượng đã biết hoặc thành những lớp đối tượng chưabiết Bài toán nhận dạng ảnh là một bài toán lớn, có rất nhiều ý nghĩa thực tiễn
và ta cũng có thể thấy rằng để công việc nhận dạng trở nên dễ dàng thì ảnh phảiđược tách thành các đối tượng riêng biệt – đây là mục đích chính của bài toánphân đoạn ảnh Nếu phân đoạn ảnh không tốt sẽ dẫn đến sai lầm trong quá trìnhnhận dạng ảnh, bởi vậy người ta xem công đoạn phân đoạn ảnh là vấn đề thenchốt quan trọng trong quá trình xử lý ảnh nói chung
Mục đích của việc xử lý ảnh được chia làm 2 phần:
Biến động ảnh làm tăng chất lượng ảnh
Tự động nhận dạng, đoán ảnh, đánh giá nội dung của ảnh
Phương pháp biến đổi ảnh được sử dụng trong việc xử lý các ảnh chụp từkhông trung (chương trình đo đạc từ máy bay, vệ tinh và các ảnh vũ trụ) hoặc xử
lý các ảnh trong y học (chụp ảnh cắt lát, ảnh siêu âm, …) Một ứng dụng khác
Trang 18của việc biến đổi ảnh là mã hóa ảnh, trong đó các ảnh được xử lý để rồi lưu trữhoặc truyền đi.
Các phương pháp nhận dạng ảnh được sử dụng khi xử lý tế báo, nhiễm sắcthể, nhận dạng chữ … Thực chất của công việc nhận dạng chính là sự phân loạiđối tượng thành các lớp đối tượng đã biết hoặc thành những lớp đối tượng chưabiết Bài toán nhận dạng ảnh là một bài toán lớn, có rất nhiều ý nghĩa thực tiễn
và ta cũng có thể thấy rằng để công việc nhận dạng trở nên dễ dàng thì ảnh phảiđược tách thành các đối tượng riêng biệt – đây là mục đích chính của bài toánphân đoạn ảnh Nếu phân đoạn ảnh không tốt sẽ dẫn đến sai lầm trong quá trìnhnhận dạng ảnh, bởi vậy người ta xem công đoạn phân đoạn ảnh là vấn đề thenchốt quan trọng trong quá trình xử lý ảnh nói chung
b Tổng quan quá trình xử lý ảnh văn bản
Sơ đồ nguyên lý của một hệ thống tự động phân tích văn bản (xử lý ảnh)như sau:
Hình 2- 6: Sơ đồ nguyên lý hệ thống xử lý ảnh văn bản
Thu nhận ảnh (Image Acquisition):
Ảnh được thu từ nhiều nguồn khác nhau:máy ảnh, máy quay phim, máyquét, ảnh vệ tinh…
Trang 19 Mục đích: biến đổi thông tin hình ảnh về các cấu trúc được lưu trữ trongmáy tính, có thể hiển thị ra các thiết bị ngoại vi như là máy in, mànhình…
Gồm hai tiến trình:
- Biến đổi năng lượng quang học thành năng lượng điện
- Tổng hợp năng lượng điện thành ảnh hoặc ma trận số
Tiền xử lý (Image Processing):
Là quá trình sử dụng các kỹ thuật xử lý ảnh để làm ảnh tốt lên theo mụcđích sử dụng:
Điều chỉnh độ chiếu sáng để khắc phục hậu quả của việc chiếu sángkhông đều
Giảm nhỏ thành phần nhiễu của ảnh tức là các đối tượng xuất hiện ngoài
ý muốn
Hiệu chỉnh giá trị độ sáng giữa nền và đối tượng
Chuẩn hoá độ lớn, màu, dạng của ảnh
Điều chỉnh bộ lọc để khuyếch đại và nén các tần số
Phân đoạn (Segmentation):
Là quá trình phân chia nội dung các đối tượng cần khảo sát ra khỏi ảnh
Phân chia các đối tượng tiếp giáp nhau
Phân tách các đối tượng riêng biệt thành các đối tượng con
Biểu diễn ảnh (Image Representation):
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đãphân đoạn) cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệunày thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính Việcchọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection)gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc
Trang 20làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnhnhận được.
Ví
dụ 1: Trong nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các
đặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác
Nhận dạng và nội suy ảnh (Image Recognition and Interpretation):
Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nộisuy là phán đoán theo ý nghĩa trên cơ sở nhận dạng
Ví dụ 2: Một loạt chữ số và nét gạch ngang trên phong bì thư có thể được
nội suy thành mã điện thoại Có nhiều cách phân loai ảnh khác nhau về ảnh.Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hailoại nhận dạng ảnh cơ bản:
Nhận dạng theo tham số
Nhận dạng theo cấu trúc
Cơ sở tri thức (Knowledge Base):
Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độsáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theonhiễu Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa cácphương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắtchước quy trình tiếp nhận và xử lý ảnh theo cách của con người Trong cácbước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ conngười Vì vậy, ở đây các cơ sở tri thức được phát huy
Lọc nhiễu ảnh văn bả bằng Bộ lọc trung vị (Median filter)
Giới thiệu:
Trang 21 Lọc trung vị là kỹ thuật lọc phi tuyến (non - linear), nó khá hiệu quả đốivới hai loại nhiễu: nhiễu đốm (speckle noise) và nhiễu muối tiêu (salt –pepper noise) Kỹ thuật này là một bước phổ biến trong xử lý ảnh.
Bộ lọc trung vị là bộ lọc làm mượt phi tuyến trong miền không gian
Bộ lọc trung vị là một trong những bộ lọc theo thống kê thứ tự
Nó thay thế giá trị của điểm ảnh bằng trung vị của các mức xám của cácđiểm lân cận
Bộ lọc trung vị được dùng phổ biến, bởi vì một số loại nhiễu nhất định,
nó có thể lọc nhiễu rất tốt với độ mờ thấp so với bộ lọc tuyến tính cùngkích thước
Ý tưởng: Ý tưởng chính của thuật toán lọc trung vị như sau: Sử dụngmột cửa dổ lọc (ma trận 3 x 3) quét qua lần lượt từng điểm ảnh của ảnhđầu vào input Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tươngứng trong vùng 3 x 3 của ảnh gốc “lấp” vào ma trận lọc Sau đó sắp xếpđiểm ảnh nằm chính giữa (trung vị) của dãy giá trị điểm ảnh đã được sắpxếp ở trên cho giá trị điểm ảnh đang xét của ảnh đầu ra input
Các bước thực hiện:
Trung vị E của một tập hợp là giá trị mà một nữa các giá trị trong tậphợp nhỏ hơn hoặc bằng E, một nửa các giá trị trong tập hợp lớn hơnhoặc bằng E
Chức năng cơ bản của bộ lọc trung vị là thiết lập trị của các điểm vớicác mức xám khác nhau thành giá trị có ve như gần giống với giá trị củađiểm lân cận
Khi áp dụng bộ lọc trung vị có kích thước mxn, các điểm ảnh à có sốlượng các điểm lân cận cùng mức xám với nó nhỏ hơn m*n/2 sẽ không
bị ảnh hưởng, điều này khắc phục được nhược điểm làm mờ ảnh khi ápdụng bộ lọc trung bình
VD:
Trang 22Kết quả là giá trị 255 sẽ được thay thế bằng giá trị 60.
Hạn chế của lọc trung vị là chậm do mỗi lần tính giá trị mói phải thựchiện sắp xếp lại nxn lần
Tính chất của lọc trung vị:
- Có lợi cho việc loại bỏ các điểm ảnh hay các hàng mà vẫn đảm bảo
an toàn độ phân giải
- Hiệu quả giảm khi số điểm trong ma trận lớn hay bằng một nửa sốđiểm trong ma trận Điều này dễ giải thích vì trung vị là (Nw + 1)/2giá trị lớn nhất nếu Nw lẻ Lọc trung vị trường hợp hai chiều coi nhưlọc trung vị tách được theo từng chiều
Trang 232.2 Quá trình xử lý ảnh văn bản
2.2.1 Nhị phân hóa ảnh văn bản
Trong thực tế, ảnh văn bản mà chúng ta nhận vào ban đầu để xử lý là ảnh màu
Vì vậy để có thể thực hiện được quá trình phân tích và nhận dạng, chúng ta cần phảichuyển chúng thành ảnh nhị phân trong đó mỗi điểm ảnh (pixel) được biểu diễn bởimột trong 2 giá trị là 0 hoặc 255 Đầu tiên, ảnh màu nhận vào sẽ được chuyển thànhảnh 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ểmvới một ngưỡng cho trước để quyết định điểm đó sẽ là 0 hoặc 255, giá trị 0 biểu diễncho màu đen và 255 biểu diễn cho màu trắng
Giới thiệu phương pháp OTSU:
Otsu là tên một nhà nghiên cứu người Nhật đã nghĩ ra ý tưởng cho việc tính
ngưỡng T một cách tự động (adaptive) dựa vào giá trị điểm ảnh của ảnh đầu vàonhằm thay thế cho việc sử dụng ngưỡng cố định (fixed hay const) Phương pháp nàycho 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:
Bước 1: Chọn một giá trị khởi tạo cho T (nên 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)
Bước 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 ảnhvới giá trị (intensity) <= T
Bước 3: Tính trung bình (Average hay Mean) m1 và m2 của các điểm ảnh
thuộc G1 và G2
Bước 4: Tính lại T dựa vào m1 và m2: T = (m1 + m2) / 2
Trang 24Bước 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 deltaT) 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ý Trong trường hợp này Tđược tính ở 4 sẽ có phép sai số là 1 / 2 * (giá trị đơn vị của điểm ảnh)
2.2.2 Tách khối văn bản
a) Đặt vấn đề
Phân tích bố cục văn bản là một bước tiền xử lý đặc biệt quan trọng các hệthống OCR Đây là quá trình chia nhỏ ảnh văn bản thành ảnh các khối thuầnnhất, có nghĩa là, các khối này chỉ chứa một loại thông tin, hoặc là text, hoặc làảnh, hoặc là bảng…Trong nhiều trường hợp, độ chính xác của quá trình phântích bố cục văn bản làm ảnh hưởng rất nhiều đến độ chính xác của hệ thốngOCR Trong phạm vi đề tài này, tôi ưu tiên cho việc tách khối trong văn bảncông văn tiếng Việt Các khối này được phân chia theo một số chuẩn cơ bản củamột văn bản công văn thông thường được sử dụng trong các cơ quan hành chínhtại Việt Nam
Trên thực tế đã có nhiều phương pháp được đề xuất để phân tích bố cụccủa một ảnh văn bản bất kì Tuy nhiên, trong phạm vi của đồ án này, tôi chỉquan tâm đến việc phân tích bố cục của văn bản công văn hành chính tại ViệtNam Vì vậy, sau đây tôi đề nghị việc sử dụng một phương pháp đơn giản dựatrên phương pháp của G Nagy, S Seth, and M Viswanathan đồng thời được cảitiến để phù hợp hơn đối với các văn bản hành chính tại nước ta
Sau đây là một bố cục thường gặp của một văn bản công văn hành chínhtại nước ta Thông thường nó bao gồm 8 phần chính :
Cơ quan gửi
Quốc hiệu
Ngày tháng năm lập công văn
Trang 25 Tên công văn
Kính gửi
Nội dung công văn
Cơ quan nhận
Kí tên đóng dấu
b) Giới thiệu một số phương pháp tách khối hiện có
Hiện nay có hai hướng tiếp cận chính trong quá trình tách khối văn bản là:thuật toán top-down , thuật toán này bắt đầu thực hiện từ toàn bộ văn bản sẽ tìm
ra các khối, sau đó dựa trên các khối để tìm ra dòng, từ rồi ký tự Cách tiếp cậnthứ hai là bottom-up, ngược lại với cách tiếp cận đầu tiên, cách này đi từ cácthành phần liên thông nhỏ để tìm ra các ký tự, rồi tìm đến các từ sau đó là cácdòng, từ các dòng này sẽ tìm được các khối
Mô tả phương pháp
Phương pháp tách khối được tóm tắt như sau: Bước thứ nhất tiến hành táchkhối theo phương ngang trong đó có sử dụng một số tham số đã được xác địnhtại phần ước lượng góc nghiêng ảnh văn bản được trình bày ở trên Bước thứ haichúng tôi tiến hành tách khối theo chiếu dọc bằng cách dựa vào các khối đã táchtheo chiếu ngang Bước tiếp theo chúng tôi sẽ tiến hành chiếu ngang một lầnnữa trên các khối đã xác định được ở bước thứ hai Sau khi đã tách được cáckhối thì công đoạn lọc bỏ các khối có kích thước không phù hợp được tiến hành
và cho ra kết quả cuối cùng
Tách theo chiều ngang:
Trên văn bản đã được lọc nhiễu, tiến hành duyệt theo chiều từ trên xuốngdưới từ trái qua phải, qua mỗi dòng pixel của văn bản ta sẽ cộng dồn số pixelđen trên từng dòng Số pixel đen trên từng dòng đó được biểu diễn thành một đồthị với trục nằm dọc là chiều cao của văn bản còn trục nằm ngang là số pixel
Trang 26đen đếm được trên một dòng Đồ thị vừa tìm được chính là biểu đồ biểu diễn sựphân bố của các khối văn bản.
Tách theo chiều dọc
Trên mỗi khối ngang xác định ở bước trên ta sẽ duyệt chúng theo chiềudọc Ứng với mỗi cột ta sẽ đếm số pixel đen Số lượng trên các cột sẽ được biểudiễn thành một đồ thị, gọi là lược đồ chiếu dọc Lược đồ này có trục Oy là sốlượng pixel đen trên mỗi cột và trục Ox là chiều rộng của ảnh văn bản
Tách khối theo chiều ngang lần 2
Do cấu trúc văn bản không thuần tuý mỗi khối chỉ có một khối cùng nằmtrên một hàng ngang nên sẽ có trường hợp sau khi tách khối, hai hoặc nhiều khối
bị gộp thành một (như hình 2.7(a)) Để khắc phục tình trạng trên, thông thườngngười ta sẽ tiến hành tách khối cho đến khi không tách được nữa thì thôi, nhưngcấu trúc của một văn bản công văn là khá đơn giản nên trong đề tài này chỉ tìmhiều việc tách khối theo chiều ngang thêm một lần nữa thì tình trạng này sẽđược khắc phục
Sau khi thực hiện việc tìm và tách các khối, ta được một tập hợp các khốivăn bản riêng biệt Tuy nhiên trong văn bản luôn có những khối nhiễu đặc thù(như các kim bấm, các vết mực lem…) nên chúng cần được loại bỏ
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 ra đ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
Trang 27Hình 2-7: Ví dụ mình 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 cách trắng giữa các dòng,lùi đầu dòng của dòng kế tiếp
2.2.3 Tách dòng văn bản
a) Đặt vấn đề
Thuật toán xác định bố cục văn bản thực chất là tìm cách chia ảnh văn bản
ra thành nhiều khối mà mỗi khối sẽ đặc trưng cho một vùng văn bản Sau đómỗi khối này sẽ được chia thành nhiều dòng, rồi mỗi dòng có thể được chiathành một hoặc nhiều từ, tương tự mỗi từ sẽ được chia thành nhiều ký tự
b) Giới thiệu phương pháp tách dòng dựa vào các đường kẻ ngang
Ta nhận thấy, với mỗi dòng văn bản chúng ta có thể chia làm 3 vùng dựavào bốn đường cơ bản là: Top Line, Bottom Line, Base Line
Cha mẹ
Trang 28Hình 2-8: Các đường đặc trưng của một dòng văn bản Bước 1: Ý tưởng chính của phương pháp này là dựa trên nhận xét các
điểm đen tập trung chủ yếu trong khoảng đường Base Line và X Line Cácđường này có số điểm đen lớn hơn số điểm đen trung bình chính vì vậy chúng ta
có thể xác định được hai đường Base Line và X Line
Bước 2: Sau khi xác định được Base Line và X Line chúng ta có thể tiến
hành xác định miền liên thông
Bước 3: Tiếp theo là ta duyệt tất cả các miền liên thông Nếu miền liên
thông nào có diện tích về dòng nào nhiều hơn thì thuộc về dòng đó
Nhận xét: Phương pháp này sẽ gây ra lỗi nếu có xuất hiện các dòng ngắn.
Khi đó vì số ký tự trong dòng này quá ít, nên trong khoảng từ Base Line đến XLine, só điểm đen trên mỗi đường vẫn nhỏ hơn giá trị trung bình Có thể khắcphục lỗi này bằng các gọi về đệ quy với các vùng chứa các dòng ngắn
Phương pháp này cũng sẽ gây lỗi nếu gặp dòng toàn chữ in hoa (không tồntại 4 đường như trên) và khó áp dụng với văn bản tiếng Việt vì tiếng Việt cóthêm các dấu nên nhiều trường hợp giá trị X Line tìm được lại chính là TopLine, kết quả sẽ ko chính xác nữa Sau khi xác định được X Line, Base Linecũng khó phân tách các dòng nếu chúng khá liền nhau hoặc dính vào nhau
c) Tách dòng dựa vào thành phần liên thông
Ý 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ựavào sự tương quan giữa tung độ của điểm trên nhất, tung độ của điểm dưới nhấtcủ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ănbản
d) Nhận xét:
Trang 29Ưu điểm của phương pháp này ta có thể tách được các dòng mà giữachúng có phần giao với nhau (không dính) và đường cắt giữa 2 dòng sẽ được đitheo một đường cong, chứ không phải là một đường thẳng như những cáchkhác.
Nhược điểm là phương pháp này tương đối chậm, do thời gian tính toánthà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
e) Tách ảnh dòng dựa vào các pixel đen của ảnh
- Nếu không, tiếp tục duyệt
- Nếu khi quét hết chiều rộng của ảnh vấn không tìm thấy giá trị điểmmàu đen thì reset lại x = 0 và lại tiếp tục duyệt đến dòng tiếp theo(tăng y = y + 1)
Xác định giới hạn dưới của dòng
- Bắt đầu duyệt từ giới hạn trên (đỉnh) vừa tìm thấy của dòng (0,top_line)
- Tương tự như xác định giới hạn trên, ta duyệt hết chiều rộng của ảnhtrên cùng một giá trị y