1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

ỨNG DỤNG MẠNG NEURAL TÍCH CHẬP NHẬN DẠNG KÝ TỰ SỐ VIẾT TAY

88 462 0

Đ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 88
Dung lượng 3,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHUẨN Y CỦA HỘI ĐỒNG BẢO VỆ LUẬN VĂN  Luận văn tựa đề “Ứng Dụng Mạng Neural Tích Chập Nhận Dạng Ký Tự Số Viết Tay” đƣợc “Lê Hồng Phong” thực hiện và nộp nhằm thỏa mãn một trong các y

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG



LÊ HỒNG PHONG

ỨNG DỤNG MẠNG NEURAL TÍCH CHẬP NHẬN DẠNG KÝ TỰ SỐ VIẾT TAY

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

TP HỒ CHÍ MINH – NĂM 2016

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG

Trang 3

CHUẨN Y CỦA HỘI ĐỒNG BẢO VỆ LUẬN VĂN



Luận văn tựa đề “Ứng Dụng Mạng Neural Tích Chập Nhận Dạng Ký Tự Số Viết Tay” đƣợc “Lê Hồng Phong” thực hiện và nộp nhằm thỏa mãn một trong các

yêu cầu tốt nghiệp Thạc sĩ ngành Khoa Học Máy Tính

Ngày bảo vệ lận văn, TPHCM, ngày … tháng … năm 2016

HỘI ĐỒNG CHẤM LUẬN VĂN Chủ tịch Hội đồng

GS.TSKH Hoàng Văn Kiếm

Viện Đào Tạo Sau Đại Học

TS Thái Hữu Tuấn

Ngày … tháng … năm 2016

Trang 4

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG

Luận văn thạc sĩ: Ứng Dụng Mạng Neural Tích Chập Nhận Dạng Ký Tự Số Viết Tay

Do học viên: Lê Hồng Phong

- Cao học khóa: 2 – Đợt 2

- Ngành: Khoa học máy tính thực hiện

Người hường dẫn: TS Vũ Thanh Hiền

Đã được bảo vệ trước Hội đồng, ngày: … / … / 2016 theo Quyết định số …, ngày

…/…/ 2016 của Hiệu Trưởng Trường ĐH Quốc Tế Hồng Bàng

Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:

Chủ tịch Hội đồng đánh giá luận văn

Header Page 4 of 137

Trang 5

LÝ LỊCH CÁ NHÂN

- Họ tên: Lê Hồng Phong

- Ngày sinh: 03 tháng 09 năm 1987

- Nơi sinh: Bến Tre

- Tốt nghiệp PTTH tại Trường Bán Công Bình Đại, năm 2007

- Tốt nghiệp Đại học ngành Công nghệ thông tin tại Trường ĐH Quốc Tế Hồng Bàng, Thành phố Hồ Chí Minh

- Quá trình công tác:

Từ năm 2010 đến nay Trường ĐH Quốc Tế Hồng Bàng Thư ký văn phòng

- Địa chỉ liên lạc: 5/19P Mễ Cốc, P.15, Q.8, TP.HCM

- Điện thoại di động: 0983 162 630

- Email: lephonghbu@gmail.com

Trang 6

LỜI CAM ĐOAN Tôi cam đoan rằng luận văn “Ứng dụng mạng Neural tích chập nhận dạng

ký tự số viết tay” là bài nghiên cứu của chính tôi Ngoại trừ những tài liệu tham khảo

được trích dẫn trong luận văn này, tôi cam đoan rằng toàn phần hay những phần nhỏ của luận văn này chưa từng được công bố hay được sử dụng để nhận bằng cấp ở những nơi khác Không có sản phẩm /nghiên cứu nào của người khác được sử dụng trong luận văn này mà không được trích dẫn theo đúng quy định

Tp Hồ Chí Minh, ngày … tháng … năm 2016

Tác giả luận văn

Header Page 6 of 137

Trang 7

LỜI CẢM ƠN Tôi xin gửi lời cảm ơn sâu sắc đến TS.Vũ Thanh Hiền – Trường Đại Học Kinh

Tế Tài Chính TP.HCM, là người đã hướng dẫn tôi trong suốt quá trình nghiên cứu để tôi có được những kiến thức quý báu hoàn thành luận văn

Tôi xin bày tỏ lòng biết ơn đến quý thầy quý cô trong Viện Đào tạo Sau Đại học Trường Đại học Quốc tế Hồng Bàng đã cung cấp những kiến thức quý báu cho tôi trong suốt quá trình học tập và nghiên cứu tại trường

Tôi cũng xin gởi lời cảm ơn đến gia đình, đồng nghiệp, bạn bè và những người thân luôn quan tâm và giúp đỡ tôi trong suốt thời gian học tập và làm luận văn

Do thời gian và kiến thức có hạn nên luận văn chắc không tránh khỏi những thiếu sót nhất định Tôi rất mong nhận được sự góp ý quý báu của thầy cô

Trân trọng

Lê Hồng Phong

Trang 8

TÓM TẮT

Nhận dạng ký tự viết tay là một lĩnh vực được quan tâm nghiên cứu và được ứng dụng rộng rãi trong nhiều lĩnh vực như: nhận dạng các chữ số trên phiếu chi ngân hàng, mã số trên bì thư của dịch vụ bưu chính, hay các chữ số trên các biểu mẫu …

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 Bài toán lớn luôn đặt ra phía trước

vì sự phức tạp của việc nhận dạng chữ viết phụ thuộc nhiều vào phong cách viết và cách thể hiện ngôn ngữ của người viết

Mạng Neural dựa trên việc mô phỏng cấp thấp hệ thống Neural sinh học, trong tương lai với sự phát triển mô phỏng Neural sinh học có thể có loại máy tính thông minh thật sự để phát triển lĩnh vực này Từ những ý tưởng sáng tạo của các nhà khoa học được nêu trên và kết hợp với những kiến thức đã có về ký tự số viết tay nên tôi đã chọn đề tài nghiên cứu “Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay”

Hiện nay có rất nhiều phương pháp nhận dạng nhưng để nhận dạng được chữ viết tay thì rất khóa khăn, vì vậy ta phải xây dựng một tập cơ sở dữ liệu mẫu về ký tự viết tay khá lớn nhưng khi xử lý đòi hỏi phải có độ chính xác cao và thời gian thực hiện ngắn nhất

Hệ thống “Ứng Dụng mạng NEURAL Tích chập nhận dạng ký tự số viết tay” nghiên cứu các vấn đề như sau:

- Xử lý và phân tích được được các ký tự ảnh đầu vào

- Chuyển đổi ký tự sang ma trận điểm ảnh và ma trận Kernel

- Tiến hành nhận dạng ký tự bằng thuật toán mạng neural tích chập

- Sau quá trình thực nghiệm trên tập dữ liệu thực MNIST, hiển thị kết quả

thu được qua quá trình nhận dạng

Header Page 8 of 137

Trang 9

ABSTRACT

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, or digits on the form

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

The Neural network based on basic level simulations of biological neural systems , in the future with the development of biological neural simulation sewing machine intelligence have really to develop this field From these creative ideas of the scientist and the knowledge of handwritten characters and digits, i have chosen the topic "Application convolution neural network recognition of handwritten characters "

Nowadays, there are so many methods of identification , but to recognize the handwriting is very difficult Even though we must build a large collective database of handwritten characters, when treatment requires high precision and shortest implementation time

System "Application Integration convolution neural network recognition of handwritten characters" study the problem as follows:

- Handling and analyzes the input image character

- Convert characters into pixel matrix and matrix Kernel

- Conduct a character recognition algorithm using neural network

convolution

- After the experiments on real data sets MNIST, showing the results

obtained through the identification process

Trang 10

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

TP HCM, ngày … tháng … năm 2016

Chữ ký giảng viên

Header Page 10 of 137

Trang 11

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 1

TP HCM, ngày … tháng … năm 2016

Chữ ký giảng viên

Trang 12

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 2

TP HCM, ngày … tháng … năm 2016

Chữ ký giảng viên

Header Page 12 of 137

Trang 13

NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN

TP HCM, ngày … tháng … năm 2016

Chữ ký giảng viên

Trang 14

DANH MỤC BIỂU ĐỒ HÌNH VẼ

Hình 1-1 Mô hình neural sinh học 6

Hình 1-2 Mô hình Neural nhân tạo ở mức đơn giản 7

Hình 1-3 Hàm Heaviside 8

Hình 1-4 Mô hình mạng 1 tầng 10

Hình 1-5 Mô hình mạng đa tầng 11

Hình 2-1 Minh họa một số nhân lọc mịn ảnh 15

Hình 2-2 A Lân cận của “?” P= dòng trước; L=lân cận trái 20

Hình 2-3 Ảnh ban đầu (ảnh bên trái) và Tiến trình gán nhãn (ảnh bên phải) 21

Hình 2-4 Xác định độ nghiêng của ảnh 21

Hình 2-5 Các nhân của bộ lọc Sobel 22

Hình 2-6.Các thành phần cấu trúc đối xứng 24

Hình 2-7.Các thành phần cấu trúc không đối xứng 25

Hình 2-8.Thành phần cấu trúc phát hiện biên 25

Hình 2-9.Minh hoạ dò biên 26

Hình 2-10.Hướng quy ước mã hóa 26

Hình 2-11.Đường biên đã được mã hóa 27

Hình 2-12 Dabs=2 và ci chẵn , ci+1 chẵn 27

Hình 2-13 Dabs=2 và ci lẻ, ci+1 lẻ 28

Hình 2-14 Dabs=3 và c i chẵn, c i+1 lẻ 28

Hình 2-15 Dabs=3, ci lẻ, ci+1 chẵn 28

Hình 2-16.Minh hỏa ảnh sau tiền xử lý 29

Hình 2-17 Feedforward Neural Network 30

Header Page 14 of 137

Trang 15

