Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1,08 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA HUỲNH VĂN NHỨT NHẬNDẠNGCHỮSỐVIẾTTAYSỬDỤNGKỸTHUẬTHỌCSÂU(DEEPLEARNING) 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ậndạ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ậndạngnhậndạng tín hiệu, nhậndạng tiếng nói hay nhậndạng ảnh Vấn đề nhậndạngchữviếttay nói chung nhậndạngchữsốviếttay nói riêng vấn đề thách thức nhà nghiên cứu Chữsốviếttay 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ếttay 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ậndạngchữ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ậndạngchữsốviếttay đạ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ậndạ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ụngnhậ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ậndạngsử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ạngchữsốviếttaysửdụngkỹthuậthọcsâu(Deep learning)” Mục tiêu nghiên cứu Mục tiêu đề tài sửdụngkỹthuật Deep learning để xây dựng chương trình nhậndạngchữsốviếttay Đối tƣợng phạm vi nghiên cứu 3.1 Đối tượng - Các chữsốviếttay - Cơ sở lý thuyết nhậndạng ảnh - Các phương pháp, giải thuậtnhậndạ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ếttay - 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ậndạngký tự số - Nghiên cứu mạng Nơ ron nhậndạngchữviếttay - 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ậtnhậndạngchữsốviếttay 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ẬNDẠNGCHỮSỐVIẾTTAY 1.1 Tổng quan nhậndạngchữsốviếttay 1.1.1 Giới thiệu chung Hiện nay, vấn đề nhậndạngchữsốviếttay cần thiết, có nhiều ứng dụng rộng rãi đời sống xã hội nhậndạng bảng điểm, nhậndạng bảng số xe, nhậndạng phiếu hàng hóa,… Vấn đề nhậndạngchữviếttay nói chung nhậndạngchữsốviếttay nói riêng thách thức lớn nhà nghiên cứu Mỗi người có cách viếtchữsố khác nhau, xác định cách để nhậndạngchữsố Do vậy, xây dựng hệ thống nhậndạngchữsốviếttay cách đáng tin cậy để có nhậndạngký tự số điều không dễ dàng Các hệ thống nhậndạng trước (LeCun et al., 1998), (Simard et al., 2003), (Kégl & BusaFekete, 2009) sửdụng đặc trưng từ ảnh ký 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ậndạ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ậndạngchữsốviếttay hiệu quả, nghiên cứu kỹthuậthọcsâ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ậndạngchữsốviếttay 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 Sơ đồ 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ậndạ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ậndạngchữsốviếttay Có nhiều phương pháp hệ thống nhậndạngchữ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ậndạngchữsốviếttay 2.1 Mạng neural nhân tạo 2.1.1 Sơ 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ẠNGCHỮSỐVIẾTTAY VỚI MẠNG NƠ RON TÍCH CHẬP 3.1 Bài tốn nhậndạ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 ký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ậndạng 17 3.3 Xây dựng mạng Neural nhậndạngký 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 kýsố có ảnh (Bước 2.1 thuật tốn nhậndạngký số) b) Biến sửdụng chương trình c) Giải thuật tìm tất ký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ùngthuậ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ựngnhậndạngký tự sốviếttay Luận văn hoàn thành mặt nội dung đề Đó kết hợp xử lí ảnh lý thuyết nhậndạng nhằm giải phần toán nhậndạngký tự sốviếttay 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ậndạngsố 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 giới hạn chưa xác, dẫn đến nhậndạngký 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ậndạngchữsốviếttay hồn chỉnh, ứng dụng để nhậndạ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,