1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

Đ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

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 1,08 MB

Nội dung

Để nhận dạng chữ số viết tay, có nhiều phương pháp và kỹ thuật khác nhau 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

Trang 1

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

Trang 2

Công trình được hoàn thành tại 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 đã được 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 tại 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 tại 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

Trang 3

MỞ ĐẦU

1 Tính cấp thiết của đề tài

Nhận dạng là lĩnh vực được các nhà khoa học rất quan tâm để giải quyết các yêu cầu trong cuộc sống hiện nay, có nhiều lĩnh vực nhận dạng như 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 và nhận dạng chữ số viết tay nói riêng là một vấn đề thách thức đối với những nhà nghiên cứu

Chữ số viết tay xuất hiện ở hầu hết trong các công việc của các

cơ quan, nhà máy, xí nghiệp, trường học Trong các trường phổ thông hiện nay, đều có một bộ phận quản lý điểm để thực hiện các khâu tiếp nhận và nhập vào máy tính bảng điểm viết tay của giáo viên bộ môn, công tác này luôn chiếm nhiều thời gian và đôi khi không đảm bảo tiến độ hoạt động của nhà trường

Để nhận dạng chữ số viết tay, có nhiều phương pháp và kỹ thuật khác nhau 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

về nhận dạng chữ số viết tay đạt hiệu quả cao, tuy nhiên, các ứng dụng vẫn chưa đáp ứng hoàn toàn các yêu cầu của người dùng Hiện nay với sự phát triển không ngừng của máy tính, phương pháp Deep Learning ra đời đã đáp ứng cơ bản trong việc nhận dạng

và xử lý ảnh Deep Learning là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu Deep Learning được ứng dụng trong 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 nay rất nhiều các bài toán nhận dạng sử dụng Deep Learning để giải quyết do Deep Learning có thể giải

Trang 4

quyết các bài toán với số lượng lớn, kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống

Với những lý do trên, tôi 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)”

2 Mục tiêu nghiên cứu

Mục tiêu chính của đề tài này là 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

3 Đối tƣợng và phạm vi nghiên cứu

3.1 Đối tượng

- Các chữ số viết tay

- Cơ sở lý thuyết về nhận dạng ảnh

- Các phương pháp, giải thuật về 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

- 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

Trang 5

- Xây dựng chương trình thử nghiệm

- Kiểm thử tính hiệu quả của chương trình với các chữ số khác nhau

5 Ý nghĩa của đề tài

Về khoa học: Đề tài sẽ mang ý nghĩa cung cấp về mặt lý thuyết để làm rõ về các phương pháp và 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 bản với dữ liệu số

Trang 6

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 về 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 rất cần thiết, có nhiều ứng dụng rộng rãi trong đời sống xã hội như 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 và nhận dạng chữ số viết tay nói riêng là một thách thức lớn đối với các nhà nghiên cứu Mỗi người

có một cách viết chữ số khác nhau, chúng ta không thể xác định cách duy nhất để 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 một cách đáng tin cậy để có có thể nhận dạng bất cứ

ký tự số nào là điều không dễ dàng

Các hệ thống nhận dạng trước đây như (LeCun et al., 1998), (Simard et al., 2003), (Kégl & BusaFekete, 2009) đều sử dụng các đặc trưng cơ bản từ ảnh ký tự như đường biên, cạnh, độ dày, giá trị mức xám, haar-like, với các xử lý đặc thù như lấy mẫu, dao động các điểm ảnh, biến đổi ảnh, thêm dữ liệu ảo Sau đó hệ thống nhận dạng huấn luyện các mô hình học tự động như k láng giềng (kNN), mạng nơ-ron, máy véc tơ hỗ trợ (SVM), boosting Các hệ thống này cơ bản đáp ứng yêu cầu của người sử dụng, tuy nhiên vẫn chưa thỏa mãn một cách triệt để yêu cầu đề ra Với mong muốn tìm ra giải pháp để nhận dạng chữ số viết tay hiệu quả, chúng tôi nghiên cứu kỹ thuật học sâu (Deep learning), đây là phương pháp có thể giải quyết các bài toán với số lượng lớn, kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống

Trang 7

1.1.2 Những khó khăn trong việc nhận dạng chữ số viết tay 1.1.3 Các công trình nghiên cứu trong và ngoài nước

1.1.3.1 Công trình trong nước

1.1.3.2 Công trình nước ngoài

1.1.4 Các bước trong quá trình xử lý ảnh

Hình 1.4 Sơ đồ tổng quát các giai đoạn xử lý ảnh cơ bản

Mô tả/

Biểu diễn -Phân đoạn

ảnh

Trích chọn đặc trưng

-Nhận dạng -Ra quyết định -Phân cụm

Tiền

xử lý

Đánh giá

Trang 8

1.2.6.2 Dò biên và mã hóa đường biên

1.2.7 Xác định hướng của đ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 trong các hệ thống nhận dạng chữ số viết tay, có thể kể đến như : đối sánh mẫu, thống kê, cấu trúc, mạng

nơ-ron, SVM,…

Trang 9

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

Trang 10

CHƯƠNG 2- MÔ HÌNH MẠNG NEURAL TÍCH CHẬP

Một trong những mô hình Deep Learning tiên tiến giúp chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao đó

là Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) Trong chương này, chúng ta sẽ trình bày về Convolution (tích chập) cũng như ý tưởng của mô hình CNNs trong nhận dạng chữ số viết tay

2.1 Mạng neural nhân tạo

2.1.1 Sơ lược về neural sinh học

2.1.2 Mạng Neural nhân tạo

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ế của 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)

Trang 11

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

Trang 12

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)

Trang 13

Hình 2.13 Ma trận điểm ảnh (ảnh gốc) và ma trận kernel (đóng

vai trò làm mặt nạ) cho quá 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 ngoài (nền vàng) của Matrix

không thuộc ảnh gốc nên giá trị được tính =0 khi thực hiện phép

toán Convolution

Trang 14

- Đường biên ngoài (nền xanh) của Result Matrix là phần được mở rộng thêm so với kích thước ban đầu của ảnh (Matrix)

Trang 16

2.2.4.1 Blur (làm mờ ảnh)

Input image Output Image

Hình 2.18 Minh họa kết quả tích chập trong 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 quả tích chập trong kỹ thuật Outline

Trang 17

2.2.4.3 Outline (phác thảo những nét chính trên ảnh)

Hình 2.20 Minh họa kết quả tích chập trong kỹ thuật Emboss

Trang 18

CHƯƠNG 3- NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI MẠNG NƠ RON TÍCH CHẬP

3.1 Bài toán nhận dạng

3.1.1 Phát biểu bài toán

3.1.2 Ảnh đầu vào của bài toán

Trang 19

3.3 Xây dựng mạng Neural nhận dạng ký 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 trong luận văn 3.3.2 Xử lý dữ liệu (phân tích ảnh)

3.3.2.1 Thuật toán xử lý dữ liệu

3.3.2.2 Mô tả chi tiết các bước trong thuật toán

a) Tìm kiếm các ký số có trong ảnh (Bước 2.1 trong thuật toán nhận dạng ký số)

b) Biến sử dụng trong chương trình

c) Giải thuật tìm tất cả các ký số có trong ảnh

d) Lưu đồ chi tiết của B3

Trang 20

3.3.2.3 Scale đưa ảnh về kích thước cố định (32x32)

3.3.2.4 Thực hiện convolution trên ảnh đã scale (32x32)

a) Thao tác thực hiện tích chập

b) Phương pháp trích đặc trưng sử dụng CNNs

Hình 3.10 Quá 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

Trang 21

3.4.2 Giới thiệu Tensorflow và cách cài đặt

3.4.9 Huấn luyện và 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 của kết quả đầu ra của mô hình Chúng ta tính trung bình độ lỗi giữa kết quả mô hình trả ra và nhãn của dữ liệu

loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=targets, logits=y_pred))

Sau khi có hàm lỗi, chúng ta có thể dùng các thuật toán tối ưu

để cực tiểu hóa giá trị của hàm lỗi Phương pháp thường thấy là Gradient Descent Tensorflow cung cấp sẵn các bộ optimizer nhằm làm thay công việc đó cho chúng ta Thay vì phải tự cài đặt lại, ta có thể sử dụng các bộ optimizer đó

train_step = tf.train.AdagradOptimizer(0.1).minimize(loss)

Giá trị truyền vào AdagradOptimizer là giá trị learning_rate = 0.1 Giá trị này có thể được điều để tăng hiệu quả của mô hình Nếu

Trang 22

learning_rate quá lớn có thể dẫn đến không hội tụ còn nếu quá nhỏ sẽ dẫn đến hội tụ chậm

Trong quá trình huấn luyện, chúng ta cũng cần tính độ chính xác của mô hình để kiểm chứng tính hiệu quả

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 = 0

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 chính là số lần lặp mà ta muốn huấn luyện

mô hình Với mỗi lần lặp, thay vì phải truyền vào toàn bộ dữ liệu, ta

có thể chỉ truyền một phần dữ liệu có kích thước batch_size để tăng tốc độ tính toán

Trang 23

Giá trị mất mát trên tập thử nghiệm ban đầu giảm nhưng từ vòng lặp thứ 24 trở lên bắt đầu tăng trở lại dẫn đến độ chính xác giảm Do đó, thuật toán bị overfitting khi số vòng lớn hơn 24 Số vòng lặp lí tưởng cho bài toán là khoảng 24

Hình 3.14 Đồ thị biểu diễn kết quả thử nghiệm

Trang 24

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 và nắm được những kiến thức của mạng neural nhân tạo Sử dụng mô hình CNN trong công việc xây dựng nhận dạng ký tự số viết tay

Luận văn đã được hoàn thành về mặt cơ bản nội dung đã đề

ra Đó là sự kết hợp giữa xử lí ảnh và lý thuyết nhận dạng nhằm giải quyết một phần bài toán nhận dạng ký tự số viết tay Chương trình đang bước đầu thử nghiệm và đạt được kết quả thực nghiệm dựa trên 10.000 tập mẫu với độ chính xác trên 99%

Hạn chế

Tuy đã hoàn thành về nội dung và chương trình nhận dạng

nhưng vẫn còn một số hạn chế cần được khắc phục như:

Chương trình đang ở mức thử nghiệm, chưa áp dụng vào thực tế

Với những ký tự dính xác nhau hoặc chồng thì việc xử lý phân tích

còn giới hạn chưa chính xác, dẫn đến nhận dạng ký tự còn sai

Sự phức tạp về cấu tạo ký tự do nhiều cách viết khác nhau nên

chưa thu thập đủ cơ sở dữ 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 các đơn vị trường học

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

w