Hình 2-19 Minh họa mô hình CNNs 31

Hình 2-20 Minh họa việc lấy mẫu con 32

Hình 2-21 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 33

Hình 2-22 Minh họa phương pháp SAME 34

Hình 2-23 Minh họa phương pháp FULL 35

Hình 2-24 Minh họa phương pháp VALID 36

Hình 2-25 Minh họa cách biểu diễn ảnh 37

Hình 2-26 Minh họa kết quả tích chập trong kỹ thuật blur 38

Hình 2-27 Minh họa kết quả tích chập trong kỹ thuật sharpen 39

Hình 2-28 Minh họa kết quả tích chập trong kỹ thuật Outline 40

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

Hình 3-1 Minh họa mô hình mạng sử dụng trong luận văn 43

Hình 3-2 Minh họa kết quả xác định vùng ảnh chứa ký số 44

Hình 3-3 Lưu đồ xác định hình chữ nhật nhỏ nhất ngoại tiếp ký số cần xác định 46

Hình 3-4 Ảnh trước (kích thước 60X60) và sau (kích thước 32X32) khi thực hiện scale 47

Hình 3-5 Minh họa thao tác thực hiện tích chập 48

Hình 3-6 Quá trình trích chọn đặc trưng sử dụng CNNs 49

Hình 4-1 Minh họa dữ liệu có trong cơ sở dữ liệu MNIST 53

Hình 4-2 Giao diện của ứng dụng 54

Hình 4-3 Giao diện của ứng dụng sau khi mở file ảnh 55

Hình 4-4 Giao diện của ứng dụng sau khi ảnh được đóng khung 56

Hình 4-5 Ảnh sau khi nhận dạng và đưa về kích thước chuẩn (32 X 32) 57

Trang 16

Hình 4-6 Tùy vào người dùng chọn ảnh nào bên khung trái, khung phải sẽ hiển thị màu và giá trị màu của các pixel có trong ảnh (32 X 32) 58 Hình 4-7 Hình bên trái: Ma trận điểm của ảnh sau khi thực hiện convolution, từ kích thước 32 X 32 đã giàm còn 28 X 28 Hình bên phải:Ma trận điểm của ảnh sau khi thực hiện subsampling, từ kích thước 28 X 28 đã giàm còn 14 X 14 59 Hình 4-8 Ảnh ban đầu và kết quả sau khi nhận dạng 60

Header Page 16 of 137

Trang 17

DANH MỤC THUẬT NGỮ TIẾNG ANH

Nonlinear activation function Hàm kích hoạt phi tuyến

Trang 18

DANH MỤC THUẬT NGỮ VIẾT TẮT

Header Page 18 of 137

Trang 19

MỤC LỤC

CHUẨN Y CỦA HỘI ĐỒNG BẢO VỆ LUẬN VĂN i

LÝ LỊCH CÁ NHÂN iii

LỜI CAM ĐOAN iv

LỜI CẢM ƠN v

TÓM TẮT vi

ABSTRACT vii

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN viii

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 1 ix

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 2 x

NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN xi

DANH MỤC BIỂU ĐỒ HÌNH VẼ xii

DANH MỤC THUẬT NGỮ TIẾNG ANH xv

DANH MỤC THUẬT NGỮ VIẾT TẮT xvi

MỤC LỤC xvii

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG KÝ TỰ SỐ VIẾT TAY 1

1.1 Phát Biểu Bài Toán 1

1.2 Những khó khăn và thách thức của bài toán nhận dạng chữ viết 3

1.3 Các công trình nghiên cứu trong và ngoài nước 4

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT TIỀN XỬ LÍ ẢNH KÍ TỰ 6

2.1 KHÁI NIỆM MẠNG NEURAL 6

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

2.1.2 Mạng Neural nhân tạo 7

Trang 20

2.1.3 Kiến trúc mạng 9

2.1.4 Mạng một tầng 9

2.1.5 Mạng Đa Tầng 11

2.2 HUẤN LUYỆN MẠNG NEURAL 12

2.2.1 Phương pháp học 12

2.2.2 Học có giám sát 12

2.2.3 Học không giám sát 12

2.2.4 Học tăng cường 12

2.2.5 Thuật toán huấn luyện mạng 13

2.3 LỌC MỊN ẢNH 15

2.4 NHỊ PHÂN ẢNH 15

2.5 ĐÁNH NHÃN THÀNH PHẦN LIÊN THÔNG 18

2.5.1 Tách liên thông bằng kĩ thuật đệ quy 18

2.5.2 Giải thuật cải tiến 19

2.5.3 Chỉnh nghiêng 21

2.6 CHUẨN KÍCH THƯỚC 23

2.7 LẤP KHOẢNG TRỐNG ẢNH BẰNG PHÉP ĐÓNG MORPHOLOGY 23

2.7.1 Một số định nghĩa 23

2.7.2 Phép giãn 24

2.7.3 Phép co 24

2.7.4 Phép đóng 24

2.8 LẤY ĐƯỜNG BIÊN VÀ LÀM TRƠN ĐƯỜNG BIÊN 25

