ĐẠI HỌC THÁI NGUYÊN TÌM HIỂU MẠNG NEURAL HAMMING VÀ ỨNG DỤNG TRONG BÀI TOÁN NHẬN DẠNG CÁC CHỮ CÁI TIẾNG VIỆT Thái Nguyên – 2013... ĐẠI HỌC THÁI NGUYÊN TÌM HIỂU MẠNG NEURAL HAMMING VÀ
Trang 1ĐẠI HỌC THÁI NGUYÊN
TÌM HIỂU MẠNG NEURAL HAMMING
VÀ ỨNG DỤNG TRONG BÀI TOÁN NHẬN DẠNG
CÁC CHỮ CÁI TIẾNG VIỆT
Thái Nguyên – 2013
Trang 2ĐẠI HỌC THÁI NGUYÊN
TÌM HIỂU MẠNG NEURAL HAMMING
VÀ ỨNG DỤNG TRONG BÀI TOÁN NHẬN DẠNG
CÁC CHỮ CÁI TIẾNG VIỆT Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS Lê Quang Minh
Thái Nguyên – 2013
Trang 3LỜI CẢM ƠN
Để hoàn thành bản luận văn này, bên cạnh sự nỗ lực cố gắng của bản thân còn có sự hướng dẫn nhiệt tình của quý Thầy Cô, cũng như sự động viên ủng hộ của gia đình và bạn bè trong suốt thời gian học tập nghiên cứu
và thực hiện luận văn thạc sĩ
Xin chân thành bày tỏ lòng biết ơn đến Thầy giáo TS Lê Quang Minh, người đã hết lòng giúp đỡ và tạo mọi điều kiện tốt nhất cho tôi hoàn thành luận văn này Xin gửi lời tri ân nhất của tôi đối với những điều mà Thầy đã dành cho tôi
Xin chân thành bày tỏ lòng biết ơn đến toàn thể quý Thầy Cô trong trường Đại học Công nghệ Thông tin & Truyền thông cũng như quý Thầy Cô đã tận tình truyền đạt những kiến thức quý báu và tạo mọi điều kiện thuận lợi cho tôi trong suốt quá trình học tập, nghiên cứu và cho đến khi thực hiện luận văn
Xin chân thành bày tỏ lòng biết ơn đến gia đình, những người đã không ngừng động viên, hỗ trợ và tạo mọi điều kiện tốt nhất cho tôi trong suốt thời gian học tập và thực hiện luận văn
Cuối cùng, tôi xin chân thành bày tỏ lòng biết ơn đến các anh chị và các bạn bè đồng nghiệp đã hỗ trợ cho tôi trong suốt quá trình học tập, nghiên cứu
và thực hiện luận văn một cách hoàn chỉnh
Thái Nguyên, tháng 11 năm 2013
Học viên thực hiện
Phùng Văn Kiệm
Trang 4MỤC LỤC
LỜI CẢM ƠN 3
MỤC LỤC 4
DANH MỤC CÁC TỪ VIẾT TẮT 7
DANH MỤC HÌNH VẼ 8
MỞ ĐẦU 1
CHƯƠNG I: TỔNG QUAN VỀ HIỆN TRẠNG CÁC BÀI TOÁN NHẬN DẠNG VÀ THIẾT LẬP BÀI TOÁN NGHIÊN CỨU 3
1.1 Tổng quan về bài toán nhận dạng 3
1.2 Cụ thể về bài toán nhận dạng chữ cái Tiếng Việt 4
1.3 Thiết lập bài toán 4
1.3.1 Ảnh đầu và 5
1.3.2 Tiền sử lý 5
1.3.2.1 Nhị phân hóa ảnh 5
1.3.2.2 Lọc nhiễu 6
1.3.2.3 Chuẩn hóa kích thước ảnh 7
1.3.2.4 Làm trơn biên chữ 7
1.3.2.5 Làm đầy chữ 8
1.3.2.6 Làm mảnh chữ 8
1.3.2.7 Điều chỉnh độ nghiêng của văn bản 8
1.3.3 Quá trình biến đổi ảnh 9
1.3.3.1 Biến đổi Fourier 9
1.3.3.2 Biến đổi Wavelet 9
1.3.3.3 Phương pháp mô men 9
1.3.3.4 Khai triển Karhunent-Loeve 9
1.3.4 Nhận dạng 10
1.3.4.1 Đối sánh mẫu 10
Trang 51.3.4.2 Phương pháp tiếp cận cấu trúc 11
1.3.4.3 Mô hình Markov ẩn (HMM - Hidden Markov Model) 13
1.3.4.4 Máy véc tơ tựa (SVM) 13
1.3.4.5 Mạng nơ ron 14
1.3.5 Kết quả 15
1.4 Kết luận 15
CHƯƠNG II: TÌM HIỂU MẠNG NEURAL VÀ MẠNG HAMMING 16
2.1 Mạng Neural 16
2.1.1 Khái niệm mạng Neural 16
2.1.2 Lịch sử phát triển mạng Neural 16
2.1.3 Đặc trưng của mạng neural 18
2.1.3.1 Tính phi tuyến 18
2.1.3.2 Tính chất tương ướng đầu vào đầu ra 19
2.1.3.3 Tính chất thích nghi 19
2.1.3.4 Tính chất đưa ra lời giải có bằng chứng 19
2.1.3.5 Tính chất chấp nhận sai xót 20
2.1.3.6 Khả năng cài đặt VLSI(Very-large-scale-intergrated) 20
2.1.3.7 Tính chất đồng dạng trong phân tích và thiết kế 20
2.1.4 Phân loại mạng neural nhân tạo 21
2.1.4.1 Phân loại theo kiểu liên kết neural 21
2.1.4.2 Một số loại mạng neural 21
2.1.5 Xây dựng mạng neural 23
2.1.6 Huấn luyện mạng neural 25
2.1.6.1 Phương pháp học 25
2.1.6.2 Thuật toán học 26
2.1.7 Ứng dụng của mạng neural 31
2.2 Mạng Hamming 32
Trang 62.2.1 Kiến trúc mạng Hamming 32
2.2.2 Thuật toán học điển hình của mạng Neural 34
2.3 Kết luận 40
CHƯƠNG III: ỨNG DỤNG MẠNG HAMMING TRONG BÀI TOÁN NHẬN DẠNG CÁC CHỮ CÁI TIẾNG VIỆT 41
3.1 Đặc thù và khó khăn của bài toán nhận dạng chữ cái Tiếng Việt 41
3.2 Thuật toán chung của chương trình 43
3.3 Cấu trúc mạng Neural Hamming của chương trình nhận dạng các chữ cái Tiếng Việt 44
3.4 Xây dựng chương trình nhận dạng chữ cái Tiếng Việt 46
3.4.1 Công cụ và ngôn ngữ lập trình 46
3.4.2 Xây dựng chương trình 46
3.4.2.1 Xây dựng mô hình mạng Neural Hamming và các tín hiệu đầu vào 46
3.4.2.2 Định vị và thu gọn kích cỡ ảnh 48
3.4.2.3 Xây dựng thuật toán 49
3.4.2.4 Nhận dạng 50
3.4.2.5 Giao diện chương trình 54
3.5 Thử nghiệm chương trình 54
3.6 Nhận xét chung quá trình thử nghiệm nhận dạng chữ cái Tiếng Việt và kết luận chương 3 60
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 63
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
RBF Radial Basic Function
HMM Hidden Markov Model
USPS United States Postal Service
MNIST Bộ mẫu chữ số viết tay NIST-Viện Công nghệ và Tiêu
chuẩn Quốc gia Hoa Kỳ (National Insitute of Standard and Technology of the United States)
SV Support Vector
SOM Self Origanizing Map
ANN Artificial Neural Network
VLSI Very-large-scale-intergrated
MLP Multi Layer Perceptron
LMS Least Means Square
Trang 8DANH MỤC BẢNG, HÌNH VẼ
Bảng 3.1: Kết quả nhận dạng các chữ cái Tiếng Việt Font Times New Roman 57
Bảng 3.2: Kết quả nhận dạng các chữ cái Tiếng Việt Font Arial 59
Hình 1.1 Sơ đồ hệ thống nhận dạng 5
Hình 1.2 Nhị phân hóa ảnh 6
Hình 1.3 Nhiễu đốm và nhiễu vệt 6
Hình 1.4.Chuẩn hóa kích thước ảnh các ký tự “A” và “P” 7
Hình 1.5.(a) Ảnh gốc, (b) Ảnh sau khi được làm trơn biên 7
Hình 1.6 Làm mảnh chữ 8
Hình 1.7 Hiệu chỉnh độ nghiêng của văn bản 8
Hình 2.1: Mạng tiến với một mức neural 21
Hình 2.2: Mạng tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra 22
Hình 2.3: Mạng hồi quy không có neural ẩn và không có vòng lặp tự phản hồi 23
Hình 2.4: Mạng hồi quy có các neural ẩn 23
Hình 2.5: Sơ đồ đồ thị có hướng đơn giản 24
Hình 2.6 Cấu trúc mạng hamming 32
Hình 2.7 Sơ đồ khối thuật toán lan truyền ngược 39
Hình 3.1 Phân tích chữ cái cỡ 30x20 thành các điểm ảnh 41
Hình 3.2 Phân tích chữ cái cỡ 60x30 thành các điểm ảnh 42
Hình 3.3 Sơ đồ thuật toán chung của chương trình 43
Hình 3.4 Lưu đồ quá trình xử lý ảnh 44
Hình 3.5 Cấu trúc mạng Neural 45
Hình 3.6 Hàm truyền của Neural lớp 1 45
Hình 3.7 Quá trình xử lý ảnh trong thuật toán 47
Hình 3.8 Định vị trí các biên của ảnh 48
Hình 3.9 Hàm truyền của Neural lớp thứ 2 49
Hình 3.10 Sơ đồ hàm đầu ra 51
Trang 9Hình 3.11 Giao diện của chương trình 54
Hình 3.12 Kết quả nhận dạng chữ Â với kích thước là 80x50 và độ nhiễu 25% 55
Hình 3.13 Kết quả nhận dạng chữ Â với kích thước là 80x50 pixel và độ nhiễu là 35% 55
Hình 3.14 Kết quả nhận dạng chữ Â với kích thước là 60x30 pixel và độ nhiễu là 25% 56
Hình 3.15 Kết quả nhận dạng chữ Â font Arial với kích thước 60x30 pixel với độ nhiễu 25% 56
Hình 3.16 Bảng kết quả trọng số đầu ra ảnh không tính nhiễu 57
Hình 3.17 Bảng kết quả trọng số đầu ra ảnh có tính nhiễu 57
Hình 3.18 So sánh giữa ảnh đầu vào và ảnh mẫu 60
Trang 101
MỞ ĐẦU
Từ lâu các nhà khoa học đã nhận thấy những ưu điểm của bộ óc con người và tìm cách bắt chước để thực hiện trên những máy tính, tạo cho nó có khả năng học tập, nhận dạng và phân loại Vì vậy các nhà khoa học đã nghiên cứu và sáng tạo ra mạng Neural nhân tạo Nó thực sự được chú ý và nhanh chóng trở thành một hướng nghiên cứu đầy triển vọng đặc biệt là lĩnh vực nhận dạng Và bài toán nhận dạng ký tự là một bài toán con trong lớp các bài toán nhận dạng, xử lý ảnh
Hiện nay trên thế giới, các sản phẩm nhận dạng ký tự đã được triển khai tương đối rộng rãi Tuy nhiên đây là các sản phẩm nhận dạng ký tự tiếng Anh, do đó đối với nhận dạng ký tự tiếng Việt thì chỉ có người Việt Nam mới
có thể phát triển được Ở nước ta trong một vài năm gần đây cũng đã có một
số sản phẩm nhận dạng tiếng việt được triển khai trên thị trường Nhưng các sản phẩm này được bán trên thị trường dưới dạng đóng kín nên việc để phát triển thành phần mềm tự động cập nhật ảnh là điều không thể Vì vậy nên tôi
đã chọn đề tài:
“Tìm hiểu mạng Neural Hamming và ứng dụng trong bài toán nhận dạng các chữ cái Tiếng Việt”
Hệ thống chữ cái Tiếng Việt là được xây dựng dựa trên chữ cái Latinh có thêm chữ ghép và dấu phụ Do đó việc nhận dạng sẽ gặp khó khăn hơn so với chữ cái Latinh thông thường và cần phải có thuật toán xử lý đem lại độ chính xác cao
Trong khuôn khổ, thời lượng của luận văn, tôi đưa ra một chương trình
mô phỏng mạng Neural nhận dạng 29 chữ cái Tiếng Việt từ A đến Y và 10 chữ số từ 0 đến 9
Trang 112
Luận văn được sắp xếp và chia thành 3 chương chính:
Chương 1: Tổng quan về hiện trạng các bài toán nhận dạng và thiết lập
bài toán nghiên cứu
Chương 2: Tìm hiểu về mạng Neural và khoảng cách Hamming
Chương 3: Ứng dụng mạng neural Hamming trong bài toán nhận dạng
các chữ cái Tiếng Việt