1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Đồ án tốt nghiệp) báo trộm dùng camera và kit raspberry

110 7 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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG BÁO TRỘM DÙNG CAMERA VÀ KIT RASPBERRY GVHD: TS NGUYỄN THANH HẢI SVTH: ĐOÀN ANH KHOA MSSV: 12141110 SVTH: NGUYỄN NGỌC QUANG MSSV: 12141182 SKL004534 Tp Hồ Chí Minh, tháng 12/2016 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: BÁO TRỘM DÙNG CAMERA VÀ KIT RASPBERRY GVHD: TS Nguyễn Thanh Hải SVTH: Đoàn Anh Khoa MSSV: 12141110 SVTH: Nguyễn Ngọc Quang MSSV: 12141182 Tp Hồ Chí Minh - 12/2016 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: BÁO TRỘM DÙNG CAMERA VÀ KIT RASPBERRY GVHD: TS Nguyễn Thanh Hải SVTH: Đoàn Anh Khoa MSSV: 12141110 SVTH: Nguyễn Ngọc Quang MSSV: 12141182 Tp Hồ Chí Minh - 12/2016 i TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày tháng 10 năm 2016 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: I TÊN ĐỀ TÀI: BÁO TRỘM DÙNG CAMERA VÀ RASPBERRY II NHIỆM VỤ: Các số liệu ban đầu: (ghi thơng số, tập tài liệu tín hiệu, hình ảnh,…) Nội dung thực hiện: (ghi nội dung cần thực phần tổng quan) Nhận dạng hình dáng đối tượng từ Camera, Webcam, video, ảnh tĩnh Nhận dạng khuôn mặt đối tượng thu từ Camera, Webcam, video, ảnh tĩnh Phân tích, xử lý ảnh thu được, so sánh với thư viện mẫu để đưa kết đối tượng quen hay lạ Báo động qua tin nhắn xuất đối tượng nhận dạng đối tượng lạ hay quen III NGÀY GIAO NHIỆM VỤ: IV NGÀY HOÀN THÀNH NHIỆM VỤ: 01/01/2017 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN TS Nguyễn Thanh Hải BM ĐIỆN TỬ CÔNG NGHIỆP ii TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày tháng 10 năm 2016 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Đoàn Anh Khoa Lớp: 12141DT2C Họ tên sinh viên 2: Lớp: 12141DT2C Tên đề tài: BÁO TRỘM DÙNG CAMERA VÀ RASPBERRY Tuần/ngày –5 –8–9 10–11–12 13 14 15 GV HƯỚNG DẪN (Ký ghi rõ họ tên) iii LỜI CAM ĐOAN Đề tài nhóm thực tự dưa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước TP.HCM, ngày tháng năm 2017 Người thực đề tài Đoàn Anh Khoa Nguyễn Ngọc Quang iv LỜI CẢM ƠN Sau thời gian tập trung nghiên cứu thực đề tài: “Báo trộm dùng Camera Kit Raspberry”, nhóm hồn thành mục tiêu đề đề tài Trong trình thực đề tài gặp phải khó khăn, xong nhóm chúng em tìm hướng giải nhờ giúp đỡ từ người xung quanh Chúng em xin gởi lời cảm ơn sâu sắc đến Thầy Nguyễn Thanh Hải _ Trưởng môn Điện tử Công nghiệp, trực tiếp hướng dẫn, chia sẻ nhiều kinh nghiệm quý báu tận tình giúp đỡ tạo điều kiện để chúng em hoàn thành tốt đề tài Chúng em xin chân thành cảm ơn Thầy, Cơ Khoa Điện-Điện Tử tận tình giảng dạy, truyền đạt cho chúng em kiến thức, góp ý chia sẻ nhiều kinh nghiệm quý báu cho chúng em hồn thành tốt đề tài nhóm em xin cảm ơn Thầy, Cô ban quản lý Thư viện tạo điều kiện tốt cho em hoàn thành đề tài Chúng em gửi lời đồng cảm ơn đến bạn lớp 12141DT2C chia sẻ, trao đổi kiến thức kinh nghiệm quý báu thời gian thực đề tài Và cuối cùng, chúng xin gửi lời cảm ơn cha me, người lo lắng, chỗ dựa vững chãi nguồn động viên chúng lúc khó khăn Cha mẹ ln động lực để chúng cố gắng đường học tập thân Xin chân thành cảm ơn! Người thực đề tài Đoàn Anh Khoa Nguyễn Ngọc Quang v 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 vẽ ix Liệt kê bảng vẽ xi Tóm tắt xii 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 kit Raspberry module Camera pi 2.2 Tiền xử lý ảnh 2.2.1 Tổng quan q trình tiền xử lí ảnh 2.2.2 Không gian màu YCbCr, RGB 2.2.3 Ảnh màu, ảnh xám 10 2.2.4 Kỹ thuật co, giản ảnh 11 2.3 Phương pháp nhận dạng dáng người 11 2.4 Thuật tốn phân tích thành phần 13 2.5 Phương pháp nhận dạng khuôn mặt 15 2.5.1 Trích chọn đặc trưng 15 vi 2.5.2 Nhận dạng dựa đặc trưng riêng 17 2.6 Quá trình hoạt động hệ thống báo trộm 19 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 22 3.1 Giới thiệu 22 3.2 Tính tốn thiết kế hệ thống gửi tin nhắn 22 3.2.1 Mô tả hệ thống 22 3.2.2 Tính tốn thiết kế khối báo động 23 3.2.3 Sơ đồ nguyên lí tồn mạch 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 báo động 32 4.2.1 Thi công mạch 32 4.2.2 Lắp ráp kiểm tra 34 4.3 Mô tả hệ thống báo trộm 35 4.4 Giải thuật chương trình hệ thống 36 4.4.1 Nhận dạng khuôn mặt dáng người 36 4.4.2 Huấn luyện nhận dạng khuôn mặt 37 4.4.3 Lưu đồ nhận dạng khuôn mặt 38 4.4.4 Chương trình hệ thống báo động 39 4.5 Hướng dẫn sử dụng, thao tác 42 4.5.1 Hướng dẫn sử dụng 42 4.5.2 Quy trình vận hành hệ thống 48 CHƯƠNG KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ 50 5.1 Kết 50 5.2 Đánh giá hệ thống 52 5.3 Kết thống kê 62 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64 vii PHỤ LỤC %% Loading the Images [filename,pathname] = uigetfile({'*.png';'Image files';'All file'}); y =[pathname, filename]; b = imread(y); % goc anh goc subplot(8,14,[1 71 78],'replace'); imshow(b) % hien anh goc imwrite(b,'test.png'); - Chương trình nhận dạng ảnh mẫu %% -Loading the Images -clear all input_dir = 'E:\file_do_an_tn\matlab_2013\PCA_FaceDetecting\PCA_FaceDetecting\DATA_FACE'; image_dims = [48 64]; filenames = dir(fullfile(input_dir, '*.png')); num_images = numel(filenames); images = zeros(prod(image_dims),num_images); for n = 1:num_images filename = fullfile(input_dir, filenames(n).name); img = imread(filename); img = im2double(img); img = imresize(img,image_dims); images(:, n) = img(:); end %% Training -mean_face = mean(images, 2); shifted_images = images - repmat(mean_face, 1, num_images); [evectors, ~, evalues] = princomp(images'); num_eigenfaces = 20; evectors = evectors(:, 1:num_eigenfaces); features = evectors'*shifted_images; input_image = imread('test.png'); input_image = imresize(input_image,image_dims); input_image = im2double(input_image); feature_vec = evectors' * (input_image(:) - mean_face); similarity_score = arrayfun(@(n) / (1 + norm(features(:,n) - feature_vec)), 1:num_images); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤ LỤC [match_score, match_ix] = max(similarity_score); %% if match_score >=0.25 figure(1), imshow([input_image reshape(images(:,match_ix), image_dims)]); else disp('NO') end - Chương trình khởi động lại chương trình % Restar button = questdlg('Do you want to exit program?', 'Confirmation', 'Yes', 'No', 'Yes'); if strcmp(button,'Yes') set(gcf,'CurrentCharacter','q'); % reset the character a = exist('vid', 'var');% co ton tai bien var ? if a==1 stop(myCam); flushdata(myCam); end end - Chương trình hiển thị thơng tin % Tao figure set(figure,'defaultuicontrolunit','normalized', 'menubar','none', 'name', 'About', 'numbertitle', 'off', 'Color', [0.925 0.914 0.847], 'position', [280 90 300 400], 'visible','off'); do_an = uicontrol(gcf, 'style', 'text', 'string', 'Do An Tot Nghiep', 'position', [0.2 0.85 0.6 0.6], % x y w h 'fontname', '.vnTime', BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤ LỤC 'fontsize', 18, 'foregroundcolor', 'b', 'fontweight', 'bold', 'background', [0.925 0.914 0.847]); de_tai = uicontrol(gcf, 'style', 'text', 'string', 'Xu Li Anh', 'position', [0.25 0.72 0.5 0.05], % x y w h 'fontname', '.vnTime', 'fontsize', 12, 'foregroundcolor', 'b', 'fontweight', 'bold', 'background', [0.925 0.914 0.847]); ten_de_tai = uicontrol(gcf, 'style', 'text', 'string', {'Bao Trom Dung Camera Va Raspberry Pi', 'thong qua xu li anh'}, 'position', [0.04 0.6 0.9 0.1], % x y w h 'fontname', '.vnTime', 'fontsize', 12, 'foregroundcolor', 'b', 'fontweight', 'bold', 'background', [0.925 0.914 0.847]); tac_gia = uicontrol(gcf, 'style', 'text', 'string', 'Tac Gia', 'position', [0.04 0.4 0.9 0.1], % x y w h 'fontname', '.vnTime', 'fontsize', 12, 'foregroundcolor', 'b', 'fontweight', 'bold', 'background', [0.925 0.914 0.847]); sang = uicontrol(gcf, 'style', 'text', 'string', 'Nguyen Ngoc Quang 'position', [0.05 0.34 0.9 0.1], % x y w h 'fontname', '.vnTime', 'fontsize', 12, BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤ LỤC 'foregroundcolor', 'b', 'fontweight', 'bold', 'background', [0.925 0.914 0.847]); chi = uicontrol(gcf, 'style', 'text', 'string', 'Doan Anh Khoa 12141110', 'position', [0.05 0.28 0.9 0.1], % x y w h 'fontname', '.vnTime', 'fontsize', 12, 'foregroundcolor', 'b', 'fontweight', 'bold', 'background', [0.925 0.914 0.847]); thoi_gian = uicontrol(gcf, 'style', 'text', 'string', '1/2017', 'position', [0.04 0.02 0.9 0.1], % x y w h 'fontname', '.vnTime', 'fontsize', 12, 'foregroundcolor', 'b', 'fontweight', 'bold', 'background', [0.925 0.914 0.847]); movegui(gcf,'center') set(gcf, 'visible','on'); clc; - Chương trình tạo cửa sổ chờ wbar = waitbar(0,'Please wait '); steps = 100; for n = 1:steps % computations take place here waitbar(n / steps) end close(wbar); - Chương trình tạo giao diện điều khiển GUI delete(gcf); close all; clear all; imaqreset; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤ LỤC clc; f = figure; set(f, 'Visible','off', 'name', 'DO AN TOT NGHIEP', 'numbertitle','off', 'Color', [0.900 0.900 0.800], 'position',[360,500,550,350]); set(f,'KeyPressFcn',@keyDownListener); set(f, 'KeyReleaseFcn', @keyUpListener); set(f,'CurrentCharacter','@'); % set to a dummy character % VIDEO CAMERA horiginal = uipanel('Parent',f,'Title','Video Camera', 'FontWeight', 'bold', 'TitlePosition','centertop', 'Position',[.08 31 54 68]); % x ->, y-^ w h % FACE DETECTED horiginal_image = uipanel('Parent',f,'Title','Face Detecter', 'FontWeight', 'bold', 'TitlePosition','centertop', 'Position',[.665 53 25 44]); % x ->, y-^ w h % 'BackgroundColor',[0.9 0.9 0.9], % PEOPLE DETECTER -hresult_image = uipanel('Parent',f,'Title','People Detecter', 'FontWeight', 'bold', 'TitlePosition','centertop', 'Position',[.665 081 25 44]); % x ->, y-^ w h %% PROGRAM -pha = uipanel('Parent',f,'Title','Program', 'FontWeight', 'bold', 'TitlePosition','centertop', 'Position',[.08 01 54 3]); % % - SOURCE - PROCESS - SYSTEM - ph1 = uipanel('Parent',pha,'Title','Source', BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤ LỤC 'FontWeight', 'bold', 'TitlePosition','centertop', 'Position',[.02 9]); ph2 = uipanel('Parent',pha,'Title','Process', 'FontWeight', 'bold', 'TitlePosition','centertop', 'Position',[.35 9]); ph3 = uipanel('Parent',pha,'Title','System', 'FontWeight', 'bold', 'TitlePosition','centertop', 'Position',[.68 9]); % %% - SOURCES -hvideo = uicontrol(ph1,'Style','pushbutton','String','Video', 'Position',[5 35 70 25], 'Callback','wait,vd_dangnguoi'); hsvideo = uicontrol(ph1,'Style','pushbutton','String','Stop Video', 'Position',[5 70 25], 'Callback','thoat'); % %% PROCESS himage = uicontrol(ph2,'Style','pushbutton','String','Image', 'Position',[5,35,70,25], 'Callback','imagee'); hrun = uicontrol(ph2,'Style','pushbutton','String','Run', 'Position',[5,5,70,25], 'Callback','run'); % %% - SYSTEM hrestart = uicontrol(ph3,'Style','pushbutton', 'String','Restart', 'Position',[5,35,70,25], 'Callback','stopvideo,GUI'); habout = uicontrol(ph3,'Style','pushbutton','String','About', 'Position',[5,5,70,25], 'Callback','about'); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 83 PHỤ LỤC % % -align([horiginal_image,hresult_image],'Center','None'); align([hvideo,hsvideo],'Center','None'); align([himage,hrun],'Center','None'); align([hrestart,habout],'Center','None'); set([f,pha,ph1,ph2,ph3, horiginal_image,hresult_image, hvideo,hsvideo,himage,hrun,hrestart,habout], 'Units','normalized'); % - DISPLAY GUI -movegui(f,'center') set(f,'Visible','on'); - Chương trình code vi xử lí mạch báo tin nhắn // khai báo thu viện, khai báo biến #include #include #device *=16 adc=10 #include #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) #include // file giao tiep LCD #define #define #define #define #define PHONE_NUM "01645311233" unsigned char str[60],str1[20],str2[20],str3[13]; char ch; int is1=0,is2=0; int kt,is,isti,ngat,idex,idex1,index,index1; int isg=0; / chuong trinh #INT_RDA Receive_isr() { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP PHỤ LỤC ch = getc(); if(isti==1) //cho phep nhan da khoi tao cong { if(ch==10 && index ==0) is=1; //bat dau cho phep nhan chuoi if(ch==10 && index>0) {idex=index; ngat=1; isti = 2; } //khi ket thuc mot chuoi if(ch!=10 && ch!=13 && is == 1) { str[index] = ch; index++; } } if(isti==2) //cho phep nhan da khoi tao cong { if(ch==10 && index1 ==0) is=1; //bat dau cho phep nhan chuoi if(ch==10 && index1>0) {idex1=index1; ngat=2; isti = 0; } //khi ket thuc mot chuoi if(ch!=10 && ch!=13 && is == 1) { str1[index1] = ch; index1++; } } } // void send_sms() { putc('A'); putc('T'); putc('+'); putc('C'); putc('M'); putc('G'); putc('S'); putc('='); putc(34); printf(PHONE_NUM); putc(34); putc(13); delay_ms(1000); putc(str3[0]); putc(str3[1]); putc(str3[2]); putc(str3[3]); putc(str3[4]); putc(str3[5]); putc(str3[6]); putc(str3[7]); putc(str3[8]); putc(str3[9]); putc(str3[10]); putc(str3[11]); putc(str3[12]);putc(26); putc(13); delay_ms(1000); } // int kiemtra() { int j,k; for(j=0;j

Ngày đăng: 20/12/2021, 06:15

Xem thêm:

w