Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 73 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
73
Dung lượng
25,7 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA - - HUỲNH VĂN NHỨT NHẬN DẠNG CHỮ SỐ VIẾT TAY SỬ DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING) LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2018 ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA - - HUỲNH VĂN NHỨT NHẬN DẠNG CHỮ SỐ VIẾT TAY SỬ DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING) Chuyên ngành :Khoa học máy tính Mã số: 60.48.01.01 LUẬN VĂN THẠC SĨ Ngƣời hƣớng dẫn khoa học: TS HUỲNH HỮU HƢNG Đà Nẵng – Năm 2018 LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu riêng Các số liệu, kết nêu luận văn trung thực chưa công bố cơng trình khác Tác giả Huỳnh Văn Nhứt MỤC LỤC MỞ ĐẦU 1 Tính cấp thiết đề tài Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Ý nghĩa đề tài Bố cục luận văn .2 CHƢƠNG TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NHẬN DẠNG CHỮ SỐ VIẾT TAY 1.1 Tổng quan nhận dạng chữ số viết tay 1.1.1 Giới thiệu chung 1.1.2 Những khó khăn việc nhận dạng chữ số viết tay 1.1.3 Các cơng trình nghiên cứu nước 1.1.4 Các bước trình xử lý ảnh 1.1.5 Một số khái niệm xử lý ảnh 1.2 Các phương pháp xử lý ảnh 1.2.1 Lọc mịn ảnh 1.2.2 Nhị phân ảnh 1.2.3 Chỉnh nghiêng 1.2.4 Chuẩn kích thước 1.2.5 Lấp khoảng trống ảnh .9 1.2.6 Phát biên làm trơn biên 11 1.2.7 Xác định hướng điểm biên (Freeman code) 11 1.2.8 Làm trơn đường biên 12 1.3 Các phương pháp nhận dạng chữ số viết tay 14 1.3.1 Phương pháp đối sánh mẫu 14 1.3.2 Phương pháp tiếp cận cấu trúc 14 1.3.3 Phương pháp học máy với SVM (Support vector machine) 15 CHƢƠNG MÔ HÌNH MẠNG NEURAL TÍCH CHẬP 16 2.1 Mạng neural nhân tạo 16 2.1.1 Sơ lược neural sinh học 16 2.1.2 Mạng Neural nhân tạo 17 2.1.3 Kiến trúc mạng 19 2.1.4 Mạng tầng 19 2.1.5 Mạng đa tầng .20 2.1.6 Huấn luyện mạng neural .21 2.2 Mạng Neural tích chập (Convolutional Neural Networks – CNNs) 24 2.2.1 Convolution (tích chập) 24 2.2.2 Khái niệm CNNs 25 2.2.3 Cấu trúc mạng neural tích chập 27 2.2.4 Những phương pháp tích chập (convolution) .28 2.2.5 Một số phép tích chập thường sử dụng xử lý ảnh 32 CHƢƠNG NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI MẠNG NƠ RON TÍCH CHẬP 35 3.1 Bài toán nhận dạng 35 3.1.1 Phát biểu toán 35 3.1.2 Ảnh đầu vào toán 35 3.2 Mơ hình tổng quan 36 3.3 Xây dựng mạng Neural nhận dạng ký tự 37 3.3.1 Xây dựng mạng neural 37 3.3.2 Xử lý liệu (phân tích ảnh) 37 3.4 Xây dựng chương trình thử nghiệm .43 3.4.1 Giới thiệu Python 43 3.4.2 Giới thiệu Tensorflow cách cài đặt 44 3.4.3 Xây dựng mơ hình mạng tích chập 44 3.4.4 Đầu vào nhãn 47 3.4.5 Lớp Convolution với hàm kích hoạt relu 48 3.4.6 Lớp Pooling 48 3.4.7 Lớp FC 49 3.4.8 Mơ hình đầy đủ 50 3.4.9 Huấn luyện kiểm chứng mơ hình 51 3.5 Kết thử nghiệm 52 KẾT LUẬN 53 TÀI LIỆU THAM KHẢO 55 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (bản sao) TÓM TẮT LUẬN VĂN NHẬN DẠNG CHỮ SỐ VIẾT TAY SỬ DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING) Huỳnh Văn Nhứt, học viên cao học khóa 33 Chun ngành Khoa học máy tính Mã số: 60480101 Khóa: 33 Trường Đại học Bách khoa – ĐHĐN TĨM TẮT Vấn đề nhận dạng chữ viết tay nói chung nhận dạng chữ số viết tay nói riêng thách thức lớn nhà nghiên cứu Bài tốn lớn ln đặt phía trước phức tạp việc nhận dạng chữ viết phụ thuộc nhiều vào phong cách viết cách thể ngôn ngữ người viết Nhận dạng ký tự viết tay lĩnh vực quan tâm nghiên cứu ứng dụng rộng rãi nhiều lĩnh vực như: nhận dạng chữ số phiếu chi ngân hàng, mã số bì thư dịch vụ bưu chính, … Luận văn tập trung nghiên cứu vấn đề sau: - Xử lý phân tích được ký tự ảnh đầu vào - Chuyển đổi ký tự sang ma trận điểm ảnh ma trận Kernel - Tiến hành nhận dạng ký tự thuật tốn mạng neural tích chập Từ khóa : Nhận dạng, học sâu, chữ số viết tay, mạng nơ ron, tích chập ABSTRACT The problems of recognizing the handwritten digits and characters cause a big issue to challenge the studying and the scientists The hard situations and huge questions always occur in the processing of the program because it is so complicated to regconize the hand writing It depends on the styles of the people who is writing and language expression of the writer Recognizing the handwritten characters and digits is one of the most important fields which is researched and applied in our lives in so many ways Such as recognizing the characters or number on the receipt papers of the banks, the pin numbers on the envelopes of the post offices, The thesis focuses on the following issues: - Handling and analyzes the input image character - Convert characters into pixel matrix and matrix Kernel - Conduct a character recognition algorithm using neural network convolution Key words : recognition, deep learning, handwriting, neural network, convolution DANH MỤC CÁC HÌNH Số hiệu hình Tên hình Trang 1.1 Minh họa ảnh ký tự bị nhòe 1.2 Minh họa số viết sát, dính liền 1.3 Ảnh minh họa ký tự số nằm giao cắt 1.4 Sơ đồ tổng quát giai đoạn xử lý ảnh 1.5 Minh họa ảnh sau tiền xử lý 1.6 Xác định độ nghiêng ảnh 1.7 Các thành phần cấu trúc đối xứng 10 1.8 Các thành phần cấu trúc không đối xứng 10 1.9 Thành phần cấu trúc phát biên 11 1.10 Minh họa dò biên 11 1.11 Hướng quy ước mã hóa 11 1.12 Đường biên mã hóa 12 1.13 Dabs=2 ci chẵn , ci+1 chẵn 12 1.14 Dabs=2 ci lẻ, ci+1 lẻ 13 1.15 Dabs=3 ci chẵn, ci+1 lẻ 13 1.16 Dabs=3, ci lẻ, ci+1 chẵn 13 2.1 Mơ hình neural sinh học 16 2.2 Mơ hình Neural nhân tạo mức đơn giản 17 2.3 Hàm Heaviside 18 2.4 Mơ hình mạng tầng 20 2.5 Mô mạng đa tầng 21 2.6 Minh họa tích chập 24 2.7 Ảnh mờ sau tích chập 25 2.8 Ảnh phát biên sau chập 25 2.9 Mơ hình mạng nơ ron truyền thống 26 2.10 Image Classification with CNN 26 2.11 Minh họa mơ hình CNNs 27 2.12 Minh họa việc lấy mẫu 28 Số hiệu hình Tên hình Trang 2.13 Ma trận điểm ảnh (ảnh gốc) ma trận kernel (đóng vai trị làm mặt nạ) cho q trình tích chập 29 2.14 Minh họa phương pháp SAME 30 2.15 Minh họa phương pháp FULL 31 2.16 Minh họa phương pháp VALID 31 2.17 Minh họa cách biểu diễn ảnh 32 2.18 Minh họa kết tích chập kỹ thuật blur 33 2.19 Minh họa kết tích chập kỹ thuật Outline 33 2.20 Minh họa kết tích chập kỹ thuật Emboss 34 3.1 Minh họa ảnh chứa chữ số viết tay 35 3.2 Minh họa ảnh chứa nhiều ký tự số 35 3.3 Minh họa ảnh chứa ký tự số 36 3.4 Mơ hình tổng quan nhận dạng 36 3.5 Minh họa mơ hình mạng sử dụng luận văn 37 3.6 Minh họa kết xác định vùng ảnh chứa ký số 38 3.7 Lưu đồ xác định hình chữ nhật nhỏ ngoại tiếp ký số cần xác định 39 3.8 Ảnh trước sau thực scale 40 3.9 Minh họa thao tác thực tích chập 41 3.10 Q trình trích chọn đặc trưng sử dụng CNNs 42 3.11 Hình chiếu minh hoạ tập liệu không gian ba chiều 45 3.12 Một vài mẫu tập MNIST 45 3.13 Mơ hình CNN đầy đủ 50 314 Đồ thị biểu diễn kết thử nghiệm 52 MỞ ĐẦU Tính cấp thiết đề tài Nhận dạng lĩnh vực nhà khoa học quan tâm để giải yêu cầu sống nay, có nhiều lĩnh vực nhận dạng nhận dạng tín hiệu, nhận dạng tiếng nói hay nhận dạng ảnh Vấn đề nhận dạng chữ viết tay nói chung nhận dạng chữ số viết tay nói riêng vấn đề thách thức nhà nghiên cứu Chữ số viết tay xuất hầu hết công việc quan, nhà máy, xí nghiệp, trường học Trong trường phổ thơng nay, có phận quản lý điểm thực khâu tiếp nhận nhập vào máy tính bảng điểm viết tay giáo viên môn, công tác chiếm nhiều thời gian không đảm bảo tiến độ hoạt động nhà trường Để nhận dạng chữ số viết tay, có nhiều phương pháp kỹ thuật khác như: logic mờ, giải thuật di truyền, mơ hình xác xuất thống kê, mơ hình mạng nơ ron Đã có nhiều cơng trình nghiên cứu nhận dạng chữ số viết tay đạt hiệu cao, nhiên, ứng dụng chưa đáp ứng hoàn toàn yêu cầu người dùng Hiện với phát triển không ngừng máy tính, phương pháp Deep Learning đời đáp ứng việc nhận dạng xử lý ảnh Deep Learning thuật toán dựa số ý tưởng từ não tới việc tiếp thu nhiều tầng biểu đạt, cụ thể lẫn trừu tượng, qua làm rõ nghĩa loại liệu Deep Learning ứng dụng nhận diện hình ảnh, nhận diện giọng nói, xử lý ngơn ngữ tự nhiên Hiện nhiều toán nhận dạng sử dụng Deep Learning để giải Deep Learning giải tốn với số lượng kích thước đầu vào lớn với hiệu độ xác vượt trội so với phương pháp phân lớp truyền thống Với lý trên, chọn nghiên cứu đề tài :”Nhận dạng chữ số viết tay sử dụng kỹ thuật học sâu (Deep learning)” Mục tiêu nghiên cứu Mục tiêu đề tài sử dụng kỹ thuật Deep learning để xây dựng chương trình nhận dạng chữ số viết tay Đối tƣợng phạm vi nghiên cứu 3.1 Đối tượng - Các chữ số viết tay - Cơ sở lý thuyết nhận dạng ảnh - Các phương pháp, giải thuật nhận dạng - Kỹ thuật Deep Learning 3.2 Phạm vi nghiên cứu - Nghiên cứu kỹ thuật xử lý ảnh - Ảnh quét chữ số viết tay - Các chữ số tự nhiên từ đến Phƣơng pháp nghiên cứu 4.1 Phương pháp lý thuyết - Các tài liệu sở lý thuyết: xử lý ảnh số, lọc trích ảnh số, xác định biên, rút trích số, nhận dạng ký tự số - Nghiên cứu mạng Nơ ron nhận dạng chữ viết tay - Phương pháp Deep Learning - Các tài liệu liên quan tới lập trình 4.2 Phương pháp thực nghiệm - Xây dựng chương trình thử nghiệm - Kiểm thử tính hiệu chương trình với chữ số khác Ý nghĩa đề tài Về khoa học: Đề tài mang ý nghĩa cung cấp mặt lý thuyết để làm rõ phương pháp kỹ thuật nhận dạng chữ số viết tay Về thực tiễn: Góp phần hỗ trợ cho việc nhập văn với liệu số Bố cục luận văn Nội dung luận văn chia thành phần sau: Mở đầu Chương 1: Tổng quan xử lý ảnh nhận dạng chữ số viết tay Chương 2: Mơ hình mạng Nơ ron tích chập Chương 3: Nhận dạng chữ viết tay với mơ hình mạng Nơ ron tích chập Kết luận hướng phát triển Tài liệu tham khảo 51 dense1 = tf.nn.relu(tf.matmul(flatten, W_fc1) + b_fc1) dropout1 = tf.nn.dropout(dense1, 0.5) W_fc2 = tf.Variable(initial_value=tf.truncated_normal([1024, 10]), dtype=tf.float32) b_fc2 = tf.Variable(tf.ones([10]), dtype=tf.float32) y_pred = tf.matmul(dropout1, W_fc2) + b_fc2 3.4.9 Huấn luyện kiểm chứng mơ hình Để huấn luyện cho mơ hình trước tiên ta cần định nghĩa hàm lỗi Chúng ta dùng hàm cross_entropy với softmax kết đầu mơ hình Chúng ta tính trung bình độ lỗi kết mơ hình trả nhãn liệu loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=targets, logits=y_pred)) Sau có hàm lỗi, dùng thuật tốn tối ưu để cực tiểu hóa giá trị hàm lỗi Phương pháp thường thấy Gradient Descent Tensorflow cung cấp sẵn optimizer nhằm làm thay cơng việc cho Thay phải tự cài đặt lại, ta sử dụng optimizer train_step = tf.train.AdagradOptimizer(0.1).minimize(loss) Giá trị truyền vào AdagradOptimizer giá trị learning_rate = 0.1 Giá trị điều để tăng hiệu mơ hình Nếu learning_rate q lớn dẫn đến khơng hội tụ nhỏ dẫn đến hội tụ chậm Trong trình huấn luyện, cần tính độ xác mơ hình để kiểm chứng tính hiệu correct_prediction = tf.equal(tf.argmax(y_pred, 1), tf.argmax(targets, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) Huấn luyện mơ hình: sess = tf.Session() sess.run(tf.global_variables_initializer()) for i in range(epoch_num): batch_id = while (batch_id + batch_size) < train_X.shape[0]: sess.run(train_step, feed_dict={img1: train_X[batch_id:(batch_id batch_size)], targets: train_y[batch_id:(batch_id + batch_size)]}) + 52 batch_id += batch_size print('test accuracy %g' % accuracy.eval(feed_dict={img1: test_X, targets: test_y}, session=sess)) Trong epoch_num số lần lặp mà ta muốn huấn luyện mơ hình Với lần lặp, thay phải truyền vào tồn liệu, ta truyền phần liệu có kích thước batch_size để tăng tốc độ tính tốn 3.5 Kết thử nghiệm Với mơ hình CNNs đầy đủ trên, ta thu kết Bảng 3.1 Kết thử nghiệm với mơ hình CNNs Mất mát Độ xác Mẫu huấn luyện 0.0132 99.60 Mẫu thử nghiệm 0.027 99.43% Số liệu cho thấy CNN cho độ xác cao tốn nhận diện chữ số Đồ thị độ xác hàm mát tập huấn luyện tập thử nghiệm Hình 314 Đồ thị biểu diễn kết thử nghiệm Đồ thị cho thấy: với mơ hình CNN có giá trị mát tập huấn luyện giảm dần xấp xỉ dẫn đến độ xác tập gần tuyệt đối hợp lí Giá trị mát tập thử nghiệm ban đầu giảm từ vòng lặp thứ 24 trở lên bắt đầu tăng trở lại dẫn đến độ xác giảm Do đó, thuật tốn bị overfitting số vịng lớn 24 Số vịng lặp lí tưởng cho tốn khoảng 24 53 KẾT LUẬN Kết luận Quan luận văn này, tác giả tìm hiểu nắm kiến thức mạng neural nhân tạo Sử dụng mơ hình CNN cơng việc xây dựng nhận dạng ký tự số viết tay Luận văn hoàn thành mặt nội dung đề Đó kết hợp xử lí ảnh lý thuyết nhận dạng nhằm giải phần toán nhận dạng ký tự số viết tay Chương trình bước đầu thử nghiệm đạt kết thực nghiệm dựa 10.000 tập mẫu với độ xác 99% Hạn chế Tuy hồn thành nội dung chương trình nhận dạng số hạn chế cần khắc phục như: Chương trình mức thử nghiệm, chưa áp dụng vào thực tế Với ký tự dính xác chồng việc xử lý phân tích cịn giới hạn chưa xác, dẫn đến nhận dạng ký tự sai Sự phức tạp cấu tạo ký tự nhiều cách viết khác nên chưa thu thập đủ sở liệu ảnh ký tự Hƣớng phát triển Xây dựng chương trình nhận dạng chữ số viết tay hoàn chỉnh, ứng dụng để nhận dạng bảng điểm phục vụ cho đơn vị trường học 54 DANH MỤC CƠNG TRÌNH KHOA HỌC T TT Tên đề tài nghiên cứu / lĩnh vực ứng dụng Năm hoàn Đề tài cấp (NN, Bộ, Trách nhiệm tham gia thành Ngành, …) đề tài Cơ sở Chủ đề tài Cơ sở Chủ đề tài Xây dựng hệ thống quản lý điểm 2008 trường THPT Cơ sở Chủ đề tài Xây dựng hệ thống SMS tra cứu 2008 điểm điện thoại Cơ sở Chủ đề tài Xây dựng hệ thống phát tự 2009 động Tỉnh Chủ đề tài Xây dựng hệ thống điểm danh tự 2010 động Cơ sở Chủ đề tài Áp dụng phương pháp dạy học tích 2011 Ngành Chủ đề tài Chủ đề tài Ứng dụng CNTT trường THPT 2005 L T Đình Xây dựng phần mềm tạo chữ ứng 2007 dụng giảng dạy giáo án điện tử hoạt động ngoại khóa cực để dạy học mơn Tin học cách có hiệu Xây dựng phần mềm ngoại khóa 2013 online Tỉnh Xây dựng hệ thống trắc nghiệm 2014 trường THPT Kỷ yếu hội Chủ đề tài thảo Hội tin học tỉnh Giải pháp ứng dụng CNTT hiệu 2016 trường THPT tỉnh Quảng Ngãi Kỷ yếu ngày Chủ đề tài hội CNTT Tỉnh Quảng Ngãi 55 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Lê Thanh Trúc Phạm Nguyên Khang, Nhận dạng điểm viết tay bảng điểm với biến đổi Hough đặc trưng Gist, Tạp chí khoa học Trường Đại học Cần Thơ, Số chuyên đề : Công nghệ Thông tin (2015):79-87 [2] Đỗ Năng Toàn, 2013, Bài giảng xử lý ảnh Học viện cơng nghệ bưu viễn thơng [3] Hồng Kiếm, Nguyễn Hồng Sơn, Đào Minh Sơn, “Ứng dụng mạng neuron nhân tạo hệ thống xử lý biểu mẫu tự động”, Kỷ yếu hội nghị kỷ niệm 25 năm thành lập Viện Công nghệ Thông tin, 2001, tr 560-567 [4] Lê Hoài Bắc, Lê Hoàng Thái, “Neural Network & Genetic Algorithm in Application to Handwritten Character Recognition”, Tạp chí tin học điều khiển học Tập 17, số 04, 2001, tr 57-65 [5] Nguyễn Thị Thanh Tân, Ngô Quốc Tạo, “Một cấu trúc mạng neuron thích hợp cho việc nhận dạng chữ số viết tay”, Kỷ yếu hội thảo FAIR03, NXB KH&KT Hà Nội, 2004, tr 200-210 Tiếng Anh: [6] Jason Brownlee, 2016, Deep Learning With Python [7] Michael Nielsen, 2015, Neural Networks and Deep Learning [8] Ahmad Saeed Mohammad, Dr Ahmed Khalaf Hamoudi, Yasmin Abdul Ghani Abdul Kareem, Hand Writing Numbers detection using Artificial Neural Networks, University of Technology, Baghdad, Iraq, IJCCCE Vol.13, No.2, 2013 [9] P V Dung, “Online handwriting recognition using multi convolution neural networks” In Proceedings of The Ninth International Conference on Simulated ... tài :? ?Nhận dạng chữ số viết tay sử dụng kỹ thuật học sâu (Deep learning)? ?? Mục tiêu nghiên cứu Mục tiêu đề tài sử dụng kỹ thuật Deep learning để xây dựng chương trình nhận dạng chữ số viết tay Đối... VÀ NHẬN DẠNG CHỮ SỐ VIẾT TAY 1.1 Tổng quan nhận dạng chữ số viết tay 1.1.1 Giới thiệu chung Hiện nay, vấn đề nhận dạng chữ số viết tay cần thiết, có nhiều ứng dụng rộng rãi đời sống xã hội nhận. .. LUẬN VĂN NHẬN DẠNG CHỮ SỐ VIẾT TAY SỬ DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING) Huỳnh Văn Nhứt, học viên cao học khóa 33 Chuyên ngành Khoa học máy tính Mã số: 60480101 Khóa: 33 Trường Đại học Bách