(Đồ án hcmute) báo trộm dùng camera và kit raspberry

106 4 0
(Đồ án hcmute) báo trộm dùng camera và kit raspberry

Đ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 SKL 0 Tp Hồ Chí Minh, tháng 12/2016 an 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 an 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 an 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: Đoàn Anh Khoa MSSV: 05101117 Nguyễn Ngọc Quang MSSV: 05101043 Chuyên ngành: Công nghệ Kỹ thuật Điện tử Truyền thông Mã ngành: Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2012 Lớp: 12141DT2C 141 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Ụ: 10/10/2016 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 an 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 MSSV: 12141110 Họ tên sinh viên 2: Nguyễn Ngọc Quang Lớp: 12141DT2C MSSV: 12141182 Tên đề tài: BÁO TRỘM DÙNG CAMERA VÀ RASPBERRY Tuần/ngày Xác nhận GVHD Nội dung Tìm hiểu xử lý ảnh, giao tiếp module sim 900, kit Raspberry pi 2, Camera pi v1 Tìm kiếm tài liệu có liên quan Cài đặt cấu hình Raspberry thư viện ứng dụng có liên quan Kết nối với module camera, sim 900 với kit Raspberry Chạy thử ví dụ để kiểm tra kết nối với module Viết giải thuật, viết chương trình nhận dạng khn mặt, chuyển động người Nhận dạng đối tượng 7–8–9 Nhận dạng đối tượng lạ hay quen 10 – 11 – 12 13 Viết giải thuật, viết chương trình để gửi tin nhắn cho thiết bị di động Chạy thử, kiểm tra sửa lỗi 14 Viết báo cáo 15 Dự trữ 4–5 GV HƯỚNG DẪN (Ký ghi rõ họ tên) iii an 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 an 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 hoà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ẹ độ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 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 vẽ ix Liệt kê bảng vẽ xi Tóm tắt xii CHƯƠNG TỔNG QUAN .1 1.1 Đặt vấn đề .1 1.2 Mục tiêu 1.3 Nội dung nghiên cứu .2 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 .4 2.2 Tiền xử lý ảnh .8 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 an 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ơ đồ ngun 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 an 6.1 Kết luận .64 6.2 Hướng phát triển 64 TÀI LIỆU THAM KHẢO .65 PHU LỤC 66 viii an 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 an 78 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 an 79 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 12141182', '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 an 80 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 an 81 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 an 82 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 an 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 v1 RA0 #define v2 RA1 #define tb1 RD0 #define tb2 RD1 #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 an 84 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; } chuoi //khi ket thuc mot 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: 02/02/2023, 09:05

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

Tài liệu liên quan