Ứng dụng mạng nơron nhận dạng ký tự viết tay

69 27 0
Ứng dụng mạng nơron nhận dạng ký tự viết tay

Đ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

VÕ NGUYỄN TẤN PHƯỚC - ỨNG DỤNG MẠNG NƠ RON NHẬN DẠNG KÝ TỰ VIẾT TAY - KHÓA 23 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH VÕ NGUYỄN TẤN PHƯỚC ỨNG DỤNG MẠNG NƠ RON NHẬN DẠNG KÝ TỰ VIẾT TAY LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN Nghệ An, 3/2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH VÕ NGUYỄN TẤN PHƯỚC ỨNG DỤNG MẠNG NƠ RON NHẬN DẠNG KÝ TỰ VIẾT TAY CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG TIN MÃ SỐ : 60480201 LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS TRẦN XUÂN SANG Nghệ An, 3/2017 LỜI CẢM ƠN Tơi hồn thành luận văn nhờ hướng dẫn, giúp đỡ góp ý nhiệt tình thầy TS Trần Xn Sang Tôi tiếp thu kiến thức quý báu Quý Thầy, Cô Khoa Công nghệ thông tin trường Đại học Vinh, TP Vinh, tỉnh Nghệ An Tôi xin chân thành cảm ơn đến Thầy, Ban Giám Hiệu, Phịng Sau đại học trường Đại học Vinh; Ban Giám Hiệu, Khoa Liên kết trường đại học Kinh tế - Công nghiệp Long An, TP Tân An, tỉnh Long An Xin chân thành cảm ơn gia đình, bạn bè ln quan tâm động viên, ủng hộ, giúp đỡ tạo điều kiện cho nhiều thời gian qua Mặc dù tơi có nhiều cố gắng để hồn thiện đề tài, nhiên khơng thể tránh khỏi thiếu sót, mong nhận đóng góp quý báu quý Thầy, Cô bạn gần xa Xin chân thành cám ơn! Tác giả Võ Nguyễn Tấn Phước LỜI CAM ĐOAN Tôi xin cam đoan luận văn cơng trình nghiên cứu tơi khơng trùng lặp với cơng trình khoa học khác Các vấn đề trình bày luận văn kiểm tra kỹ phản ánh hoàn toàn trung thực Các kết nghiên cứu tác giả đề xuất chưa cơng bố tạp chí thời điểm ngồi cơng trình tác giả Ngày 10 tháng năm 2017 Tác giả Võ Nguyễn Tấn Phước MỤC LỤC Trang LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC HÌNH MỞ ĐẦU Sự cần thiết vấn đề nghiên cứu Mục tiêu nghiên cứu 2.1 Mục tiêu tổng quát 2.2 Mục tiêu cụ thể Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu 3.2 Phạm vi nghiên cứu Nội dung nghiên cứu Cấu trúc luận văn 10 NỘI DUNG CHƯƠNG TỔNG QUAN 11 1.1 Đặt vấn đề 11 1.2 Tổng quan hệ thống nhận dạng mẫu 13 1.2.1 Chu trình thiết kế hệ thống nhận dạng mẫu 13 1.2.2 Các phương pháp nhận dạng ký tự viết tay 13 1.3 Tổng quan tình hình nghiên cứu 20 1.3.1 Tình hình nghiên cứu nước 20 1.3.2 Tình hình nghiên cứu ngồi nước 21 CHƯƠNG MẠNG NƠ RON NHÂN TẠO 26 2.1 Giới thiệu 26 2.1.1 Giới thiệu mạng nơ ron 26 2.1.2 Các ứng dụng mạng nơ ron 26 2.2 Kiến trúc mạng nơ ron 27 2.2.1 Mơ hình nơ ron 27 2.2.2 Mạng nơ ron tầng 30 2.2.3 Mạng nơ ron đa tầng 33 2.3 Mạng Perceptron lớp 33 2.3.1 Kiến trúc mạng 34 2.3.2 Luật học cho mạng 35 2.3.3 Ví dụ phân lớp 37 2.4 Mạng Perceptron nhiều lớp 40 2.4.1 Kiến trúc mạng 40 2.4.2 Thuật toán lan truyền ngược 41 2.4.3 Các ví dụ phân lớp với mạng Perceptron nhiều lớp 42 CHƯƠNG THIẾT KẾ HỆ THỐNG NHẬN DẠNG KÝ TỰ VIẾT TAY 3.1 Hướng tiếp cận xây dựng hệ thống 45 3.1.1 Ảnh đầu vào 45 3.1.2 Tiền xử lý 46 3.1.2.1 Nhị phân hóa ảnh 46 3.1.2.2 Lọc nhiễu 46 3.1.2.3 Chuẩn hóa kích thước ảnh 47 3.1.2.4 Làm trơn biên chữ 48 3.1.2.5 Làm đầy chữ 48 3.1.2.6 Làm mảnh chữ 48 3.2 Trích chọn đặc trưng ký tự viết tay 49 3.3 Huấn luyện nhận dạng 51 3.4 Hậu xử lý 51 CHƯƠNG THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 53 4.1 Dữ liệu thử nghiệm 53 4.2 Thử nghiệm với mạng nơ ron 53 4.3 Nhận xét 63 KẾT LUẬN 64 TÀI LIỆU THAM KHẢO 66 DANH MỤC CÁC TỪ VIẾT TẮT Thuật ngữ Ký hiệu Hidden Markov Model (Mơ hình Markov ẩn) HMM k – láng giềng gần k-NN Bộ mẫu chữ số viết tay NIST - Viện Công nghệ Tiêu chuẩn Quốc gia Hoa Kỳ (National Institute of Standard and Technology of the United States) Neuron Network (Mạng nơ ron) MNIST NN Ngoại tuyến off-line Trực tuyến on-line Self Origanizing Map SOM Sequential Minimal Optimization SMO Support Vector Machines (Máy véc tơ tựa) SVM United States Postal service USPS DANH MỤC CÁC HÌNH Thuật ngữ Tên hình Chu trình thiết kế hệ thống nhận dạng mẫu Hình 1.1 Mơ hình nơ ron sinh học Hình 2.1 Mơ hình nơ ron nhân tạo mức đơn giản Hình 2.2 Hàm f biểu diễn giá trị đầu nơ ron Hình 2.3 Mơ hình mạng nơ ron tầng Hình 2.4 Mơ hình mạng nơ ron đa tầng Hình 2.5 Kiến trúc tầng mạng nơ ron ký hiệu đầy đủ Hình 2.6 Kiến trúc tầng mạng nơ ron ký hiệu viết tắt Hình 2.7 Sự hình thành mạng nơ ron perceptron đầu vào Hình 2.8 Cấu trúc mạng nơ ron cho nhận dạng chữ Hình 2.9 Các kết luyện mạng nơ ron với phương pháp lan Hình 2.10 truyền ngược khác Sơ đồ hệ thống nhận dạng Hình 3.1 Nhị phân hóa ảnh Hình 3.2 Nhiễu đốm nhiễu vệt Hình 3.3 Chuẩn hóa kích thước ảnh ký tự “A” “P” Hình 3.4 (a) Ảnh gốc, Hình 3.5 (b) Ảnh sau làm trơn biên Làm mảnh chữ Hình 3.6 Dữ liệu thử nghiệm Hình 4.1 Đọc ảnh chuyển ảnh mức nhị phân Hình 4.2 Chuyển ảnh mức xám Hình 4.3 Chuyển hình mức xám mức nhị phân Hình 4.4 Xác định cạnh Hình 4.5 Tăng gấp đơi cạnh Hình 4.6 Làm đầy đối tượng Hình 4.7 Vẽ hình chữ nhật bao quanh đối tượng Hình 4.8 Huấn luyện mạng nơ ron Hình 4.9 Chọn ký tự để kiểm tra Hình 4.10 Chọn ký tự để nhận dạng Hình 4.11 Nhận dạng ký tự Hình 4.12 MỞ ĐẦU Sự cần thiết vấn đề nghiên cứu Nhận dạng chữ in chữ viết tay lĩnh vực quan tâm nghiên cứu, ứng dụng nhiều năm nay: - Nhận dạng chữ in: phục vụ cho việc tự động hóa đọc tài liệu, tăng tốc hiệu nhập thông tin trực tiếp vào máy tính từ nguồn tài liệu bên - Nhận dạng chữ viết tay (phức tạp hơn): phục vụ cho ứng dụng đọc xử lý hóa đơn, chứng từ, thảo viết tay, biên nhận, phải tuân thủ theo số ràng buộc cách viết, kiểu chữ, Nhận dạng chữ viết tay phát triển theo hai hướng: Nhận dạng chữ viết tay trực tuyến (online) nhận dạng chữ viết tay ngoại tuyến (offline) Theo kết nghiên cứu chun gia, ngày hơm tốn nhận dạng chữ in giải gần hồn chỉnh Riêng tốn nhận dạng ký tự viết tay vấn đề thách thức lớn nhà nghiên cứu Bài toán chưa giải hoàn chỉnh với lý sau: phụ thuộc vào người viết, biến đổi đa dạng cách viết, trạng thái tinh thần người viết Điều động lực giúp tơi hướng tới việc nghiên cứu, đề xuất giải pháp hữu hiệu cho toán nhận dạng ký tự viết tay mạng nơ ron Mục tiêu nghiên cứu 2.1 Mục tiêu tổng quát Nghiên cứu xây dựng hệ thống ứng dụng mạng nơ ron nhận dạng ký tự viết tay 2.2 Mục tiêu cụ thể Đề tài tập trung vào mục tiêu sau: (i) Nghiên cứu tổng quan toán nhận dạng ký tự viết tay (ii) Nghiên cứu trích chọn đặc trưng ký tự viết tay 53 CHƯƠNG THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 4.1 Dữ liệu thử nghiệm Hình 4.1: Dữ liệu thử nghiệm 4.2 Thử nghiệm với mạng nơ ron Bước Tiền xử lý - Đọc ảnh chuyển ảnh mức nhị phân: Ảnh có tên: Training.bmp; Đọc ảnh: I=imread(Training.bmp); Hiển thị ảnh: imshow(I) Hình 4.2: Đọc ảnh chuyển ảnh mức nhị phân 54 - Chuyển ảnh mức xám: Igray=rgb2gray(I); Hiển thị ảnh Imshow(I) Hình 4.3: Chuyển ảnh mức xám - Chuyển hình mức xám mức nhị phân: Ibw = im2bw(Igray,graythresh(Igray)); Hiển thị hình: imshow(Ibw) Hình 4.4: Chuyển hình mức xám mức nhị phân 55 - Xác định cạnh: Iedge=edge(uint8(Ibw)); Hiển thị ảnh: imshow(Iedge) Hình 4.5: Xác định cạnh - Tăng gấp đôi cạnh: Tạo biến cấu trúc se 2x2: se=strel('square',2); Nới rộng biên: Iedge2=imdilate(Iedge, se); Hiển thị ảnh: imshow(Iedge2) Hình 4.6: Tăng gấp đôi cạnh 56 - Làm đầy đối tượng: Ifill= imfill(Iedge2,'holes'); Hiển thị ảnh: imshow(Ifill) Hình 4.7: Làm đầy đối tượng - Đánh dấu đối tượng, xác định vị trí đối tượng: [Ilabel num] = bwlabel(Ifill); disp(num); Iprops = regionprops(Ilabel); Ibox = [Iprops.BoundingBox]; Ibox = reshape(Ibox,[4 50]); - Vẽ hình chữ nhật bao quanh đối tượng dựa ảnh gốc: Imshow(I) Hold on; for cnt = 1:50 rectangle('position',Ibox(:,cnt),'edgecolor','r'); end 57 Hình 4.8: Vẽ hình chữ nhật bao quanh đối tượng Bước Tạo mạng nơ ron huấn luyện Hình 4.9: Huấn luyện mạng nơ ron 58 Code: P=handles.Phandles; T=[eye(10) eye(10) eye(10) eye(10)]; net=newff(P,T,[70],{'logsig'}); net.divideParam.trainRatio = 1; net.divideParam.valRatio = 0; net.divideParam.testRatio = 0; net.trainParam.goal = 0; [net,tr,Y,E] = train(net,P,T); Bước Dùng mạng nơ ron để nhận dạng - Tạo database cho đầu vào đầu ra: Trong chương trình sử dụng liệu đầu vào có 70 mẫu 40 phần tử từ ảnh phần tiền xử lý Còn 70 mẫu 10 phần tử lại dùng để tạo mẫu test Code: for cnt=1:num Icroptemp=imcrop(Ifill,Ibox(:,cnt)) ; Icroptemp=imresize(Icroptemp,[40 28],'nearest'); %Các đối tượng kích thước 40x28 Icrop(:,:,cnt)=Icroptemp; end %Tách đối tượng ảnh lưu vào ma trận chiều Icrop Icrop=~Icrop; %Chuyển mức nghịch đảo (chữ đen trắng) for cnt=1:num %Giảm kích thước lần Ptemp=Icrop(:,:,cnt); for cnt1=1:2 [m,n]=size(Ptemp); n=round(n/2-0.5)+1; m=round(m/2-0.5)+1; for i=2:n Ptemp(:,i)=[]; for i=2:m Ptemp(i,:)=[]; end 59 end end Pout(:,:,cnt)=Ptemp; end Psample=reshape(Pout, [70 50]); %Chuyển ma trận chiều sang ma trận chiều có 70 mẫu 50 phần tử Tạo database i=1; j=1; n=1; for j=1:4 while i

Ngày đăng: 25/08/2021, 16:34

Từ khóa liên quan

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

Tài liệu liên quan