2.8.1 Phát hiện biên 25

Header Page 20 of 137

Trang 21

2.8.3 Xác định hướng của điểm biên (Freeman code) 26

2.8.4 Làm trơn đường biên 27

2.9. MẠNG NEURAL TÍCH CHẬP (Convolutional Neural Networks – CNNs)29 2.9.1 Khái niệm CNNs 29

2.9.2 Cấu trúc mạng neural tích chập 31

2.9.3 Những phương pháp tích chập (convolution) 32

2.9.4 Một số phép tích chập thường sử dụng trong xử lý ảnh 36

CHƯƠNG 3 ỨNG DỤNG CNNs CHO BÀI TOÁN NHẬN DẠNG CÁC KÝ TỰ SỐ 41

3.1 PHÁT BIỂU BÀI TOÁN 41

3.1.1 Phát biểu bài toán nhận dạng 41

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

3.2 Ý TƯỞNG THỰC HIỆN 42

3.3 THUẬT TOÁN NHẬN DẠNG KÝ SỐ 42

3.3.1 Xây dựng mạng neural 43

3.3.2 Xử lý dữ liệu (phân tích ảnh) 43

CHƯƠNG 4 CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 52

4.1 MÔI TRƯỜNG THỬ NGHIỆM 52

4.1.1 Phần cứng 52

4.1.2 Phần mềm 52

4.1.3 Cơ sở dữ liệu sử dụng trong ứng dụng 52

4.2 GIAO DIỆN CỦA ỨNG DỤNG 54

4.2.1 Hệ thống menu 54

4.2.2 Các tab control 54

Đánh giá kết quả đạt được 61

Trang 22

4.3.1 Nhận dạng ảnh (độ sai lệch) 61 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64 TÀI LIỆU THAM KHẢO 65

Header Page 22 of 137

Trang 23

CHƯƠNG 1

TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG

KÝ TỰ SỐ VIẾT TAY 1.1 Phát Biểu Bài Toán

Trước khi được nhận dạng, mỗi ký tự số được chuyển đổi thành dạng ảnh nhị phân có kích kích thước khoảng 32x32 Trong đó các kí tự số có độ nghiêng không quá lớn và kích thước hợp chuẩn với sai số chấp nhận được

Chuẩn kích thước của ký tự số:

Hình 1.1 Mô tả bài toán nhận dạng

 Ascender height: Trùng với cạnh trên của ảnh

 Descender heigt: Trùng với cạnh dưới của ảnh

 Height: Chiều cao của ảnh

1 2 3 4

Ascender height

Descender height

Height

Trang 24

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

Mô hình nhận dạng đƣợc mô tả trong hình sau :

Hình 1.2 Mô hình bài toán nhận dạng

Tiền Xử Lý

Trích Chọn Đặt Trƣng

Nhận Dạng Huấn Luyện

Trang 25

Trong đó:

- Tiền xử lý: Sau khi đã khử nhiễu, ảnh được chuẩn hóa về kích thước chuẩn Việc

chuẩn hóa kích thước ảnh được thực hiện theo các bước sau:

 Bước 1: Nhị phân hóa ảnh

 Bước 2: Tìm hình chữ nhật bé nhất chứa các điểm đen trên ảnh

 Bước 3: Lấy vùng ảnh nằm trong hình chữ nhật

 Bước 4: Chuẩn hóa ảnh về kích thước chuẩn

- Trích chọn đặc trưng: Trong phần này, giới thiệu phương pháp trích chọn đặc

trưng đơn giản nhưng hiệu quả, có thể áp dụng cho các tập dữ liệu ký tự số viết tay rời rạc như sau:

 Ảnh ký tự sau khi đã chuẩn hóa về kích thước chuẩn sẽ được chia thành NxN vùng Tổng số điểm đen của mỗi vùng sẽ được chọn để tạo thành các vectơ đặc trưng

 Lựa chọn thuật toán huấn luyện phân lớp: Áp dụng thuật toán lan truyền ngược Back Propagation

1.2 Những khó khăn và thách thức của bài toán nhận dạng chữ viết

Với những kiểu ký tự số viết sát nhau, việc phân tích giới hạn ký tự chưa được chính xác, dẫn đến đọc ký tự sai

Hình 1.3 Minh họa chữ sát liền nhau

Hoặc ký tự bị nhòe hoặc mờ, bề mặt ký tự có thể bị mờ hoặc che khuất bởi một đối tượng khác, dẫn đến đọc ký tự sai

Hình 1.4.Minh họa ảnh ký tự bị nhòe

Trang 26

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

Ký tự số trong ảnh nằm giao nhau, cắt nhau hoặc ký số này chứa trong ký số kia gây khó khăn trong việc nhận dạng, dẫn điến đọc ký tự sai

Hình 1.5 Ảnh minh họa ký tự số nằm giao nhau hoặc cắt nhau

- Giới hạn về cở sở dữ liệu ảnh : Trong phạm vi của nghiên cứu này, tôi chỉ giới

