Nhận dạng ký tự quang học (Optical Character Recognition – OCR) là phần mềm có chức năng chuyển đổi hình ảnh chữ viết tay hoặc đánh máy thành các văn bản tài liệu. Công nghệ này hiện được phát triển thành nhiều ứng dụng hữu ích như dịch thuật theo thời gian thực, định danh khách hàng điện tử hay xử lý hóa đơn, chứng từ,…. Ngày nay, OCR có khả năng xử lí trên 200 ngôn ngữ và hứa hẹn sẽ tiếp tục mang lại những bước tiến vượt bậc nhờ Trí tuệ nhân tạo. 

Các dự án OCR mã nguồn mở

Nếu bạn đang tìm hiểu và mong muốn phát triển các phần mềm OCR, hãy tham khảo ngay 11 dự án mã nguồn mở dưới đây. Các dự án này cung cấp cả động cơ, API, trình tạo và các công cụ hỗ trợ. 

1, Tesseract OCR

Tesseract OCR cung cấp một công cụ OCR – libtesseract và chương trình dòng lệnh – tesseract. So với phiên bản Tesseract 3 thì Tesseract 4 bổ sung một công cụ OCR dựa trên mạng thần kinh nhân tạo (LSTM), tập trung vào nhận dạng dòng và các mẫu ký tự. Tesseract hỗ trợ nhiều định dạng đầu ra như văn bản, hOCR (HTML), PDF, TSV, cũng như thử nghiệm đầu ra ALTO (XML).

Tập dữ liệu TẠI ĐÂY.

2, EasyOCR

EasyOCR là một dự án OCR Python nguồn mở cho phép các nhà phát triển thị giác máy tính dễ dàng thực hiện Nhận dạng ký tự quang học, với hơn 80 ngôn ngữ, bao gồm tiếng Trung, Nhật, Hàn, Thái… EasyOCR có thể được cài đặt chỉ bằng một lệnh pip và nhập vào dự án bằng lệnh import. Như vậy, tất cả những gì bạn cần là hai dòng code – một để khởi tạo lớp Reader và sau đó một dòng khác để tiến hành nhận dạng ký tự quang học thông qua chức năng readtext.

3, Swift AI

Swift AI là một thư viện học sâu có hiệu suất cao được viết hoàn toàn bằng Swift. Swift AI hỗ trợ tất cả các nền tảng của Apple, và sắp tới là Linux. Dự án bao gồm các công cụ phổ biến được sử dụng cho trí tuệ nhân tạo và các ứng dụng khoa học như NeuralNet, Convolutional neural network, Recurrent neural network, Genetic Algorithm Library, Fast Linear Algebra Library, Signal Processing Library.

4, SwiftOCR

SwiftOCR là một dự án OCR đơn giản được viết bằng Swift và sử dụng mạng nơ-ron để nhận dạng hình ảnh. Hiện tại, SwiftOCR đã được tối ưu để nhận dạng code ngắn, gồm chữ và số (ví dụ: DI4C9CM). Dự án hỗ trợ iOS và OS X.

5, OCRmyPDF

OCRmyPDF bổ sung các lớp văn bản (text “layers”) vào hình ảnh trong tệp PDF, từ đó giúp người dùng có thể thực hiện thao tác tìm kiếm trên tệp PDF hình ảnh. OCRmyPDF được viết bằng Python và hỗ trợ các plugin cho phép tùy chỉnh quy trình xử lý.

6, text-detection-ctpn

Phát hiện văn bản dựa trên cấu trúc Connectionist Text Proposal Network – CTPN được triển khai bằng tensorflow. Thuật toán CTPN là một mô hình học sâu đầu cuối (end-to-end) có thể đào tạo. 

7, PaddleOCR

PaddleOCR nhằm mục đích tạo ra các công cụ OCR giúp người dùng đào tạo mô hình và áp dụng chúng vào thực tế. PaddleOCR hỗ trợ nhận dạng nhiều ngôn ngữ như tiếng Trung, tiếng Anh, Hàn Quốc, Nhật Bản, Đức, Pháp, đồng thời cho phép cài đặt PIP và dễ sử dụng trên các hệ điều hành Linux, Windows, MacOS.

8, Parsr

Parsr là một chuỗi công cụ làm sạch, phân tích cú pháp và trích xuất tài liệu có dung lượng tối thiểu (hình ảnh, pdf, docx, eml). Parsr tạo ra dữ liệu có cấu trúc và có thể sử dụng ở các định dạng JSON, Markdown (MD), CSV / Pandas DF hoặc TXT. Hiện tại, Parsr có thể thực hiện: làm sạch tài liệu, tái tạo hệ thống phân cấp (từ, dòng, đoạn văn), phát hiện tiêu đề, bảng, danh sách, mục lục, số trang, đầu trang / chân trang, liên kết,….

9, EAST

EAST có thể phát hiện văn bản cả trong hình ảnh và video, với độ chính xác cao và gần thời gian thực ở 13FPS trên hình ảnh 720p. Người dùng dễ dàng triển khai EAST trong OpenCV 3.4.2 và OpenCV 4. Công cụ này sử dụng ResNet-50 và hàm dice loss.

10, Open Paperless

Open Paperless cung cấp một nền tảng mạnh mẽ để thực hiện quét hình ảnh theo cách nhanh chóng và thông minh. Công cụ này cũng cho phép sửa đổi, xem tài liệu và lưu trữ trên cả đám mây và máy chủ. 

11, VietOCR

Với VietOCR, mô hình Transformer OCR cho phép nhận dạng chữ viết tay và đánh máy tiếng Việt. Dự án này kết hợp giữa mô hình CNN và Transformer. VietOCR có tính tổng quát tốt, độ chính xác khá cao trên một bộ dữ liệu mới mặc dù mô hình chưa được huấn luyện bao giờ.

Được phát triển bởi VinBigData, VinOCR là hệ thống các giải pháp hỗ trợ việc phát hiện, nhận dạng và trích xuất thông tin từ hình ảnh, vật thể, chữ viết tay, giấy tờ, biểu mẫu… với độ chính xác 96% và tốc độ xử lý dưới 0,1 giây. VinOCR có thể ứng dụng trong đa lĩnh vực, giúp số hóa trải nghiệm người dùng, tăng tỉ lệ chuyển đổi, giảm rủi ro cho các doanh nghiệp.

Nhận dạng ký tự quang học là một trong những lĩnh vực đang nổi của trí tuệ nhân tạo (AI). Công nghệ này có thể dễ dàng ứng dụng trong nhiều giải pháp, sản phẩm giúp doanh nghiệp tự động hóa quá trình nhập liệu và lưu trữ hồ sơ giấy tờ, từ đó, hỗ trợ tối ưu hiệu quả vận hành và gia tăng trải nghiệm khách hàng. Vậy cụ thể, OCR là gì và cùng với OCR còn có những công nghệ nào khác? Bài viết dưới đây sẽ đem tới cái nhìn cụ thể, qua những phân tích, so sánh giữa OCR và những công nghệ tương cận.

OCR, ICR, OMR là gì?

OCR (Optical Character Recognition – Nhận dạng ký tự quang học) là một hệ thống cung cấp đầy đủ khả năng nhận dạng chữ và số trên giấy tờ bản in hoặc viết tay thông qua việc quét biểu mẫu. 

Chức năng của OCR: Máy quét sẽ quét biểu mẫu chứa hình ảnh ký tự, sau đó công cụ nhận dạng tiến hành đọc hiểu các hình ảnh và chuyển chúng thành dữ liệu ASCII (các ký tự máy có thể đọc được). Như vậy, OCR giúp tự động hóa việc nhập và lưu trữ dữ liệu, đảm bảo độ chính xác cao và tiết kiệm chi phí nhập liệu thủ công.

Cùng với OCR, gần đây, thuật ngữ Nhận dạng ký tự thông minh (Intelligent Character Recognition – ICR) được sử dụng để mô tả quá trình đọc hiểu dữ liệu hình ảnh, cụ thể là văn bản chữ và số. ICR là một mô-đun của OCR, có khả năng biến hình ảnh viết tay hoặc các ký tự in thành dữ liệu ASCII. Trong một số trường hợp, OCR cũng được gọi là ICR.

OMR (Optical Mark Reader – Nhận dạng dấu quang học) là một phương pháp điện tử thu thập dữ liệu do con người xử lý bằng cách xác định một số dấu hiệu nhất định trên tài liệu. Thông thường, quá trình nhận dạng dấu quang học được thực hiện với sự hỗ trợ của máy quét kiểm tra truyền tải hoặc phản xạ ánh sáng qua giấy; những nơi có đánh dấu sẽ phản xạ ít ánh sáng hơn phần giấy trắng, dẫn đến độ tương phản kém hơn. OMR thường được ứng dụng để xử lý dữ liệu từ phiếu điều tra hay chấm các bài thi trắc nghiệm.

So sánh OCR/ICR với OMR

Khác biệt cơ bản giữa OCR/ICR và OMR: ICR và OCR là công cụ nhận dạng trên hình ảnh; trong khi OMR là công nghệ thu thập dữ liệu không yêu cầu một công cụ nhận dạng nào. Do đó, về cơ bản OMR không thể nhận dạng ký tự viết tay hoặc đánh máy. 

So sánh chi tiết OMR với OCR/ICR
So sánh chi tiết OMR với OCR/ICR
So sánh các khả năng và yêu cầu của OMR với OCR/ICR
So sánh các khả năng và yêu cầu của OMR với OCR/ICR

Dựa trên công nghệ Nhận dạng ký tự quang học, VinOCR là hệ thống các sản phẩm được phát triển bởi VinBigData nhằm hỗ trợ việc nhận dạng, phát hiện và trích xuất thông tin chữ viết từ ảnh chụp của các loại giấy tờ. Hệ thống có thể xử lý các loại giấy tờ theo mẫu, không theo mẫu, bảng biểu và chữ viết tay. Với công nghệ nhận dạng và trích xuất thông tin chính xác đến 96%, tốc độ xử lý dưới 0,1 giây và hỗ trợ 6 loại giấy tờ, VinOCR có thể ứng dụng trong đa lĩnh vực như định danh khách hàng điện tử, mở tài khoản ngân hàng trực tuyến, mở thẻ tín dụng và cho vay trực tuyến,….

Từ thẻ đục lỗ, bàn phím gõ đến màn hình cảm ứng là cả một tiến trình không ngừng thay đổi trong cách thức con người tương tác với máy tính. Vậy trên tiến trình này, điều gì sẽ xảy ra tiếp theo? 

Câu trả lời không đâu khác ngoài giọng nói và kỷ nguyên “không chạm”. Để thực hiện các tương tác theo cách thức này, công nghệ tự động nhận dạng tiếng nói (Automatic Speech Recognition – ASR) là chìa khóa trong việc chuyển đổi ngôn ngữ nói thành ngôn ngữ viết nhằm giúp máy tính có thể hiểu được.

Công nghệ nhận dạng tiếng nói giúp thay đổi cách thức con người tương tác với máy tính
Công nghệ ASR giúp thay đổi cách thức con người tương tác với máy tính

Khái quát về công nghệ nhận dạng tiếng nói

ASR là một nhánh của Học máy (Machine Learning – ML). Về cơ bản, thay vì lập trình các quy tắc để chuyển đổi dữ liệu đầu vào (giọng nói) thành đầu ra (văn bản), thì mô hình Học máy được đào tạo bằng cách đưa các tập dữ liệu lớn vào một thuật toán, chẳng hạn như mạng nơ-ron tích chập (CNN). Trải qua quá trình đào tạo, mô hình ngày càng suy luận tốt hơn, và có khả năng nhận dạng tiếng nói của con người.

Đáng nói, cần phân biệt giữa công nghệ tự động nhận dạng tiếng nói (ASR) và xử lý ngôn ngữ tự nhiên (NLP). ASR liên quan đến việc chuyển đổi dữ liệu giọng nói thành dữ liệu văn bản, trong khi NLP tìm cách “hiểu” ngôn ngữ để thực hiện các tác vụ khác. Hai công nghệ này thường đi kèm với nhau. Ví dụ, một chiếc loa thông minh sử dụng ASR để chuyển đổi lệnh thoại thành một định dạng có thể sử dụng, trong khi NLP xác định nội dung, ý nghĩa của lệnh thoại đó. 

Một số công nghệ và thuật ngữ trong ASR

Theo cách truyền thống, hầu hết ASR bắt đầu với một mô hình âm thanh, thể hiện mối quan hệ giữa tín hiệu âm thanh với các đơn vị cơ bản cấu thành nên từ. Mô hình âm thanh này thực hiện chuyển đổi sóng âm thanh thành các bit mà máy tính có thể sử dụng. Sau đó, các mô hình ngôn ngữ và phát âm lấy dữ liệu này, áp dụng ngôn ngữ học tính toán (computational linguistics) và đặt từng âm thanh theo trình tự và ngữ cảnh để tạo thành từ và câu.

Tuy nhiên, các nghiên cứu mới nhất đang bỏ qua cách tiếp cận đa thuật toán này để chuyển sang sử dụng một mạng nơ-ron duy nhất được gọi là mô hình đầu cuối (end-to-end – E2E). Theo nhiều nhà khoa học, mô hình E2E cho phép việc mở rộng sang nhiều ngôn ngữ khác ngoài tiếng Anh trở nên nhanh chóng hơn, đồng thời dễ dàng đào tạo các mô hình mới và tiết kiệm thời gian giải mã (decoding).

Một kỹ thuật quan trọng khác là tách kênh giọng nói (speaker diarization), cho phép mô hình nhận dạng giọng nói xác định người nói và thời điểm nói. Điều này không chỉ quan trọng đối với các trường hợp ghi chép báo cáo cuộc họp, hội nghị với nhiều diễn giả, mà còn góp phần hướng tới cá nhân hóa trải nghiệm người dùng. 

Để đánh giá mức độ chính xác của mô hình ASR, các nhà nghiên cứu hay sử dụng tỷ lệ lỗi từ (Word Error Rate – WER) theo công thức:

Tỷ lệ lỗi từ = (số lần chèn + xóa + sai) / số từ trong bảng điểm tham chiếu

Như vậy, đơn giản hơn, có thể hiểu WER cung cấp tỷ lệ phần trăm các từ mà ASR đã nhầm lẫn. 

Tương lai của ASR

Chúng ta đang bước vào kỷ nguyên của Internet vạn vật kết nối (Internet of Things – IoT). IoT bao gồm tất cả các thiết bị “thông minh” tồn tại xung quanh ta, từ thiết bị gia đình như điều hòa, loa đến các thiết bị công nghiệp nhằm tối ưu hóa quy trình sản xuất và thúc đẩy quá trình tự động hóa. Tương lai, giọng nói sẽ nhanh chóng trở chiếm ưu thế và trở thành cách thức ưu việt nhất để người dùng tương tác với IoT. Chỉ cần nói “bật đèn” hoặc “tăng nhiệt độ”, chúng ta có thể kiểm soát điều kiện môi trường trong thời gian thực, mà không cần phải nhìn vào màn hình hay nhấn các nút vật lý.

Trợ lý giọng nói đa vùng miền ViVi được tích hợp trên xe ô tô điện VinFast VFe34
Trợ lý giọng nói đa vùng miền ViVi được tích hợp trên xe ô tô điện VinFast VFe34

Tự động nhận dạng tiếng nói là một trong những công nghệ được tích hợp trong Trợ lý giọng nói tiếng Việt đa vùng miền ViVi. Mô hình AI giúp chuyển đổi giọng nói thành văn bản với tỷ lệ WER nhỏ hơn 6%. Đặc biệt, lần đầu tiên tại Việt Nam, trợ lý ảo có thể hiểu ngôn ngữ đặc thù từng vùng miền, giúp đem lại trải nghiệm sử dụng đầy thuận tiện, dễ dàng cho người sử dụng. 

Trải nghiệm các tính năng thông minh của ViVi trên xe ô tô điện VinFast VF e34 tại đây.