ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM PHI HIỆU
XÂY DỰNG HỆ THỐNG NHẬN DẠNG VÀ DỊCH
TRÊN THIẾT BỊ DI ĐỘNG
LUẬN VĂN THẠC SỸ
Hà Nội - 2011
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM PHI HIỆU
XÂY DỰNG HỆ THỐNG NHẬN DẠNG VÀ DỊCH
TRÊN THIẾT BỊ DI ĐỘNG
Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60 48 10
LUẬN VĂN THẠC SỸ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS KIỀU VĂN HƯNG
Hà Nội - 2011
1
Xử lý kết quả ................................................................................................ 21
CHƢƠNG 2 – CÁC CÔNG NGHỆ SỬ DỤNG TRONG HỆ THỐNG............................ 22
2.1. Công nghệ Tesseract OCR ................................................................................. 22
2.1.1.
Giới thiệu về Tesseract OCR ......................................................................... 22
2.1.2.
Tesseract làm việc như thế nào? .................................................................... 24
2.1.3.
Vấn đề tập huấn ngôn ngữ ............................................................................. 26
2.2. Công nghệ Android ................................................................................................. 29
2.2.1.
Giới thiệu về hệ điều hành android ................................................................ 29
2.2.2.
Kiến trúc hệ thống......................................................................................... 30
2.3. Mô hình client/server .......................................................................................... 33
2.3.1.
Giới thiệu về mô hình client/server ............................................................... 33
2.3.2.
Các kiến trúc client/server ............................................................................. 34
2.3.2.1.
Client/Server hai tầng ............................................................................ 34
2.3.2.2.
Client/server ba tầng.............................................................................. 35
2.3.2.3.
Client/server n-tầng ............................................................................... 36
2.4. Công nghệ dịch thuật Google Translate ............................................................ 36
2.4.1.
Xử lý ngôn ngữ tự nhiên ............................................................................... 36
2.4.2.
Dịch tự động ................................................................................................. 37
Tập mẫu thực nghiệm ................................................................................... 55
4.1.2.
Kết quả OCR ................................................................................................ 55
4.1.3.
Nhận xét ....................................................................................................... 56
4.2. Thực nghiệm trên một số hệ thống OCR khác nhau ......................................... 57
4.2.1.
Tập mẫu thực nghiệm ................................................................................... 58
4.2.2.
Kết quả ......................................................................................................... 58
4.2.3.
Nhận xét ....................................................................................................... 58
KẾT LUẬN ........................................................................................................................ 59
TÀI LIỆU THAM KHẢO ................................................................................................. 61
3
DANH MỤC HÌNH VẼ
Hình 1.1: Ứng dụng OCR .............................................................................8
Hình 1.2: Các đường cơ bản trong dòng text ...............................................12
Hình 1.3: Thành phần liên thông 4 và 8 ......................................................13
Hình 1.4: Quy trình cơ bản trong một hệ thống OCR ..................................13
Hình 1.5. Mô tả lược đồ mức xám ..............................................................15
Hình 1.6. Phân ngưỡng trên lược đồ mức xám ............................................15
Hình 1.7. Kết quả chọn ngưỡng xám theo phương pháp Otsu .....................16
Hình 1.8. Ảnh văn bản trước và sau khi chỉnh nghiêng ...............................16
Hình 1.9. Ảnh văn bản trước và sau khi chỉnh hướng đúng .........................17
Hình 1.10. Các vùng nhiễu trên ảnh văn bản ...............................................17
Hình 1.11. b-Cấu trúc vật lý; c,d-Cấu trúc lôgic ..........................................19
Hình 3.15. Kết quả OCR trên ảnh gốc .........................................................50
Hình 3.16. Kết quả OCR trên các ảnh con ..................................................50
Hình 3.17. Định nghĩa hàm OcrFromImage() .............................................51
Hình 4.1. Kết quả thực nghiệm OCR với Tesseract engine ........................55
Hình 4.2. Kết quả thực nghiệm OCR trên 4 hệ thống khác nhau ................58
5
MỞ ĐẦU
Đặt vấn đề
Từ lâu con người đã quen với việc sử dụng máy tính để lưu trữ những tài
liệu cần thiết, xuất phát từ những tiện ích to lớn do máy tính mang lại: lưu trữ
khối dữ liệu lớn, ít bị hư hỏng, dễ quản lí, dễ tìm kiếm, dễ chỉnh sửa... Tuy nhiên
giấy vẫn là một vật liệu quan trọng đã, đang và sẽ được sử dụng để lưu trữ tài
liệu vì sự cần thiết của nó trong cuộc sống hàng ngày (ví dụ sách, báo...). Một
nhu cầu tất yếu, con người muốn đưa các tài liệu đang lưu trữ trên giấy (cũng
như trên một số vật liệu khác) lên máy tính để có thể làm việc với chúng một
hiệu quả hơn. Một cách thông thường, con người sẽ đánh máy trực tiếp các tài
liệu đó lên máy tính. Đối với một số lượng nhỏ tài liệu, việc này hoàn toàn bình
thường. Song đối với một khối lượng tài liệu khổng lồ (ví dụ như cả kho sách),
đây là một vấn đề nan giải; mặc dù với việc đánh máy độ chính xác rất cao
nhưng lại tốn quá nhiều thời gian, trong khi với các công nghệ hiện có cho phép
ta giải quyết vấn đề này: chụp ảnh tài liệu và nhận dạng ký tự trong ảnh.
Nhận dạng ký tự quang học (tiếng Anh: Optical Character Recognition,
viết tắt là OCR)[20] là quá trình rút trích ký tự trong ảnh cho ra dưới dạng văn
bản để có thể lưu trữ, chỉnh sửa và tìm kiếm được. Lĩnh vực OCR là một nhánh
trong ngành khoa học xử lý ảnh, tuy còn mới mẻ so với nhiều lĩnh vực khoa học
khác nhưng nhanh chóng đã đạt được nhiều bước tiến quan trọng. Xuất phát từ
nhu cầu thực tế là đưa các tài liệu lưu trữ trên giấy vào máy tính mà không phải
Hiện nay công nghệ mạng internet phát triển mạnh mẽ, internet có mặt
hầu hết khắp nơi trên thế giới. Công nghệ di động phát triển vượt bậc, việc sử
dụng điện thoại bùng nổ, điện thoại di động trở thành mặt hàng bình dân mà ai
cũng có thể sở hữu được. Nhiều công nghệ OCR tiên tiến được đưa ra dưới dạng
mã nguồn mở và được các công ty, tổ chức lớn tài trợ phát triển. Với nền tảng
công nghệ hiện có ở trên đã tạo ra nhiều giải pháp để xây dựng được nhiều hệ
thống có khả năng đáp ứng cao với vấn đề đặt ra.
Mục tiêu nghiên cứu
Với mong muốn tìm hiểu về lĩnh vực và một số công nghệ OCR tiên tiến,
đồng thời mong muốn góp phần vào kho ứng dụng OCR hiện có một sản phẩm
nguồn mở mới: một hệ thống trên thiết bị di động giúp con người có thể thu ảnh,
rút trích thông tin trong ảnh, dịch kết quả ra ngôn ngữ mong muốn và quản lý
các thông tin ấy trên thiết bị di động. Thiết bị di động được chọn là điện thoại di
động chạy hệ điều hành nguồn mở Android. Và từ đó luận văn lựa chọn đề tài
nghiên cứu “Xây dựng hệ thống nhận dạng và dịch trên thiết bị di động”.
Nội dung nghiên cứu
Về mặt lý thuyết:
- Nghiên cứu tổng quan về lĩnh vực OCR, các thành phần trong một
hệ thống OCR cơ bản.
- Nghiên cứu công nghệ mã nguồn mở Tesseract.
- Nghiên cứu công nghệ mã nguồn mở Android.
- Nghiên cứu mô hình client/server.
- Nghiên cứu công nghệ dịch Google Translate.
- Nghiên cứu phương pháp sửa lỗi chính tả tự động.
7
Về mặt thực hành:
- Nghiên cứu xây dựng ứng dụng web service chạy trên server : sử
Giới thiệu về OCR
Hình 1.1. Ứng dụng OCR[21]
1.1.1. OCR là gì
OCR (optical character recognition)[7] là lĩnh vực nhận dạng ký tự quang
học. Kỹ thuật này cho phép máy tính tự động nhận dạng ký tự thông qua cơ chế
quang học. Đối tượng của OCR là ảnh scan các tài liệu, sách, hoặc các video
liên quan. Mục tiêu của OCR là chuyển các nguồn tài liệu này sang các định
dạng có thể chỉnh sửa và tìm kiếm được.
Vào những những năm đầu của thế kỷ 20, các nhà khoa học đã quan tâm
nghiên cứu trong lĩnh vực OCR. Tuy nhiên kết quả lúc bấy giờ vẫn còn rất hạn
chế. Từ những năm 90 đến nay, OCR có những nghiên cứu mang tính đột phá,
kết hợp với những công nghệ tiến tiến của thời đại đã cho ra đời những hệ thống
OCR mạnh mẽ và hiệu suất cao.
9
Năm 1929, đã xuất hiện chiếc máy nhận dạng chữ số. Đến những năm đầu
của thập niên 1950, chiếc máy đầu tiên có khả năng chuyển tài liệu bản in thành
ngôn ngữ trên máy tính được phát minh bởi David Shepard, một chuyên gia về
giải mã làm việc cho cơ quan An Ninh quốc gia Hoa Kỳ. Năm 1955 khi
Reader‟s Digest mua lại công nghệ này, sản phẩm từ công nghệ OCR được đưa
ra thương mại hóa lần đầu tiên. Tuy nhiên mãi đến năm 1978, phiên bản OCR
cho máy tính mới được ra đời; ứng dụng đầu tiên của nó là dùng để tải những
văn bản luật và tin tức lên cơ sở dữ liệu trực tuyến. Ngày nay, công nghệ OCR
được kết hợp với máy scan tốc độ cao và những thuật toán máy tính phức hợp đã
làm gia tăng tốc độ xử lý cũng như sự chính xác của dữ liệu. Những công nghệ
nhận dạng lại mang đến hiệu quả rõ ràng nhất khi được đưa vào ứng dụng trong
thực tế. Việc chuyển đổi thông tin từ tài liệu giấy sang tài liệu điện tử giúp nhiều
người dùng có thể truy cập thông tin một cách dễ dàng, cùng một lúc dù ở bất cứ
đâu mà không phải chờ đợi hoặc mất quá nhiều thời gian cho việc tìm kiếm.
Điều này cũng tạo cho công tác quản lý và bảo mật thông tin trở nên đơn giản
hơn khi tất cả những thay đổi hoặc ngày giờ truy cập thông tin đều được kiểm
soát chặt chẽ. Đối với các doanh nghiệp, các tổ chức, các cơ quan hành chính,
công nghệ OCR mang lại nhiều lợi ích kinh tế, tiết kiệm được những khoảng chi
phí không nhỏ như giảm thiểu không gian lưu trữ, giảm tối đa nguồn nhân lực
trong công tác quản lý thông tin.
Hiện nay nhiều ứng dụng OCR được đưa ra sử dụng dưới dạng offline
trên máy tính hoặc tích hợp và chạy online trên các thiết bị OCR chuyên dụng.
Đặc biệt các hệ thống OCR thời gian thực được chú trọng phát triển. Các kỹ
thuật nhận dạng hiện nay kết hợp rất hiệu quả với một số phương pháp luận
trong lĩnh vực học máy (machine learning) như mạng nơ ron, mô hình Markov
ẩn, SVM (supper vector machines), xử lý ngôn ngữ tự nhiên. Mặc dù được phát
triển mạnh mẽ, nhưng kết quả nghiên cứu trong lĩnh vực OCR cũng gặp phải
những trở ngại nhất định. OCR không bao giờ đạt tới tỷ lệ chính xác 100% trong
nhiều trường hợp. Các yếu tố ảnh hưởng nhiều đến kết quả OCR như chất lượng
ảnh đầu vào, bố cục ảnh, loại font chữ, các ký tự đặc biệt (ví dụ công thức toán
học), các dạng chữ viết phức tạp (như chữ Trung Quốc) và một số yếu tố khác.
1.1.2. Một số công nghệ, phần mềm OCR tiêu biểu
Lĩnh vực OCR hiện nay được rất nhiều cá nhân, tổ chức quan tâm nghiên
cứu, nhiều công nghệ OCR ra đời và được ứng dụng rộng rãi trong nhiều lĩnh
vực liên quan đến nhận dạng. Dưới đây liệt kê danh sách một số phần mềm
OCR tiêu biểu[17]:
Tên
Giấy phép
ABBYY FineReader
Proprietary
Scan2CAD
Scantron
SimpleOCR
SmartScore
Tesseract
Transym OCR
Proprietary
Proprietary
GPL
GPL
Apache
Proprietary
BSD
Proprietary
Proprietary
Proprietary
Proprietary
Proprietary
Freeware and Commercial
Proprietary
Apache
Proprietary
1.1.3. Một số khái niệm cơ bản
Pixel (Picture element)[2] : Ảnh trong thực tế là một ảnh liên tục về
không gian và giá trị về độ sáng. Ảnh cần phải số hóa để có thể xử lý ảnh bằng
máy tính. Trong quá trình số hóa ảnh người ta biến đổi tín hiệu liên tục thành tín
hiệu rời rạc thông qua quá 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à nguyên tắc mắt thường không phân biệt được hai điểm
diễn cho cường độ sáng của một trong các màu chính tổ hợp của các màu ta
được nhiều mức biểu diễn, như vậy mỗi điểm ảnh có thể được mô tả rõ giá trị
màu tự nhiên của nó (true color).
Ảnh đa cấp xám: là ảnh có nhiều mức xám khác nhau. Thực tế chỉ ra rằng
bất cứ ứng dụng nào trên ảnh mức xám cũng được ứng dụng trên ảnh màu. Ta có
thể biến đổi ảnh màu về ảnh xám. Mỗi điểm ảnh màu gồm 3 giá trị (Red, Green,
Blue), nếu 3 giá trị này bằng nhau thì ta có ảnh xám (grey). Khi đó mỗi điểm
ảnh ta chỉ cần lưu 1 giá trị.
Các đường cơ bản trong dòng text
Hình 1.2. Các đường cơ bản trong dòng text
Đường 1 (capline): là đường thẳng giới hạn chiều cao của đỉnh cao nhất
của một số chữ cái (ví dụ S, b,h,l..).
Đường 2 (mean line): là đường thẳng ở giữa của một dòng chữ, giới hạn
chiều cao của các chữ bình thường (ví dụ u,a,r,n,….).
Đường 3 (baseline): là đường thẳng thẳng nối các phần chân của hầu hết
các chữ cái trong dòng text, và bất kì một chữ nào cũng nằm trên một
đường này.
Đường 4 (descent line) là đường thẳng giới hạn phần thấp của các chữ có
thể tạo ra trên một dòng (p,y,…).
13
Khoảng cách giữa mean line và baseline là chiều cao cơ bản của một
dòng chữ, gọi là x-Height.
Thành phần liên thông (connected component): là tập hợp các pixel lân
cận nhau. Thành phần liên thông gồm thành phần liên thông 4 và thành phần
liên thông 8.
đối chấp nhận được, các bức ảnh thu được cần tiến hành xử lý nhằm nâng cao
chất lượng trước khi đưa vào nhận dạng. Quá trình này gọi là tiền xử lý ảnh.
1.2.2. Tiền xử lý ảnh
Các bức ảnh thu được chất lượng thường không tốt như ý muốn, có thể do
một số nguyên nhân như: chất lượng của thiết bị thu ảnh (độ phân giải thấp), yếu
tố nguồn sáng, tài liệu ảnh thực tế bị suy biến, tư thế chụp không đúng...Do vậy,
ảnh trước khi đưa vào nhận dạng cần phải qua một số bước xử lý nhằm tăng
cường chất lượng ảnh, làm nổi bật một số đặc tính của ảnh, đặc biệt tăng độ
tương phản giữa foreground (đối tượng trong ảnh) và background (nền ảnh).
Một số công việc chủ yếu trong bước này bao gồm nhị phân hóa ảnh, dò hướng
đúng và chỉnh độ nghiêng ảnh, giảm nhiễu để loại bỏ những thành phần không
cần thiết.
1.2.2.1. Nhị phân hóa ảnh
Mục đích của nhị phân hóa là biến ảnh gốc thành ảnh nhị phân nhằm tăng
sự tương phản giữa nền (background) và các đối tượng (object hay foreground).
Nếu đầu vào là ảnh màu, trước khi nhị phân hóa cần chuyển sang ảnh xám theo
tiêu chuẩn:
Grey = 0.3R + 0.59G + 0.11 B.
Quan trọng nhất trong bước nhị phân hóa ảnh gốc là xác định ngưỡng
xám T (0 ≤ T ≤ 255). Nếu giá trị cường độ của một pixel ≤ T, pixel này được
thiết lập là màu đen, ngược lại là màu trắng. Nhị phân hóa ảnh gồm 2 loại:
Nhị phân hóa toàn cục: sử dụng một ngưỡng T duy nhất cho toàn bộ bức ảnh
Nhị phân hóa cục bộ: tính toán lại ngưỡng T thích hợp cho từng vùng ảnh
15
Việc tính toán chọn ngưỡng T phù hợp có ý nghĩa rất lớn trong quá trình
nhị phân hóa. Một số phương pháp xác định ngưỡng xám T phổ biến và hiệu quả
2
Bước 5: Lặp lại bước 2 đến bước 4 đến khi nào độ biến thiên của ngưỡng
T bé hơn giá trị cho trước.
Hình 1.7. Kết quả chọn ngưỡng xám theo phương pháp Otsu
1.2.2.2. Chỉnh độ nghiêng và hướng
Ảnh thu được có thể bị nghiêng, bị xoay ngang dọc do vị trí đặt tài liệu
cần thu ảnh lệch vị trí đúng với thiết bị thu ảnh. Với những bức ảnh như thế,
hiệu quả nhận dạng giảm đi rõ rệt. Do đó trước khi nhận dạng, ta cần thực hiện
việc chỉnh lại độ nghiêng và hướng của trang ảnh. Sau khi xác định được độ
nghiêng và hướng chính xác của ảnh sẽ thực hiện việc quay ảnh về lại trạng thái
đúng ban đầu. Tuy nhiên ít nhiều chất lượng ảnh sẽ bị giảm sau khi quay.
Một số phương pháp xác định độ nghiêng trang ảnh như phương pháp
hình chiếu, phương pháp biến đổi Hough, phương pháp dựa trên các thành phần
liên thông và một số phương pháp khác như phân tích độ lệch so với trục dọc,
biến đổi Fourier, các phép toán hình thái[8]. Nhiều phương pháp dò hướng cũng
được đề xuất và áp dụng, một số tác giả như Caprari đưa ra năm 1999, Aradhyu
đưa ra năm 2005, Lu và một số tác giả khác đưa ra năm 2006[8]. Việc dò tìm độ
nghiêng và hướng của trang ảnh có thể thực hiện riêng lẻ hoặc kết hợp đồng thời
với nhau. Một phương pháp tiêu biểu cho việc kết hợp giữa việc dò độ nghiêng
và hướng được đưa ra bởi Breuel (và một số tác giả khác) sử dụng mô hình hóa
hình học của các dòng text chữ viết Latinh[8].
Dò độ nghiêng và quay ảnh thực hiện trong phạm vi góc -45o, +45o (Hình
1.8); dò hướng đúng và quay ảnh theo các hướng 0o, 90o, 180o, 270o (Hình 1.9).
Hình 1.8. Ảnh văn bản trước và sau khi chỉnh nghiêng
- Nhiễu xung thường gây đột biến tại một số điểm ảnh.
Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ cơ sở lý
thuyết lọc là: bộ lọc chỉ cho tín hiệu có tần số nào đó thông qua, do đó để lọc
nhiễu người ta thường sử dụng bộ lọc thông thấp (theo quan điểm tần số không
gian) hay lấy tổ hợp tuyến tính để sang băng (bộ lọc trung bình). Để làm nổi
cạnh (ứng với tần số cao), người ta sử dụng bộ lọc thông cao, lọc Laplace[2].
Do có nhiều loại nhiễu can thiệp vào quá trình xử lý ảnh nên cần nhiều bộ
lọc thích hợp. Với nhiễu cộng và nhiễu nhân ta dùng các bộ lọc thông thấp,
trung bình và lọc đồng hình (homomorphie); với nhiễu xung ta dùng bộ lọc
trung vị, giả trung vị, lọc ngoài (Outlier)[2].
Trong lọc trung bình người ta ưu tiên cho các hướng để bảo vệ biên của
ảnh khỏi bị mờ khi làm trơn ảnh. Các kiểu mặt nạ được sử dụng tùy theo các
trường hợp khác nhau. Các bộ lọc trên là bộ lọc tuyến tính theo nghĩa điểm ảnh
ở tâm cửa sổ sẽ được thay bởi tổ hợp các điểm lân cận chập với mặt nạ. Lọc
thông thấp thường được dùng để làm trơn nhiễu.
Các bộ lọc phi tuyến cũng được dùng trong kỹ thuật tăng cường ảnh.
Trong kỹ thuật này người ta dùng bộ lọc trung vị, giả trung vị, lọc ngoài. Với bộ
lọc trung vị các điểm ảnh sẽ được thay thế bởi trung vị các điểm ảnh, còn lọc giả
trung vị sẽ dùng trung bình cộng của 2 giá trị “trung vị” (trung bình cộng của
max và min)[2].
1.2.3. Phân tích bố cục
Tài liệu ảnh thường gồm các “vùng đối tượng” có nội dung, tích chất khác
nhau (vùng ảnh, vùng text, bảng biểu...). Phân tích bố cục tài liệu ảnh là một
bước quan trọng được thực hiện để xác định cấu trúc, xác định các vùng đối
tượng được bố trí trong tài liệu ảnh. Cấu trúc của tài liệu ảnh thường được quan
tâm trong việc phân tích bố cục là cấu trúc vật lý và cấu trúc lôgic.
Cấu trúc vật lý chỉ ra vị trí, đường biên giữa các vùng đối tượng khác
nhau. Việc xác định cấu trúc vật lý có ý nghĩa rất lớn đối với lĩnh vực OCR
trong việc chỉ lấy và xử lý các vùng text, giảm thời gian thực hiện và tăng độ
chính xác kết quả.
20
thuật tìm dòng được thiết kế có thể xác định được các dòng text mà không cần
xoay ảnh nghiêng về vị trí đúng. Do đó tránh cho chất lượng tài liệu ảnh bị giảm
xuống khi phải thực hiện thao tác xoay ảnh.
Tùy theo tính chất của các ký tự trong một từ cũng như vị trí tương đối
của các từ trong một dòng text, các thuật toán tách từ được chọn một cách phù
hợp để cắt các dòng text đã xác định ở trên thành các từ rời nhau.
1.2.5. Huấn luyện và nhận dạng
Một hệ thống OCR thường chỉ cho ra kết quả rất hạn chế nếu như không
được tập huấn, một ảnh ký tự dù hình dạng đơn giản cũng rất khó xác định đó là
ký tự gì nếu không có sự so sánh với ảnh ký tự mẫu cho trước. Huấn luyện chính
là làm cho hệ thống OCR có thể nhận biết một cách chính xác các ảnh của một
tập lớn các ký tự mẫu khác nhau về ngôn ngữ, font chữ...Các dấu hiệu để nhận
biết tập ảnh các ký tự này được hệ thống lưu lại theo một phương thức nào đó
thành dữ liệu tập huấn. Khi muốn nhận dạng một ký tự, hệ thống dựa vào dữ
liệu tập huấn sẽ cho ra một ký tự tương ứng phù hợp nhất.
Hầu hết các thuật toán OCR thường có hai phần chính: trích chọn đặc
trưng và phân loại. Một thành phần phụ cũng tham gia vào quá trình nhận dạng
là quá trình xử lý dựa trên ngữ cảnh [3].
Trích chọn đặc trưng liên quan đến việc rút trích ra những thuộc tính của
đối tượng dưới dạng các độ đo. Để biểu diễn một lớp ký tự phải xây dựng một
mô hình nguyên mẫu chung cho các lớp ký tự. Và do đó quá trình trích chọn đặc
trưng sẽ cố gắng tìm ra các đặc tính dựa trên nguyên mẫu đã xây dựng cho các
lớp. Các đặc trưng chung như số lượng các lỗ hổng trong ký tự, mặt lõm của
đường viền bên ngoài, sự nhô ra của điểm cao nhất và các đặc trưng nội tại, các
điểm cắt ngang, các điểm kết thúc, các góc... sẽ được sử dụng. Mỗi ảnh ký tự sẽ
trích ra các đặc trưng và phân loại chúng vào lớp tương ứng.
Trong phương pháp phân loại dựa trên thống kê, những mẫu ảnh ký tự
Với kết quả nhận dạng được, ta thường áp dụng các biện pháp sửa lỗi để
tăng hiệu quả xử lý. Nếu lỗi thuộc về loại lỗi chính tả (ví dụ huu – hưu, mang –
marg, h0a – hoa), có thể dùng các chương trình sửa lỗi chính tả phù hợp với
từng ngôn ngữ. Nếu là lỗi cú pháp (ví dụ tinh – tình, vân – vấn), thường người
đọc sẽ duyệt lại và sửa bằng tay.
22
CHƢƠNG 2 – CÁC CÔNG NGHỆ SỬ DỤNG TRONG HỆ THỐNG
2.1.
Công nghệ Tesseract OCR
2.1.1. Giới thiệu về Tesseract OCR
Tesseract[11,12] là công nghệ OCR được phát triển những năm từ 1984
đến 1994 ở HP, bắt đầu như một dự án nghiên cứu tiến sĩ ở phòng thí nghiệm.
Tuy đạt được những kết quả nhất định nhưng lúc ấy vẫn chưa thể phát triển
thành sản phẩm thương mại. Cuối năm 2005, HP phát hành Tesseract dưới dạng
mã nguồn mở và hiện tại được tập đoàn Google tài trợ phát triển. Địa chỉ hiện tại
cho mã nguồn Tesseract là http://code.google.com/p/teseract-ocr. Tesseract
được phát triển để chạy trên cả hệ điều hành nhân Linux và Windows. Phiên bản
hiện tại là Tesseract 3.01 với một số nhà phát triển tiêu biểu như Ray Smith,
Thomas Breuel, Luc Vincent.
Từ khi Tesseract OCR trở thành mã nguồn mỡ, nó được phát triển một
cách nhanh chóng, hỗ trợ nhận dạng trên 30 ngôn ngữ khác nhau, độ chính xác
đang tiến tới tỉ lệ 100% trên một số ngôn ngữ với những ảnh văn bản chất lượng.
Tuy vậy dự án Tesseract vẫn chưa phát triển một GUI cho người dùng sử dụng
công nghệ này. Các tổ chức, cá nhân muốn sử dụng Tesseract OCR phải dùng
source code cung cấp sẵn đem về tùy biến và xây dựng thành GUI OCR riêng
- http://code.google.com/p/pytesser/
- http://code.google.com/p/tesseract-python
- https://github.com/hoffstaetter/python-tesseract/wiki
- http://pokerai.org/pf3/viewtopic.php?f=3&t=2677&start=0&st=0&sk=t
&sd=a
.NET:
- http://www.pixel-technology.com/freeware/tessnet2/
Java:
- http://code.google.com/p/tesjeract (JNI wrapper)
- http://tess4j.sourceforge.net/ (JNA wrapper)
Ngoài ra còn có một số wrapper khác như:
- tesseract-android-tools: tập các hàm Android API cho tesseract
- Mobile OCR: Mục đích là tạo ra ứng dụng OCR (trên ảnh do camera
mobile chụp được) trên nền tảng Android. Ứng dụng tương lai có thể áp
dụng cho những người có thị lực kém
- Clarify: giúp OCR chỉ trên file PDF. Clarify là một modun python
module, wrapper cho tesseract-ocr, xpdf và netpbm. Yêu cầu: python,
tesseract-ocr, xpdf, netpbm
- hOcr2Pdf.NET: là thư viện cho người lập trình tạo ra các ứng dụng để có
thể tìm kiếm trên file pdf. Yêu cầu: .NET 2.0 or higher, Tesseract 3.0,
JBig2.exe
- ScanBizCards: Giải pháp cho scan business card trên mobile. Yêu cầu
iPhone 4/iPhone 3/Android 2.0
- customocr.com: là dịch vụ OCR dựa trên Web
- Tally-Ho: đọc màn hình cho các site như là google book
- Mayan EDMS: hệ thống quản lý tài liệu với tesseract
- Olena: nền tảng xử lý ảnh phổ biến và hiệu quả có sử dụng tesseract.