hạn nhận dạng mười ký tự số viết tay từ không đến chín

- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

1.3 Các công trình nghiên cứu trong và ngoài nước

- Một số công trình nghiên cứu ngoài nước:

 Jun Tan, Jian Huang Lai, Wei-Shi Zheng, Chinese Handwritten writer identification based on Structure Features and extreme learning machine (2011) Công trình nhận dạng chữ viết tiếng hoa

 Suchenwirth, Richard, Jun Guo, Irmfried Hartmann, Georg Hincha, Manfred Krause, and Zheng Zhang, Optical Recognition of Chinese ISBN 978-3-528-06339-9 ISBN 978-3-663-13999-7 (eBook) DOI 10.1007/978-3-663-13999-7

 Yip, W.K., Goh, A., Ngo, D.C.L., Teoh, A.B.J.: Generation of Replaceable Cryptographic Keys from Dynamic Handwritten Signatures In: Zhang, D., Jain, A.K (eds.) ICB 2005 Nhận dạng chữ ký số

- Một số công trình nghiên cứu trong nước:

 Nguyễn Thị Thanh Tân (2005), Nhận dạng chữ viết tay hạn chế dựa trên

mô hình mạng neuron kết hợp với thống kê ngữ cảnh, Luận văn thạc sỹ, ĐHQGHN

 Nguyễn Thị Thanh Tân (25-03-2015), Nghiên cứu và ứng dụng phân đoạn ảnh trong nhận dạng chữ viết tay tiếng việt , ĐHQGHN

 Phạm Anh Phương, Ngô Quốc Tạo, Lương Chi Mai, An Efficient Model for Isolated VietNamemes Handwritten Recognition, Proceding of

Header Page 26 of 137

Trang 27

Conference on Intelligent nformation Hidding and Multimedia Signal Processing, 2008

Trang 28

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT TIỀN XỬ LÍ ẢNH KÍ TỰ

2.1 KHÁI NIỆM MẠNG NEURAL

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

Những thành phần chính trong cấu trúc của một neural trong bộ não con người

Hình 2-1 Mô hình neural sinh học

Trong đó :

- Các Soma là thân của neural

- Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu (dưới dạng xung điện thế) đến cho soma xử lý Bên trong soma các dữ liệu đó được tổng hợp lại Có thể xem gần đúng sự tổng hợp ấy như là một phép lấy tổng tất cả các dữ liệu mà neural nhận được

- Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon Khác với dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu từ Neural đi các nơi khác Chỉ khi nào điện thế trong soma vượt quá một giá trị ngưỡng nào đó (threshold) thì axon mới phát một xung điện thế, còn nếu không thì nó ở trạng thái nghỉ

Header Page 28 of 137

Trang 29

- Axon nối với các dendrites của các neural khác thông qua những mối nối đặc biệt gọi là synapse Khi điện thế của synapse tăng lên do các xung phát ra từ axon thì synapse sẽ nhả ra một số chất hoá học (neurotransmitters); các chất này mở "cửa" trên dendrites để cho các ions truyền qua Chính dòng ions này làm thay đổi điện thế trên dendrites, tạo ra các xung dữ liệu lan truyền tới các Neural khác

Có thể tóm tắt hoạt động của một Neural như sau: Neural lấy tổng tất cả các điện thế vào mà nó nhận được, và phát ra một xung điện thế nếu tổng ấy lớn hơn một ngưỡng nào đó Các Neural nối với nhau ở các synapses Synapse được gọi là mạnh khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các Neural khác Ngược lại, một synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn

Các synapses đóng vai trò rất quan trọng trong sự học tập Khi chúng ta học tập thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa các Neural

Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các Neural càng nhiều, càng nhạy bén

2.1.2 Mạng Neural nhân tạo

Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra

Hình 2-2 Mô hình Neural nhân tạo ở mức đơn giản

Neural này sẽ hoạt động như sau: giả sử có N inputs, Neural sẽ có N Weights (trọng số) tương ứng với N đường truyền inputs Neural sẽ lấy tổng có trọng số của tất

cả các inputs Nói như thế có nghĩa là Neural sẽ lấy input thứ nhất, nhân với weight trên đường input thứ nhất, lấy input thứ hai nhân với weight của đường input thứ hai v.v , rồi lấy tổng của tất cả các kết quả thu được Đường truyền nào có weight càng

OutputWeight Wi

Input X2 Tổng  So sánh với ngưỡng

Trang 30

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

lớn thì tín hiệu truyền qua đó càng lớn, như vậy có thể xem weight là đại lượng tương đương với synapse trong Neural sinh học Có thể viết kết quả lấy tổng của Neural như sau:

∑ Kết quả này sẽ được so sánh với threshold t của Neural, nếu nó lớn hơn t thì Neural cho output là 1, còn nếu nhỏ hơn thì output là 0 Ngoài ra ta cũng có thể trừ tổng nói trên cho t, rồi so sánh kết quả thu được với 0, nếu kết quả là dương thì Neural cho ouput bằng 1, nếu kết quả âm thì output là 0 Dưới dạng toán học ta có thể viết output của Neural như sau:

