Báo cáo đồ án thực tập tốt nghiệp xây dựng phần mềm nhận dạng ký tự quang học sử dụng mã nguồn mở tesseract OCR

44 1.1K 6
Báo cáo đồ án thực tập tốt nghiệp xây dựng phần mềm nhận dạng ký tự quang học sử dụng mã nguồn mở tesseract OCR

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TẬP ĐOÀN ĐIỆN LỰC VIỆT NAM TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN THỰC TẬP TỐT NGHIỆP XÂY DỰNG PHẦN MỀM NHẬN DẠNG KÝ TỰ QUANG HỌC SỬ DỤNG MÃ NGUỒN MỞ TESSERACT OCR Giảng viên hướng dẫn: TS NGUYỄN THỊ THANH TÂN Sinh viên thực hiện: NGUYỄN ĐÌNH NGỌC Ngành: CÔNG NGHỆ THÔNG TIN Chuyên ngành: CÔNG NGHỆ PHẦN MỀM Lớp: D6 - CNTT Khóa: 2011 – 2016 Hà Nội, tháng 10 năm 2015 LỜI MỞ ĐẦU Hiện nay, nhu cầu việc rút trích từ ngữ từ hình ảnh ngày phát triển, bên cạnh gia tăng nhu cầu phát triển công nghệ nhận dạng ký tự quang học (Optical Character Recognition) hay gọi tắt OCR Đây công nghệ giúp chuyển đổi hình ảnh chữ viết tay đánh máy thành ký tự mã hóa máy tính Giả sử cần chỉnh sửa số tài liệu giấy như: Các viết tạp chí, tờ rơi, tập tin PDF hình ảnh Rõ ràng, sử dụng máy quét để chuyển tài liệu thành tập tin văn để chỉnh sửa (ví dụ trình soạn thảo Microsoft Word) Tất máy quét làm tạo hình ảnh chụp tài liệu Để giải nén sử dụng lại liệu từ tài liệu quét, hình ảnh máy ảnh hình ảnh tập tin PDF, cần phần mềm OCR Nó xuất kí tự hình ảnh, ghép chúng thành từ sau ghép từ thành câu Nhờ vậy, truy cập chỉnh sửa nội dung tài liệu gốc Tương tự, tài liệu cổ bị hư hại theo thời gian việc viết tay hay đánh máy lại tài liệu tốn nhiều chi phí, thời gian không đảm bảo độ xác an toàn cho tài liệu Việc cần công nghệ lấy từ ngữ từ hình ảnh chụp Bài báo cáo nhằm mục đích tìm hiểu, chỉnh sửa công cụ Tesseract để thực việc rút trích văn từ tập tin hình ảnh Tên đề tài: “Xây dựng phần mềm nhận dạng ký tự quang học sử dụng mã nguồn mở Tesseract Ocr” CẤU TRÚC ĐỀ TÀI Chương 1: Tổng quan đề tài  Quy trình chung hệ thống nhận dạng chữ  Bài toán nhận dạng văn tiếng Việt Việt  Phạm vị nghiên cứu phạm vi ứng dụng  Đối tượng sử dụng  Yêu cầu phần cứng, phần mềm  Yêu cầu giao diện chức Chương 2: Tìm hiểu hệ thống mã nguồn mở Tesseract OCR  Giới thiệu nhận dạng ký tự quang học Tesseract OCR  Thư viện Opencv  Tiến trình nhận dạng sử dụng Tesseract OCR  Đánh giá độ xác nhận dạng Tesseract OCR  Công cụ ngôn ngữ sử dụng Chương 3: Xây dựng chương trình nhận dạng văn tiếng Việt sử dụng thư viện Tesseract OCR  Phân tích hệ thống  Thiết kế hệ thống  Thiết kế sở liệu  Demo giao diện chương trình  Một số thử nghiệm  Cách sử dụng chương trình Kết luận: Kết đạt phương hướng phát triển LỜI CẢM ƠN Em xin gửi đến Thầy cô Khoa Công nghệ thông tin – Trường Đại học Điện Lực lời biết ơn sâu sắc nhất, người với tri thức tâm huyết để truyền đạt vốn kiến thức quý báu cho em thời gian học tập trường Em xin chân thành cám ơn TS Nguyễn Thị Thanh Tân tận tâm hướng dẫn em qua buổi trao đổi Trong thời gian học tập thực hành hướng dẫn thầy anh, em thu nhiều kiến thức bổ ích Nếu lời hướng dẫn, dạy bảo thầy cô em nghĩ đồ án em khó hoàn thành Xin gửi lời cảm ơn chân thành đến gia đình, bè bạn, nguồn động viên to lớn, giúp em vượt qua khó khăn suốt trình học tập thực đồ án Mặc dù cố gắng hoàn thiện đồ án với tất nỗ lực, nhiên, bước đầu vào thực tế, tìm hiểu xây dựng đồ án thời gian có hạn, kiến thức hạn chế, nhiều bỡ ngỡ, nên đồ án “Xây dựng phần mềm nhận dạng ký tự quang học sử dụng mã nguồn mở tesseract OCR” chắn tránh khỏi thiếu sót Em mong nhận quan tâm, thông cảm đóng góp quý báu thầy cô bạn để đồ án ngày hoàn thiện Một lần nữa, em xin chân thành cám ơn mong nhận đóng góp người Sau cùng, em xin kính chúc thầy cô Khoa Công nghệ thông tin dồi sức khỏe, niềm tin để tiếp tục thực sứ mệnh cao đẹp truyền đạt kiến thức cho hệ mai sau Trân trọng! Hà Nội, ngày 06 tháng 10 năm 2015 Sinh viên thực Nguyễn Đình Ngọc MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU DANH MỤC KÝ HIỆU KÝ HIỆU NHỮNG CỤM TỪ VIẾT TẮT CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Quy trình chung hệ thống nhận dạng chữ 1.2 Bài toán nhận dạng văn tiếng Việt Việt 1.3 Phạm vi nghiên cứu phạm vi ứng dụng 1.4 Đối tượng sử dụng 1.5 Yêu cầu phần cứng, phần mềm 1.6 Yêu cầu giao diện chức CHƯƠNG TÌM HIỂU HỆ THỐNG MÃ NGUỒN MỞ TESSERACT OCR 2.1 Giới thiệu nhận dạng ký tự quang học Tesseract 2.1.1 Lịch sử 2.1.2 Kiến trúc hoạt động 2.1.3 Huấn luyện liệu tesseract 2.1.4 Quá trình huấn luyện ngôn ngữ font 2.2 Thư viện Opencv 10 2.2.1 Giới thiệu thư viện Opencv 10 2.2.2 Phiên opencv opencv 10 2.2.3 Cách tổ chức Opencv 14 2.3 Tiến trình nhận dạng sử dụng Tesseract OCR 15 2.3.1 Xác định dòng 15 2.3.2 Thiết lập dòng sở 15 2.3.3 Cắt nhỏ từ 15 2.3.4 Nhận dạng khoảng cách chữ số 15 2.3.5 Nhận dạng từ 16 2.4 Đánh giá độ xác nhận dạng Tesseract OCR 16 2.5 Công cụ ngôn ngữ sử dụng 17 2.5.1 Công cụ 17 2.5.2 Ngôn ngữ 17 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG VĂN BẢN TIẾNG VIỆT SỬ DỤNG THƯ VIỆN TESSERACT OCR 18 3.1 Phân tích hệ thống 18 3.1.1 Kiến trúc tổng thể chương trình 18 3.1.2 Các chức hệ thống 19 3.1.3 Biểu đồ use case 20 3.1.4 Biểu đồ trạng thái 22 3.2 Thiết kế hệ thống 24 3.2.1 Biểu đồ hoạt động 24 3.2.2 Biểu đồ trình tự 27 3.3 Thiết kế sở liệu 29 3.3.1 Cơ sở liệu logic 29 3.3.2 Cơ sở liệu vật lý 29 3.4 Demo giao diện chương trình 30 3.5 Một số thử nghiệm 31 3.5.1 Hình chữ viết tay 31 3.5.2 Hình chữ đánh máy 32 3.5.3 Hình ảnh tập tin ảnh có chữ tiếng việt 32 3.6 Cách sử dụng chương trình 33 KẾT LUẬN 34 TÀI LIỆU THAM KHẢO 35 DANH MỤC HÌNH ẢNH Hình 2.1 Ví dụ đường sở dạng cong 15 Hình 2.2 Ví dụ cắt ký tự bị dính 15 Hình 2.3 Quá trình nhận dạng từ 16 Hình 3.1 Biểu đồ kiến trúc tổng thể trình nhận dạng văn 18 Hình 3.2 Biểu đồ Use case tổng quát 20 Hình 3.3 Biểu đồ trạng thái chọn ảnh 22 Hình 3.4 Biểu đồ trạng thái xử lý ảnh 23 Hình 3.5 Biểu đồ hoạt động xác định dòng 24 Hình 3.6 Biểu đồ hoạt động cắt nhỏ từ 25 Hình 3.7 Biểu đồ hoạt động nhận dạng từ 26 Hình 3.8 Biểu đồ trình tự chọn ảnh 27 Hình 3.9 Biểu đồ trình tự lưu kết 28 Hình 3.10 Bảng tài khoản người dùng 29 Hình 3.11 Bảng kết sau 30 Hình 3.12 Giao diện hệ thống 30 Hình 3.13 Giao diện convert 31 Hình 3.16 Một ví dụ hình chứa chữ viết tay 31 Hình 3.17 Một ví dụ hình chứa chữ đánh máy 32 Hình 3.18 Một ví dụ hình dạng chữ tiếng việt 32 DANH MỤC BẢNG BIỂU Bảng 2.1 So sánh phần mềm thương mại Tesseract Bảng 2.2 Độ xác Tesseract số ngôn ngữ Bảng 3.1 Các chức hệ thống 19 Bảng 3.2 Mô tả use case 20 Bảng 3.3 Thực thể tài khoản 29 Bảng 3.4 Thực thể Kết 29 LIỆT KÊ CHỮ VIẾT TẮT Từ viết tắt OCR Tên tiếng Anh Optical Character Tên tiếng Việt Nhận dạng ký tự quang học Recognition OPENCV Open Source Computer Một thư viện mã nguồn mở phục vụ cho việc Vision nghiên cứu hay phát triển thị giác máy tính ML Machine learning Một lĩnh vực trí tuệ nhân tạo liên quan đến việc nghiên cứu xây dựng kĩ thuật cho phép hệ thống "học" tự động từ liệu để giải vấn đề cụ thể DANH MỤC KÝ HIỆU PHẦN TỬ KÝ HIỆU Ý NGHĨA Biểu đồ USE CASE Tác nhân (Actor) Use-case Mối quan hệ use case Một người / nhóm người thiết bị hệ thống tác động thao tác đến chương trình Biểu diễn chức xác định hệ thống Use case sử dụng lại chức use case Use case kế thừa chức từ use case Biểu đồ HOẠT ĐỘNG Hoạt động Mô tả hoạt động gồm tên hoạt động đặc tả Trạng thái khởi đầu Bắt đầu trạng thái hoạt động Trạng thái kết thúc Kết thúc trạng thái hoạt động Quyết định Mô tả lựa chọn điều kiện Entity class Mô hình hóa thông tin lưu trữ lâu dài hệ thống, thường độc lập với đối tượng khác xung quanh Procedure Là phương thức lớp mà đối tượng lớp gọi thực CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Quy trình chung hệ thống nhận dạng chữ Có nhiều phương pháp để tạo phần mềm dạng OCR, độ xác phương pháp phụ thuộc vào công nghệ tạo nên phần mềm Các phương pháp đạt độ tin cậy hình ảnh có chất lượng tốt vừa Độ xác việc rút trích văn điều quan trọng Nhóm tác giả Kirill Safronov cho số sai sót trình chuyển đổi thường không quan trọng trừ trường hợp rút trích số serial từ ảnh chụp, Để khắc phục tình trạng kết xuất không xác công nghệ OCR, nhiều công nghệ khác đời, tác giả A Vinutha M H ứng dụng định hướng robot (Optical Character Recognition Based Auto Navigation of Robot) Việc định hướng robot dựa vào bảng tính hiệu cột mốc đánh dấu đường robot Định hướng tự động robot vùng lớn đòi hỏi nhiều bảng tín hiệu khác với mô hình nhận dạng Ngoài ra, hệ thống cho phép nhận diện vị trí tên riêng Bên cạnh việc cải thiện độ xác, cần có thay đổi kích thước thiết bị nhận dạng, tác giả Ali Ahmadi đề cập nghiên cứu mình, tốc độ xử lý độ xác cao yêu cầu lớn thiết bị nhận dạng ký tự dạng nhỏ, ví dụ bút biết nhận dạng Nhưng dù có nhiều mặt hàng loại chào bán thị trường không đáp ứng nhu cầu sử dụng kích thước thiết bị Ngoài đa dạng cách thức nhận dạng, OCR đa dạng cách dùng, chia thành hai cách, dùng online dùng offline, có nhận xét hai cách dùng sau: (1) Nhận dạng offline: nhận dạng văn in giấy viết tay đòi hỏi trình scan mặt giấy mặt vật liệu có chữ Cách thường đòi hỏi người phải thực số thao tác phân loại, lưu trữ chỉnh sửa văn trước scan (2) Nhận dạng online: thường dùng cho nhận dạng chữ viết tay lưu trữ dạng kỹ thuật số, thông thường để scan dạng thường dùng loại bút đặc biệt thành công nghiên cứu gần mà có thiết bị khác thay Việc nhận dạng online nhằm giúp người giao tiếp với máy tính tốt cách viết tay thay gõ phím Trong báo này, tìm hiểu công cụ OCR điển hình tảng quan trọng, Tesseract Bắt đầu xử lý ảnh Bắt đầu xử l ý ảnh Lưu kết Lưu Đặc tả Use Case  Đặc tả use case “Chọn ảnh”: o Tóm tắt: Khi người dùng chọn “Chọn ảnh” giao diện o Dòng kiện: - Người chơi chọn ảnh - Kết thúc use case o Trạng thái hệ thống bắt đầu thực use case - Load vào thư viện để chọn ảnh o Trạng thái hệ thống sau thực use case - Ảnh chọn xong  Đặc tả use case “Xử lý”: o Tóm tắt: Người dùng chọn vào “Xử lý” giao diện o Dòng kiện: - Người dùng chọn xử lý ảnh đầu vào - Hệ thống xử lý - Kết thúc use case o Trạng thái hệ thống bắt đầu thực use case - Hệ thống lấy ảnh người dùng vừa chọn kiểm tra o Trạng thái hệ thống sau thực use case: - Ảnh xử lý  Đặc tả use case “Thoát”: o Tóm tắt: Khi người chơi bấm nút “Thoát” giao diện o Dòng kiện: - Người chơi bấm nút Thoát giao diện Menu - Kết thúc use case o Trạng thái hệ thống bắt đầu use case: - Khi trò chơi giao diện Menu o Trạng thái hệ thống sau thực use case: 21 - Thoát chương trình 3.1.4 Biểu đồ trạng thái Hình 3.3 Biểu đồ trạng thái chọn ảnh 22 Hình 3.4 Biểu đồ trạng thái xử lý ảnh 23 3.2 Thiết kế hệ thống 3.2.1 Biểu đồ hoạt động Hình 3.5 Biểu đồ hoạt động xác định dòng 24 Hình 3.6 Biểu đồ hoạt động cắt nhỏ từ 25 Hình 3.7 Biểu đồ hoạt động nhận dạng từ 26 3.2.2 Biểu đồ trình tự Hình 3.8 Biểu đồ trình tự chọn ảnh 27 Hình 3.9 Biểu đồ trình tự lưu kết 28 3.3 Thiết kế sở liệu 3.3.1 Cơ sở liệu logic Bảng 3.3 Thực thể tài khoản Thực thể Tài khoản Tên thuộc tính Mô tả Kiểu liệu Kích thước User Tên đăng nhập int Pass Mật nvarchar 50 Name Tên người dùng nvarchar 50 Bảng 3.4 Thực thể Kết Thực thể Kết Tên thuộc tính Mô tả Kiểu liệu ID Mã kết Input Ảnh đầu vào Image Output Ảnh đầu Image Result Kết Kích thước int Text 3.3.2 Cơ sở liệu vật lý Hình 3.10 Bảng tài khoản người dùng 29 Hình 3.11 Bảng kết sau 3.4 Demo giao diện chương trình Hình 3.12 Giao diện hệ thống 30 Hình 3.13 Giao diện convert 3.5 Một số thử nghiệm Chúng tiến hành thử nghiệm ba loại hình ảnh: Hình chụp từ chữ viết tay, hình chụp từ chữ đánh máy hình từ tập tin pdf 3.5.1 Hình chữ viết tay Hình 3.14 Một ví dụ hình chứa chữ viết tay - Kết quả: )[...]... miễn phí (mã nguồn mở) Bảng 2.1 So sánh phần mềm thương mại và Tesseract Vì Tesseract hiện nay là bộ thư viện mã nguồn mở hoàn toàn miễn phí nên trên thế giới đã có nhiều phần mềm nhận dạng ký tự quang học ra đời dựa trên bộ Tesseract với giao diện và các tính năng dễ sử dụng hơn so với giao diện đơn giản của Tesseract ban đầu như: VietOCR cho nhận dạng tiếng Việt, Tessenet2 bộ nhận diện Tesseract. .. HIỂU HỆ THỐNG MÃ NGUỒN MỞ TESSERACT OCR 2.1 Giới thiệu về bộ nhận dạng ký tự quang học Tesseract Nhận dạng ký tự quang học (tên tiếng anh là Optical Character Recognition – OCR) là kỹ thuật được sử dụng để chuyển đổi ảnh văn bản sang dạng văn bản có thể chỉnh sửa trong máy tính Đầu vào của quá trình này là tập tin hình ảnh và đầu ra sẽ là các tập tin văn bản chứa nội dung là các chữ viết, ký hiệu có trong... Tập tin cuối cùng trước khi thực hiện việc huấn luyện là tập tin ảnh dạng tif  Tạo các tập tin dạng hộp box: Một dạng tập tin để Tesseract có thể huấn luyện dựa trên các dữ liệu hình ảnh đã có bước đầu là tập tin dạng hộp – box Tập tin dạng hộp là tập tin văn bản chứa 1 dãy các ký tự tuần tự từ đầu đến cuối trong tập tin hình ảnh, mỗi hàng chứa thông tin của 1 ký tự, tọa độ và đường bao quanh ký tự. .. sửa tập tin dạng hộp để kiểm tra lại và chỉnh sửa lại các thông số của từng ký tự cho khớp với văn bản ban đầu trong tập tin ảnh huấn luyện Ở đây nhóm em dùng phần mềm jTextBoxEditor để chỉnh sửa trực tiếp tập tin dạng hộp  Sau khi kiểm tra và chỉnh sửa lại các ký tự cho chính xác trong tập tin dạng hộp thì thực hiện lệnh tiếp theo: Nếu thành công thì tại giai đoạn này, Tesseract sẽ phát sinh ra tập. .. Kết quả thử nghiệm bước đầu cho thấy công cụ này rút trích khá tốt các văn bản từ tập tin hình ảnh chứa văn bản được đánh máy 1.3 Phạm vi nghiên cứu và phạm vi ứng dụng  Phạm vi nghiên cứu: Tự nghiên cứu  Phạm vi ứng dụng: Trong nhận dạng 1.4 Đối tượng sử dụng Tất cả mọi người 1.5 Yêu cầu phần cứng, phần mềm  Phần cứng: Window  Phần mềm: Microsoft Visual Studio 2010 1.6 Yêu cầu giao diện và chức... năm 2005, HP đã chuyển Tesseract sang mã nguồn mở và được hãng Google tài trợ Tesseract cho đến nay vẫn được nhiều nhà phát triển cộng tác và tiếp tục hoàn thiện Phiên bản mới nhất của bộ nhận dạng Tesseract là phiên bản 3.0.1 3 Phần mềm thương mại Bộ nhận dạng Tesseract Hỗ trợ hơn 100 ngôn ngữ Hỗ trợ trên 40 ngôn ngữ và đang tăng dần Có giao diện đồ họa Không hỗ trợ giao diện đồ họa (dùng Command Line... quét dạng phẳng của hãng dưới dạng các add-on phần cứng hoặc phần mềm Nhưng thực tế dự án này đã thất bại ngay từ trong trứng nước vì nó chỉ làm việc hiệu quả trên các tài liệu in có chất lượng tốt Sau đó, dự án này cùng với sự cộng tác của bộ phận máy quét HP ở bang Colorado đã đạt được một bước tiến quan trọng về độ chuẩn xác khi nhận dạng và vượt lên nhiều bộ nhận dạng OCR thời đó nhưng dự án đã... Mode cung cấp độ nhận dạng tốt hơn cho những hình ảnh có độ phân giải thấp, chẳng hạn như ảnh in màn hình, bằng cách rescaling chúng tới 300 DPI 2.5 Công cụ và ngôn ngữ sử dụng 2.5.1 Công cụ Visual studio 2.5.2 Ngôn ngữ C# 17 CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG VĂN BẢN TIẾNG VIỆT SỬ DỤNG THƯ VIỆN TESSERACT OCR 3.1 Phân tích hệ thống Mô hình tổng thể hệ thống xác định người sử dụng của hệ thống... nhất Spline có lợi thế là tính toán ổn định, nhược điểm là sự gián đoạn có thể xảy ra khi nhiều phân đoạn spline được yêu cầu Hình 2.1 Ví dụ về một đường cơ sở dạng cong 2.3.3 Cắt nhỏ từ Tesseract sẽ xác định xem có các ký tự dính với nhau trong một từ hay không Nếu có nó sẽ cắt nhỏ các ký tự ra thành các ký tự riêng lẻ Hình 2.2 Ví dụ về cắt các ký tự bị dính 2.3.4 Nhận dạng khoảng cách giữa chữ hoặc... bản của Tesseract đã có thể nhận diện các ngôn ngữ khác ngoài hệ Latinh như tiếng Trung, tiếng Nhật và tương thích với các ký tự trong bảng mã UTF-8 Việc nhận dạng các ngôn ngữ mới trên Tesseract có thể thực hiện được nhờ vào việc huấn luyện dữ liệu Từ phiên bản 3.0 trở đi, Tesseract đã có thể hỗ trợ thêm nhiều dạng ngôn ngữ mới và mở rộng thêm việc huấn luyện theo font chữ Bởi vì ban đầu, bộ Tesseract

Ngày đăng: 26/05/2016, 15:59

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan