Nhận dạng chữ số viết tay sử dụng kỹ thuật học sâu (deep learning)

24 1.4K 5
Nhận dạng chữ số viết tay sử dụng kỹ thuật học sâu (deep learning)

Đ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

ĐẠ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 TĨM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2018 Cơng trình hồn thành TRƯỜNG ĐẠI HỌC BÁCH KHOA Ngƣời hƣớng dẫn khoa học: TS HUỲNH HỮU HƢNG Phản biện 1: PGS TS Nguyễn Tấn Khôi Phản biện 2: TS Phạm Văn Việt Luận văn bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Khoa học máy tính Trường Đại học Bách khoa vào ngày 16 tháng 06 năm 2018 Có thể tìm hiểu luận văn tại:  Trung tâm Học liệu, Đại học Đà Nẵng Trường Đại học Bách khoa  Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa – ĐHĐN 1 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 lớn, 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 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ố 4 CHƢƠNG 1- 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 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 dạng bảng điểm, nhận dạng bảng số xe, nhận dạng phiếu hàng hóa,… 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 Mỗi người có cách viết chữ số khác nhau, xác định cách để nhận dạng chữ số Do vậy, xây dựng hệ thống nhận dạng chữ số viết tay cách đáng tin cậy để có nhận dạng tự số điều không dễ dàng Các hệ thống nhận dạng trước (LeCun et al., 1998), (Simard et al., 2003), (Kégl & BusaFekete, 2009) sử dụng đặc trưng từ ảnh tự đường biên, cạnh, độ dày, giá trị mức xám, haar-like, với xử lý đặc thù lấy mẫu, dao động điểm ảnh, biến đổi ảnh, thêm liệu ảo Sau hệ thống nhận dạng huấn luyện mơ hình học tự động k láng giềng (kNN), mạng nơ-ron, máy véc tơ hỗ trợ (SVM), boosting Các hệ thống đáp ứng yêu cầu người sử dụng, nhiên chưa thỏa mãn cách triệt để yêu cầu đề Với mong muốn tìm giải pháp để nhận dạng chữ số viết tay hiệu quả, nghiên cứu kỹ thuật học sâu (Deep learning), phương pháp giải tốn với số lượng lớn, 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 5 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 ngồi nước 1.1.3.1 Cơng trình nước 1.1.3.2 Cơng trình nước ngồi 1.1.4 Các bước q trình xử lý ảnh -Cải thiện ảnh -Phục hồi ảnh -Xử lý hình thái Đối tượng Thu nhận ảnh Trích chọn đặc trưng Tiền xử lý Tách đối tượng -Phân đoạn ảnh Mô tả/ Biểu diễn Đánh giá -Nhận dạng -Ra định -Phân cụm Hình 1.4 đồ tổng quát giai đoạn xử lý ảnh 1.1.4.1 Thu nhận ảnh 1.1.4.2 Tiền xử lý 1.1.4.3 Tách đối tượng 1.1.4.4 Mô tả/ biểu diễn 1.1.4.5 Nhận dạng ảnh 1.1.5 Một số khái niệm xử lý ảnh 1.1.5.1 Điểm ảnh 1.1.5.2 Độ phân giải ảnh 1.1.5.3 Mức xám ả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 1.2.5.1 Một số định nghĩa 1.2.5.2 Phép giãn ảnh 1.2.5.3 Phép co ảnh 1.2.5.4 Phép đóng ảnh 1.2.6 Phát biên làm trơn biên 1.2.6.1 Phát biên 1.2.6.2 Dò biên mã hóa đường biên 1.2.7 Xác định hướng điểm biên (Freeman code) 1.2.8 Làm trơn đường biên 1.3 Các phƣơng pháp nhận dạng chữ số viết tay Có nhiều phương pháp hệ thống nhận dạng chữ số viết tay, kể đến : đối sánh mẫu, thống kê, cấu trúc, mạng nơ-ron, SVM,… 1.3.1 Phương pháp đối sánh mẫu 1.3.2 Phương pháp tiếp cận cấu trúc 1.3.3 Phương pháp học máy với SVM (Support vector machine) 1.3.3.1 Giới thiệu SVM 1.3.3.2 Ý tưởng CHƢƠNG 2- MƠ HÌNH MẠNG NEURAL TÍCH CHẬP Một mơ hình Deep Learning tiên tiến giúp xây dựng hệ thống thông minh với độ xác cao Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) Trong chương này, trình bày Convolution (tích chập) ý tưởng mơ hình CNNs nhận dạng chữ số viết tay 2.1 Mạng neural nhân tạo 2.1.1 lược neural sinh học 2.1.2 Mạng Neural nhân tạo 2.1.3 Kiến trúc mạng 2.1.4 Mạng tầng 2.1.5 Mạng đa tầng 2.1.6 Huấn luyện mạng neural 2.1.6.1 Phương pháp học 2.1.6.2 Học có giám sát 2.1.6.3 Học khơng giám sát 2.1.6.4 Học tăng cường 2.1.6.5 Thuật toán huấn luyện mạng Thuật Toán Lan Truyền Ngược Back Propagation Những hạn chế phương pháp lan truyền ngược: 2.2 Mạng Neural tích chập (Convolutional Neural Networks – CNNs) 2.2.1 Convolution (tích chập) Hình 2.6 Minh họa tích chập 2.2.2 Khái niệm CNNs Hình 2.9 Mơ hình mạng nơ ron truyền thống 10 Hình 2.10 Image Classification with CNN Hình 2.11 Minh họa mơ hình CNNs 2.2.3 Những phương pháp tích chập (convolution) 11 Hình 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 2.2.3.1 Phương pháp SAME Hình 2.14 Minh họa phương pháp SAME Phương pháp same: Đường biên ngồi (nền vàng) Matrix khơng thuộc ảnh gốc nên giá trị tính =0 thực phép tốn Convolution 12 2.2.3.2 Phương pháp FULL Hình 2.15 Minh họa phương pháp FULL Phương pháp FULL: - Khởi đầu, tâm kernel đặt điểm ảnh góc bên trái (tọa độ (0,0)) ảnh (Matrix) - Đường biên ngồi (nền vàng) Matrix khơng thuộc ảnh gốc nên giá trị tính =0 thực phép tốn Convolution - Đường biên ngồi (nền xanh) Result Matrix phần mở rộng thêm so với kích thước ban đầu ảnh (Matrix) 13 2.2.3.3 Phương pháp VALID Hình 2.16 Minh họa phương pháp VALID Phương pháp VALID: -Khởi đầu, tọa độ (0,0) ảnh (Matrix) kernel đặt trùng -Các pixel nằm đường biên (nền vàng) Matrix khơng có Result Matrix sau thực phép Convolution theo Một phương pháptích Valid 2.2.4 số phép chập thường sử dụng xử lý ảnh Hình 2.17 Minh họa cách biểu diễn ảnh 14 2.2.4.1 Blur (làm mờ ảnh) Input image Output Image Hình 2.18 Minh họa kết tích chập kỹ thuật blur 2.2.4.2 Sharpen (làm ảnh trở nên sắc nét hơn) Hình 2.19 Minh họa kết tích chập kỹ thuật Outline 15 2.2.4.3 Outline (phác thảo nét ảnh) Hình 2.20 Minh họa kết tích chập kỹ thuật Emboss 16 CHƢƠNG 3NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI MẠNG NƠ RON TÍCH CHẬP 3.1 Bài tốn nhận dạng 3.1.1 Phát biểu toán 3.1.2 Ảnh đầu vào tốn 3.2 Mơ hình tổng quan - Lấy ảnh đầu vào qua tiền xử lý - Chuyển đổi ảnh số sang ma trận điểm ảnh - Co dãn ảnh (scale) kích thước chuẩn (32 X 32) Mạng neural Kết Hình 3.4 Mơ hình tổng quan nhận dạng 17 3.3 Xây dựng mạng Neural nhận dạng tự 3.3.1 Xây dựng mạng neural Hình 3.5 Minh họa mơ hình mạng sử dụng luận văn 3.3.2 Xử lý liệu (phân tích ảnh) 3.3.2.1 Thuật tốn xử lý liệu 3.3.2.2 Mơ tả chi tiết bước thuật tốn a) Tìm kiếm số có ảnh (Bước 2.1 thuật tốn nhận dạng số) b) Biến sử dụng chương trình c) Giải thuật tìm tất số có ảnh d) Lưu đồ chi tiết B3 18 3.3.2.3 Scale đưa ảnh kích thước cố định (32x32) 3.3.2.4 Thực convolution ảnh scale (32x32) a) Thao tác thực tích chập b) Phương pháp trích đặc trưng sử dụng CNNs Hình 3.10 Q trình trích chọn đặc trưng sử dụng CNNs 3.3.2.5 Huấn luyện mạng neural 3.4 Xây dựng chƣơng trình thử nghiệm 3.4.1 Giới thiệu Python 19 3.4.2 Giới thiệu Tensorflow cách cài đặt 3.4.3 Xây dựng mơ hình mạng tích chập Gradient Descent Convolutional Neural Network 3.4.4 Đầu vào nhãn 3.4.5 Lớp Convolution với hàm kích hoạt relu 3.4.6 Lớp Pooling 3.4.7 Lớp FC 3.4.8 Mơ hình đầy đủ 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(labe ls=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 20 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_i d + batch_size)], targets: train_y[batch_id:(batch_id + batch_size)]}) 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 21 3.5 Kết thử nghiệm Với mơ hình CNNs đầy đủ trên, ta thu kết 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 toán nhận diện chữ số Đồ 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 Hình 3.14 Đồ thị biểu diễn kết thử nghiệm 22 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂ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 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 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 hoà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 tự dính xác chồng việc xử lý phân tích giới hạn chưa xác, dẫn đến nhận dạng tự sai Sự phức tạp cấu tạo tự nhiều cách viết khác nên chưa thu thập đủ sở liệu ảnh tự Hƣớng phát triển Xây dựng chương trình nhận dạng chữ số viết tay hồn chỉnh, ứng dụng để nhận dạng bảng điểm phục vụ cho đơn vị trường học ... 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... thiết, có nhiều ứng dụng rộng rãi đời sống xã hội nhận dạng bảng điểm, nhận dạng bảng số xe, nhận dạng phiếu hàng hóa,… 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... văn với liệu số 4 CHƢƠNG 1- 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 Hiện nay, vấn đề nhận dạng chữ số viết tay cần thiết,

Ngày đăng: 07/08/2018, 13:42

Từ khóa liên quan

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

Tài liệu liên quan