(∑

)

Header Page 30 of 137

Trang 31

Lưu ý là chỉ số của tổng bây giờ bắt đầu từ 0 chứ không phải bằng 1 như trước nữa

2.1.3 Kiến trúc mạng

Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là Neural) tựa như Neural thần kinh của não người, hoạt động song song và được nối với nhau bởi các liên kết Neural Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các Neural

Có thể xem các trọng số là phương tiện để lưu trữ thông tin dài hạn trong mạng Neural và nhiệm vụ của quá trình huấn luyện của mạng là cập nhật các trọng

số khi có thêm thông tin về mẫu học Hay nói một cách khác, các trọng số đều được điều chỉnh sao cho dáng điệu vào ra của mạng sẽ mô phỏng hoàn toàn phù hợp với môi trường đang xem xét

2.1.4 Mạng một tầng

Mạng một tầng với S Neural được minh họa trong hình 1.3 Chú ý rằng với mỗi một đầu vào trong số R đầu vào sẽ được nối với từng Neural và ma trận trọng số bây giờ sẽ có S hàng

Một tầng bao gồm ma trận trọng số, các bộ cộng, vector ngưỡng b, hàm chuyển

và vector đầu ra a

Mỗi phần tử của vector đầu vào p được nối với từng Neural thông qua ma trận trọng số W Mỗi Neural có một ngưỡng b i, một bộ cộng, một hàm chuyển f và một

đầu ra a i cùng với nhau, các đầu ra tạo thành một vector đầu ra a Thông thường thì số

