Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 92 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
92
Dung lượng
2,51 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TÊN ĐỀ TÀI: NGHIÊN CỨU XÂY DỰNG VÀ PHÁT TRIỂN CÁC THUẬT TOÁN NHẬN DẠNG CHỮ VIẾT TAY Chuyên ngành: Kỹ thuật Điện tử LUẬN VĂN THẠC SĨ KỸ THUẬT Học viên: Nguyễn Duy Minh Người hướng dẫn: TS Nguyễn Hữu Phát HÀ NỘI - 2018 MỤC LỤC Lời cam đoan Danh mục ký hiệu, chữ viết tắt Danh mục bảng Danh mục hình vẽ, đồ thị MỞ ĐẦU CHƯƠNG 1: GIỚI THIỆU 10 1.1 Mục tiêu .10 1.2 Thách thức 10 1.3 Thực trạng triển khai 10 1.4 Cấu trúc luận văn .11 CHƯƠNG 2: TỔNG QUAN VỀ NHẬN DẠNG NÓI CHUNG 12 2.1 Giới thiệu nhận dạng nói chung 12 2.1.1 Nhận dạng mẫu 12 2.1.2 Quy trình nhận dạng mẫu 14 2.1.3 So sánh phương thức phân loại 20 2.2 Giới thiệu nhận dạng chữ viết tay 21 2.2.1 Nhận dạng chữ in 24 2.2.2 Nhận dạng chữ viết tay 25 2.3 Các ứng dụng dựa nhận dạng chữ viết tay 27 2.4 Kết luận chương 30 CHƯƠNG 3: THUẬT TOÁN NHẬN DẠNG CHỮ VIẾT TAY 31 3.1 Tiền xử lý ảnh 31 3.1.1 Chuyển ảnh màu sang ảnh xám 32 3.1.2 Làm mờ ảnh .33 3.1.3 Lọc ảnh sau làm mờ 35 3.1.4 Nhị phân hóa .37 3.1.5 Lọc ảnh sau nhị phân 38 3.2 Phân tách từ ngữ thành chữ riêng rẽ 39 3.3 Thuật toán nhận dạng chữ riêng rẽ 42 3.3.1 Chuẩn hóa ảnh 42 3.3.2 Trung tâm hóa đối tượng ảnh 42 3.3.3 Nhận dạng chữ 44 3.4 Kết luận chương 58 CHƯƠNG 4: MÔ PHỎNG ĐÁNH GIÁ KẾT QUẢ 59 4.1 Thiết lập .59 4.1.1 Xây dựng chương trình .59 4.1.2 Lấy mẫu chữ viết tay 65 4.2 Kết mô 68 4.3 Nhận xét đánh giá kết mô 72 4.4 Kết luận chương 73 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 74 TÀI LIỆU THAM KHẢO 75 PHỤ LỤC 77 Lời cam đoan Tôi xin cam đoan kết nghiên cứu luận văn riêng chưa công bố cơng trình nghiên cứu Hà nội, ngày 03 tháng 03 năm 2018 Học viên Nguyễn Duy Minh Danh mục ký hiệu, chữ viết tắt Số thứ tự Ký hiệu, viết tắt Tên đầy đủ Giải thích SVM Support Vector Machine Máy vector hỗ trợ ART Adaptive Resonance Lý thuyết cộng hưởng Theory thích nghi Fuzzy Invariant Vector Vector bất biến mờ FIV Danh mục bảng Bảng 2-1: So sánh phương pháp phân loại 21 Bảng 4-1: Kịch chạy chương trình đánh giá tham số số lượng nơ-ron lớp ấn 69 Bảng 4-2: Kết đánh giá số nơ-ron lớp ẩn sau 10 lần chạy 69 Bảng 4-3: Kịch chạy chương trình đánh giá tham số hệ số học .70 Bảng 4-4: Kết đánh giá hệ số học qua 10 lần chạy 70 Bảng 4-5: Kịch chạy chương trình đánh giá kích thước đợt đầu vào 71 Bảng 4-6: Kết đánh giá kích thước đợt đầu vào sau 10 lần chạy 71 Danh mục hình vẽ, đồ thị Hình 2-1: Quy trình nhận dạng mẫu ảnh 12 Hình 2-2: a) Ảnh gốc b) Phân tách dựa lượng Fermi c) Phân tách sử dụng phương thức Otsu d) Phân tách sử dụng thuật tốn k-means [6] 15 Hình 2-3: Các đặc trưng kịch ngôn ngữ [11] 23 Hình 2-4: Các phân vùng nhận dạng chữ [15] 24 Hình 2-5: Quy trình số hóa tài liệu [16] 28 Hình 2-6: Ứng dụng Handwritting Input Google [ảnh: Google] 28 Hình 2-7: Ứng dụng Smart Select Samsung (gọi điện nhanh tới số viết tay) .29 Hình 3-1: Ví dụ ảnh thô đầu vào 32 Hình 3-2: Sơ đồ bước tiền xử lý ảnh 32 Hình 3-3: Số chiều ảnh giảm chuyển đổi sang ảnh xám 33 Hình 3-4: So sánh ảnh gốc ảnh xám (a) ảnh gốc b) ảnh xám) 33 Hình 3-5: Đồ thị hàm Gaussian 34 Hình 3-6: So sánh làm mờ Gaussian làm mờ trung bình 35 Hình 3-7:Mơ tả biến đổi hình thái học: a) ảnh gốc b) ảnh qua phép xói mịn c) ảnh qua phép trương nở [14] 36 Hình 3-8: Tác dụng hàm opening [14] 36 Hình 3-9: Sử dụng hàm opening đề tài (a) ảnh sau làm mờ Gausian b) ảnh sau opening) 37 Hình 3-10: Hoạt động thuật toán Otsu [14] .38 Hình 3-11: Áp dụng thuật tốn Otsu vào đề tài .38 Hình 3-12: Tác dụng hàm closing [14] 39 Hình 3-13: Áp dụng hàm closing vào đề tài 39 Hình 3-14: Mơ tả đường khung viền bao quanh chữ ảnh 41 Hình 3-15: Các chữ tách thành ảnh riêng biệt 41 Hình 3-16: Co ảnh kích thước 20x20 42 Hình 3-17: Minh họa trọng tâm vật thể .43 Hình 3-18: Phương thức trung tâm hóa đối tượng ảnh 44 Hình 3-19: Ví dụ chuỗi ký tự viết tay 44 Hình 3-20: Mẫu dạy 45 Hình 3-21: Cách thức perceptron hoạt động [13] 46 Hình 3-22: Mạng perceptron nhiều lớp [13] 47 Hình 3-23: Phương thức học mạng [13] 48 Hình 3-24: Đồ thị hàm sigmoid .49 Hình 3-25: Đồ thị hàm bước nhảy đơn vị 50 Hình 3-26: Kiến trúc mạng nơ-ron [13] 51 Hình 3-27: Mạng nơ-ron sử dụng nhận dạng chữ viết tay .52 Hình 3-28: Đồ thị hàm C(v) có biến .53 Hình 3-29: Phương thức hoạt động thuật tốn gradient descent .56 Hình 4-1: Quy trình xử lý chuẩn hóa ảnh 59 Hình 4-2: Mẫu giấy xin chữ .66 Hình 4-3: Hình ảnh mẫu thu thập 67 Hình 4-4: Lưu trữ mẫu ảnh 67 Hình 4-5: Cơ sở liệu 68 Hình 4-6: Các kết trung bình đánh giá số lượng nơ-ron lớp ẩn 69 Hình 4-7: Các kết đánh giá hệ số học 70 Hình 4-8: Các kết đánh giá kích thước đợt đầu vào 72 MỞ ĐẦU Trong thời gian gần đây, công nghệ phát triển mạnh mẽ đặc biệt lĩnh vực trí thơng minh nhân tạo Thị giác máy tính lĩnh vực liên ngành giải việc làm để máy tính đạt hiểu biết cấp cao từ ảnh video kỹ thuật số Từ quan điểm kỹ thuật, tìm cách tự động hóa tác vụ mà hệ thống thị giác người làm Thị giác máy tính bao gồm phương thức thu nhận, xử lý, phân tích hiểu ảnh kỹ thuật số, trích xuất liệu đa chiều từ giới thực thông tin số biểu tượng Việc phát triển lĩnh vực bối cảnh từ việc chép khả thị giác người cho nhận diện hiểu biết hình ảnh kỹ thuật số máy tính Các lĩnh vực thị giác máy tính bao gồm tái cấu trúc cảnh, phát kiện, theo dấu video, nhận dạng đối tượng, nhận dạng mẫu, ước lượng cử chiều, ước lượng chuyển động, phục hồi ảnh,… Xét khía cạnh khác, nhận dạng mẫu ngành thuộc lĩnh vực học máy Nó nhằm phân loại liệu (là mẫu) dựa kiến thức tiên nghiệm thơng tin thống kê trích rút từ ác mẫu có sẵn Trong đó, nhận diện chữ viết tay cung cấp cho máy tính khả phân tích xác định ký tự Đây hướng phát triển có ý nghĩa tiềm mà ứng dụng số lĩnh vực như: số hóa tài liệu, đọc địa bưu cục, giúp lệnh rô bốt hỗ trợ người (đặc biệt với người khuyết tật) nói chung giúp chuyển đổi thông tin từ dạng ảnh số sang dạng văn (text) Từ suy nghĩ đó, tơi chọn nghiên cứu thực đề tài: “Nghiên cứu xây dựng phát triển thuật toán nhận dạng chữ viết tay”, đối tượng sử dụng nghiên cứu để xác định độ xác thuật tốn chữ viết tay giấy trắng Trong luận văn này, thuật toán nhận dạng chữ viết tay trược trình bày, từ việc phân tách chữ, tiền xử lý, chuẩn hóa đến nhận dạng ký tự Các kết mô phỏng, kiểm thử đề cập với so sánh thiết lập thông số cho mạng nơ-ron sử dụng để nhận dạng ký tự Dưới hướng dẫn thầy TS Nguyễn Hữu Phát xây dựng phát triển thuật toán nhận dạng chữ viết tay Tổng quan nhận dạng, thực trạng triển khai hay sở lý thuyết, thuật toán kết đạt được, đánh giá cải tiến trình bày luận văn phần Tôi xin chân thành cảm ơn thầy TS Nguyễn Hữu Phát giúp đỡ dẫn cho tơi để tơi hồn thành luận văn Tơi cảm ơn gia đình, bạn bè ln ủng hộ giúp đỡ, động viên tơi q trình nghiên cứu thực luận văn PHỤ LỤC Chương trình sử dụng đề tài Chương trình xây dựng sở liệu: IsolateText_CoM_v3.cpp #if #include #define _CRT_SECURE_NO_WARNINGS #include "opencv\cv.h" #include "opencv\highgui.h" using namespace std; #define CONTOUR_AREA 75 #define CONTOUR_AREA_MAX 25000 string name[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; string add_out = "C:/Users/NguyenDuy/Desktop/Cao hoc/LuanVan/ HWC/mydataset/Centered_27_11/"; string add_in = "C:/Users/NguyenDuy/Desktop/Cao hoc/LuanVan/ HWC/samples_21_10_2017/"; bool compare_rect (const cv::Rect &a, const cv::Rect &b); cv::Mat ScaleTo20x20 (const cv::Mat& img, int target_dimension); cv::Mat CenterTo28x28 (const cv::Mat& img, int Dr, int Dc); void Calculate_Center (const cv::Mat& img, int *Dr, int *Dc); // starting index for new data made from new sample for each character int index_arr[] = {398, 425, 420, 357, 403, 374, 315, 301, 442, 479, 368, 357, 334, 369, 377, 382, 364, 420, 427, 386, 401, 433, 365, 354, 337, 375}; int index = 0; // variable, not fixed, depend on samples, assinged value in main function void sampling(int character, int num){ // read an image string link = add_in + name[character] + "/" + to_string(num)+ ".jpg"; //string link = "D:/hwc/tests/s_0.jpg"; cv::Mat im_org = cv::imread(link.c_str(),1); if (!im_org.data){ cout