Nhận diện ký tự quang học (OCR) là quá trình chuyển đổi một văn bản viết tay hoặc đánh máy sang định dạng số. Đây là một mảng nghiên cứu đáng lưu tâm trong lĩnh vực trí tuệ nhân tạo nói chung và thị giác máy tính nói riêng.
Hiện nay, người ta sử dụng thuật toán nhận diện ký tự quang học cho nhiều ứng dụng thực tế như xác định biển số xe, xử lý hóa đơn và chứng từ, xây dựng các hệ thống đọc-hiểu văn bản để hỗ trợ người già, người khiếm thị, v.v. Bài viết này tập trung đề cập đến cơ chế đằng sau nhận diện ký tự quang học và những ứng dụng liên quan.
Lịch sử của nhận diện ký tự quang học có thể được coi là bắt đầu vào năm 1913 khi TS. Edmund Fournier d’Able sáng chế ra một cỗ máy nghe-đọc (optophone) có khả năng quét văn bản và chuyển đổi sang dạng âm thanh để phục vụ cho những người khiếm thị. Kể từ đó, nhận diện ký tự quang học đã trải qua nhiều giai đoạn phát triển mà bùng nổ nhất là từ những năm 1990 trở lại đây, do có sự ra đời của điện thoại thông minh cũng như do mức độ phổ biến ngày càng tăng của các loại văn bản số.
Nhận diện ký tự quang học là một công nghệ giúp nhận diện văn bản (dù là đánh máy hay viết tay) và chuyển đổi sang một dạng khác mà máy tính có thể đọc được. Ở đây, máy tính có thể tìm kiếm được một thành phần từ ngữ bất kỳ nằm ở trong văn bản đó. Những ví dụ điển hình nhất về nhận diện ký tự quang học là các công cụ trích xuất từ ngữ, các dịch vụ trả tiền hoặc miễn phí giúp chuyển đổi văn bản dạng .pdf sang dạng .txt, v.v. Ngay cả công cụ tìm kiếm hình ảnh của Google cũng sử dụng công nghệ này một cách rộng rãi.
Việc ứng dụng công nghệ nhận diện ký tự quang học vào các bài toán thực tế đương nhiên là không khó, nhưng cơ chế đằng sau công nghệ này có thể có độ phức tạp tăng theo hàm mũ, đặc biệt là với các ký tự viết tay chưa được số hóa. Có thể gói gọn cơ chế này vào ba giai đoạn chính: tiền xử lý hình ảnh, nhận diện ký tự và hậu xử lý đầu ra. Các bước cụ thể hơn được nêu ra theo trình tự như sau:
Thực hiện quét văn bản. Ở bước này, chúng ta cần có kết nối với một thiết bị quét, vốn có hai nhiệm vụ chính là ghi nhận lại và chuẩn hóa hình ảnh. Dĩ nhiên là bước ghi nhận hình ảnh vô cùng quan trọng, nhưng bước chuẩn hóa hình ảnh cũng quan trọng không kém vì nhờ nó chúng ta có thể giảm thiểu thời gian chạy của quá trình bằng cách loại bỏ các biến không quan trọng. Các thiết bị quét tốt cũng có khả năng đảm bảo sự đồng bộ về kích thước của từ ngữ cũng như về sự căn lề chuẩn xác của các đoạn văn.
Tiền xử lý và chỉnh sửa hình ảnh. Trong quá trình quét ảnh thực tế, khó có thể tránh khỏi các tác nhân bên ngoài như nhiễu, bụi, các luồng ánh sáng bất thường, v.v. Các yếu tố này có thể can thiệp xấu đến quá trình chuyển đổi nên cần phải bị loại bỏ bằng các thuật toán xử lý ảnh thông thường và nâng cao. Mục đích của các thuật toán này là tạo ra một sự tương phản rõ rệt giữa vùng chứa chữ và vùng nền xung quanh và giảm thiểu các tác động xấu từ các điều kiện lạ hay không liên quan tới văn bản.
Nhị phân hóa hình ảnh. Để gia tăng thêm nữa sự tương phản này thì người ta có thể sử dụng phép nhị phân hóa. Các vùng chứa chữ sẽ có các pixel mang giá trị 0 và ngược lại, các pixel của vùng nền sẽ mang giá trị 1. Cả tổng thể bức ảnh sẽ không có một pixel nào mang một giá trị khác ngoài hai con số ở trên.
Nhận diện các ký tự. Đây là phần quan trọng nhất của thuật toán nhận diện ký tự quang học. Thông thường, thuật toán sẽ tập trung vào một ký tự hay một nhóm ký tự trong mỗi bước chạy. Người ta có thể nhận diện ký tự theo hai cách: nhận dạng mẫu (pattern recognition) hoặc phát hiện đặc trưng (feature detection).
Trong nhận dạng mẫu, phần mềm ký tự quang học sẽ đề xuất các từ ngữ đã có sẵn, dưới những định dạng và kích cỡ khác nhau. Việc nhận dạng ký tự ở đây tức là thực hiện các phép so sánh giữa dữ liệu đầu vào và những dữ liệu sẵn có này.
Trong phát hiện đặc trưng, các yếu tố quan trọng về mặt hình ảnh của các ký tự sẽ được trích xuất. Chẳng hạn, các góc cong tồn tại ở những chữ cái như “J”, “D” nhưng lại không tồn tại ở các chữ “I” hay “H” viết hoa.
Xác nhận độ chính xác. Các phần mềm ký tự quang học sẽ chứa một từ điển cài sẵn để kiểm nghiệm lại độ chính xác của hệ thống. Người ta có thể hiểu độ chính xác dưới phương diện từng ký tự hay từng chữ. Thông thường, với các ứng dụng OCR chúng ta sẽ mong muốn mức độ chính xác trên 95%, nghĩa là cứ 1000 ký tự thì phải có tầm ít nhất 950 ký tự được nhận dạng đúng.
Như đã đề cập, nhận diện ký tự quang học được sử dụng rộng rãi trong các yêu cầu về sắp xếp, lưu trữ văn bản. Chẳng hạn, trong ngành luật, các luật sư thường phải sắp xếp và tìm kiếm các hồ sơ, tài liệu pháp lý, mà các tài liệu này thì thường rất nhiều và vô cùng phức tạp. Nếu họ sử dụng các phần mềm OCR, họ có thể số hóa tất cả các tài liệu một cách nhanh chóng và thuận tiện. Ngoài ra, họ có thể tìm kiếm tài liệu phỏng theo từ khóa, tên tập, thời gian,… và không cần phải thuê thêm trợ lý để sắp xếp thủ công như trước nữa.
Một lĩnh vực quan trọng khác là trong ngành ngân hàng, ở đây cụ thể là nhận dạng cá nhân. Các tài liệu pháp lý (căn cước công dân, bằng lái xe, hộ chiếu, v.v) có thể được quét nhanh chóng và với độ chính xác gần như là tuyệt đối. Các công cụ OCR còn có thể hỗ trợ chuyển dữ liệu thẳng sang các phần mềm nhập liệu như Excel hay JMP. Điều này giúp giảm thiểu các sai số do nhập liệu bằng tay và giúp cho người quản lý có thể truy xuất thông tin của khách hàng một cách thuận tiện.
[1] Boesch, G. (2021, June 26). Optical Character Recognition (OCR) – Overview and Use Cases. Retrieved from viso.ai: https://viso.ai/computer-vision/optical-character-recognition-ocr/
[2] Nagy, G., Nartker, T. A., & Rice, S. V. (1999). Optical Character Recognition: An illustrated guide to the frontier . SPIE – The International Society for Optical Engineering, 58-69.
[3] Shperber, G. (2018, October 22). A gentle introduction to OCR. Retrieved from towardsdatascience.com: https://towardsdatascience.com/a-gentle-introduction-to-ocr-ee1469a201aa
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE