1. Trang chủ
  2. » Tất cả

(Đồ án hcmute) nhận dạng mống mắt người

76 4 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 76
Dung lượng 4,26 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ NHẬN DẠNG MỐNG MẮT NGƯỜI GVHD: NGUYỄN DUY THẢO SVTH: NGUYỄN VIẾT HẢI MSSV: 12141527 SVTH: LÊ HỒNG HẢI MSSV: 12141070 SKL 0 Tp Hồ Chí Minh, tháng 07/2017 an an TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc TP Hồ Chí Minh, ngày 20 tháng năm 2017 BẢNG MÔ TẢ CÔNG VIỆC Họ tên sinh viên 1: NGUYỄN VIẾT HẢI MSSV: 12141527 Lớp: 12141DT1B Họ tên sinh viên 2: LÊ HỒNG HẢI MSSV: 12141070 Lớp: 12141DT1D Tên đề tài: NHẬN DẠNG MỐNG MẮT NGƯỜI MÔ TẢ MỤC TIÊU CỦA ĐỀ TÀI: Mục tiêu đề tài xây dựng hệ thống nhận dạng mống mắt qua hình ảnh nhúng liệu mống mắt nhận dạng xuống kit Arduino để điều khiển led hoạt động theo yêu cầu đề xuất MÔ TẢ CÔNG VIỆC THỰC HIỆN ĐỀ TÀI CỦA TỪNG SINH VIÊN: Họ tên Sinh viên 1: NGUYỄN VIẾT HẢI Các công việc thực đề tài: STT NỘI DUNG CÔNG VIỆC Tham khảo tài liệu liên quan đến đề tài tác giả thực Viết code phần huấn luyện Viết báo cáo Chụp ảnh tìm ảnh phục vụ cho trình huấn luyện ảnh nhận dạng ảnh Viết code arduino an Họ tên Sinh viên 2: LÊ HỒNG HẢI Các công việc thực đề tài: STT NỘI DUNG CÔNG VIỆC Tham khảo tài liệu liên quan đến đề tài tác giả thực Viết chỉnh sửa code nhận dạng Chỉnh sửa báo cáo Chỉnh sửa hoàn thiện ứng dụng arduino SINH VIÊN SINH VIÊN (Ký ghi rõ họ tên) (Ký ghi rõ họ tên) XÁC NHẬN CỦA GIẢNG VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) an TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP -Y SINH Tp HCM, ngày 20 tháng 07 năm 2017 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Nguyễn Viết Hải MSSV: 12141527 Lê Hồng Hải MSSV: 12141070 Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 01 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2012 Lớp: 12141DT1 Họ tên sinh viên: I TÊN ĐỀ TÀI: NHẬN DẠNG MỐNG MẮT NGƯỜI II NHIỆM VỤ Các số liệu ban đầu: • Bộ ảnh nhận dạng: Bộ ảnh gồm 70 ảnh mống mắt từ 10 người, người ảnh Bộ ảnh gồm 20 ảnh mống mắt từ người người ảnh • Matlab phiên 2014b • Kit điều khiển chính: Arduino Uno R3 Nội dung thực hiện: • Tìm hiểu Kit Arduino, phần mềm Matlab Cài đặt Arduino Matlab • Tìm hiểu thuật tốn huấn luyện nhận dạng mống mắt • Thiết kế, xây dựng hệ thống nhận dạng mống mắt • Thiết kế hệ thống ứng dụng kit Arduino • Viết đồ án III NGÀY GIAO NHIỆM VỤ: 11/03/2017 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 20/07/2017 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN ThS Nguyễn Duy Thảo BM ĐIỆN TỬ CÔNG NGHIỆP ii an TRƯỜNG ĐẠI HỌC SPKT TPHCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Khoa Điện - Điện Tử Bộ Môn Điện Tử Công Nghiệp – Y Sinh Độc lập - Tự - Hạnh phúc Tp Hồ Chí Minh, ngày 20 tháng năm 2017 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Bản lịch trình đóng vào đồ án) Họ tên sinh viên 1: Nguyễn Viết Hải Lớp: 12141DT1C MSSV: 12141527 Họ tên sinh viên 2: Lê Hồng Hải Lớp: 12141DT1D MSSV: 12141070 Tên đề tài: NHẬN DẠNG MỐNG MẮT NGƯỜI Xác Tuần/ngày Nội dung nhận GVHD Tuần 1,2 Tìm đề tài Tuần 3,4 Tìm hiểu hoạt động Arduino Matlab Tuần Tuần 6,7 Tuần 8,9,10 Cài đặt Matlab, cài Arduino Lập trình Arduino với chân I/O để nhúng liệu Xây dựng sở liệu để nhận dạng Tuần 11,12,13,14 Lập trình nhận dạng mống mắt từ ảnh huấn luyện Tuần 15,16,17,18 Viết đồ án tốt nghiệp GV HƯỚNG DẪN (Ký ghi rõ họ tên) an LỜI CAM ĐOAN Chúng cam đoan đồ án tốt nghiệp cơng trình nghiên cứu thân hướng dẫn Thạc sỹ Nguyễn Duy Thảo Các kết công bố đồ án tốt nghiệp “Nhận dạng mống mắt người” trung thực khơng chép hồn tồn từ cơng trình khác Người thực đề tài Lê Hồng Hải Nguyễn Viết Hải an LỜI CẢM ƠN Trong trình làm đồ án tốt nghiệp, chúng em nhận nhiều ủng hộ, giúp đỡ đóng góp ý kiến bảo nhiệt tình thầy cơ, gia đình bạn bè Chúng em xin gửi lời cảm ơn chân thành đến Thạc sỹ Nguyễn Duy Thảo Trường Đại học Sư phạm Kỹ thuật Tp.HCM tận tình hướng dẫn bảo suốt thời gian làm đồ án tốt nghiệp Thầy tạo nhiều điều kiện cho lời khuyên quý báu giúp chúng em hoàn thành tốt đồ án Xin chân thành cảm ơn thầy cô giáo Trường Đại học Sư phạm Kỹ thuật Tp.HCM nói chung, thầy Bộ mơn Điện tử Cơng nghiệp – Y sinh nói riêng tận tình giảng dạy, truyền đạt cho chúng em kiến thức quý báu tạo điều kiện giúp đỡ suốt trình học tập năm học vừa qua, giúp chúng em có sở lý thuyết vững vàng Cuối cùng, chúng em xin chân thành cảm ơn gia đình bạn bè, ln tạo điều kiện, quan tâm, ủng hộ, giúp đỡ, động viên chúng em suốt trình học tập hoàn thành đồ án tốt nghiệp Chúng em xin chân thành cảm ơn! Người thực đề tài Lê Hồng Hải Nguyễn Viết Hải an MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iii Cam đoan .iv Lời cảm ơn v Mục lục vi Liệt kê hình .ix Liệt kê bảng x Tóm tắt xi CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung nghiên cứu 1.4 Giới hạn 1.5 Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu phần cứng 2.1.1 Kit Ardunio 2.1.2 Kit Arduino Uno 2.2 Tổng quan Matlab 2.3 Giới thiệu mống mắt người 2.4 Các phương pháp nhận dạng mống mắt người 2.4.1 Xác định mống mắt 2.4.2 Quy trình nhận dạng mống mắt 11 2.5 Các hàm xử lý Matlab 16 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 18 3.1 Giới thiệu 18 an 3.2 Tổng quan phần cứng 18 3.2.1 Tổng quan khối 18 3.2.2 Board Arduino Uno R3 19 3.3 Thiết kế hệ thống 23 3.3.1 Thiết kế sơ đồ khối hệ thống 23 3.3.2 Thiết kế khối hệ thống 25 3.4 Cài đặt gói hỗ trợ phần cứng cho Matlab 27 CHƯƠNG THI CÔNG HỆ THỐNG 32 4.1 Giới thiệu 32 4.2 Thi công hệ thống 32 4.3 Lưu đồ giải thuật 33 4.4 Viết tài liệu hướng dẫn, sử dụng, thao tác 38 4.4.1 Tài liệu hướng dẫn sử dụng 38 4.4.2 Quy trình thao tác 38 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 39 5.1 Kết 39 5.1.1 Tổng quan kết đạt 39 5.1.2 Kết thực tế 39 5.2 Nhận xét đánh giá 45 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .46 6.1 Kết luận 46 6.2 Hướng phát triển 47 TÀI LIỆU THAM KHẢO 49 PHỤ LỤC 50 an TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Thanh Hải, Giáo trình Xử lý ảnh, Nhà xuất ĐH Quốc Gia TP Hồ Chí Minh, 2014 [2] Agus Kurniawan, Arduino Programming using Matlab, 1st Edition, 2015 [3] Hans-Petter Halvorsen, Introduction to ARDUINO, 2008 [4] Ross L.Spencer, Introduction to Matlab, 2000 [5]Mei-Jane Chan (Jenny),"Biometric Technology-Iris Recognition", 2007 [6] Neha Kak, Rishi Gupta and Sanchit Mahajan, Iris Recognition System, 2010 [7] Paulo R Flores, Hazel Ann T Poligratis and Angelo S Victa, Automated Iris Recognition System Using Cmos Camera With Proximity Sensor [8] John Daugman, PhD, OBE "How Iris RecognitionWorks", PP1-10,University of Cambridge, The Computer Laboratory, Cambridge CB2 3QG, U.K [9] Peter Kovesi , Libor Masek, “Recognition of Human Iris Patterns for Biometric Identification”,The University of Western Australia, Master thesis 2003 an PHỤ LỤC Code chương trình %% CHUONG TRINH CON HUAN LUYEN ANH clear all; tic path1='C:\Users\D metan\Desktop\New folder (3)\csdl'; for k=1:20 filesrcpath1 = strcat(path1,num2str(k),'.jpg'); im = filesrcpath1; [t,m] = createiristemplate(im); template(:,k) = reshape(t,1,480*20); mask(:,k) = reshape(m,1,480*20); save template_hough.mat template; save mask_hough.mat mask; end end % CÁC HÀM CON XAC DINH MONG MAT % -addcircle.m function h = addcircle(h, c, radius, weight) [hr, hc] = size(h); if nargin == weight = 1; end if any(c-fix(c)) error('Circle centre must be in integer coordinates'); end if radius-fix(radius) error('Radius must be an integer'); end x = 0:fix(radius/sqrt(2)); costheta = sqrt(1 - (x.^2 / radius^2)); y = round(radius*costheta); px = c(2) + [x y y x -x -y -y -x]; py = c(1) + [y x -x -y -y -x x y]; validx = px>=1 & px=1 & py= T2 and both must be >= '); end [rows, cols] = size(im); rc = rows*cols; rcmr = rc - rows; an rp1 = rows+1; bw = im(:); pix = find(bw > T1); npix = size(pix,1); stack = zeros(rows*cols,1); stack(1:npix) = pix; stp = npix; for k = 1:npix bw(pix(k)) = -1; end O = [-1, 1, -rows-1, -rows, -rows+1, rows-1, rows, rows+1]; while stp ~= v = stack(stp); stp = stp - 1; if v > rp1 & v < rcmr index = O+v; for l = 1:8 ind = index(l); if bw(ind) > T2 , stp = stp+1; stack(stp) = ind; bw(ind) = -1; end end end end bw = (bw == -1); bw = reshape(bw,rows,cols); % -linecoords.m function [x,y] = linecoords(lines, imsize) xd = [1:imsize(2)]; yd = (-lines(3) - lines(1)*xd ) / lines(2); coords = find(yd>imsize(1)); yd(coords) = imsize(1); coords = find(yd v1 x = col - xoff(or); y = row + yoff(or); fx = floor(x); cx = ceil(x); fy = floor(y); cy = ceil(y); tl = inimage(fy,fx); tr = inimage(fy,cx); bl = inimage(cy,fx); br = inimage(cy,cx); upperavg = tl + hfrac(or) * (tr - tl); loweravg = bl + hfrac(or) * (br - bl); v2 = upperavg + vfrac(or) * (loweravg - upperavg); if inimage(row,col) > v2 im(row, col) = inimage(row, col); end end end end % -segmentiris.m function [circleiris, circlepupil, imagewithnoise] = segmentiris(eyeimage) lpupilradius = 28; an upupilradius = 75; lirisradius = 80; uirisradius = 150; scaling = 0.4; reflecthres = 240; [row, col, r] = findcircle(eyeimage, lirisradius, uirisradius, scaling, 2, 0.20, 0.19, 1.00, 0.00); circleiris = [row col r]; rowd = double(row); cold = double(col); rd = double(r); irl = round(rowd-rd); iru = round(rowd+rd); icl = round(cold-rd); icu = round(cold+rd); imgsize = size(eyeimage); if irl < irl = 1; end if icl < icl = 1; end if iru > imgsize(1) iru = imgsize(1); end if icu > imgsize(2) icu = imgsize(2); end imagepupil = eyeimage( irl:iru,icl:icu); [rowp, colp, r] = findcircle(imagepupil, lpupilradius, upupilradius ,0.6,2,0.25,0.25,1.00,1.00); rowp = double(rowp); colp = double(colp); r = double(r); row = double(irl) + rowp; col = double(icl) + colp; row = round(row); col = round(col); circlepupil = [row col r]; imagewithnoise = double(eyeimage); topeyelid = imagepupil(1:(rowp-r),:); lines = findline(topeyelid); if size(lines,1) > [xl yl] = linecoords(lines, size(topeyelid)); yl = double(yl) + irl-1; xl = double(xl) + icl-1; yla = max(yl); an y2 = 1:yla; ind3 = sub2ind(size(eyeimage),yl,xl); imagewithnoise(ind3) = NaN; imagewithnoise(y2, xl) = NaN; end bottomeyelid = imagepupil((rowp+r):size(imagepupil,1),:); lines = findline(bottomeyelid); if size(lines,1) > [xl yl] = linecoords(lines, size(bottomeyelid)); yl = double(yl)+ irl+rowp+r-2; xl = double(xl) + icl-1; yla = min(yl); y2 = yla:size(eyeimage,1); ind4 = sub2ind(size(eyeimage),yl,xl); imagewithnoise(ind4) = NaN; imagewithnoise(y2, xl) = NaN; end ref = eyeimage < 100; coords = find(ref==1); imagewithnoise(coords) = NaN % CÁC HÀM CON XAC DINH CHUAN HOA VA TRICH RUT DAC TRUNG % -encode.m function [template, mask] = encode(polar_array,noise_array, nscales, minWaveLength, mult, sigmaOnf) [E0 filtersum] = gaborconvolve(polar_array, nscales, minWaveLength, mult, sigmaOnf); length = size(polar_array,2)*2*nscales; template = zeros(size(polar_array,1), length); length2 = size(polar_array,2); h = 1:size(polar_array,1); mask = zeros(size(template)); for k=1:nscales E1 = E0{k}; H1 = real(E1) > 0; H2 = imag(E1) > 0; H3 = abs(E1) < 0.0001; for i=0:(length2-1) ja = double(2*nscales*(i)); template(h,ja+(2*k)-1) = H1(h, i+1); template(h,ja+(2*k)) = H2(h,i+1); mask(h,ja+(2*k)-1) = noise_array(h, i+1) | H3(h, i+1); mask(h,ja+(2*k)) = noise_array(h, i+1) | H3(h, i+1); end end an % -gaborconvolve.m function [EO, filtersum] = gaborconvolve(im, nscale, minWaveLength, mult,sigmaOnf) [rows cols] = size(im); filtersum = zeros(1,size(im,2)); EO = cell(1, nscale); ndata = cols; if mod(ndata,2) == ndata = ndata-1; end logGabor = zeros(1,ndata); result = zeros(rows,ndata); radius = [0:fix(ndata/2)]/fix(ndata/2)/2; radius(1) = 1; wavelength = minWaveLength; for s = 1:nscale, fo = 1.0/wavelength; rfo = fo/0.5 logGabor(1:ndata/2+1) = exp(((log(radius/fo)).^2) / (2 * log(sigmaOnf)^2)); logGabor(1) = 0; filter = logGabor; filtersum = filtersum+filter; for r = 1:rows signal = im(r,1:ndata); imagefft = fft( signal ); result(r,:) = ifft(imagefft * filter); end EO{s} = result; wavelength = wavelength * mult; end filtersum = fftshift(filtersum); % -normaliseiris.m function [polar_array, polar_noise] = normaliseiris(image, x_iris, y_iris, r_iris, x_pupil, y_pupil, r_pupil,eyeimage_filename, radpixels, angulardiv) global DIAGPATH radiuspixels = radpixels + 2; angledivisions = angulardiv-1; r = 0:(radiuspixels-1); theta = 0:2*pi/angledivisions:2*pi; x_iris = double(x_iris); y_iris = double(y_iris); r_iris = double(r_iris); x_pupil = double(x_pupil); y_pupil = double(y_pupil); an r_pupil = double(r_pupil); ox = x_pupil - x_iris; oy = y_pupil - y_iris; if ox sgn = 1; end if ox==0 && oy > sgn = 1; end r = double(r); theta = double(theta); a = ones(1,angledivisions+1)* (ox^2 + oy^2); if ox == phi = pi/2; else phi = atan(oy/ox); end b = sgn.*cos(pi - phi - theta); r = (sqrt(a).*b) + ( sqrt( a.*(b.^2) - (a - (r_iris^2)))); r = r - r_pupil; rmat = ones(1,radiuspixels)'*r; rmat = rmat.* (ones(angledivisions+1,1)*[0:1/(radiuspixels1):1])'; rmat = rmat + r_pupil; rmat = rmat(2:(radiuspixels-1), :); xcosmat = ones(radiuspixels-2,1)*cos(theta); xsinmat = ones(radiuspixels-2,1)*sin(theta); xo = rmat.*xcosmat; yo = rmat.*xsinmat; xo = x_pupil+xo; yo = y_pupil-yo; [x,y] = meshgrid(1:size(image,2),1:size(image,1)); polar_array = interp2(x,y,image,xo,yo); polar_noise = zeros(size(polar_array)); coords = find(isnan(polar_array)); polar_noise(coords) = 1; polar_array = double(polar_array)./255; coords = find(xo > size(image,2)); xo(coords) = size(image,2); coords = find(xo < 1); xo(coords) = 1; coords = find(yo > size(image,1)); yo(coords) = size(image,1); coords = find(yo= & HD < threshold dem = dem+1 ; end end if dem > msgbox('CHAP NHAN!','IRIS RECOGNITION') writeDigitalPin(boar,12, 1); else msgbox(KHONG CHAP NHAN!','IRIS RECOGNITION') writeDigitalPin(boar,10, 1); end toc an S an K L 0 ... thức nhận dạng như: nhận dạng giọng nói, chữ viết, dấu vân tay, mống mắt? ?? toán nhận dạng mống mắt toán mẻ ý tới Đề tài: ? ?Nhận dạng mống mắt? ?? nghiên cứu xây dựng hệ thống huấn luyện nhận dạng, ... I TÊN ĐỀ TÀI: NHẬN DẠNG MỐNG MẮT NGƯỜI II NHIỆM VỤ Các số liệu ban đầu: • Bộ ảnh nhận dạng: Bộ ảnh gồm 70 ảnh mống mắt từ 10 người, người ảnh Bộ ảnh gồm 20 ảnh mống mắt từ người người ảnh • Matlab... 2.3 Giới thiệu mống mắt người 2.4 Các phương pháp nhận dạng mống mắt người 2.4.1 Xác định mống mắt 2.4.2 Quy trình nhận dạng mống mắt 11 2.5 Các

Ngày đăng: 02/02/2023, 09:23

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN