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[.]
ĐẠ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 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 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 MỤC LỤC CHƢƠNG TỔNG QUAN VỀ OCR VÀ Ƣ́NG DỤNG OCR 1.1 Tổ ng quan về toán nh ận dạng văn – OCR 1.2 Mục tiêu xây dƣ̣ng ƣ́ng du ̣ng OCR CHƢƠNG THƢ VIỆN MỞ TESSERACT 2.1 Lịch sử đời 2.2 Tổng quan kiến trúc 2.3 Xác định dòng từ 2.4 Nhận dạng từ 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 KIẾN TRÚ C CỦA Ƣ́NG DỤNG OCR 15 3.1 Kiến trúc hệ điều hành iPhone 15 3.2 Kiến trúc ̣ điề u hành iOS 15 3.3 Mô ̣t số chƣ́c và dich ̣ vu ̣ của lớp Cocoa Touch 17 3.4 Mô ̣t số API bản của lớp thƣ viện Cocoa Touch 20 3.5 Mơ hình kiến trúc chƣơng trình OCR 24 3.6 Mơ hình thiết kế 26 CHƢƠNG CHƢƠNG TRÌNH THƢ̣C NGHIỆM 28 4.1 Giới thiệu mô trƣờng phát triển cách cài đặt 28 4.2 Giới thiệu công cu ̣ 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 KẾT LUẬN 36 TÀI LIỆU THAM KHẢO 37 PHỤ LỤC GIỚI THIỆU NGÔN NGƢ̃ LẬP TRÌNH OBJECTIVE -C 38 DANH MỤC HÌNH VẼ Hình Mơ hình tổng quan hệ thống OCR Hình Thị phần thiết bị di động chia theo hệ điều hành - Nguồ n : Gartner (tháng 2/2011) Hình Ứng dụng OCR cho iPhone Hình Minh họa đƣờng sở đƣợc hiệu chỉnh cong Hình Ví dụ minh họa từ đƣợc cắt theo chiều cao cố định Hình Minh họa từ có khoảng cách khó xác định Hình Ví dụ điểm cắt thích hợp nhát căt 10 Hình Minh ho ̣a chƣ̃ bi ̣đƣ́t đoa ̣n 11 Hình (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 sở mo-men 14 Hình 11 Các ứng dụng dựa 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 ̣ các lớp bô ̣ thƣ viê ̣n Cococa 24 Hình 14 Mơ hin ̀ h MVC 26 Hình 15 Mơ hình Cococa MVC của Apple 26 Hình 16 Mô hin ̀ h Use-Case của ƣ́ng du ̣ng 27 Hình 17 Mơ hin ̀ h cô ̣ng tác của ƣ́ng du ̣ng OCR 27 Hình 18 So sánh iPad 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ể thử nghiệm chƣơng trình 34 DANH MỤC BẢNG BIỂU Bảng Kết thực nghiệm chƣơng trình 35 I GIỚI THIỆU Các kết nghiên cứu lĩnh vực nhận dạng quang học (OCR) đạt đƣợc thành công vƣợt bậc việc giúp chuyển đổi tài liệu văn từ dạng hình ảnh sang dạng văn chỉnh sửa, soạn thảo đƣợc Hƣớng nghiên cứu OCR đời từ trƣớc có máy tính điện tử, đến hình thành thị trƣờng phần mềm chuyên xử lý nhận dạng văn Có nhiều phần mềm tiếng nhờ có độ xác cao hỗ trợ nhiều ngôn ngữ nhƣ phần mềm FineReader hãng AABBYY, OmmiPage hãng Scansoft đƣợc dùng để nhận dạng văn tiếng Anh,… VNDOCR Viện công nghệ thông tin cho văn tiếng Việt Các phần mềm chủ yếu hoạt động dựa tảng máy tính cá nhân Trong đó, thiết bị di động thơng minh (smartphone) ngày mạnh lực xử lý nhƣng chƣa có nhiều phần mềm ứng dụng OCR cho thiết bị Mục tiêu luân văn nghiên cứu thƣ viện mở Tesseract [6] xây dựng ứng dụng OCR cho thiết bị di dộng dựa hệ điều hành iOS Nội dung luận văn nghiên cứu, làm rõ kiến trúc thƣ viện mã nguồn mở Teseract Đây thƣ viện mã nguồn mở có độ xác tốt hoạt động nhiều tảng hệ điều hành khác Luận văn sâu vào việc tìm hiểu kiến trúc hệ điều iOS, hệ điều hành hãng Apple dùng chi 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 hệ điều hành dành cho thiết bị di động Kết luận sản phẩm phần mềm ứng dụng OCR cho thiết bị iPhone Sản phẩm có tính ứng dụng thực tiễn cao Ngƣời sử dụng cài đặt phần mềm sử dụng carmera có sẵn thiết bị để chụp lại ảnh tài liệu cần nhận dạng, chuyển đổi Các liệu hình ảnh đƣợc nhận dạng chuyển đổi sang dạng liệu văn Sau đó, thơng qua công cụ dịch Google, liệu văn đƣợc dịch sang ngơn ngữ hiểu đƣợc ngƣời dùng II LỜI CẢM ƠN Trƣớc tiên xin gửi lời cảm chân thành tới thầy, cô giáo trƣờng Đại Học Công Nghệ đặc biệt thầy TS Phạm Bảo Sơn Thầy Sơn ngƣời trực tiếp giảng dậy nhƣ ngƣời hƣớng dẫn khoa học Trong trình học tập trƣờng lên lớp thầy trƣờng giúp ích cho tơi nhiều việc mở rộng tầm hiểu biết khơng kiến thức chun mơn mà cịn kinh nghiệm thực tiễn Trong trình làm luận văn khoa học, dẫn kịp thời thầy Phạm Bảo Sơn giúp tơi có đƣợc hƣớng nghiên cứu khoa học đƣợc xác Trong trình học tập nghiên cứu khoa học, tơi nhận đƣợc nhiều cổ vũ động viên khích lệ tinh thần gia đình đặc biệt từ vợ - Vũ Thị Xuân Hƣơng gái Đinh Thanh Trúc Gia đình chỗ dựa vững tinh thần giúp tơi vƣợt qua đƣợc khó khăn sống Mọi ngƣời gia đình ln quan tâm chăm sóc dành nhiều thời gian cho phục vụ công việc nghiên cứu khoa học qua giúp tơi hồn thành đề tài luận văn Tôi xin cảm ơn tới ngƣời bạn, đồng nghiệp sát cánh bên Trung tâm CNTT – Học viện Cơng Nghệ Bƣu Chính Viễn Thông Tại nhận đƣợc chia sẻ kinh nghiệm công việc, kinh nghiệm thực tiễn nghiên cứu khoa học Qua giúp tơi có đƣợc nhiều kinh nghiệm việc nghiên cứu làm khoa học Một lần xin cảm ơn tất thầy cô giáo, ngƣời thân gia đình, bạn bè, đồng nghiệp giúp đỡ nhiều kiến thức chuyên môn, kinh nghiệm thực tế, động viên khích lệ tinh thần trình hồn học tập, nghiên cứu khoa học tơi Những đóng góp phần thành cơng luận văn Mọi đóng góp luận văn xin gửi địa email quanghuyqn@gmail.com Xin chân thành cảm ơn CHƢƠNG TỔNG QUAN VỀ OCR VÀ ỨNG DỤNG OCR 1.1 Tởng quan về tốn nhận dạng văn – OCR Ngày nay, hầu nhƣ tất thông tin đƣợc lƣu trữ xử lý máy tính Mỗi ngày, nhập khối lƣợng liệu lớn vào máy tính Nhƣng dƣờng nhƣ thân máy tính khơng đủ thơng minh để nhận biết kí hiệu, kí tự, hình ảnh … mà ngƣời sử dụng Điều làm giảm lớn hiệu cơng việc ngƣời Do đó, vấn đề nhận dạng đời giống nhƣ cầu nối ngƣời máy tính nhằm tăng khả xử lý thơng tin máy tính Nằm số toán nhận dạng, nhận dạng văn nhằm giải vấn đề nhận dạng kí tự xuất văn Nó có ý nghĩa đặc biệt quan trọng xử lý thơng tin phần lớn thơng tin mà ngƣời sử dụng dạng kí tự Hơn nữa, ngày nhiều thiết bị di động thông minh (smartphone) hay 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), công cụ tiện dụng xử lý thông tin cá nhân Các thiết bị này, ngày nay, thƣờng đƣợc trang bị thành phần xử lý tốc độ cao thƣờng tích hợp sẵn camera có độ phân giải cao Do đó, xây dựng ứng dụng nhận dạng ký tự cho loại thiết bị nhằm nâng cao tiện ích sử dụng ngƣời dùng hoạt động phục vụ công việc nghiên cứu học tập công cụ dịch tự động cho ngƣời du lịch nƣớc Vấn đề nhận dạng văn đƣợc nghiên cứu gần bốn thập kỉ qua Nhƣng năm gần đây, kỹ thuật nhận dạng đƣợc phát triển đủ mạnh để xây dựng ứng dụng thƣơng mại Có nhiều loại vấn đề nhận dạng chữ nhƣ việc thể đặc trƣng hệ thống nhận dạng hay vấn đề chia cắt kí tự từ để nhận dạng.vv Các thƣ viện, phần mềm OCR đặc trƣng thƣờng có mơ hình xử lý với bƣớc nhƣ hình bên dƣới Hình Mơ hình tởng quan hệ thống OCR 1.2 Mục tiêu xây dựng ứng dụng OCR Hiê ̣n các sản phẩ m thiế t bi ̣m áy tính bảng , điê ̣n thoa ̣i thơng minh ngày phổ biến Các sản phẩm ngày mạnh mẽ hiệu xử lý nhƣ giầ u tính sƣ̉ du ̣ng nhờ có nhiề u phầ n mề m ƣ́ng du ̣ng đó Có nhiề u cơng ty liñ h vƣ̣c thiế t bi ̣di đô ̣ng tham gia vào thị phần nhƣ Nokia, Sony, LG, Samsam, Apple…Trong các sản phẩ m điê ̣n thoa ̣i thông minh thiết bị iPhone hãng Apple - Mỹ giành đƣợc nhiều quan tâm không chỉ ngƣời sƣ̉ du ̣ng mà cả cô ̣ng đồ ng phát triể n ƣ́ng du ̣ng cho thiế t bi ̣này CHƢƠNG THƢ VIỆN MỞ TESSERACT 2.1 Lịch sử đời Tesseract thƣ viện OCR mã nguồn mở [6] đƣợc phát triển hãng HP từ năm 1984 đến 1994 Tesseract đƣợc đời từ dự án nghiên cứu luận án tiến sỹ [1] phịng thí nghiệm HP Brsitol đƣợc thúc đẩy mạnh mẽ sản phẩm phần mềm khả thi kèm với dòng sản phẩm máy quyét để bàn HP Một nhân tố thúc đẩy dự án sản phẩm OCR thƣơng mại lúc bắt đầu hình thành cịn nhiều lỗi cho dù chất lƣợng ảnh đầu vào tốt Ngay sau phịng thí nghiệm Bristol phịng phát triển máy quét Colorado, hãng HP, sát nhập với nhau, Tesseract có bƣớc tiến đáng kể độ xác, vƣợt qua sản phẩm thƣơng mại, nhƣng chƣa trở thành sản phẩm phần mềm thực Sau phòng thí nghiệm Bristol HP tiếp tục phát triển thƣ viện với mục tiêu làm cho gọn nhỏ Các cơng việc chủ yếu tập trung vào việc nâng câu hiêu việc loại bỏ thông tin dƣ thừa mà khơng tập vào việc cải thiện mức độ xác 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 sau đó, năm 1995, đƣợc chuyển cho trƣờng đại học Nevada, Las Vegas để thực việc kiểm thử độ xác phần mềm nhận dạng văn – OCR, kiểm tra đƣợc tổ chức thƣờng niên Tại thời điểm năm 1995 Tesseract sản phẩm có độ nhận dạng xác tốt Năm 2005, HP thức công bố Tesseract dƣới dạng mã nguồn mở Hiện đƣợc lƣu trữ 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 sản phẩm HP (và khơng đƣợc cơng bố dƣới dạng mã nguồn mở) nên thân kiến trúc Tesseract [3] không bao gồm phân tích cấu trúc trang riêng Thƣ viện Tesseract mặc định đầu vào ảnh nhị phân tùy trọn vùng văn cần nhận dạng đƣợc xác định trƣớc Quá trình xử lý tuân theo bƣớc mơ hình kiến trúc pipeline, nhiên có vài khâu xử lý khơng đƣợc sử dụng nhƣng cịn giữ lại phiên Bƣớc đầu tiên phân tích thành phần liên thơng, theo nét thành phần đƣợc lƣu lại Đây bƣớc tính tồn tốn nhiều thời gian, nhƣng có ƣu điểm quan trọng: việc phát nét lồng số lƣợng nét con, cháu giúp cho Tesseract dễ dàng nhận biết đƣợc chữ bị đảo ngƣợc nhận dạng cách dễ dàng vời chữ đen trắng Tesseract có lẽ thƣ viện OCR đầu tiên có khả xử lý đƣợc chữ trắng đen cách hiệu Tại giai đoạn này, đƣờng nét đƣợc nhóm lại với thành blob Các blob đƣợc nhận dạng thành dịng chữ vùng đƣợc phân tích theo văn có độ nghiêng cố định mang tính tỷ lệ Các dòng văn đƣợc chia thành từ khác 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ừ ký tự Các chữ mang tính tỷ lệ đƣợc chia thành từ việc sử dụng khoảng trống đƣợc định nghĩa sẵn khoảng trống ―mờ‖ Q trình nhận dạng sau tiến trình pha Trong pha thứ nhất, cố gắng nhận từ cách lần lƣợt Mỗi từ sau thỏa mãn điều kiện đƣợc chuyển cho phân lớp động nhƣ liệu huấn luyện Bộ phân lớp động sau có hội nhận dạng xác văn phía bên dƣới trang Do phân lớp động nhận đƣợc liệu hữu ích qua trễ để xử lý đƣợc văn bải phía đầu trang, pha thứ chạy lại toàn trang, từ chƣa đƣợc nhận dạng dầy đủ đƣợc nhận dạng lại Bƣớc cuối xử lý khoảng trống không rõ ràng kiểm tra giả thiết lựa chọn chiều cao để xác định văn chữ thƣờng (không phải chữ hoa) 2.3 Xác định dịng từ 2.3.1 Tìm dịng Giải thuật xác định dòng đƣợc thiết kế để nhận dạng trang văn bị nghiêng, xiên mà không cần phải khử nghiêng, tránh đƣợc việc làm thông tin ảnh Các thành phần quan trọng tiến trình xử lý lọc đƣợc khối ký tự tạo dựng dòng văn Giả sử rằng, phân tích cấu trúc trang xác định đƣa các vùng văn thô với cỡ chữ đồng nhất, lúc lọc phân vị cao (percentile height filter) loại bỏ chữ hoa trang trí (drop-cap) kí tự dựng đứng Độ cao trung bình gần với cỡ chữ vùng, an toàn lọc bỏ chữ mà có độ cao nhỏ so với độ cao trung bình theo tỷ lệ Các bị lọc phần lớn dấu cú pháp nhƣ chấm, phẩy hay dấu ký tự chí nhiễu Các đƣợc lọc phần lớn mẫu không phủ lấp lên đứng song song Việc xắp xếp, xử lý ô theo trục x giúp gán ký tự vào dòng văn nhất, bám theo độ dốc toàn trang, nên giảm thiểu nhiều sai sót gán nhầm vào dịng khơng nghiêng, méo trang Khi ô đƣợc gắn vào dòng, lọc trung vị thích hợp đƣợc sử dùng để ƣớc lƣợng dòng ô bị loại bỏ trƣớc đƣợc đƣa trở lại vào dòng tƣơng ứng Bƣớc cuối dịng q trình tạo đƣờng thẳng trộn lại ô mà bị phủ lấp nên nửa kích thƣớc theo chiều ngang, đặt ký tự dấu vào phần tử đƣợc nhận dạng xác trƣớc nối cách xác phần đứt đoạn ký tự 2.3.2 Hiệu chỉnh đƣờng sở Khi dòng văn đƣợc xác định, đƣờng sở đƣợc điều chỉnh cho xác việc sử dụng hàm nội suy spline bậc Đây bƣớc cần thiết trƣớc hệ thống nhận dạng OCR cho phép Tesseract xử lý trang có đƣờng bị cong, vênh điều hay xẩy không quét sách đóng gáy mà còn đối dạng văn tài liệu khác Các đƣờng đƣợc điều chỉnh việc phân hoạch ô ký tự thành nhóm với độ giãn cách liên tiếp hợp lý đối so với đƣờng gốc ban đầu Hàm nội suy spline bậc đƣợc điều chỉnh cho phù hợp với phân vùng có nhiều ký tự hàm bình phƣơng tối thiểu phù hợp Nội suy spline bậc có điểm lợi việc tính tốn đạt đƣợc ổn định cách hợp lý Tuy nhiên điểm yếu rời rạc tăng lên số phân đoạn tăng Trong trƣờng hợp này, nội suy bậc cho kết tốt Hình Minh họa về đƣờng sở đƣợc hiệu chỉnh cong Hình thể minh họa dòng văn đƣợc điều chỉnh theo đƣờng sở, đƣờng hạ thấp, đƣờng trung bình đƣờng nâng cao Tất đƣờng thẳng ―song song‖ với Đƣờng tăng có mầu xanh (khi in có màu xám) đƣờng mầu đen phía đƣờng thẳng Khi xem kỹ thấy rằng, đƣờng mầu xanh/xám có độ vênh tƣơng đối so với đƣờng thẳng mầu đen phía 2.3.3 Phát khoảng cách cố định chia cắt Tesseract thực kiểm tra dịng chữ để định xem liệu có phải chúng có độ cao cố định hay khơng Sau xác định độ cao cố định, Tesseract cắt chữ thành ký tự việc sử dụng độ cao vơ hiệu hóa cắt chuyển chữ sang bƣớc nhận dạng từ Hình dƣới dây minh họa ví dụ điển hình từ có khồng cách cố định Hình Ví dụ minh họa từ đƣợc cắt theo chiều cao cố định 2.3.4 Xác định từ theo tỷ lệ Việc chia tách văn có dãn cách chữ mang tính tỷ lệ khơng, có chiều cao cố định, tác vụ quan trọng Hình minh họa một vài trƣờng hợp điển hình Khoảng hàng chục hàng đơn vị chuỗi ‗11.9% ‗ có kích thƣớng tƣơng tự với khoảng trống khác lớn khoảng giãn cách chuỗi ‗erated‘ chuỗi ‗junk‘ Một khó khăn dễ thấy q trình nhận dạng khơng có khoảng cách viền bao chữ ‗of‘ viền bao chữ ‗finacial‘ Tuy nhiên Tesseract đƣợc xây dựng chế để giải phần lớn khó khăn cách đo khoảng cách vùng giới hạn theo chiều dọc đƣờng sở đƣờng trung bình Trong giai đoạn này, khoảng cách mà gần với ngƣỡng đƣợc làm mờ đi, định cuối đƣợc đƣa sau trình nhận dạng từ Hình Minh họa từ có khoảng cách khó xác định 2.4 Nhận dạng từ Một phần quan trong tiến trình nhận dạng nhận dạng văn xác định xem từ đƣợc chia cắt thành ký tự nhƣ Bƣớc chia cắt từ thành ký tự đƣợc thực lần đầu tiên tiến trình xác định đƣờng thẳng bƣớc phân loại lần thứ Bƣớc cịn lại q trình nhận dạng đƣợc thực nhóm văn có chiều cao khơng cố định 2.4.1 Chia cắt ký tự dính vào Khi kết nhận dạng từ thỏa mãn điều kiện Tesseract cố gắng nâng cao kết cách cắt gọt ô ký tự với có độ tin cậy thấp khỏi phân loại ký tự Các điểm cắt thích hợp đƣợc xác định từ 10 đỉnh lõm hình đa giác đƣợc xấp xỉ gần với đƣờng viền ký tự có đỉnh lõm đối điện đoạn thẳng Phải cần có tối thiểu cặp đỉnh cắt để tách thành công ký tự thuộc tập ký tự ASCII Hình Ví dụ về điểm cắt thích hợp nhát căt Hình phía tập điểm cắt thích hợp vị trí mũi tên nhát cắt đƣợc lựa chọn đƣờng ngang qua đƣờng bao ngồi điểm ký tự ‗r‘ dính vào ký tự ‗m‗ Các nhát cắt đƣợc thực theo thứ tự ƣu tiên Bất nhát cắt mà không cải thiện đƣợc độ tin cậy kết đƣợc khơi phục lại, nhiên khơng bị hủy bỏ hồn tồn nhát cắt đƣợc dùng lại lần sau ghép ký tự cần thiết 2.4.2 Ghép nối kỹ tự bị đứt đoạn Khi đƣờng cắt tiềm có nhiều, từ chƣa đủ tốt, ghép nối đƣợc sử dụng Bộ ghép nối thực phép tìm kiếm A* (tốt trƣớc) thành phần đồ thị với khả kết hợp lớn mảnh bị chia cắt ô ký tự thành ký tự tiềm Nó thực điều mà khơng xây dựng phân đoạn đồ thị mà thay vào xây dựng bảng băm vùng đƣợc viếng thăm Tìm kiếm A* đƣợc bắt đầu cách đƣa thành phần ứng viên vào vùng từ hàng đợi ƣu tiên đánh giá chúng việc phân lớp kết hợp phân mảnh mà chƣa đƣợc phân loại Có thể có lập luận cho hƣớng tiếp cận liên kết sau cắt gọt cách làm không thực đem lại kết tối ƣu có khả lớn làm nhát cắt quan trọng Tuy nhiên mặt mạnh phƣơng pháp làm đơn giản cấu trúc liệu cần thiết để lƣu giữ đầy đủ phân đoạn đồ thị 11 Hình Minh ho ̣a chƣ̃ bi đƣ ̣ ́ t đoa ̣n Khi giải thuật tìm kiếm dựa phân đoạn A* đƣợc cài đặt lần đầu vào năm 1989, Tesseract trở thành nhận dạng ký tự bị đƣt đoạn có đột chinh xác nội trội, vƣợt qua phần mềm thƣơng mại Hình ví dụ điển hình Thành phần thành cơng phân loại ký tự nhận dạng dễ dàng kí tự bị đứt đoạn 2.5 Bộ phân loại kí tự tĩnh 2.5.1 Trích chọn đặc trƣng Phiên đầu tiên Tesseract sử dụng topo nét đặc trƣng đƣợc phát triển từ cơng trình nghiên cứu Shillman Tuy khơng bị phụ thuộc vào font độ lớn, nhƣng nét đặc trƣng không thực tốt số trƣờng hợp thực tế nhƣ Bokser mô tả Mộ ý tƣởng lúc liên quan tới việc sử dụng phân đoạn đa giác xấp xỉ làm đặc trƣng ký tự, nhiên phƣơng pháp tốt ký tự không nguyên vẹn Hình bên dƣới ví dụ đặc trƣng Trong hình (a), phía bên phải của nét thẳng đứng bao gồm mảnh nhƣng hình (b) có mảnh Hình (a) Kí tự ‘h’ mẫu, (b) ‘h’ đứt đoạn, (c) nét đặc trƣng so với mẫu 12 Một ý tƣởng giải pháp đột phá đặc trƣng phần tử chƣa biết không thiết phải giống với đặc trƣng liệu huấn luyện Trong suốt trình huấn luyện, phần đa giác xấp xỉ đƣợc sử dụng dụng làm đặc trƣng, nhƣng trình nhận dạng, đặc trƣng phần nhỏ, có độ dài cố định (theo đơn vị đo bình thuờng đƣợc tách từ nét phác thảo đƣợc so sánh gép cặp một-nhiều dựa vào nhóm mẫu đặc trƣng kho liệu huấn luyện Trong hình 9(c), đƣờng kẻ đứt đoạn, dầy đặc trƣng đƣợc trích xuất từ đối tƣợng chƣa nhận dạng, đƣờng liền, mảnh nhóm phần đa giác xấp xỉ đƣợc sử dụng nhƣ nguyên mẫu Ta thấy nguyên mẫu nối phần bên trái bên phải hình 9(c) hồn tồn khơng đƣợc ghép cặp Ví dụ cho thấy q trình xử lý khớp đặc trƣng nhỏ vào nguyên mẫu lớn dễ dàng xử lý nhận dạng với hỉnh ảnh có lỗi Tuy khó khăn chi phí tính tốn cho việc tính khoảng cách đối tƣợng chƣa biết với mẫu lớn Các đặc trƣng trích xuất từ đối tƣợng mẫu chiều (tọa độ x,y góc) Với ký tự thƣờng có 50 đến 100 đặc trƣng Các đặc trƣng nguyên mẫu dạng chiều, (vị trí x,y, góc, độ dài Các nguyên mẫu thƣờng có 10-20 đặc trƣng đƣợc lƣu bảng tham số cấu hình nguyên mẫu 2.5.2 Phân lớp Tiến trình phân phân lớp bao gồm bƣớc Trong bƣớc thứ chia lớp tạo danh sách sàng lọc lớp ký tự mà đối tự chƣa nhận dạng khớp mẫu ký tự Lẫn lƣợt đặc trƣng lấy chọn từ bảng tìm kiếm chiều đƣợc lƣợng tử hóa, bit-vector lớp mà khớp bit-vector đƣợc tính tổng tồn đặc trƣng Các lớp có số lần khớp cao (sau điều chỉnh lại số lƣợng đặc trƣng mong muốn) đƣợc đƣa vào danh sách tiềm cho bƣớc Mỗi đặc trƣng đối tƣợng chƣa biết tìm kiếm bit-vector nguyên mẫu lớp đƣa danh mà khớp sau giống chúng đƣợc tính toán Mỗi lớp ký tự nguyên mẫu đƣợc thể với biểu thức lơgic tổng tích với số hạng đƣợc gọi cấu hình, tiến 13 trình tính tốn khoảng cách giữ bảng tính tổng độ giống thực tế đặc trƣng cấu hình nhƣ nguyên mẫu Khoảng cách kết hợp tốt nhất, đƣợc tính từ tổng giá trị độ phù hợp đặc trƣng mẫu thực tế, giá trị tồn cấu hình lƣu lớp 2.6 Phân tích ngơn ngữ Tesseract tích hợp phân tích ngơn ngữ đơn giản Mỗi module nhận dạng từ cần đƣa định từ mới, module ngôn ngữ lựa chọn chuỗi ký tự phù hợp nhóm sau: nhóm từ thƣờng dùng nhất, nhóm từ đầu từ điển, nhóm chữ số, nhóm chữ in hoa, nhóm chữ in thƣờng, đầu nhóm từ lựa chọn phân loại Quyết định cuối cho phân mảnh đầu vào từ mà có tổng khoảng cách nhỏ nhóm phân loại đề cập đƣợc nhân với hệ số khác Các từ thuộc nhiều phân đoạn khác có số lƣợng khác chúng Một cơng việc khó khăn so sánh trực tiếp từ Tesseract giải vấn đề cách sinh số cho phân lớp ký tự Số đầu tiên, đƣợc gọi độ tin tƣởng, số âm Nếu số lớn độ tin tƣởng cao Hệ số thứ 2, đƣợc gọi số xếp hạng, lấy khoảng cách chuẩn nguyên mẫu nhân với tổng độ dài đƣờng viền bao ký tự chƣa nhận dạng Chỉ số xếp hạng ký tự từ đƣợc tính tổng, tổng có nghĩa tổng độ dài tất ký tự từ ln giống 2.7 Phân lớp động Theo nhiều nghiên cứu OCR [7] đạt đƣợc độ xác lớn sử dụng phân lớp động Bộ phân lớp tĩnh tốt trƣờng hợp tổng quát font Tuy nhiên khả việc phân biết khác ký tự nhƣ đối tƣợng ký tự ký tự tƣơng đối yếu Một phân lớp biến đổi theo đặc tính font, đƣợc huấn luyện từ kết đầu phân lớp tĩnh, đƣợc sử dụng bổ sung để đạt đƣợc tính phân biệt cao hơn tài liệu số font hữu hạn 14 Tesseract khơng chứa phân loại mẫu, nhƣng sử dụng đặc trƣng phân lớp giống làm phân lớp tĩnh Sự khác biệt rõ rệt phân lớp tĩnh động mà khơng tính đến liệu huấn luyện, phân lớp động sử dụng đƣờng sở đẳng hƣớng phân lớp tĩnh chuẩn hóa ký tự tính momen vị trí kích cỡ Đƣờng sở giúp cho việc phân biệt cách dễ dàng ký tự viết hoa ký tự thƣờng khác, nhƣ cải thiện khả loại bỏ điểm nhiễu Ích lợi q trình chuẩn hóa đại lƣợng ký tự việc loại bỏ khác tỉ lệ kích thƣớc font, độ đậm font Quá trình giúp cho việc nhận dạng số trên, số dƣới đơn giản nhƣng đòi hỏi thêm phân loại đặc trƣng để giúp cho việc phân biệt vài ký tự viết hoa viết thƣờng Hình bên dƣới minh họa chữ nằm khuân đƣờng sở/trục hoành khn chuẩn hóa theo lƣợng mơ men xoắn Hình 10 Chuẩn hóa ký tự theo đƣờng sở mo-men 15 CHƢƠNG KIẾN TRÚC CỦ A ỨNG DỤNG OCR 3.1 Kiến trúc hệ điều hành iPhone iOS hệ điều hành chạy thiết bị nhƣ iPhone, iPod touch, iPad hãng Apple Hệ điều hành đảm nhiệm việc quản lý phần cứng thiết bị cung cấp kỹ thuật cần thiết để cài đặt ứng dụng Đi kèm với hệ điều hành iOS số ứng dụng nhƣ: đàm thoại, thƣ điện tử, trình duyệt web - Safari nhằm cung cấp chức cho ngƣời dùng Bộ thƣ viện lập trình iOS SDK cung cấp nhiều công cụ giao diện đồ họa cần thiết cho nhà phát triển việc phát triển, cài đặt, chạy kiểm thử ứng dụng Các ứng dụng đƣợc xây dựng dựa iOS SDK sử dụng thƣ viện hệ thống ngơn ngữ lập trình Objective-C Khác với ứng dụng web, ứng dụng đƣợc cài đặt vào thiết bị vật lý chạy trực tiếp trên hệ điều hành iOS Các ứng dụng tồn song song với ứng dụng hệ thống Tất ứng dụng liệu ngƣời dùng đƣợc đồng với máy tính cá nhân thơng qua trình ứng dụng iTunes 3.2 Kiến trúc ̣điều hành iOS Kiến trúc iOS [5] tƣơng tự nhƣ kiến trúc tảng hệ điều hành Mac OS X Xét tổng thể, iOS hoạt động nhƣ tầng trung gian lớp phần cứng với lớp ứng dụng, nhƣ hình minh họa bên dƣới Các ứng dụng đƣợc phát triển bới nhà lập trình ―giao tiếp‖ trực tiếp với lớp phần cứng trực tiếp Thay vào đó, ứng dụng giao tiếp với phần cứng thông qua tập giao diện hệ thống đầy đủ đƣợc định nghĩa sẵn Điều làm giảm thiểu ảnh hƣớng việc thay đổi phần cứng lên ứng dụng Ngoài lớp thƣ viện giúp cho cho việc phát triển ứng dụng phần mềm đƣợc dễ dàng hoạt động cách thống thiết bị có tảng phần cứng khác cấu hình 16 Hình 11 Các ứng dụng dựa hệ điều hành iOS Kiến trúc hệ điều hành iOS đƣợc chia thành lớp Các lớp bên dƣới hệ thống cung cấp dịch vụ công nghệ tảng, lớp phía cung cấp dịch vụ kỹ thuật công nghệ phức cao cấp Hình bên dƣới dây thể thƣ viện lõi hệ điều hành iOS Hình 12 Các lớp thƣ viện iOS Các hàm thƣ viện lớp phía cung cấp cho ngƣời lập trình hàm mang tính trừu tƣợng bao gói cho hàm sở lớp dƣới Các hàm trừu tƣợng giúp ngƣời lập trình dễ dàng q trình viết code giúp 17 giảm thiếu khối lƣợng lớn dòng code phải viết phát triển tính phứct tạp ví dụ nhƣ socket hay thread 3.3 Mô ̣t số chƣ́c và dich ̣ vu ̣ của lớp Cocoa Touch Lớp Cococa Touch bao gồm số hàm thƣ viện quan trọng cho việc xây dựng ứng dụng dựa hệ điều hành iOS Lớp định nghĩa kiến trúc tảng cơng nghệ nhƣ: đa nhiệm, nhập liệu, lấy liệu từ server qua giao thức Push nhiều dịch vụ hệ thống khác Khi thiết kế ứng dụng ngƣời phát triển ứng dụng cần quan tâm tới công nghệ mà lớp cung cấp để xem liệu chúng có phù hợp với yêu cầu chức ứng dụng định phát triển Tải FULL (55 trang): https://bit.ly/3fQM1u2 Dự phòng: fb.com/KhoTaiLieuAZ 3.3.1 Đa nhiệm Các ứng dụng đƣợc xây dựng thƣ viện iOS SDK từ 4.0 trở nên không dừng hẳn ngƣời sử dụng nhấn nút Home mà thay vào đƣợc chuyển chế độ chạy ngầm đằng sau Tính đa nhiệm đƣợc định nghĩa lớp UIKit giúp cho ứng dụng chuyển đổi qua lại trạng thái kích hoạt hay chạy ngầm đƣợc trơn tru Nhằm tiết kiệm lƣợng pin, phần lớn ứng dụng đƣợc hệ thống tạm thời dừng hoạt động chuyển sang trạng thái chạy ngầm Các ứng dụng tạm ngừng tồn nhớ, nhiên không thực mã lệnh Thao tác cho phép ứng dụng nhanh chóng khơi phục trạng thái cũ đƣợc khởi động mà không làm hao tổn lƣợng pin Tuy nhiên, ứng dụng đƣợc phép tiếp tục chạy chế độ ngầm nếu: Ứng dụng cần khoảng thời gian định để hoàn thành vài tác vụ quan trọng Ứng dụng có sử dụng dịch vụ Notifications để sinh thông báo tới ngƣời dùng cho dù trạng thái kích hoạt hay chạy ngầm hệ thống 3.3.2 In ấn 18 Từ phiên iOS 4.2, lớp thƣ viện UIKit printing cho phép ứng dụng cót hể gửi nội dung cần in tới máy in qua kết nối không dây UIKit đảm nhiệm phần lớn công việc liên quan đến in ấn Bộ thƣ viện quản lý giao diện in ấn, làm việc với ứng dụng để sinh nội dung để in điều khiển việc lập lịch thực thi tác vụ in máy in Các tác vụ in đƣợc gửi đƣợc chuyển tới hệ thống in ấn - hệ thống điều khiển tiến trình in thực tế Các tác vụ in từ tất ứng dụng thiết bị đƣợc đƣa vào hàng đợi in theo chế độ đến trƣớc, phục vụ trƣớc Ngƣời dùng ứng dụng xem đƣợc trạng thái tác vụ in thông qua trình ứng dụng Print Center, đồng thời dùng trình ứng dụng để hủy bỏ tác vụ in khơng mong muốn Ngồi tất cơng việc khác in ấn đƣợc điều khiển tự động hệ thống Tải FULL (55 trang): https://bit.ly/3fQM1u2 Dự phòng: fb.com/KhoTaiLieuAZ 3.3.3 Bảo vệ liệu Đƣợc giới thiệu iOS 4.0, tính bảo vệ liệu cho phép ựng dụng có sử dụng liệu nhậy cảm ngƣời dùng dựa ƣu điểm chức mã hóa đƣợc xây dựng sẵn Khi ứng dụng đƣợc định file cụ thể cần đƣợc bảo vệ hệ thống lƣu file lên ổ đĩa theo định dạng mã hóa Nếu thiết bị bị khóa, nội dung file khơng thể truy cập đƣợc cho dù từ ứng dụng gốc hay ứng dụng có khả xâm nhập khác Tuy nhiên thiết bị đƣợc mở khóa ngƣời dùng, mã khóa đƣợc sinh phép ứng dụng gốc truy cập đến file mã hóa 3.3.4 Dịch vụ Apple Push Notification Đƣợc giới thiệu từ phiên iOS 3.0, dịch vụ Apple Push Notification cho phép ứng dụng hiển thị thơng báo có tin đến ngƣời dùng, cho dù ứng dụng khơng chạy chế độ kích hoạt Sử dụng dịch vụ này, ứng dụng đẩy nội dung thơng báo, hiển thị hình lúc Các cửa sổ thông báo cho phép ngƣời dùng biết hộ nên mở ứng dụng tƣơng ứng để nhận đƣợc thông tin liên quan 19 3.3.5 Nhận dạng chuyển động Đƣợc giới thiệu từ iOS 3.2, thƣ viện nhận dạng chuyển động đối tƣợng mà ngƣời lập trình gắn vào khung cửa sổ thị sử dụng để phát dạng chuyển động phổ biến nhƣ: trƣợt ngón, trƣợt đồng thời nhiều ngón tay Sau gắn nhận dạng vào khung cửa sổ thị, ngƣời lập trình xác lập hành động đƣợc thực thi có chuyển động tƣơng ứng đƣợc nhận Các đối tƣợng nhận dạng chuyển động theo dõi kiện chạm cảm ứng áp dụng các phân loại để xem có phải chạm cảm ứng ngƣời dùng dạng cảm ứng chuyển động Bộ thƣ viện UIKit bao gồm lớp UIGestueRecorgnizer định nghĩa hành động cho tất dạng cảm ứng chạm Ngoài ngƣời lập trình sử dụng hàm dựng sẵn UIKit để xử lý cho kiện chuyển động dƣới đây: Chạm đơn Đa chạm Kéo Trƣợt dài Xoay Chạm giữ 3.3.6 Chia sẻ file Dịch vụ chia sẻ file cho phép sứng dụng đƣa file liệu ngƣời dùng thơng qua trình ứng dụng máy tính iTunes 9.1 Một ứng dụng cho phép chia sẻ file cho phép ngƣời dùng truy cập tới nội dung có thƣ mục /Documents ứng dụng Ngƣời dùng chép tệp tin vào/ra thƣ mục thông qua iTune Tuy nhiên tính khơng cho phép ứng dụng đƣợc chia sẻ file với ứng dụng khác thiết bị Để bật tính chia sẻ file ứng dụng cần làm tác vụ sau: 6812518 ... phần mềm ứng dụng OCR cho thiết bị Mục tiêu luân văn nghiên cứu thƣ viện mở Tesseract [6] xây dựng ứng dụng OCR cho thiết bị di dộng dựa hệ điều hành iOS Nội dung luận văn nghiên cứu, làm... 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... kiến trúc cho ứng dụng OCR phù hợp với việc thực thi hệ điều hành dành cho thiết bị di động Kết luận sản phẩm phần mềm ứng dụng OCR cho thiết bị iPhone Sản phẩm có tính ứng dụng thực tiễn cao