OCR (optical character recognition)[8] 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.
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ệ OCR hiện tại đều có thể nhận dạng hầu hết các font chữ với độ chính xác cao, một số còn hỗ trợ khả năng kết xuất ra những đoạn văn bản có định dạng gần giống hoàn toàn với bản gốc.
Ngoài công nghệ nhận dạng ký tự quang học OCR thì hiện nay còn có thêm nhiều cơ chế nhận dạng tiêu biểu khác được ứng dụng vào thực tế như:
Nhận dạng ký tự thông minh ICR (Intelligent Character Recognition) Nhận dạng vùng đánh dấu OMR (Optical Mark Recognition)
Nhận dạng chữ mực từ MICR (Magnetic Ink Character Recognition) Nhận dạng mã vạch (barcode).
Các công nghệ tiên tiến này đã hỗ trợ rất nhiều cho các tổ chức và doanh nghiệp trong việc xử lý thông tin phát sinh xuyên suốt quá trình hoạt động. Những lĩnh vực thường được ứng dụng các công nghệ nhận dạng trên là giáo dục, tài chính, y tế, bảo hiểm, giao vận và ngay cả trong các tổ chức của chính phủ như thuế, hải quan.
Công nghệ nhận dạng OCR đã tạo ra sự ảnh hưởng to lớn trong việc lưu trữ, chia sẻ và chỉnh sửa thông tin. Trước đây, nếu chúng ta muốn chuyển một quyển sách từ bản in sang bản điện tử thì cách duy nhất là ngồi nhập thủ công toàn bộ quyển sách vào máy tính thông qua chương trình soạn thảo văn bản, và điều này buộc chúng ta phải trả giá với một khoảng thời không nhỏ. Tuy nhiên, ngày nay với sự phát triển vượt bậc của công nghệ thông tin, chỉ cần một máy scan kết nối với một máy tính tích hợp sẵn phần mềm nhận dạng OCR, bằng một vài thao tác đơn giản, toàn bộ quyển sách sẽ được chuyển thành tập tin đúng như mong muốn của người sử dụng. Do đó có thể nói, công nghệ OCR đã giúp người ta đến gần với nhiều dạng thông tin hơn, xóa bỏ nhiều rào cản về việc chia sẻ nguồn tri thức của nhân loại. Mặc dù không được sử dụng phổ biến và nhắc đến nhiều như các ngành công nghiệp viễn thông, phần cứng hay phần mềm nhưng ngành công nghiệp 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 Neural, 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.
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:
Bảng 2. 4: Các phần mềm OCR tiêu biểu
Tên Giấy Phép
ABBYY FineReader Proprietary
AnyDoc Software Proprietary
Brainware Proprietary
CuneiForm/OpenOCR BSD variant
ExperVision TypeReader & RTK Proprietary
GOCR GPL
Image to OCR Converter Proprietary
LEADTOOLS Proprietary
Microsoft Office Document Imaging Proprietary Microsoft Office OneNote 2007 Proprietary Nicomsoft CrystalOCR Proprietary
Ocrad GPL
OCRopus GPL
OmniPage Proprietary Puma.NET BSD Readiris Proprietary ReadSoft Proprietary RelayFax Proprietary Scan2CAD Proprietary Scantron Proprietary
SimpleOCR Freeware and Commercial
SmartScore Proprietary
Tesseract Apache
Transym OCR Proprietary
Một số khái niệm cơ bản
Pixel (Picture element) : Ả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 kề nhau. Khái niệm
Picture Element (ta quen gọi hay viết là pixel – phần tử ảnh, điểm ảnh) được sử
dụng trong quá trình này. Do vậy một ảnh có thể coi là một tập các pixel. Ở đây cũng cần phân biệt khái niệm pixel hay đề cập đến trong các hệ thống đồ họa máy tính. Để tránh nhầm lẫn ta tạm gọi khái niệm pixel này là pixel thiết bị. Khái niệm pixel thiết bị có thể xem xét như sau: khi ta quan sát màn hình (chế độ đồ họa), màn hình không liên tục mà gồm nhiều điểm nhỏ, gọi là pixel. Trong ảnh 2 chiều, mỗi pixel gồm một cặp tọa độ x, y và màu.
Độ phân giải của ảnh (Resolution): chính là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị. Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và
được bố trí theo hai trục x, y trong không gian hai chiều. Đơn vị cho độ phân giải là dpi (dots per inch).
Mức xám của ảnh: Mỗi điểm ảnh đều có một cường độ sáng. Mỗi mứcxám là kết quả của sự mã hóa tương ứng một cường độ sáng của mỗi điểm ảnh với một giá trị số - kết quả của quá trình lượng hóa. Các thang giá trị mức xám thông thường là 16, 32, 64, 128, 256, trong đó mức thông dụng nhất là 256, mỗi pixel được mã hóa bởi 8 bit.
Ảnh nhị phân: Tùy theo giá trị mức xám của điểm ảnh mà các ảnh được phân chia ra thành ảnh màu, ảnh xám hay ảnh nhị phân. Khi trên một ảnh chỉ có giá trị 0 hoặc 1 thì ta nói đó là một ảnh nhị phân hay một ảnh đen trắng và các điểm ảnh của nó gọi là điểm ảnh nhị phân.
Ảnh màu: hay còn gọi là ảnh RGB. Cách biểu diễn cũng tương tự như ảnh đen trắng, chỉ khác là các số tại mỗi phần tử của ma trận biểu diễn cho ba màu riêng lẻ gồm: đỏ (Red), lục (Green), lam (Blue). Để biểu diễn cho một điểm ảnh màu cần 24 bit, 24 bit này chia thành 3 khoảng 8 bit. Mỗi khoảng này biểu 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 văn bản
Đườ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,…).
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à 8.
Hình 2. 5: Minh họa thành phần liên thông [13] Hoạt động của hệ thống OCR
Hoạt động của một hệ thống OCR thông thường gồm các bước sau: thu nhận ảnh, tiền xử lý ảnh, phân tích bố cục trang, tách dòng và từ, huấn luyện và nhận dạng, hậu xử lý. Kết quả của mỗi bước ảnh hưởng rất lớn đến kết quả cuối cùng của hệ thống.
Thu nhận ảnh: Thu nhận ảnh là bước đầu tiên trong quy trình của hệ thống OCR. Hình ảnh tài liệu bên ngoài được thu nhận qua các thiết bị thu ảnh như camera, máy ảnh, máy scan và được số hóa để biến đổi tín hiệu tương tự thành tín hiệu rời rạc (lấy mẫu) và lưu vào máy tính dưới các định dạng file ảnh. Ảnh thu được có thể là ảnh trắng đen, ảnh màu, ảnh đa cấp xám... Độ phân giải của ảnh ảnh hưởng rất lớn đến kết quả OCR. Ảnh thu được có độ phân giải 300dpi không phải là chuẩn chính thức quy ước cho các ảnh đầu vào của các hệ thống OCR nhưng cũng có thể xem như một chuẩn tương đối tốt. Tuy nhiên không phải ảnh có độ phân giải càng cao thì kết quả OCR càng tốt. Do đó các hệ thống OCR khuyến nghị các bức ảnh đầu vào nên có độ phân giải từ 200dpi – 400dpi. Để nâng cao hiệu quả OCR, ngoài việc cố gắng đảm bảo độ phân giải của ảnh nằm trong khoảng tương đố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.
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.
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
𝑂(𝑥, 𝑦) = {0 𝑖𝑓 𝑔(𝑥, 𝑦) ≤ 𝑇 255 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
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
𝑂(𝑥, 𝑦) = {0 𝑖𝑓 𝑔(𝑥, 𝑦) ≤ 𝑡(𝑥, 𝑦) 255 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
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ả như Otsu (ngưỡng toàn cục); Niblack, Sauvola (ngưỡng cục bộ).
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[7]. 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. 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 [7].Dò độ nghiêng và quay ảnh thực hiện trong phạm vi góc - 45o , +45o; dò hướng đúng và quay ảnh theo các hướng 0 o , 90o , 180o , 270o như mô tả ở hình dưới đây
Hình 2. 7: Độ nghiêng và hướng của văn bản [12]
Giảm nhiễu: Việc xuất hiện nhiễu, đặc biệt ở biên ảnh (các thành phần không mong muốn trong ảnh) làm tăng thời gian và giảm kết quả OCR bởi nhiễu trong ảnh nếu không làm lọc đi sẽ được OCR như là ký tự bình thường, thậm chí làm sai lệch nghiêm trọng kết quả với các vùng text thực sự.
Hình 2. 8: Văn bản bị nhiễu trong ảnh [12]
Nhiễu trong tài liệu ảnh có thể do nhiều nguyên nhân: sự xuống cấp của tài liệu theo thời gian, sự tác động vật lý, hóa học của môi trường xung quanh; tác động
dạng, ảnh cần áp dụng một vài kỹ thuật phù hợp để giảm nhiễu nhằm tạo ra một ảnh tốt hơn cho các bước phía sau của quá trình OCR.
Nhiễu trong ảnh thực tế gồm nhiều loại song chúng ta thường chú ý và xem xét đến 3 loại nhiễu chính: nhiễu cộng, nhiễu nhân, nhiễu xung [1].
Nhiễu cộng thường phân bố khắp ảnh. Nếu gọi ảnh quan sát (ảnh thu