Nhận dạng ký tự quang học (Optical Character Recognition – OCR) là công nghệ hỗ trợ 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… được sử dụng phổ biến thời gian gần đây, nhằm tiết kiệm thời gian và chi phí, cũng như tối ưu hóa các chu trình xử lý thủ tục giấy tờ.  Sau khi tiến hành dán nhãn, xử lý hình ảnh, thiết lập thuật toán,… để hoàn thiện mô hình OCR, các nhà nghiên cứu cần đánh giá xem mô hình này có hoạt động hiệu quả hay không, bằng cách sử dụng các chỉ số tiêu chuẩn. Bài viết này cung cấp thông tin về 2 chỉ số được sử dụng phổ biến, bao gồm Tỷ lệ lỗi ký tự (Character Error Rate – CER) và Tỷ lệ lỗi từ (Word Error Rate – WER). Sử dụng tỷ lệ lỗi để xác định mức độ khác nhau giữa văn bản được trích xuất với OCR và văn bản tham chiếu được dán nhãn thủ công. 

Các nhóm lỗi cơ bản được xem xét 

Với CER và WER có 3 loại lỗi cơ bản cần được xem xét bao gồm 

Lỗi thay thế (Substitution): Các ký tự/ từ sai chính tả

Lỗi xóa (Deletion): Các ký tự/ từ bị mất hoặc bị thiếu

Lỗi chèn (Insertion): Các ký tự/ từ không chính xác

Hình ảnh minh họa 3 nhóm lỗi cơ bản. Nguồn: Towards Data Science 

Vấn đề ở đây là làm thế nào để đo lường mức độ sai lệch giữa 2 chuỗi văn bản. Thông thường chúng ta sử dụng kỹ thuật Khoảng cách Levenshtein (tên tiếng Anh: Levenshtein distance). Khoảng cách Levenshtein là một kỹ thuật đo lường sự khác biệt giữa hai chuỗi, thông qua thống kê số lần chỉnh sửa một ký tự (hoặc từ) tối thiểu (bao gồm chèn, xóa hoặc thay thế) cần thiết để thay đổi một từ (hoặc câu) thành một từ (hoặc câu) khác.

Ví dụ: khoảng cách Levenshtein giữa “mitten” và “fitting” là 3 vì cần tối thiểu 3 lần chỉnh sửa để biến từ này thành từ kia. 

mitten → fitten (thay thế “m” thành “f”)

fitten → fittin (thay thế “e” thành “i”)

fittin → fitting (thêm “g” ở cuối từ)

Chỉ số khoảng cách Levenshtein càng lớn thì hai chuỗi văn bản được xem xét càng có nhiều khác biệt. 

Tỷ lệ lỗi ký tự (Character Error Rate – CER)

Công thức tính CER 

Tính toán chỉ số CER dựa trên kỹ thuật khoảng cách Levenshtein bằng cách đếm số lượng tối thiểu các hoạt động cấp ký tự cần thiết để chuyển đổi văn bản tham chiếu đầu vào thành tệp đầu ra OCR.

CER được tính theo công thức sau: 

Công thức tính toán CER

Trong đó: 

S = Số lần thay thế

D = Số lần xóa

I = Số lần chèn

N = Tổng số ký tự trong văn bản tham chiếu

Mẫu số N có thể được tính theo công thức: N = S + D + C (trong đó C = Số ký tự đúng)

Kết quả của phương trình này đại diện cho tỷ lệ phần trăm ký tự trong đầu ra OCR không chính xác so với văn bản tham chiếu đầu vào. Giá trị CER càng thấp (mô hình hoàn hảo khi CER=0), hiệu suất của mô hình OCR càng tốt.

Ý nghĩa của tỷ lệ lỗi ký tự CER 

Tùy thuộc trường hợp sử dụng và điều kiện liên quan, tỷ lệ lỗi ký tự CER được sử dụng để đánh giá mức độ hiệu quả của OCR tương ứng. Các tình huống và độ phức tạp khác nhau (ví dụ: văn bản in so với văn bản viết tay, loại nội dung, v.v.) có thể dẫn đến các hiệu suất OCR khác nhau. Tuy nhiên, chúng ta có thể tham khảo đánh giá độ chính xác của một số tổ chức uy tín tại Úc như sau (đối với văn bản in):

Độ chính xác OCR tốt: CER 1‐2% (tức là chính xác 98–99%)

Độ chính xác OCR trung bình: CER 2-10%

Độ chính xác OCR kém: CER> 10% (tức là độ chính xác dưới 90%)

Đối với các trường hợp phức tạp liên quan đến văn bản viết tay có nội dung không đồng nhất và xa rời từ vựng (ví dụ: đơn đăng ký), giá trị CER cao khoảng 20% ​​có thể được coi là đạt yêu cầu.

Tỷ lệ lỗi từ (Word Error Rate – WER) 

Nếu CER thường được sử dụng trong việc phát hiện và trích xuất các tài liệu, chuỗi ký tự có trình tự cụ thể (ví dụ: biển số xe, số điện thoại…) thì WER thường được áp dụng khi liên quan đến việc phiên âm các đoạn văn và câu chứa các từ có nghĩa (ví dụ: các trang sách, báo).

Công thức tính tỷ lệ lỗi từ (WER)

Công thức của WER giống với công thức của CER, nhưng thay vào đó, WER hoạt động ở cấp độ từ. Nó thể hiện số lượng từ thay thế, xóa hoặc chèn cần thiết để chuyển một câu thành câu khác.

WER thường có mối liên quan quan mật thiết với CER (miễn là tỷ lệ lỗi không quá cao), mặc dù giá trị WER luôn luôn ghi nhận cao hơn CER.

Ví dụ: Văn bản tham chiếu gốc: “My name is kenneth”

Đầu ra OCR: “Myy nime iz kenneth”

Ở đây, tỷ lệ lỗi ký tự CER là 16.67%, trong khi tỷ lệ lỗi từ WER là 75%. Rõ ràng WER là 75% vì 3 trong số 4 từ trong câu đã bị phiên âm sai.

Công thức tính tỉ lệ lỗi từ WER 

Bài viết trên đây đã đề cập đến các khái niệm, công thức tính tỷ lệ lỗi ký tự CER và tỷ lệ lỗi từ WER cũng như cách áp dụng chúng trong thực tế. Mặc dù CER và WER rất tiện dụng nhưng đây không phải là các chỉ số duy nhất khi đo lường sự chính xác của mô hình OCR. Độ chính xác của OCR còn phụ thuộc nhiều yếu tố như chất lượng và tình trạng của tài liệu gốc (ví dụ: tính dễ đọc của chữ viết tay, DPI hình ảnh, v.v.), thế nên các chỉ số chỉ mang tính tương đối.

VinBigData đang phát triển giải pháp VinOCR 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 cao tới 96%, tốc độ xử lý chưa đến 0,1s. Hệ thống ứng dụng cụ thể trong đa lĩnh vực, 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.
Tìm hiểu thêm về VinOCR tại: https://product.vinbigdata.org/vinocr/ 

Nguồn tham khảo: Towards Data Science 

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,….