Luận văn: Xây dựng hệ thống nhận dạng và dịch trên thiết bị di động

Luận văn thạc sĩ: Nghiên cứu xây dựng hệ thống nhận dạng và dịch thuật trên thiết bị di động. Ứng dụng công nghệ mới nhất, tối ưu hóa trải nghiệm người dùng.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sỹ

2011

65
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

MỤC LỤC

DANH MỤC HÌNH VẼ

1. CHƢƠNG 1 – TỔNG QUAN VỀ OCR

1.1. Giới thiệu về OCR

1.2. Một số công nghệ, phần mềm OCR tiêu biểu

1.3. Một số khái niệm cơ bản

1.4. Các bƣớc cơ bản trong một hệ thống OCR

1.5. Thu nhận ảnh

1.6. Tiền xử lý ảnh

1.7. Nhị phân hóa ảnh

1.8. Chỉnh độ nghiêng và hướng

1.9. Phân tích bố cục

1.10. Tách dòng và từ

1.11. Huấn luyện và nhận dạng

1.12. Xử lý kết quả

2. CHƢƠNG 2 – CÁC CÔNG NGHỆ SỬ DỤNG TRONG HỆ THỐNG

2.1. Công nghệ Tesseract OCR

2.2. Giới thiệu về Tesseract OCR

2.3. Tesseract làm việc như thế nào?

2.4. Vấn đề tập huấn ngôn ngữ

2.5. Công nghệ Android

2.6. Giới thiệu về hệ điều hành android

2.7. Kiến trúc hệ thống

2.8. Mô hình client/server

2.9. Giới thiệu về mô hình client/server

2.10. Các kiến trúc client/server

2.11. Client/Server hai tầng

2.12. Client/server ba tầng

2.13. Client/server n-tầng

2.14. Công nghệ dịch thuật Google Translate

2.15. Xử lý ngôn ngữ tự nhiên

2.16. Dịch tự động

2.17. Dịch vụ dịch thuật trực tuyến Google Translate

3. CHƢƠNG 3 – HỆ THỐNG NHẬN DẠNG VÀ DỊCH TRÊN THIẾT BỊ DI ĐỘNG

3.1. Sơ đồ tổng quát của hệ thống

3.2. Ứng dụng trên client

3.3. Ứng dụng trên server

3.4. Chức năng tiền xử lý ảnh

3.5. Chức năng OCR

3.6. Chức năng hậu xử lý kết quả OCR

3.7. Chức năng sửa lỗi chính tả tự động

3.8. Hàm đánh giá minimum edit distance (MED)

3.9. Hàm đánh giá maximum số cặp ký tự giống nhau

3.10. Chức năng dịch sang ngôn ngữ khác

4. CHƢƠNG 4 – THỰC NGHIỆM VÀ ĐÁNH GIÁ

4.1. Thực nghiệm trên Tesseract engine

4.2. Tập mẫu thực nghiệm

4.3. Kết quả OCR

4.4. Thực nghiệm trên một số hệ thống OCR khác nhau

4.5. Tập mẫu thực nghiệm

TÀI LIỆU THAM KHẢO

DANH MỤC HÌNH VẼ

MỞ ĐẦU

1. CHƢƠNG 1 – TỔNG QUAN VỀ OCR

1.1. Giới thiệu về OCR

1.1.1. OCR là gì

1.2. Một số công nghệ, phần mềm OCR tiêu biểu

1.3. Một số khái niệm cơ bản

1.4. Pixel (Picture element)

1.5. Độ phân giải của ảnh(Resolution)

1.6. Mức xám của ảnh

1.7. Ảnh nhị phân

1.8. Ảnh màu

1.9. Ảnh đa cấp xám

1.10. Các đường cơ bản trong dòng text

1.11. Thành phần liên thông (connected component)

1.12. Các bƣớc cơ bản trong một hệ thống OCR

1.13. Thu nhận ảnh

Tóm tắt

I. Tổng Quan Về OCR Trên Di Động Ứng Dụng và Tiềm Năng

Nhận dạng ký tự quang học (OCR) trên di động đang ngày càng trở nên quan trọng trong cuộc sống hiện đại. Công nghệ này cho phép chuyển đổi hình ảnh văn bản thành dữ liệu có thể chỉnh sửa và tìm kiếm, mở ra nhiều ứng dụng hữu ích. Từ việc số hóa tài liệu đến dịch thuật nhanh chóng, OCR đang cách mạng hóa cách chúng ta tương tác với thông tin. Nghiên cứu trong lĩnh vực OCR đã có những bước tiến đáng kể từ thế kỷ 20, đặc biệt là từ những năm 90, với sự kết hợp của các công nghệ tiên tiến. Chiếc máy nhận dạng chữ số đầu tiên xuất hiện năm 1929, đánh dấu một cột mốc quan trọng. Đến năm 1950, máy chuyển đổi tài liệu in thành ngôn ngữ máy tính ra đời. Ngày nay, OCR kết hợp với máy scan tốc độ cao và thuật toán phức tạp giúp tăng tốc độ xử lý và độ chính xác dữ liệu. Bên cạnh OCR, còn có các cơ chế nhận dạng khác như ICR, OMR, MICR và nhận dạng mã vạch, hỗ trợ nhiều cho các tổ chức. Các công nghệ này được ứng dụng rộng rãi trong giáo dục, tài chính, y tế, bảo hiểm, giao vận và chính phủ. OCR đã tạo ra ảnh hưởng lớn trong việc lưu trữ, chia sẻ và chỉnh sửa thông tin. Trước đây, việc chuyển sách từ bản in sang điện tử mất nhiều thời gian và công sức. Ngày nay, chỉ cần máy scan và phần mềm OCR, toàn bộ quyển sách có thể chuyển thành tập tin dễ dàng. Công nghệ OCR đã giúp người ta tiếp cận thông tin dễ dàng hơn. Mặc dù ít được nhắc đến như các ngành công nghiệp khác, OCR mang lại hiệu quả rõ ràng trong thực tế. Việc chuyển đổi thông tin giúp người dùng truy cập dễ dàng, dù ở bất cứ đâu. Quản lý và bảo mật thông tin cũng trở nên đơn giản hơn. Đối với doanh nghiệp và cơ quan hành chính, công nghệ OCR giúp tiết kiệm chi phí như giảm không gian lưu trữ và nhân lực quản lý thông tin. Hiện nay, nhiều ứng dụng OCR hoạt động offline hoặc online trên các thiết bị chuyên dụng, đặc biệt là các hệ thống thời gian thực. Các kỹ thuật nhận dạng kết hợp với học máy như mạng nơ-ron, mô hình Markov ẩn, SVM và xử lý ngôn ngữ tự nhiên. Dù phát triển mạnh mẽ, OCR vẫn gặp những trở ngại nhất định. OCR không phải lúc nào cũng đạt được độ chính xác 100%, do ảnh hưởng bởi chất lượng ảnh đầu vào, bố cục, font chữ, ký tự đặc biệt và các yếu tố khác.

1.1. Định nghĩa chi tiết và lịch sử phát triển của OCR

Optical Character Recognition (OCR) 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.

1.2. Các ứng dụng tiêu biểu của công nghệ OCR hiện nay

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 gian 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.

1.3. Những yếu tố ảnh hưởng đến độ chính xác của OCR di động

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.

II. Công Nghệ Tesseract OCR Bí Quyết Nhận Dạng Văn Bản Trên Di Động

Tesseract OCR là một công nghệ nhận dạng ký tự quang học (OCR) được phát triển từ năm 1984 đến 1994 tại HP. Cuối năm 2005, HP phát hành Tesseract dưới dạng mã nguồn mở và hiện tại được tập đoàn Google tài trợ phát triển. Tesseract được phát triển để chạy trên cả hệ điều hành nhân Linux và Windows. Tesseract nhanh chóng được phát triển, hỗ trợ nhận dạng trên 30 ngôn ngữ khác nhau, độ chính xác đang tiến tới tỉ lệ 100% trên một số ngôn ngữ với những ảnh văn bản chất lượng. Quá trình làm việc của Tesseract được mô tả tóm tắt như sau: thực hiện việc nhị phân hóa ảnh đầu vào dựa trên việc xác định ngưỡng xám tương thích. Tesseract cung cấp 2 phương pháp xác định ngưỡng xám: ngưỡng otsu, ngưỡng tương thích cục bộ isodata. Thuật toán phân tích bố cục trang qua việc dò tab-stop được đề xuất và cài đặt trong Tesseract bởi Ray Smith nhằm xác định các block text, vùng ảnh. Với mỗi dòng text tìm được, Tesseract xem xét và ước lượng để tìm ra các đường cap line, mean line, baseline, descent line thích hợp. Trên mỗi dòng text, Tesseract kiểm tra để xác định có phải là fixed pitch text hay không. Quá trình nhận dạng từ trải qua 2 pha. Pha đầu tiên của quá trình nhận dạng cố gắng nhận dạng lần lượt từng blod. Các từ không được nhận dạng tốt ở pha thứ nhất sẽ được nhận dạng lại ở pha thứ hai bằng cách bổ các từ này thành các ký tự nhỏ hơn, nhận dạng và kết hợp lại. Trong quá trình nhận dạng từ, kết hợp với việc phân tích ngữ cảnh và cú pháp để cho ra kết quả chính xác hơn.

2.1. Kiến trúc và quy trình hoạt động chi tiết của Tesseract OCR

Quá trình làm việc của Tesseract được mô tả tóm tắt như sau: - Adapting thresholding:: thực hiện việc nhị phân hóa ảnh đầu vào (ảnh màu hoặc ảnh xám.) dựa trên việc xác định ngưỡng xám tương thích. Tesseract cung cấp 2 phương pháp xác định ngưỡng xám: ngưỡng otsu, ngưỡng tương thích cục bộ isodata. - Page layout analysis: thuật toán phân tích bố cục trang qua việc dò tab- stop được đề xuất và cài đặt trong Tesseract bởi Ray Smith nhằm xác định các block text, vùng ảnh.

2.2. Vấn đề tập huấn ngôn ngữ cho Tesseract OCR hiệu quả

Ứng dụng thực tế cho thấy Tesseract engine rất nhạy cảm tới sự khác biệt trong hình dáng font chữ. Do đó để có thể OCR tốt, Tesseract cũng cần tập huấn cho từng ngôn ngữ với nhiều loại font khác nhau, đặc biệt là các font hay sử dụng. Để nhận dạng một ký tự đã được trích chọn, Tesseract sẽ tìm kiếm trong dữ liệu ngôn ngữ đã tập huấn và đưa ra ký tự tương đồng nhất. Ngoài ra dữ liệu ngôn ngữ huấn luyện còn tham gia việc thay thế một số ký tự lỗi dựa theo ngữ cảnh ngay sau khi nhận dạng.com, rr=n, l<=k, cl=d. Luận văn trình bày vấn đề tập huấn ngôn ngữ cho Tesseract 3.

2.3. Các GUI và wrapper hỗ trợ Tesseract OCR trên nhiều nền tảng

Các tổ chức, cá nhân muốn sử dụng Tesseract OCR phải dùng source code cung cấp sẵn đem về tùy biến và xây dựng thành GUI OCR riêng cho mình. Sản phẩm OCR dựa trên Tesseract có thể phát hành lại dưới dạng mã nguồn mã hay sản phẩm thương mại. Một số GUI dựa trên Tesseract: VietOCR: Yêu cầu Java hoặc .NET gImageReader: Yêu cầu python, PyGtk OCRFeeder: Yêu cầu linux, Python, pyGTK, Ghostscript, Unpaper FreeOCR: Yêu cầu Windows, .NET PDF OCR X: Yêu cầu Mac OS X 10.5/Windows với Java 1.6 trở lên Lime OCR: Yêu cầu Windows, ImageMagick Ocrivist: Yêu cầu Linux, Pascal Lector: Yêu cầu Python, Qt4 Tesseract-GUI: Yêu cầu python, pyGTK QTesseract: Yêu cầu QT4, c++.

III. Công Nghệ Android Nền Tảng Phát Triển Ứng Dụng OCR Di Động

Android là một hệ điều hành điện thoại di động mở nguồn mở miễn phí do Google phát triển dựa trên nền tảng mã nguồn mở Linux OS (Kernel 2.6) cho máy di động và những phần mềm trung gian (middleware) để hỗ trợ các ứng dụng mà người sử dụng cần đến. Do đặc điểm của Android là bản quyền mã nguồn mở của nó rất thông thoáng (dựa trên nền tảng bản quyền của Apache V 2.0) nên bất kỳ một hãng sản xuất phần cứng nào cũng đều có thể tự do sử dụng hệ điều hành Android cho thiết bị của mình, miễn là các thiết bị ấy đáp ứng được các tiêu chuẩn cơ bản do Google đặt ra (có cảm ứng chạm, GPS, 3G,. Google phát triển Android SDK cung cấp các công cụ và bộ thư viên các hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữ lập trình java. Kiến trúc Android bao gồm các tầng: tầng nhân linux, tầng Libraries và Android Runtime, tầng Application Framework, tầng Application. Kiến trúc ứng dụng của Android được thiết kế nhằm mục đích đơn giản hóa việc tái sử dụng các component. Qua đó bất kì ứng dụng nào cũng có thể công bố các tính năng mà nó muốn chia sẻ cho các ứng dụng khác.

3.1. Tổng quan về hệ điều hành Android và các tính năng cơ bản

Từ khi công bố, Android đã là hệ điều hành điện thoại di động mở nguồn mở miễn phí do Google phát triển dựa trên nền tảng mã nguồn mở Linux OS (Kernel 2.6) cho máy di động và những phần mềm trung gian (middleware) để hỗ trợ các ứng dụng mà người sử dụng cần đến. Do đặc điểm của Android là bản quyền mã nguồn mở của nó rất thông thoáng (dựa trên nền tảng bản quyền của Apache V 2.0) nên bất kỳ một hãng sản xuất phần cứng nào cũng đều có thể tự do sử dụng hệ điều hành Android cho thiết bị của mình, miễn là các thiết bị ấy đáp ứng được các tiêu chuẩn cơ bản do Google đặt ra (có cảm ứng chạm, GPS, 3G,. Các nhà sản xuất có thể tự do thay đổi phiên bản Android trên máy của mình một cách tự do mà không cần phải xin phép hay trả bất kì khoản phí nào nhưng phải đảm bảo tính tương thích ngược (backward compatibility) của phiên bản chế riêng đó.

3.2. Kiến trúc hệ thống Android và vai trò của từng thành phần

Kiến trúc Android bao gồm các tầng và các thành phần trong đó. Tầng sẽ sử dụng các dịch vụ cung cấp bởi các tầng dưới. Android được chia thành 4 tầng: tầng nhân linux, tầng Libraries và Android Runtime, tầng Application Framework, tầng Application. Các thành phần trong hệ điều hành Android được viết bằng cả C/C ++ và Java.

3.3. Sử dụng JNI trong phát triển ứng dụng OCR trên Android

JNI: Java Native Interface (Tương tự khái niệm Application Programming Interface). Java Native Interface: là một bộ framework cho phép mã lệnh viết bằng Java chạy trên máy ảo java có thể gọi hoặc được gọi bởi một ứng dụng viết bằng native code (Ứng dụng được viết cho một phần cứng cụ thể và trên một hệ điều hành cụ thể) hoặc những bộ thư viện viết bằng C, C++, Assembly. Bằng cách sử dụng JNI, Android cho phép các ứng dụng chạy trên máy ảo Dalvik có thể sử dụng những phương thức được viết bằng các ngôn ngữ cấp thấp như: C, C++, Assembly. Qua đó các nhà phát triển ứng dụng có thể xây dựng ứng dụng dựa trên các bộ thư viện viết bằng C, C++, Assembly nhằm tăng tốc độ thực thi của ứng dụng hoặc sử dụng những tính năng mức thấp mà ngôn ngữ Java không hỗ trợ.

IV. Mô Hình Client Server Giải Pháp Cho Ứng Dụng OCR Di Động

Mô hình client/server là một mô hình quen thuộc trong mạng máy tính được áp dụng một cách rộng rãi. Tất cả mọi trang web, mọi hệ thống phân tán hiện nay đều hoạt động dựa theo mô hình này. Ý tưởng của mô hình này là máy con (đóng vài trò là máy khách-client) gửi một yêu cầu (request) để máy chủ (đóng vai trò người cung ứng dịch vụ-server), máy chủ sẽ xử lý và trả kết quả về cho máy khách. Một mô hình ngược lại là mô hình master/slaver, trong đó máy chủ (đóng vai trò ông chủ-master) sẽ gửi dữ liệu đến máy con (đóng vai trò nô lệ-slaver) bất kể máy con có cần hay không. Server chứa các chương trình gọi là chương trình server, client chứa các chương trình gọi là chương trình client. Client gửi các yêu cầu tới máy chủ có chương trình server và chờ đợi câu trả lời từ server. Các chương trình server này chấp nhận tất cả các yêu cầu hợp lệ đến từ mọi nơi trên mạng, sau đó nó thi hành dịch vụ và trả kết quả về client. Chương trình server và client giao tiếp với nhau bằng các thông điệp (messages) thông qua một cổng truyền thông liên tác IPC (Interprocess Communication).

4.1. Khái niệm và nguyên lý hoạt động của mô hình client server

Mô hình client/server là một mô hình quen thuộc trong mạng máy tính được áp dụng một cách rộng rãi. Tất cả mọi trang web, mọi hệ thống phân tán hiện nay đều hoạt động dựa theo mô hình này. Ý tưởng của mô hình này là máy con (đóng vài trò là máy khách-client) gửi một yêu cầu (request) để máy chủ (đóng vai trò người cung ứng dịch vụ-server), máy chủ sẽ xử lý và trả kết quả về cho máy khách.

4.2. Các kiến trúc client server phổ biến 2 tầng 3 tầng và n tầng

Kiến trúc client/server đơn giản nhất là kiến trúc hai tầng. Các hệ thống sử dụng mô hình client/server hiện nay đa phần áp dụng kiến trúc client/server hai tầng. Một ứng dụng hai tầng cung cấp nhiều trạm làm việc với một tầng trình diễn thống nhất, tầng này truyền tin với tầng lưu trữ dữ liệu tập trung. Tầng trình diễn thông thường là client, và tầng lưu trữ dữ liệu là server. Hầu hết các ứng dụng Internet như là email, telnet, ftp thậm chí là cả Web là các ứng dụng hai tầng.

4.3. Ưu điểm và nhược điểm của từng kiến trúc client server

Trong ứng dụng hai tầng truyền thống, khối lượng công việc xử lý được dành cho phía client trong khi server chỉ đơn giản đóng vai trò như là chương trình kiểm soát luồng vào ra giữa ứng dụng và dữ liệu. Kết quả là không chỉ hiệu năng của ứng dụng bị giảm đi do tài nguyên hạn chế của PC, mà khối lượng dữ liệu truyền đi trên mạng cũng tăng theo. Khi toàn bộ ứng dụng được xử lý trên một PC, ứng dụng bắt buộc phải yêu cầu nhiều dữ liệu trước khi đưa ra bất kỳ kết quả xử lý nào cho người dùng. Nhiều yêu cầu dữ liệu cũng làm giảm hiệu năng của mạng. Một vấn đề thường gặp khác đối với ứng dụng hai tầng là vấn đề bảo trì. Chỉ cần một thay đổi nhỏ đối với ứng dụng cũng cần phải thay đổi lại toàn bộ ứng dụng client và server.

V. Google Translate Tích Hợp Dịch Thuật Cho Ứng Dụng OCR Di Động

Google Translate là một dịch vụ dịch thuật miễn phí được thiết kế và đưa ra tập đoàn công nghệ Google để dịch một phần của tài liệu, văn bản hoặc trang web sang ngôn ngữ khác. Đến tháng 11/2011, số lượng ngôn ngữ mà Google Translate hỗ trợ dịch song ngữ lên đến 59 ngôn ngữ. Google Translate dựa trên nền tảng dịch máy theo nguyên tắc dịch máy thống kê. Google sử dụng phần mềm của riêng họ, chương trình này không đi quá sâu vào các quy luật phức tạp về ngữ pháp mà sử dụng phương pháp được gọi là thống kê kiến thức, có nghĩa là chương trình sẽ được nạp vào hàng tỉ văn bản đã được dịch sẵn của con người, sau đó thực hiện các thao tác phân tích nhằm tìm ra sự tương đồng với các yêu cầu của người dùng rồi trả về kết quả.

5.1. Tổng quan về dịch máy và xử lý ngôn ngữ tự nhiên NLP

Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một nhánh con trong lĩnh vực trí tuệ nhân tạo, với mục đích tập trung vào các ứng dụng trên ngôn ngữ của con người. Xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất trong lĩnh vực trí tuệ nhân tạo vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ - là công cụ của con người trong tư duy và giao tiếp.

5.2. Dịch máy thống kê SMT và các phương pháp dịch máy khác

Có nhiều phương pháp dịch máy đã và đang được áp dụng rộng rãi, tùy thuộc vào từng quy mô cụ thể: dịch máy dựa trên luật, dịch máy dựa trên ví dụ, dịch máy thống kê. Trong đó, dịch máy thống kê đang là một phương pháp mạnh mẽ, được sử dụng trong các máy dịch nổi tiếng như Google Translate, Babel Fish.Xu hướng hiện nay là sử dụng phương pháp lai, kết hợp nhiều phương pháp với nhau với mục đích tạo ra các máy dịch ngày càng hiệu quả.

5.3. Ứng dụng Google Translate API trong phát triển ứng dụng

Ngoài hỗ trợ dịch vụ trực tuyến Google Translate, Google còn đưa ra một tập các hàm Google Translate API, hỗ trợ mạnh mẽ cho các lập trình viên trong việc xây dựng các ứng dụng dịch thuật sử dụng nền tảng của Google Translate. Các hàm API này không có chức năng dịch mà chỉ gọi ngầm đến server của Google có cùng các chức năng hỗ trợ dịch tương tự Google Translate.

VI. Phân Tích Bố Cục Ảnh Tối Ưu Nhận Dạng Văn Bản Trên Di Động

Tài liệu ảnh thường gồm các “vùng đối tượng” có nội dung, tích chất khác nhau (vùng ảnh, vùng text, bảng biểu. Phân tích bố cục tài liệu ảnh là một bước quan trọng được thực hiện để xác định cấu trúc, xác định các vùng đối tượng được bố trí trong tài liệu ảnh. Cấu trúc của tài liệu ảnh thường được quan tâm trong việc phân tích bố cục là cấu trúc vật lý và cấu trúc lôgic.

6.1. Khái niệm về phân tích bố cục và vai trò trong OCR di động

Phân tích bố cục tài liệu ảnh là một bước quan trọng được thực hiện để xác định cấu trúc, xác định các vùng đối tượng được bố trí trong tài liệu ảnh

6.2. Cấu trúc vật lý và logic của tài liệu ảnh

Cấu trúc của tài liệu ảnh thường được quan tâm trong việc phân tích bố cục là cấu trúc vật lý và cấu trúc lôgic

6.3. Các phương pháp phân tích bố cục tài liệu ảnh phổ biến

Các phương pháp phân tích bố cục tài liệu ảnh có thể chia làm hai loại chính : - Phương pháp có thứ bậc: Phương pháp bottom-up: bắt đầu từ các phần tử nhỏ nhất (pixel, thành phần liên thông), thực hiện liên kết các phần tử liên quan để thành các vùng lớn hơn. Phương pháp top-down: bắt đầu từ một vùng ảnh lớn, liên tục phân rã thành các vùng nhỏ hơn. - Phương pháp không có thứ bậc: như Fractal Signature, Adaptive split- and-merge

24/09/2025

Trích đoạn nội dung tài liệu

Chương 1: Trình bày kiến thức tổng quan về lĩnh vực OCR làm nền tảng cho các nghiên cứu về sau. Chương 2: Trình bày nội dung tìm hiểu về công nghệ mã nguồn mở Tesseract OCR, công nghệ Android, mô hình client/server, công nghệ dịch Google Translate. Các công nghệ, mô hình này được sử dụng để xây dựng hệ thống. Chương 3: Giới thiệu kiến trúc và các thành phần cơ bản của hệ thống nhận dạng và dịch trên thiết bị di động đã xây dựng.

Chương 4: Trình bày kết quả thực nghiệm chức năng rút trích thông tin từ ảnh của hệ thống cũng như so sánh một sách tương đối kết quả OCR với một số hệ thống khác. TIEU LUAN MOI download : skknchat@gmail.com 8 CHƢƠNG 1 – TỔNG QUAN VỀ OCR 1. Giới thiệu về OCR Hình 1. Ứng dụng OCR[21] 1.

OCR là gì OCR (optical character recognition)[7] 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. TIEU LUAN MOI download : skknchat@gmail.com 9 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[21]. 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[9] đượ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) và cơ chế 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[21].

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 TIEU LUAN MOI download : skknchat@gmail.com 10 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 nơ ron, 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[17]: 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 TIEU LUAN MOI download : skknchat@gmail.com 11 Microsoft Office OneNote 2007 Proprietary Nicomsoft CrystalOCR Proprietary Ocrad GPL OCRopus GPL OCRopus Apache 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 1.

Một số khái niệm cơ bản Pixel (Picture element)[2] : Ả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)[2]: 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). TIEU LUAN MOI download : skknchat@gmail.com 12 Mức xám của ảnh: Mỗi điểm ảnh đều có một cường độ sáng. Mỗi mức xá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 text Hình 1.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