10. Nội dung
1.3.2. Nhận dạng ký tự quang học trong tài liệu số (OCR)
a. Tổng quan
Nhận dạng ký tự quang học (Optical Character Recognition - OCR) là kỹ thuật, phần mềm máy tính, được dùng để chuyển đổi 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 quét, chụp ảnh) thành các văn bản tài liệu. OCR được hình thành từ một lĩnh vực nghiên cứu về nhận dạng mẫu, trí tuệ nhân tạo và thị giác máy (machine vision). Mặc dù công việc nghiên cứu học thuật vẫn tiếp tục, một phần công việc của OCR đã chuyển sang ứng dụng trong thực tế bằng cách sử dụng các kỹ thuật đã được chứng minh.
Nhận dạng ký tự quang học (sử dụng các kỹ thuật quang học chẳng hạn như gương và ống kính) và nhận dạng ký tự số (sử dụng máy quét và các thuật toán máy tính) ban đầu được xem xét như hai lĩnh vực riêng biệt. Bởi vì có rất ít các ứng dụng sử dụng các kỹ thuật quang học thực sự, bởi vậy thuật ngữ Nhận dạng ký tự quang học đã được mở rộng và bao gồm luôn ý nghĩa nhận dạng ký tự số.
Đầu tiên hệ thống nhận dạng yêu cầu trước tiên phải được đào tạo với các mẫu ký tự nhất định. Các hệ thống có độ chính xác nhận dạng cao đối với hầu hết các phông chữ hiện nay đã trở nên phổ biến. Một số hệ thống cũng có thể tái tạo lại các định dạng của tài liệu gần giống với bản gốc bao gồm: hình ảnh, các cột, bảng biểu, các thành phần không phải là văn bản.
Hiện nay, với chữ Việt, phần mềm nhận dạng chữ Việt VnDOCR 4.0 có khả năng nhận dạng trực tiếp các loại tài liệu do máy quét quét mà không cần lưu dưới dạng tệp ảnh trung gian. Các trang tài liệu có thể được quét và lưu trữ dưới dạng tệp tin nhiều trang. Kết quả nhận dạng được lưu dưới định dạng Microsoft Word, Excel... nên đáp ứng rất tốt yêu cầu số hóa dữ liệu.
Ngoài ra, còn có một dự án OCR của Việt Nam là VietOCR, được phát triển dựa trên nền tảng mã nguồn mở tesseract-ocr do Google tài trợ. VietOCR có khả năng nhận dạng chữ Việt rất tốt. Đây là một chương trình nguồn mở Java/.NET, hỗ trợ nhận dạng các định dạng ảnh PDF, TIFF, JPEG, GIF, PNG, và BMP.
ABBYY - một hãng công nghệ hàng đầu trên thế giới về lĩnh vực Nhận dạng ký tự quang học đã tiến hành nghiên cứu và triển khai công nghệ nhận dạng Tiếng Việt vào tháng 4 năm 2009. Với công nghệ này, độ chính xác trong
việc nhận dạng tài liệu chữ in Tiếng Việt lên tới hơn 99% (cứ nhận dạng 100 ký tự thì có chưa đến 1 ký tự sai). Công nghệ của ABBYY chấp nhận hầu hết các định dạng ảnh đầu vào như: PDF, TIFF, JPEG, GIF, PNG, BMP, PCX, DjVu... Kết quả nhận dạng được lưu trữ dưới các định dạng MS Word, MS Excel, HTML, TXT, XML, PDF, PDF 2 lớp, trong đó định dạng PDF 2 lớp là một định dạng hoàn hảo để lưu trữ và khai thác tài liệu. Với định dạng này, người đọc có thể đọc ảnh gốc một cách trung thực nhờ lớp ảnh bên trên, các công cụ tìm kiếm có thể tìm kiếm toàn bộ nội dung bên trong văn bản nhờ lớp text nhận dạng được bên dưới, sau khi được quét bằng máy quét thành tệp ảnh, phần mềm OCR sẽ nhận dạng tệp ảnh đã quét đó thành tệp văn bản lưu trữ trên máy tính để có thể chỉnh sửa được trên máy tính.
b. Thư viện nhận dạng Tesseract
Tesseract là phần mềm mã nguồn mở và ban đầu nó được nghiên cứu và phát triển tại hãng Hewlett Packet (HP) trong khoảng từ năm 1984 đến 1994. Năm 1995, Tesseract nằm trong nhóm ba bộ nhận dạng OCR hàng đầu về độ chính xác khi tham gia trong hội nghị thường niên của tổ chức UNLV.
Lúc mới khởi động thì Tesseract là một dự án nghiên cứu tiến sĩ tại phòng thí nghiệm HP ở Bristol và được tích hợp vào các dòng máy quét dạng phẳng của hãng dưới dạng các tiện ích mở rộng (add-on) phần cứng hoặc phần mềm. Tuy nhiên, trên thực tế, dự án này đã thất bại ngay từ đầu vì nó chỉ làm việc hiệu quả trên các tài liệu in có chất lượng tốt.
Sau đó, dự án này cùng với sự cộng tác của bộ phận máy quét HP ở bang Colorado đã đạt được một bước tiến quan trọng về độ chuẩn xác khi nhận dạng và vượt lên nhiều bộ nhận dạng OCR thời đó nhưng dự án đã không thể trở thành sản phẩm hoàn chỉnh vì độ cồng kềnh và phức tạp. Sau đó, dự án được đưa về phòng thí nghiệm của HP để nghiên cứu về cách thức nén và tối ưu mã nguồn.
Dự án tập trung vào cải thiện hiệu năng làm việc của Tesseract dựa trên độ chính xác hiện có. Dự án này được hoàn thành vào cuối năm 1994 và sau đó vào năm 1995 bộ Tesseract được gửi đi tham dự hội nghị UNLV thường niên về độ chính xác của OCR, vượt trội hơn hẳn so với các phần mềm OCR vào thời điểm đó. Tuy nhiên, Tesseract đã không thể trở thành một sản phẩm thương
mại hoàn chỉnh được và vào năm 2005, HP đã chuyển Tesseract sang mã nguồn mở và được tài trợ bở Google.
Tesseract cho đến nay vẫn được nhiều nhà phát triển cộng tác và tiếp tục cải thiện. Phiên bản mới nhất của bộ nhận dạng Tesseract là phiên bản 4.0.
* Cơ chế của Tesseract
Chúng ta đã được biết đến một công cụ nhận diện ký tự đang được phát triển bởi Google với bản quyền mã nguồn mở Apache 2.0.
Như vậy, với cơ chế như thế nào mà Tesseract có thể mang đến sự hiệu quả cũng như được sử dụng khá nhiều trong việc nhận dạng ký tự như hiện nay. Về cơ bản, quá trình nhận diện sẽ diễn ra qua bốn bước chính như phân tích lớp, tìm kiếm dòng, tìm kiếm ký tự, nhận diện ký tự và chỉnh sửa kết quả.
Trước tiên, hình ảnh sẽ được phân tích để tìm ra các vùng kết nối (connected component). Bước này cho phép OCR dễ dàng nhận biết những vùng ký tự ngược để có thể nhận diện những ký tự bên trong. Trong Tesseract, những vùng chứa ký tự này được gọi là Blob.
Tiếp đến, những vùng ký tự này sẽ tiếp tục được phân tích để tìm ra các dòng, rồi đến các ký tự. Việc tìm các dòng sẽ được xử lý bởi thuật toán dựa vào vùng ký tự, cỡ chữ cùng toạ độ (trục x). Trong quá trình này, các vùng ký tự cũng có thể được ghép với nhau nếu OCR nhận thấy chúng chứa các ký tự trong cùng một dòng. Những vùng ký tự được ghép phải trùng ít nhất 50% theo chiều ngang. Sau đó, các đường cơ sở (baseline) cũng được tìm kiếm nhờ vào việc quét các dòng đã được xác định.
Sau khi đã xác định được các dòng ký tự cùng các đối số tương ứng, dòng ký tự sẽ được chia nhỏ thành các từ dựa vào các ký tự phân cách. Lúc này, văn bản cố định sẽ được chia nhỏ và tiến hành nhận diện. Trong khi đó, văn bản không cố định hoặc chưa chắc chắn thì sẽ được chia nhỏ thành các từ dù chưa chắc chắn. Nhưng nhờ vào bước nhận diện, chúng ta sẽ thu được kết quả cuối cùng chính xác hơn.
Bước vào quá trình nhận diện, dữ liệu vào của chúng ta sẽ được đánh giá, phân tích hai lần. Ở lần đầu tiên, OCR sẽ nhận diện ký tự dựa trên kết quả phân tích ở bước trước. Các kết quả nhận x diện thoả mãn yêu cầu sẽ được đưa vào tập tin huấn luyện để hỗ trợ cho quá trình nhận diện lần thứ hai với các
kết quả chưa đạt yêu cầu. Đương nhiên, việc xác nhận kết quả có thoả mãn yêu cầu hay không cần phải dựa trên nhiều tiêu chí vì việc nhận diện nội dung phải trải qua một quá trình lặp đi lặp lại gồm các bước nhận diện ký tự, ghép ký tự và so khớp với từ điển. Các tiêu chí này bao gồm khoảng cách các ký tự, độ phù hợp với từ điển và khoảng cách đến các dấu câu.
Cuối cùng, OCR sẽ xử lý các khoảng trắng không rõ ràng cùng với xem xét các giả thiết khác cho việc định vị những ký tự in hoa nhỏ để đi đến kết quả cuối cùng.