lượng đầu vào của tầng khác với số lượng Neural.(R#S)

Có phải tất cả các Neural trong cùng một tầng phải có hàm chuyển giống nhau? Câu trả lời là không, bạn có thể định nghĩa các Neural trong một tầng có hàm chuyển khác nhau bằng cách kết hợp song song hai mạng Neural giống ở trên Cả hai sẽ có đầu vào giống nhau và mỗi mạng sản xuất ra vài đầu ra

Trang 32

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

Ma trận trọng số cho các phần tử trong vector đầu vào W:

f

f

Header Page 32 of 137

Trang 33

2.1.5 Mạng Đa Tầng

Hình 2-5 Mô hình mạng đa tầng

Mô hình mạng Neural ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn(hidden) và lớp xuất (output) Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và chuyển vào mạng

Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp, ta gọi là tổng trọng số và chuyển kết quả cho các nút trong lớp ẩn Gọi là “ẩn” vì các nút trong lớp này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết kế mạng mới biết lớp này (người sử dụng không biết lớp này)

Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp

ẩn Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc

Trang 34

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

2.2 HUẤN LUYỆN MẠNG NEURAL

2.2.1 Phương pháp học

Mạng Neural nhân tạo phỏng theo việc xử lý thông tin của bộ não người, do vậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh và dữ liệu khi đã học Trong trạng thái học thông tin được lan truyền theo hai chiều nhiều lần

để học các trọng số Có 3 kiểu học chính, mỗi kiểu học tương ứng với một nhiệm vụ học trừu tượng Đó là học có giám sát (có mẫu), học không giám sát và học tăng cường Thông thường loại kiến trúc mạng nào cũng có thể dùng được cho các nhiệm

vụ

2.2.2 Học có giám sát

Một thành phần không thể thiếu của phương pháp này là sự có mặt của một người thầy (ở bên ngoài hệ thống) Người thầy này có kiến thức về môi trường thể hiện qua một tập hợp các cặp đầu vào - đầu ra đã được biết trước Hệ thống học (ở đây

là mạng Neural) sẽ phải tìm cách thay đổi các tham số bên trong của mình (các trọng

số và các ngưỡng) để tạo nên một ánh xạ có khả năng ánh xạ các đầu vào thành các đầu ra mong muốn Sự thay đổi này được tiến hành nhờ việc so sánh giữa đầu ra thực

sự và đầu ra mong muốn

2.2.3 Học không giám sát

Trong học không có giám sát, ta được cho trước một số dữ liệu x và hàm chi phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra của mạng, f – hàm chi phí được quyết định bởi phát biểu của bài toán Phần lớn các ứng dụng nằm trong vùng của các bài toán ước lượng như mô hình hóa thống kê, nén, lọc, phân cụm

2.2.4 Học tăng cường

Dữ liệu x thường không được tạo trước mà được tạo ra trong quá trình một agent tương tác với môi trường Tại mỗi thời điểm t, agent thực hiện hành động yt và môi trường tạo một quan sát xt với một chi phí tức thời Ct, theo một quy trình động nào đó (thường là không được biết) Mục tiêu là một sách lược lựa chọn hành động để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích lũy mong đợi Quy trình hoạt động của môi trường và chi phí dài hạn cho mỗi sách lược thường không được biết, nhưng có thể ước lượng được Mạng Neural nhân tạo thường được dùng trong

Header Page 34 of 137

Trang 35

quyết bằng học tăng cường là các bài toán điều khiển, trò chơi và các nhiệm vụ quyết định tuần tự (sequential decision making) khác

Hãy bắt đầu bằng cách cho các weights những giá trị ngẫu nhiên, lúc này Neural chưa biết gì hết Bây giờ hãy input chữ A Neural sẽ lấy tổng có trọng số của các inputs và so sánh kết quả với 0 Nếu kết quả dương thì output là 1, âm thì output là

0 Khả năng Neural đoán đúng là 50%, vì các weights đang có giá trị hoàn toàn ngẫu nhiên Nếu Neural đoán đúng thì chúng ta không cần làm gì cả, nhưng khi Neural đoán sai (output bằng 0), thì chúng ta phải tăng các weights của các inputs đang hoạt động (các inputs khác không) lên, sao cho lần tới tổng có trọng số sẽ vượt quá threshold và tạo nên output là 1

Ngược lại, khi đưa chữ B vào và Neural đoán sai (output bằng 1), thì ta phải giảm các weights của các inputs đang hoạt động xuống, sao cho lần tới tổng có trọng

số sẽ nhỏ hơn threshold và buộc Neural phải cho output bằng 0

Như vậy, khi dạy chữ B thành công rồi thì Neural có quên đi chữ đã học trước

đó là A không ? Không, vì khi input là các chữ khác nhau thì nhóm các đường inputs đang hoạt động cũng khác nhau hoặc là không hoàn toàn trùng nhau Nhớ là chúng ta chỉ biến đổi weights của các inputs đang hoạt động thôi Chúng ta chỉ việc lập đi lập lại quá trình dạy như trên cho tới khi Neural học thuộc bài mới thôi

2.2.5 Thuật toán huấn luyện mạng

2.2.5.1 Thuật Toán Lan Truyền Ngược Back Propagation

Đây là phương pháp thông dụng nhất để huấn luyện cho các mạng Neural truyền thẳng nhiều lớp

Tiêu chuẩn huấn luyện: Làm cho sai số đầu ra càng nhỏ càng tốt

Triết lý của phương pháp: dựa trên đầu ra để điều chỉnh trọng số của lớp ra, sau đó dựa trên tính toán của lớp ra để điều chỉnh trọng số của lớp ẩn

Huấn luyện mạng Neural nhiều lớp sử dụng thuật toán Lan truyền ngược gồm hai quá trình:

1 Quá trình truyền tuyến tính:

- Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để Thay đổi giá trị của trọng số liên kết W của các Neural trong mạng biểu diễn được

dữ liệu học

Trang 36

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

- Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được

và kết quả dự đoán của mạng gọi là lỗi (học có giám sát)

2 Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quá trình huyến luyện (học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất

Những hạn chế của phương pháp lan truyền ngược:

Ngoài những thành công của giải thuật học lan truyền ngược, vẫn còn có một số khía cạnh làm cho giải thuật trở nên chưa được bảo đảm là mọi lúc đều tốt Khó khăn chủ yếu là ở quá trình huấn luyện lâu Có thể do nhịp độ học và động lực không tối ưu

Sự sai sót trong việc huấn luyện nói chung xuất hiện từ hai nguồn: mạng liệt và những cực tiểu địa phương

Mạng liệt: Xảy ra khi những trọng số được điều chỉnh tới những giá trị rất lớn Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạt giá trị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ có một giá trị kích hoạt rất gần 0 hoặc rất gần 1 Giá trị hiệu chỉnh trọng số gần 0, và quá trình huấn luyện

có thể đi đến một trạng thái dừng ảo

Cực tiểu địa phương: Bề mặt sai số của mạng rất phức tạp đầy những ngọn đồi

và những thung lũng Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại một cực tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh Những phương pháp thống kê có thể giúp để tránh cái bẫy này, nhưng chúng làm chậm Một phương án khác là tăng thêm số lượng đơn vị ẩn Như vậy sẽ làm việc trong không gian sai số nhiều chiều, nên

cơ hội gặp bẫy nhỏ hơn Tuy nhiên việc tăng cũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên

Header Page 36 of 137

Trang 37

2.3 LỌC MỊN ẢNH

Lọc mịn ảnh là một dạng lọc thông thấp, là giá trị của một điểm ảnh là trung bình trọng số của các điểm ảnh lân cận, hay giá trị điểm ảnh là kết quả của các điểm ảnh lân cận với một nhân Nhân có kích thước tuỳ ý 3x3, 5x5, kích thước nhân càng lớn thì càng nhiều điểm lân cận ảnh hưởng vào điểm ảnh kết quả Ví dụ một số nhân lọc mịn ảnh như sau:

Tiêu chuẩn xác định ngưỡng thường sử dụng nhất là sử dụng sai số bình phương trung bình giữa giá trị mẫu v và mức tái thiết r(v) (ký hiệu MSE)

Trang 38

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

Trong đó p(v) là hàm mật độ xác suất của biến ngẫu nhiên v, có thể coi xấp xỉ bằng histogram của ảnh Với một số cho trước L các mức xám MSE được biểu diễn bởi:

 ev vp v dv E

j

j j

1

2 2

Do r(v)=rj là hằng số trong đoạn [vj , vj+1]

Với p(v) cho trước và số mức tái thiết L cố định, các mức quyết định vj , j= 1…L-1 và các mức tái thiết rj , j=0 L-1 cực tiểu hố MSE tuân theo quan hệ sau:

 

 

1

1

1 2

1 1 1

dv v vp r

L j

r r v

j

j

j

j v

v

v

v j

j j j

Tuy nhiên, không có cách giải quyết dưới dạng khép kín nào tồn tại trừ khi chấp nhận một số phép xấp xỉ

Bây giờ ta xem xét trường hợp ngoại lệ nhưng quan trọng với L=2 Đó là trường hợp nhị phân hố ảnh Khi đó MSE trở thành:

0 2

v p r v e

E

Giả sử rằng p(v) có thể ước lượng từ histogram và v0, v2 tương ứng với vmin,

vmax Còn lại ba tham số cần được tính tốn đó là r0, r1, và v1 Tham số v1 gọi là ngưỡng nhị phân hố Hơn nữa r0(v1) và r1(v1) cực tiểu MSE, với một giá trị cho trước của vj, đơn giản là những giá trị trung bình trong đoạn tương ứng:

dv v vp v

r

Header Page 38 of 137

Trang 39

2

1 1

dv v vp v

r

Như vậy đủ để biến đổi v1 từ v0 đến v2 MSE được tính bằng cách thay r0 và r1bằng r0(v1) và r1(v1) tương ứng và chọn vl*

sao cho MSE là cực tiểu

Otsu đề nghị một cách tương tự nhưng tiêu chuẩn đơn giản hơn về mặt tính tốn dựa trên phân tích biệt số Trong công thức này, MSE tương đương với phương sai lớp trong W2

0 1 0

1

1 1 1

0

1 1

1

1 1

0

11

v v

v

v v

v v v

v v

p

v v

dv v p v

2 1 1

* 1

1

.maxarg

v v

v v

Trang 40

Ứng dụng mạng neural tích chập nhận dạng ký tự số viết tay

2.5 ĐÁNH NHÃN THÀNH PHẦN LIÊN THÔNG

2.5.1 Tách liên thông bằng kĩ thuật đệ quy

Để tách liên thông ta nghĩ ngay đến kỹ thuật đệ quy cấp 8 (tại mỗi bước chúng ta có tối đa 8 lựa chọn tiếp theo)

Quy ước: Điểm (x, y): cho biết giá trị điểm tại toạ độ (x, y)

= 1 màu chữ

= 0 màu nền Height: Chiều cao ảnh Width: Chiều rộng ảnh

Ta có giải thuật như sau:

/* Đưa tất cả các điểm liên thông với điểm(x,y) vào liên thông

For j:= y-1 to y+1 do

If ( i <>x) or (j<>y) then Chonvao((i, j),t);

End;

End;

//Ta có thủ tục tách liên thông đệ quy như sau :

Header Page 40 of 137

Ngày đăng: 27/06/2017, 14:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Hoàng Kiếm, Nguyễn Hồng Sơn, Đào Minh Sơn, “Ứng dụng mạng neuron nhân tạo trong 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 Sách, tạp chí
Tiêu đề: Ứng dụng mạng neuron nhân tạo trong hệ thống xử lý biểu mẫu tự động
[2]. “ Ứng dụng mạng neuron nhân tạo trong hệ thống xử lý biểu mẫu tự động”, Hồng Kiếm (Khoa công nghệ thông tin Đại học Khoa Học Tự Nhiên TPHCM), Nguyễn Hồng Sơn - Đào Minh Sơn ( Trung tâm máy tính, Cục xuất nhập cảnh, Bộ công an) Sách, tạp chí
Tiêu đề: Ứng dụng mạng neuron nhân tạo trong hệ thống xử lý biểu mẫu tự động
[3]. Lê Hoài Bắc, Lê Hoàng Thái, “Neural Network &amp; Genetic Algorithm in Application to Handwritten Character Recognition”, Tạp chí tin học và điều khiển học. Tập 17, số 04, 2001, tr 57-65 Sách, tạp chí
Tiêu đề: Neural Network & Genetic Algorithm in Application to Handwritten Character Recognition
[4]. 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&amp;KT Hà Nội, 2004, tr. 200-210 Sách, tạp chí
Tiêu đề: 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
Nhà XB: NXB KH&KT Hà Nội
[5]. P. V. Dung, “Online handwriting recognition using multi convolution neural networks”. In Proceedings of The Ninth International Conference on Simulated Evolution And Learning (SEAL 2012), Hanoi, Vietnam, December 2012, pp.310-319.Nguồn cơ sở dữ liệu tham khảo trên Internet Sách, tạp chí
Tiêu đề: Online handwriting recognition using multi convolution neural networks

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm