Output file ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐINH QUANG HUY XÂY DƢṆG Ƣ́NG DUṆG OCR CHO THIẾT BI ̣iPHONE LUẬN VĂN THẠC SĨ Hà Nội – 2011 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NG[.]
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐINH QUANG HUY
XÂY DỰNG ỨNG DỤNG OCR CHO
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐINH QUANG HUY
XÂY DỰNG ỨNG DỤNG OCR CHO
THIẾT BI ̣ iPHONE
Ngành: Công Nghê ̣ Thông Tin
Chuyên ngành: Công Nghê ̣ Phần Mềm
Mã số: 60 48 10
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHẠM BẢO SƠN
Hà Nội – 2011
Trang 3MỤC LỤC
CHƯƠNG 1 TỔNG QUAN VỀ OCR VÀ ỨNG DỤNG OCR 1
1.1 Tổng quan về bài toán nh ận dạng văn bản – OCR 1
1.2 Mục tiêu xây dựng ứng dụng OCR 2
CHƯƠNG 2 THƯ VIỆN MỞ TESSERACT 5
2.1 Lịch sử ra đời 5
2.2 Tổng quan kiến trúc 5
2.3 Xác định dòng và từ 6
2.4 Nhận dạng từ 9
2.5 Bộ phân loại kí tự tĩnh 11
2.6 Phân tích ngôn ngữ 13
2.7 Phân lớp động 13
CHƯƠNG 3 KIẾN TRÚC CỦA ỨNG DỤNG OCR 15
3.1 Kiến trúc của hệ điều hành của iPhone 15
3.2 Kiến trú c hê ̣ điều hành iOS 15
3.3 Mô ̣t số chức năng và di ̣ch vụ của lớp Cocoa Touch 17
3.4 Mô ̣t số API cơ bản của lớp thư viện Cocoa Touch 20
3.5 Mô hình kiến trúc của chương trình OCR 24
3.6 Mô hình thiết kế 26
CHƯƠNG 4 CHƯƠNG TRÌNH THỰC NGHIỆM 28
4.1 Giới thiệu mô trường phát triển và cách cài đặt 28
4.2 Giới thiệu về công cụ phát triển ứng 30
4.3 Chương trình thực nghiệm 32
4.4 Kết quả thực nghiê ̣m 34
Trang 4KẾT LUẬN 36 TÀI LIỆU THAM KHẢO 37 PHỤ LỤC 1 GIỚI THIỆU NGÔN NGƢ̃ LẬP TRÌNH OBJECTIVE -C 38
Trang 5DANH MỤC HÌNH VẼ
Hình 1 Mô hình tổng quan của một hệ thống OCR 2
Hình 2 Thị phần thiết bị di động chia theo hệ điều hành - Nguồn: Gartner (tháng 2/2011) 3
Hình 3 Ứng dụng OCR cho iPhone 4
Hình 4 Minh họa về đường cơ sở đã được hiệu chỉnh cong 8
Hình 5 Ví dụ minh họa một từ đã được cắt theo chiều cao cố định 8
Hình 6 Minh họa của từ có khoảng cách khó xác định 9
Hình 7 Ví dụ về điểm cắt thích hợp và nhát căt 10
Hình 8 Minh ho ̣a chữ bi ̣ đứt đoa ̣n 11
Hình 9 (a) Kí tự ‗h‘ mẫu, (b) ‗h‘ đứt đoạn, (c) nét đặc trưng so với mẫu 11 Hình 10 Chuẩn hóa ký tự theo đường cơ sở và mo-men 14
Hình 11 Các ứng dụng dựa trên hệ điều hành iOS 16
Hình 12 Các lớp thư viê ̣n của iOS 16
Hình 13 Cấu trúc phân hê ̣ các lớp trên bô ̣ thư viê ̣n Cococa 24
Hình 14 Mô hình MVC 26
Hình 15 Mô hình Cococa MVC của Apple 26
Hình 16 Mô hình Use-Case của ứng dụng 27
Hình 17 Mô hình cô ̣ng tác của ứng dụng OCR 27
Hình 18 So sánh giữa iPad và iPhone 29
Hình 19 Cài đặt iPhone SDK 31
Hình 20 Bộ công cụ Xcode, Interface Builder, iPhone simulator 32
Hình 21 Giao diện chương trình thực nghiệm 33
Hình 22 Kể quả thử nghiệm chương trình 34
Trang 6DANH MỤC BẢNG BIỂU
Bảng 1 Kết quả thực nghiệm chương trình 35
Trang 7GIỚI THIỆU
Các kết quả nghiên cứu trong lĩnh vực nhận dạng quang học (OCR) đã đạt được những thành công vượt bậc trong việc giúp chuyển đổi các tài liệu văn bản từ dạng hình ảnh sang dạng văn bản có thể chỉnh sửa, soạn thảo được Hướng nghiên cứu OCR ra đời từ trước khi có máy tính điện tử, đến nay đã hình thành một thị trường phần mềm chuyên về xử lý nhận dạng văn bản Có rất nhiều phần mềm nổi tiếng nhờ
có độ chính xác cao và hỗ trợ nhiều ngôn ngữ như phần mềm FineReader của hãng AABBYY, OmmiPage của hãng Scansoft được dùng để nhận dạng các văn bản tiếng Anh,… VNDOCR của Viện công nghệ thông tin cho các văn bản tiếng Việt
Các phần mềm trên chủ yếu là hoạt động dựa nền tảng là máy tính cá nhân Trong khi đó, các thiết bị di động thông minh (smartphone) ngày càng mạnh hơn trong năng lực xử lý nhưng chưa có nhiều phần mềm ứng dụng OCR cho các thiết bị này Mục tiêu của luân văn này là nghiên cứu bộ thư viện mở Tesseract [6] và xây dựng ứng dụng OCR cho thiết bị di dộng dựa trên nền hệ điều hành iOS
Nội dung của luận văn sẽ nghiên cứu, làm rõ kiến trúc của bộ thư viện mã nguồn mở Teseract Đây là bộ thư viện mã nguồn mở có độ chính xác tốt và có thể hoạt động trên nhiều nền tảng hệ điều hành khác nhau Luận văn này cũng sẽ
đi sâu vào việc tìm hiểu kiến trúc của hệ điều iOS, hệ điều hành của hãng Apple dùng chi các thiết bị di động như iPhone, iPod Touch, iPad, qua đó giúp tác giả phân tích, thiết kế kiến trúc cho ứng dụng OCR phù hợp với việc thực thi trên hệ điều hành dành cho thiết bị di động này
Kết quả của luận này là sản phẩm phần mềm ứng dụng OCR cho thiết bị iPhone Sản phẩm này có tính ứng dụng thực tiễn cao Người sử dụng có thể cài đặt phần mềm này và sử dụng carmera có sẵn của thiết bị để chụp lại ảnh các tài liệu cần nhận dạng, chuyển đổi Các dữ liệu hình ảnh sẽ được nhận dạng và chuyển đổi sang dạng dữ liệu văn bản Sau đó, thông qua công cụ dịch của Google, dữ liệu văn bản này có thể được dịch sang ngôn ngữ có thể hiểu được đối với người dùng
Trang 8II
LỜI CẢM ƠN
Trước tiên tôi xin gửi lời cảm chân thành tới các thầy, cô giáo trong trường Đại Học Công Nghệ và đặc biệt là thầy TS Phạm Bảo Sơn Thầy Sơn là người
đã trực tiếp giảng dậy cũng như là người hướng dẫn khoa học Trong quá trình học tập tại trường mỗi giờ lên lớp của các thầy cô trong trường đã giúp ích cho tôi rất nhiều trong việc mở rộng tầm hiểu biết của mình không chỉ về kiến thức chuyên môn mà còn cả về những kinh nghiệm thực tiễn Trong quá trình làm luận văn khoa học, các chỉ dẫn kịp thời của thầy Phạm Bảo Sơn đã giúp tôi có được những hướng nghiên cứu khoa học được chính xác hơn
Trong quá trình học tập và nghiên cứu khoa học, tôi đã nhận được rất nhiều
sự cổ vũ động viên khích lệ tinh thần của gia đình đặc biệt là từ vợ - Vũ Thị Xuân Hương và con gái tôi Đinh Thanh Trúc Gia đình là chỗ dựa vững chắc về tinh thần giúp tôi vượt qua được những khó khăn trong cuộc sống Mọi người trong gia đình luôn quan tâm chăm sóc và dành nhiều thời gian cho tôi phục vụ công việc nghiên cứu khoa học qua đó đã giúp tôi hoàn thành đề tài luận văn này
Tôi cũng xin cảm ơn tới những người bạn, những đồng nghiệp luôn sát cánh bên tôi tại Trung tâm CNTT – Học viện Công Nghệ Bưu Chính Viễn Thông Tại đây tôi đã nhận được những chia sẻ về kinh nghiệm công việc, kinh nghiệm thực tiễn về nghiên cứu khoa học Qua đó đã giúp tôi có được nhiều kinh nghiệm hơn trong việc nghiên cứu và làm khoa học
Một lần nữa tôi xin cảm ơn tất cả các thầy cô giáo, những người thân trong gia đình, những bạn bè, đồng nghiệp đã giúp đỡ tôi rất nhiều về kiến thức chuyên môn, kinh nghiệm thực tế, động viên khích lệ tinh thần trong quá trình hoàn học tập, nghiên cứu khoa học của tôi Những đóng góp trên là một phần thành công của luận văn này
Mọi đóng góp về luận văn này xin gửi về địa chỉ email
quanghuyqn@gmail.com Xin chân thành cảm ơn
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ OCR VÀ ỨNG DỤNG OCR
1.1 Tổng quan về bài toán nhận dạng văn bản – OCR
Ngày nay, hầu như tất cả thông tin được lưu trữ và xử lý trên máy tính Mỗi ngày, chúng ta nhập một khối lượng dữ liệu rất lớn vào máy tính Nhưng dường như bản thân máy tính không đủ thông minh để nhận biết các kí hiệu, kí tự, hình ảnh … mà con người sử dụng Điều đó làm giảm rất lớn hiệu quả công việc của con người Do đó, vấn đề nhận dạng ra đời giống như cầu nối giữa con người và máy tính nhằm tăng khả năng xử lý thông tin của máy tính
Nằm trong số những bài toán nhận dạng, nhận dạng văn bản nhằm giải quyết vấn đề nhận dạng các kí tự xuất hiện trong văn bản Nó có ý nghĩa đặc biệt quan trọng trong xử lý thông tin vì phần lớn thông tin mà con người sử dụng
ở dạng kí tự Hơn nữa, ngày càng nhiều thiết bị di động thông minh (smartphone) hay các thiết bị cầm tay nhỏ gọn như máy PDA (Personal Digital Assitants, thiết bị điện tử cầm tay), là công cụ tiện dụng trong xử lý thông tin cá nhân Các thiết bị này, ngày nay, thường được trang bị các thành phần xử lý tốc
độ cao và thường tích hợp sẵn camera có độ phân giải cao Do đó, chúng ta có thể xây dựng các ứng dụng nhận dạng ký tự cho các loại thiết bị này nhằm nâng cao hơn nữa tiện ích sử dụng của người dùng trong các hoạt động phục vụ công việc nghiên cứu học tập hoặc là công cụ dịch tự động cho người đi du lịch nước ngoài
Vấn đề nhận dạng văn bản đã được nghiên cứu gần bốn thập kỉ qua Nhưng chỉ những năm gần đây, kỹ thuật nhận dạng mới được phát triển đủ mạnh để có thể xây dựng các ứng dụng thương mại Có nhiều loại vấn đề trong nhận dạng chữ như việc thể hiện đặc trưng trong hệ thống nhận dạng hay vấn đề chia cắt kí
tự trong một từ để nhận dạng.vv
Các bộ thư viện, phần mềm OCR đặc trưng thường có mô hình xử lý với các bước như hình bên dưới
Trang 102
Hình 1 Mô hình tổng quan của một hệ thống OCR
1.2 Mục tiêu xây dựng ứng dụng OCR
Hiê ̣n nay các sản phẩm thiết bi ̣ m áy tính bảng , điê ̣n thoa ̣i thông minh ngày càng phổ biến Các sản phẩm này ngày càng mạnh mẽ về hiệu năng xử lý cũng như giầu tính năng sử dụng nhờ có nhiều phần mềm ứng dụng trên đó Có rất nhiều công ty trong lĩnh vực thiết bi ̣ di đô ̣ng cùng tham gia vào thị phần này như Nokia, Sony, LG, Samsam, Apple…Trong các sản phẩm điê ̣n thoa ̣i thông minh thì thiết bị iPhone của hãng Apple - Mỹ đang giành được nhiều sự quan tâm không chỉ người sử dụng mà cả cô ̣ng đồng phát triển ứng dụng cho thiết bi ̣ này
Trang 11Hình 2 Thị phần thiết bị di động chia theo hê ̣ điều hành - Nguồn: Gartner
(tháng 2/ 2011 )
Theo kết quả điều tra của tổ chức nghiên cứu Gatner thì năm 2010 có 1.6 tỷ thiết bi ̣ đi đô ̣ng đã được bán ra Trong đó hãng Apple đã bán được 46.6 triê ̣u sản phẩm, tăng 87.2% so với năm 2009 Kết quả điều tra cho thấy các thiết bi ̣ d i
đô ̣ng iPhone đang ngày càng trở nên phổ biến đối với người dùng
Nhằm năng cao thi ̣ phầ n cũng như cung cấp nhiều tiê ̣n ích hơn đối với người dùng sản phẩm của mình , hãng Apple đã xây dựng và khai trương một kho ứng dụng trực tuyến riêng dành cho các thiết bi ̣ dựa trên nền hê ̣ điều hành iOS vào tháng 6 năm 2008 Theo báo cáo mới nhất của hãng Apple , tính đến ngày 22 tháng 1 năm 2011, số ứng dụng hiê ̣n có kho ứng dụng trực tuyến của hãng đã lên tới con số hơn 350,000 với hơn 10 tỷ lượt tải ứng dụng của người dùng
Các ứng dụng trên kho ứng dụng trực tuyến của Apple rất đa da ̣ng và
phong phú nhằm cung cấp cho người sử dụng rất nhiều ứng dụng về tiê ̣n ích văn phòng, công cụ ho ̣c tâ ̣p , giáo dục, ứng dụng trò chơi giải trí , du li ̣ch…Mục tiêu của việc x ây dựng ứng dụng OCR cho iPhone là nhằm bổ xung thêm mô ̣t ứng dụng vô cùng tiện í ch phục vụ di ̣ch vụ chuyển đổi các dòng văn bản ở da ̣ng hình ảnh thành định dạng văn bản thuần túy có thể soạn thảo được Các dòng văn bản sau khi được chuyển đổi sẽ được di ̣ch tự đô ̣ng sang ngôn ngữ tùy cho ̣n khác
Trang 124
Đây là mô ̣t ứng dụng hữu ích giúp cho người sử dụng thiết bi ̣ khi muốn di ̣ch
nhanh mô ̣t cụm từ hay mô ̣t đoa ̣n văn bản ngắn Ứng dụng này rất có ích kh i người sử dụng đi du li ̣ch ở nước ngoài , hoă ̣c người không rành ngoa ̣i ngữ
Hình 3 Ứng dụng OCR cho iPhone
Nhồi máu
cơ tim 心筋梗塞
Trang 13CHƯƠNG 2 THƯ VIỆN MỞ TESSERACT
2.1 Lịch sử ra đời
Tesseract là một thư viện OCR mã nguồn mở [6] được phát triển bởi hãng
HP từ năm 1984 đến 1994 Tesseract được ra đời từ một dự án nghiên cứu luận
án tiến sỹ [1] tại phòng thí nghiệm của HP tại Brsitol và nó được thúc đẩy mạnh
mẽ hơn để có thể cho ra một sản phẩm phần mềm khả thi đi kèm với dòng sản phẩm máy quyét để bàn của HP Một nhân tố nữa thúc đẩy dự án này đó là các sản phẩm OCR thương mại lúc đó mới bắt đầu hình thành và vẫn còn nhiều lỗi cho dù chất lượng ảnh đầu vào rất tốt
Ngay sau khi phòng thí nghiệm ở Bristol và phòng phát triển máy quét tại Colorado, đều của hãng HP, sát nhập với nhau, Tesseract đã có những bước tiến đáng kể về độ chính xác, vượt qua cả những sản phẩm thương mại, nhưng nó vẫn chưa trở thành 1 sản phẩm phần mềm thực sự Sau đó phòng thí nghiệm Bristol của HP tiếp tục phát triển thư viện này với mục tiêu làm cho nó gọn nhỏ hơn Các công việc chủ yếu tập trung vào việc nâng câu hiêu quả của việc loại
bỏ các thông tin dư thừa mà không tập vào việc cải thiện mức độ chính xác cơ bản hiện tại Vào cuối dự án, cuối năm 1994, việc phát triển dừng lại hoàn toàn Thư viện này sau đó, năm 1995, được chuyển cho trường đại học Nevada, Las Vegas để thực hiện việc kiểm thử độ chính xác của các phần mềm nhận dạng văn bản – OCR, đây là một cuộc kiểm tra được tổ chức thường niên Tại thời điểm năm 1995 Tesseract là 1 trong 3 sản phẩm có độ nhận dạng chính xác tốt nhất Năm 2005, HP chính thức công bố Tesseract dưới dạng mã nguồn mở Hiện tại nó đang được lưu trữ tại http://code.google.com/p/tesseract-ocr
2.2 Tổng quan kiến trúc
HP đã tự phát triển độc lập công nghệ phân tích cấu trúc trang, công nghệ
đã được sử dụng trong các sản phẩm của HP (và do vậy nó không được công bố dưới dạng mã nguồn mở) nên bản thân kiến trúc của Tesseract [3] không bao gồm bộ phân tích cấu trúc trang của riêng nó Thư viện Tesseract mặc định đầu
Trang 14và các vùng được phân tích theo các văn bản có độ nghiêng cố định hoặc mang tính tỷ lệ Các dòng văn bản được chia thành các từ khác nhau dựa theo kiểu ký
tự giãn cách Các chữ có độ nghiêng cố định được cắt gọt thành từng từ ô ký tự Các chữ mang tính tỷ lệ thì được chia thành các từ bằng việc sử dụng các khoảng trống được định nghĩa sẵn và các khoảng trống ―mờ‖
Quá trình nhận dạng sau đó là một tiến trình 2 pha Trong pha thứ nhất, nó
cố gắng nhận ra các từ một cách lần lượt Mỗi từ sau đó nếu thỏa mãn các điều kiện thì sẽ được chuyển cho bộ phân lớp động như là dữ liệu huấn luyện Bộ phân lớp động sau đó sẽ có cơ hội nhận dạng chính xác hơn các văn bản ở phía bên dưới trang
Do bộ phân lớp động có thể sẽ nhận được các dữ liệu hữu ích qua trễ để có thể xử lý được văn bải phía đầu trang, cho nên một pha thứ 2 sẽ chạy lại toàn bộ trang, trong đó các từ chưa được nhận dạng dầy đủ sẽ được nhận dạng lại
Bước cuối cùng là xử lý các khoảng trống không rõ ràng và kiểm tra các giả thiết lựa chọn chiều cao để xác định các văn bản chữ thường (không phải chữ hoa)
2.3 Xác định dòng và từ
Trang 152.3.1 Tìm dòng
Giải thuật xác định dòng được thiết kế để có thể nhận dạng một trang văn bản bị nghiêng, xiên mà không cần phải khử nghiêng, do đó nó tránh được việc làm mất thông tin ảnh Các thành phần quan trọng trong tiến trình xử lý đó là lọc
ra được các khối ký tự và tạo dựng dòng văn bản
Giả sử rằng, bộ phân tích cấu trúc trang đã xác định và đưa các các vùng văn bản thô với cỡ chữ đồng nhất, lúc này 1 bộ lọc phân vị cao (percentile height filter) sẽ loại bỏ các chữ hoa trang trí (drop-cap) và các kí tự dựng đứng
Độ cao trung bình gần đúng với cỡ chữ trong vùng, do vậy rất an toàn khi lọc bỏ các ô chữ mà có độ cao nhỏ hơn so với độ cao trung bình theo một tỷ lệ nào đó Các ô bị lọc đi phần lớn là các dấu cú pháp như chấm, phẩy hay các dấu của ký
Bước cuối cùng của dòng quá trình tạo đường thẳng là trộn lại các ô mà bị phủ lấp nên nhau ít nhất 1 nửa kích thước theo chiều ngang, đặt các ký tự dấu vào đúng phần tử đã được nhận dạng chính xác trước đó và nối một cách chính xác các phần đứt đoạn của ký tự
2.3.2 Hiệu chỉnh đường cơ sở
Khi các dòng văn bản đã được xác định, các đường cơ sở được điều chỉnh cho chính xác hơn bằng việc sử dụng hàm nội suy spline bậc 2 Đây là bước cần thiết trước nhất đối với 1 hệ thống nhận dạng OCR và nó cho phép Tesseract có thể xử lý các trang có các đường cơ bản bị cong, vênh điều này rất hay xẩy ra không chỉ khi quét các quyển sách đóng gáy mà còn cả đối các dạng văn bản tài liệu khác