Báo Cáo Đồ Án Cơ Sở 5 Nhận Dạng Văn Bản Bằng Hình Ảnh.docx

27 4 0
Báo Cáo Đồ Án Cơ Sở 5 Nhận Dạng Văn Bản Bằng Hình Ảnh.docx

Đ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

Nhận dạng văn bản từ hình ảnh Đồ án cơ sở 5 ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ 5 NHẬN DẠNG VĂN BẢN BẰNG HÌNH ẢNH 5 LỜI MỞ ĐẦU Hiện nay, nhu cầu về[.]

ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ NHẬN DẠNG VĂN BẢN BẰNG HÌNH ẢNH 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 nhận dạng, trích xuất đoạn văn bản, ký tự có hình ảnh Cơng nghệ mang lại nhiều tiện ích cho người dùng: cho phép người dùng quét nhanh bảng hiệu, biển dẫn dịch nhanh văn hình ảnh, ngồi cịn thể trích xuất văn nhanh để lưu lại mà không cần nhập lại văn Với lợi ích trên, với đam mê, trao dồi kỹ năng, tri thức, em định chọn đề tài: “Nhận dạng văn từ hình ảnh” để làm đề tài Đồ án sở Nội dung đề tài gồm chương: Chương 1: Tổng quan đề tài Chương : Cơ sở lý thuyết Chương : Thực nghiệm đánh giá kết Chương : Kết luận hướng phát triển LỜI CẢM ƠN Trước tiên chúng em xin gửi lời cảm ơn chân thành sâu sắc tới thầy cô giáo Đại học công nghệ thông tin truyền thơng Việt Hàn tận tình giảng dạy, truyền đạt cho em kiến thức, kinh nghiệm quý báu suốt thời gian qua Đặc biệt em xin gửi lời cảm ơn đến thầy giáo Nguyễn Văn Bình tận tình giúp đỡ, trực tiếp bảo, hướng dẫn chúng em suốt trình thực Đồ án sở Trong thời gian làm việc, em khơng ngừng tiếp thu thêm nhiều kiến thức bổ ích mà học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, điều cần thiết cho em trình học tập cơng tác sau Sau xin gửi lời cảm ơn chân thành tới gia đình, bạn bè động viên, đóng góp ý kiến giúp đỡ chúng em trình học tập, nghiên cứu hoàn thành báo cáo Một lần nữa, chúng em xin chân thành cảm ơn ! MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI .8 GIỚI THIỆU ĐỀ TÀI 1.1 Tên đề tài 1.2 Lý chọn đề tài .8 1.3 Nội dung tổng quan 1.4 Mục đích TỔNG QUAN VỀ XỬ LÝ ẢNH .8 2.1 Giới thiệu xử lý ảnh 2.2 Các bước xử lý ảnh LẬP TRÌNH PYTHON 13 3.1 Ngơn ngữ lập trình Python 13 3.2 Các thư viện Python .13 a) Numpy 13 b) OpenCV .13 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 16 CHƯƠNG THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 24 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 27 Kết luận 27 Đánh giá nhận xét 27 Hướng phát triển 27 MỤC LỤC HÌNH ẢNH 1.1 Các bước xử lý ảnh 1.2 Kỹ thuật xử lý ảnh 10 2.1 Ví dụ đường sở dạng cong 19 2.2 Ví dụ cắt ký tự bị dính 20 2.3 Quá trình nhận dạng từ .20 3.1 Biểu đồ Usecase 22 3.2 Giao diện chương trình 23 3.3 Hình Image trước sau nhận dạng 24 3.4 Hình Image trước sau nhận dạng 24 MỤC LỤC BẢNG 10 CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI GIỚI THIỆU ĐỀ TÀI 1.1 Tên đề tài Đề tài: NHẬN DẠNG VĂN BẢN TỪ HÌNH ẢNH 1.2 Lý chọn đề tài Nhận dạng văn từ hình ảnh tác vụ cần thiết thời đại cơng nghệ Nó giúp nhân 1.3 Nội dung tổng quan  Tìm hiểu xử lý ảnh kiến thức liên quan  Tìm hiểu cơng nghệ nhận dạng nói chung nhận dạng văn nói riêng  Tạo chương trình mẫu thực hành nhận dạng văn từ hình ảnh 1.4 Mục đích  Ơn tập thực hành kiến thức xử lý ảnh  Nâng cao kỹ lập trình ngơn ngữ Python  Tìm hiểu cơng nghệ nhận dạng văn hình ảnh TỔNG QUAN VỀ XỬ LÝ ẢNH 2.1 Giới thiệu xử lý ảnh Xử lý ảnh phân ngành xử lý số tín hiệu với tín hiệu xử lý ảnh Đây phân ngành khoa học phát triển năm gần Xử lý ảnh gồm lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh truy vấn ảnh Sự phát triển xử lý ảnh đem lại nhiều lợi ích cho sống người Ngày xử lý ảnh áp dụng rộng rãi đời sống như: photoshop, nén ảnh, nén video, nhận dạng biển số xe, nhận dạng khuôn mặt, nhận dạng chữ viết, xử lý ảnh thiên văn, ảnh y tế, 2.2 Các bước xử lý ảnh 11 1.1 Các bước xử lý ảnh a) Phần thu nhận ảnh (Image Acquisition) Qua camera (tương tự, số) - Từ vệ tinh qua cảm ứng (Sensors) - Qua máy quét ảnh (Scaners) Các thiết bị thu nhận cho ảnh đen trắng Các thiết bị thu nhận ảnh có loại ứng với loại ảnh thơng dụng Raster, Vector Nhìn chung hệ thống thu nhận ảnh thực q trình • Cảm biến: biến đổi lượng quang học thành lượng điện • Tổng hợp lượng điện thành ảnh b) Tiền xử lý (Image Preprocessing) Sau thu nhận, ảnh bị nhiễu ,mờ , không sắc nétnên cần đưa vào tiền xử lý để nâng cao chất lượng Chức tiền xử lý lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét c) Phân đoạn (Segmentation) hay phân vùng ảnh Phân vùng ảnh tách ảnh đầu vào thành vùng thành phần để biểu diễn phân tích, nhận dạng ảnh Ví dụ: để nhận dạng chữ (hoặc mã vạch) 12 phong bì thư cho mục đích phân loại phẩm, cần chia câu, chữ địa tên người thành từ, chữ, số (hoặc vạch) riêng biệt để nhận dạng Đây phần phức tạp khó khăn xử lý ảnh dễ gây lỗi, làm độ xác ảnh Kết nhận dạng ảnh phụ thuộc nhiều vào công đoạn d) Biểu diễn ảnh (Image Representation) Ảnh máy tính kết thu nhận theo phương pháp số hoá nhúng thiết bị kỹ thuật khác Quá trình lưu trữ ảnh nhằm mục đích: • Tiết kiệm nhớ • Giảm thời gian xử lý Việc lưu trữ thông tin nhớ có ảnh hưởng lớn đến việc hiển thị, in ấn xử lý ảnh xem tập hợp điểm với kích thước sử dụng nhiều điểm ảnh ảnh đẹp, mịn thể rõ chi tiết ảnh người ta gọi đặc điểm độ phân giải Việc lựa chọn độ phân giải thích hợp tuỳ thuộc vào nhu cầu sử dụng đặc trưng ảnh cụ thể, sở ảnh thường biểu diễn theo mơ hình e) Nhận dạng nội suy ảnh (Image Recognition and Interpretation) Nhận dạng ảnh trình xác định ảnh Quá trình thường thu cách so sánh với mẫu chuẩn học (hoặc lưu) từ trước Nội suy phán đoán theo ý nghĩa sở nhận dạng Có nhiều cách phân loai ảnh khác ảnh Theo lý thuyết nhận dạng, mơ hình tốn học ảnh phân theo hai loại nhận dạng ảnh bản: - Nhận dạng theo tham số - Nhận dạng theo cấu trúc 13 Một số đối tượng nhận dạng phổ biến áp dụng khoa học công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người… f) Cơ sở tri thức (Knowledge Base) Như nói trên, ảnh đối tượng phức tạp đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý phân tích ảnh ngồi việc đơn giản hóa phương pháp tốn học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận xử lý ảnh theo cách người Trong bước xử lý đó, nhiều khâu xử lý theo phương pháp trí tuệ người Vì vậy, sở tri thức phát huy g) Mơ tả (biểu diễn ảnh) Từ Hình 1.1, ảnh sau số hoá lưu vào nhớ, chuyển sang khâu để phân tích Nếu lưu trữ ảnh trực tiếp từ ảnh thô, địi hỏi dung lượng nhớ cực lớn khơng hiệu theo quan điểm ứng dụng công nghệ Thơng thường, ảnh thơ đặc tả (biểu diễn) lại (hay đơn giản mã hoá) theo đặc điểm ảnh gọi đặc trưng ảnh (Image Features) như: biên ảnh (Boundary/Egde), vùng ảnh (Region) Một số phương pháp biểu diễn thường dùng: • Biểu diễn mã chạy (Run-Length Code) • Biểu diễn mã xích (Chaine -Code) • Biểu diễn mã tứ phân (Quad-Tree Code) 2.3 Khái niệm vấn đề xử lý ảnh a) Điểm ảnh 14 3.2 Các thư viện Python a) Numpy Numpy thư viện lõi phục vụ cho khoa học máy tính Python, hỗ trợ cho việc tính tốn mảng nhiều chiều, có kích thước lớn với hàm tối ưu áp dụng lên mảng nhiều chiều Numpy đặc biệt hữu ích thực hàm liên quan tới Đại Số Tuyến Tính Một mảng numpy lưới giá trị, tất giá trị có dùng kiểu giá trị, lập mục số nguyên không âm, số chiều gọi rank mảng Numpy, shape tuple số nguyên đưa kích thước mảng theo chiều b) OpenCV OpenCV viết tắt cho Open Source Computer Vision Library OpenCV thư viện nguồn mở hàng đầu cho Computer Vision Machine Learning, có thêm tính tăng tốc GPU cho hoạt động theo real-time OpenCV phát hành theo giấy phép BSD, miễn phí cho học tập sử dụng với mục đích thương mại Nó có giao diện C++, C, Python Java hỗ trợ Windows, Linux, Mac OS, iOS Android OpenCV thiết kế để hỗ trợ hiệu tính tốn chun dùng cho ứng dụng real-time (thời gian thực) Nếu viết C/C++ tối ưu, thư viện tận dụng xử lý đa lõi (multi-core processing) OpenCV có cấu trúc module, nghĩa gói bao gồm số thư viện liên kết tĩnh thư viện liên kết động Một số định nghĩa chi tiết module phổ biến có sẵn sau:  Core functionality (core) – module nhỏ gọn để xác định cấu trúc liệu bản, bao gồm mảng đa chiều dày đặc nhiều chức sử dụng tất module khác  Image Processing (imgproc) – module xử lý hình ảnh gồm lọc hình ảnh tuyến tính phi tuyến (linear and non-linear image filtering), phép biến 17        đổi hình học (chỉnh size, afin warp phối cảnh, ánh xạ lại dựa bảng chung), chuyển đổi không gian màu, biểu đồ, nhiều khác Video Analysis (video) – module phân tích video bao gồm tính ước tính chuyển động, tách nền, thuật toán theo dõi vật thể Camera Calibration and 3D Reconstruction (calib3d) – thuật toán hình học đa chiều bản, hiệu chuẩn máy ảnh single stereo (single and stereo camera calibration), dự đoán kiểu dáng đối tượng (object pose estimation), thuật toán thư tín âm (stereo correspondence algorithms) yếu tố tái tạo 3D 2D Features Framework (features2d) – phát đặc tính bật nhận diện, truy xuất thông số, thông số đối chọi Object Detection (objdetect) – phát đối tượng mô hàm định nghĩa sẵn – predefined classes (vd: khuôn mặt, mắt, cốc, người, xe hơi,…) High-level GUI (highgui) – giao diện dễ dùng để thực việc giao tiếp UI đơn giản Video I/O (videoio) – giao diện dễ dùng để thu mã hóa video GPU – Các thuật tốn tăng tốc GPU từ modun OpenCV khác.c) 18 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BỘ NHẬN DẠNG KÝ TỰ QUANG HỌC TESSERACT 1.1 Tesseract 1.2 Kiến trúc hoạt động Đầu tiên, nhận diện Tesseract nhận đầu vào ảnh màu ảnh mức xám Ảnh chuyển đến phận phân tích ngưỡng thích ứng (adaptive thresholding) ảnh nhị phân Vì trước HP phát triển phận phân tích bố cục trang nên Tesseract khơng cần phải có thành phần thừa hưởng từ HP Vì mà Tesseract nhận đầu vào ảnh nhị phân với vùng đa giác tùy chọn xác định Ban đầu, Tesseract thiết kế làm việc ảnh nhị phân sau chương trình cải tiến để nhận dạng ảnh màu ảnh mức xám Chính mà cần phận phân tích ngưỡng thích ứng để chuyển đổi ảnh màu / ảnh mức xám sang ảnh nhị phân Sau q trình nhận dạng thực theo bước • Bước phân tích thành phần liên thông Kết bước tạo đường bao quanh ký tự • Bước thứ hai tìm hàng tìm từ, kết bước giống bước tạo vùng bao quanh hàng chữ ký tự chứa vùng văn • Bước nhận dạng từ Công đoạn nhận dạng từ xử lý qua giai đoạn Giai đoạn đầu nhận dạng từ theo lượt Các từ thỏa yêu cầu giai đoạn chuyển sang phân loại thích ứng (adaptive classifier) để làm liệu huấn luyện Chính nhờ mà phân loại thích ứng có khả nhận diện xác phần sau trang Sau phân loại thích ứng học thơng tin có ích từ giai đoạn đầu nhận dạng phần trang giai đoạn thứ việc nhận dạng thực Giai đoạn qt hết tồn trang, từ khơng nhận diện 19 xác giai đoạn đầu nhận diện lại lần Cuối nhận diện tổng hợp lại thông tin cho kết nhận diện hoàn chỉnh 1.3 Huấn luyện liệu tesseract Tesseract ban đầu thiết kế để nhận dạng từ tiếng Anh ngôn ngữ hệ Latinh Sau này, nhờ cố gắng nhiều nhà phát triển mà phiên Tesseract nhận diện ngơn ngữ khác hệ Latinh tiếng Trung, tiếng Nhật tương thích với ký tự bảng mã UTF-8 Việc nhận dạng ngơn ngữ Tesseract thực nhờ vào việc huấn luyện liệu Từ phiên 3.0 trở đi, Tesseract hỗ trợ thêm nhiều dạng ngôn ngữ mở rộng thêm việc huấn luyện theo font chữ Bởi ban đầu, Tesseract huấn luyện để nhận diện từ xác số loại font mặc định, sử dụng font chữ khác để nhận diện kết khơng có độ xác cao làm việc với loại font cài đặt sẵn liệu huấn luyện Để thực trình huấn luyện ta phải sử dụng cơng cụ có sẵn Tesseract Mặc định luận văn này, sử dụng công cụ Tesseract 3.01 cho việc thực huấn luyện ngôn ngữ font Để huấn luyện liệu Tesseract (hoặc ngôn ngữ mới) ta cần tập tập tin liệu chứa thư mục tessdata, sau kết hợp tập tin thành tập tin Các tập tin có thư mục tessdata có quy tắc đặt tên theo dạng: tên_ngơn_ngữ.tên_tập tin Ví dụ tập tin cần thiết thực việc huấn luyện tiếng Anh: tessdata/eng.config tessdata/eng.unicharset: Tập ký tự ngôn ngữ huấn luyện tessdata/eng.unicharambigs tessdata/eng.inttemp: Danh mục cho tập hợp ký tự tessdata/eng.pffmtable: Tập tin dạng hộp – sử dụng để xác định ký tự có tập tin huấn luyện  tessdata/eng.normproto: Như tập tin pffmtable      20      tessdata/eng.punc-dawg tessdata/eng.number-dawg tessdata/eng.freq-dawg: Danh sách từ tổng quát tessdata/eng.word-dawg: Danh sách từ thông thường tessdata/eng.user-word: Danh sách từ người dùng (tùy chọn có khơng) Bước cuối tổng hợp liệu từ bước phát sinh tập tin liệu có dạng:  tessdata/eng.traineddata Các tập tin cần thiết cho việc huấn luyện liệu phát sinh ta sử dụng cơng cụ có sẵn để qua q trình huấn luyện Tổng hợp lại ta có: Sinh hình ảnh huấn luyện 2.Tạo tập tin *.box 3.Bắt đầu chạy huấn luyện Tesseract 4.Clustering (tập hợp lại) 5.Thêm liệu từ điển (tùy biến) 6.Tổ hợp kết lại với nhau: Trong việc ứng dụng Tesseract enginer cho nhận dạng ký hiệu toán học, thực chất vấn đề khó khăn nằm khâu huấn luyện vấn đề lập trình tích hợp phần mềm 1.4 Q trình huấn luyện ngơn ngữ font Để trải qua q trình huấn luyện ngơn ngữ loại font Tesseract ta cần thực thông qua giai đoạn sau: 21  Phát sinh tập tin hình ảnh cho việc huấn luyện: Đây bước nhầm xác định tập ký tự sử dụng việc huấn luyện Trước hết ta cần chuẩn bị sẵn tập tin văn chứa liệu huấn luyện (trường hợp cụ thể đoạn văn bản) Việc tạo tập tin huấn luyện cần theo quy tắc sau:  Bảo đảm số lần xuất ký tự mẫu từ khoảng đến 10 lần cho ký tự  Nên có nhiều mẫu cho từ xuất thường xuyên, 20 lần  Các liệu huấn luyện nên chia theo kiểu font, tập tin huấn luyện nên chứa loại font huấn luyện nhiều loại font cho nhiều tập tin Không nên kết hợp nhiều loại font riêng tập tin huấn luyện  Sau chuẩn bị mẫu văn dùng cho việc huấn luyện ta cần phát sinh ảnh từ tập tin Dùng phần mềm để chuyển tập tin mẫu văn sang dạng tập tin ảnh in mẫu văn sau quét thành tập tin hình ảnh dạng tif với độ phân giải 300dpi Tập tin cuối trước thực việc huấn luyện tập tin ảnh dạng tif  Tạo tập tin dạng hộp box: Một dạng tập tin để Tesseract huấn luyện dựa liệu hình ảnh có bước đầu tập tin dạng hộp – box Tập tin dạng hộp tập tin văn chứa dãy ký tự từ đầu đến cuối tập tin hình ảnh, hàng chứa thông tin ký tự, tọa độ đường bao quanh ký tự tập tin ảnh Để tạo tập tin dạng hộp ta dùng cách gõ lệnh (trên Windows CMD Linux Terminal) sau (yêu cầu người dùng phải cài đặt cơng cụ Tesseract để chạy lệnh này): Sau thực câu lệnh ta tạo tập tin dạng hộp box  Chạy cơng cụ Tesseract máy tính để thực việc huấn luyện liệu Sau tập tin box cần trình chỉnh sửa tập tin dạng hộp để kiểm tra lại chỉnh sửa lại thông số ký tự cho 22 khớp với văn ban đầu tập tin ảnh huấn luyện Ở 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 kiểm tra chỉnh sửa lại ký tự cho xác tập tin dạng hộp thực lệnh tiếp theo: Nếu thành cơng giai đoạn này, Tesseract phát sinh tập tin tr  Ước lượng tập ký tự ngôn ngữ cần huấn luyện: Tesseract cần biết hết tập ký tự xuất liệu Sau thực hiện, tập tin unicharset tạo  Xác định kiểu font liệu (từ phiên 3.0.1 trở đi): Đây tính có từ phiên Tesseract 3.0.1 trở Với tính người dùng huấn luyện liệu với nhiều loại font khác thay dùng font mặc định sẵn phiên trước Ta cần tạo tập tin font_properties để quy định thông số kiểu font ta sử dụng mẫu văn huấn luyện Cấu trúc tập tin font_properties hàng chứa tên loại font huấn luyện đặc tính font đó: (đánh dấu có thuộc tính bit khơng có dùng bit 0) Ví dụ cấu trúc tập tin font_properties với liệu huấn luyện tiếng Anh:  Gom nhóm liệu: Tại giai đoạn đường nét khung ký tự rút trích cần gom nhóm lại liệu ban đầu để tạo mẫu thử (prototype) Hình dạng, đường nét ký tự gom nhóm lại nhờ vào chương trình mftraining cntraining có sẵn công cụ Tesseract: Với lệnh mftraining tạo tập tin liệu: inttemp (chứa hình dạng mẫu), pffmtable Microfeat sử dụng) Cuối dùng cơng cụ cntraining tạo tập tin liệu normproto 23  Tạo tập tin unicharambigs  Kết hợp tập tin lại tạo thành tập tin huấn luyện liệu: Cuối sau có đủ tập tin huấn luyện cần thiết (inttemp, pffmtable, normproto, Microfeat) ta đổi tên tập tin lại cho dạng với tiền tố lang trước tên tập tin với lang ký tự đại diện cho ngôn ngữ huấn luyện theo chuẩn ISO 639-2 Kết tạo tập tin lang.trainedata Bỏ tập tin vào thưc mục tessdata Tesseract Tesseract nhận diện ngôn ngữ font chữ (theo lý thuyết) TIẾN TRÌNH NHẬN DẠNG SỬ DỤNG TESSERACT OCR 2.1 Xác định dịng Mục đích bước nhận dạng dịng hình ảnh bị nghiêng, giúp giảm thông tin nhận dạng ảnh nghiêng Các phận quan trọng trình lọc dãy màu (còn gọi blobs) xây dựng dòng Bước giúp loại bỏ văn có dropcap 2.2 Thiết lập dịng sở Khi dịng văn tìm thấy, dịng sở thiết lập xác cách sử dụng đường có tên spline tồn phương (là dịng mà kết hợp từ nhiều đoạn) Nó giúp Tesseract xử lý trang có đường sở đường cong Các dòng sở thiết lập cách phân vùng blobs thành nhóm thay thích hợp liên tục đường sở thẳng ban đầu Một spline toàn phương thiết lập cho phân vùng dày đặc nhất, (giả định đường sở) hình có phương Spline có lợi tính tốn ổn định, nhược điểm gián đoạn xảy nhiều phân đoạn spline yêu cầu 2.3 Ví dụ đường sở dạng cong 24

Ngày đăng: 12/06/2023, 14:20

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

Tài liệu liên quan