Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
12,32 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÀ RỊA VŨNG TÀU KHOA CÔNG NGHỆ KỸ THUẬT – NÔNG NGHIỆP CÔNG NGHỆ CAO ĐỒ ÁN TỐT NGHIỆP Đề tài: THIẾT KẾ MẠCH CHỐNG TRỘM Họ tên GVHD : ThS Phan Thanh Hoàng Anh Họ tên SVTH : Dương Chí Hùng Mã Số Sinh Viên : 16031192 Chuyên Ngành : Điện Công Nghiệp Và Dân Dụng Lớp : DH16DC Vũng Tàu, tháng 05 năm 2020 MỤC LỤC CHƯƠNG 1.GIỚI THIỆU VỀ ĐỀ TÀI LUẬN VĂN 1.1LỜI MỞ ĐẦU 1.2GIỚI THIỆU VỀ XỬ LÝ ẢNH 1.2.1Một số khái niệm 1.2.2Các hình thái ảnh 1.3HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 1.3.1Bài tốn nhận dạng khn mặt 1.3.2Những tác động việc nhận dạng 1.3.3Xây dựng hệ thống nhận dạng CHƯƠNG 2.LÝ THUYẾT CƠ SỞ CỦA BÀI TOÁN 2.1LÝ THUYẾT PHÁT HIỆN KHUÔN MẶT NGƯỜI BẰNG ĐẶC TRƯNG HAAR WAVELET-LIKE 2.1.1Tiếp cận Haar wavelet-like 2.1.2Trích xuất đặc trưng Haar wavelet-like 11 2.2NHẬN DẠNG KHUÔN MẶT NGƯỜI SỬ DỤNG LBPH FACE RECOGNIZER 11 2.2.1Nhận dạng thuật toán PCA 12 2.2.2Nhận dạng thuật toán LDA 13 2.2.3Ứng dụng thuật toán PCA toán 13 2.2.4Tính tốn tìm EigenFaces 15 2.2.5Bài tốn nhận dạng khuôn mặt EigenFaces 17 CHƯƠNG 3.SƠ LƯỢC VỀ CÁC LINH KIỆN TRONG ĐỀ TÀI 18 3.1GIỚI THIỆU MẠCH ARDUINO NANO 18 3.1.1Cổng kết nối với Arduino Nano 20 3.1.2Lập trình cho Arduino Nano 20 3.2ĐỘNG CƠ RC SERVO 22 3.3MODULE LM2596 23 3.4BÀN PHÍM 25 CHƯƠNG 4.XÂY DỰNG MƠ HÌNH VÀ PHẦN CỨNG 26 4.1KẾT NỐI VỚI THIẾT BỊ NGOẠI VI 26 4.1.1Arduino NANO 26 4.2LÀM MẠCH 28 4.3MƠ HÌNH THỰC TẾ 29 CHƯƠNG 5.TẠO CHƯƠNG TRÌNH NHẬN DẠNG 31 5.1XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN KHN MẶT 32 CHƯƠNG 6.KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40 6.1KẾT LUẬN 40 6.1.1Kết luận 40 6.1.2Kết luận 40 6.1.3Kết luận 40 6.2HƯỚNG PHÁT TRIỂN 40 TÀI LIỆU THAM KHẢO 41 LỜI CẢM ƠN Tôi xin chân thành cảm ơn ThS PHAN THANH HỒNG ANH thời gian thực luận văn này, thầy tận tâm giúp đỡ cho lúc không hiểu vấn đề lúc thực luận văn Tôi xin cảm ơn gia đình bạn bè giúp đỡ tơi tơi gặp khó khăn Tơi xin chân thành cảm ơn! Vũng Tàu, ngày 28 tháng 05 năm 2020 Sinh viên DƯƠNG CHÍ HÙNG GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng CHƯƠNG TỔNG QUAN 1.1 Lời mở đầu Trong thời đại đất nước ngày phát triển mặt, nảy sinh nhiều vấn đề an ninh toàn giới quan tâm Theo tốn nhận dạng quan tâm nhiều Và vấn đề nhận dạng phận thể người có nhiều phương pháp đưa có độ xác cao Một số toán nhận dạng quan tâm phát triển phổ biến toàn giới như: Nhận dạng vân tay Nhận dạng vân mắt Nhận dạng bàn tay Sử dụng thẻ để lưu giữ thông tin cá nhân … Và phương án nhận dạng áp dụng sau thời gian dài phát triển có xác cao Nhưng phương pháp gặp nhiều hạn chế sau: Đòi hỏi tiếp xúc trực tiếp người hệ thống Với hệ thống sử dụng thẻ yêu cầu phải có thẻ, thẻ khơng nhận dạng Hiện nay, với phát triển xử lý ảnh tốn quan tâm nghiên cứu nhận dạng khuôn mặt (Face Recognition) Khuôn mặt người đóng vai trị quan trọng Với khn mặt xác định giới tính, chủng tộc, tuổi tác, trạng thái cảm xúc đặc biệt xác định mối quan hệ người (bạn bè, ba mẹ, anh chị em …) Vì tốn nhận dạng khn mặt đặt giải nhiều vấn đề điểm danh, quản lý nhân viên … đặc biệt mang lại thêm nhiều giải pháp kiểm soát an ninh phù hợp với môi trường sử dụng GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng Và thực tế cơng nghệ nhận dạng khuôn mặt ứng dụng phát triển công ty lớn giới Apple, Samsung, Google Ví dụ điển điện thoại thông minh hãng điện thoại Samsung S8 hay Iphone X hãng Apple có khả sử dụng khn mặt chủ nhân để mở khóa hình Với tốn nhận diện khn mặt có nhiều toán nhỏ khác như: Nhận dạng dựa đặc trưng phần tử khuôn mặt (Feature based face recognition) Nhận dạng dựa xét tổng thể khuôn mặt (Appearance based face recognition) Nhận dạng 2D 3D Với phương pháp nhận dạng dựa đặc trưng khuôn mặt sử dụng việc xác định đặc trưng hình học chi tiết khn mặt (vị trí, diện tích, hình dạng mắt, mũi, miệng …) mối quan hệ chúng (khoảng cách hai mắt, khoảng cách hai lông mày…) Ưu điểm phương pháp gần với cách mà người sử dụng để nhận biết khuôn mặt cho kết tốt trường hợp ảnh hưởng tác động từ bên Nhược điểm thuật toán phức tạp việc xác định mối quan hệ khn mặt ảnh kích thước nhỏ đặc tính khó phân biệt khó tính tốn đặc trưng khn mặt Cịn với phương pháp nhận dạng dựa tồn diện khn mặt, có nghĩa khơng xét thành phần đặc trưng khuôn mặt mà xem khuôn mặt chiều không gian cụ thể tìm đặc điểm đặc trưng đặc điểm khơng gian Hai phương pháp thường sử dụng hướng tiếp cận là: PCA (Principle Components Analysis) phương pháp trích xuất đặc trưng nhằm giảm số chiều ảnh đơn giản mang lại hiểu tốt Hệ thống định thích nghi cao liệu đầu vào thay đổi nhiều GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng LDA (Linear Discriminant Analysis) phương pháp nhận diện dựa phép chiếu tuyến tính từ khơng gian hình ảnh vào chiều không gian thấp cách tối đa lớp tán xạ giảm nhiều phân tán lớp Và tốn để nhận dạng khơng thể không nhắc tới thư viện OpenCV (Open Source Computer Vision Library) Một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer vision), xử lý ảnh máy học, tính tăng tắc GPU hoạt động thời gian thực Được giới thiệu vào tháng 01 năm 1999 cho mắt phiên vào năm 2006 Thư viện OpenCV chứa hàng ngàn thuật tốn tối ưu hóa 500 hàm viết ngơn ngữ C/C++ tương thích với nhiều hệ điều hành Windows, Android, Linux, … Các thuật tốn có khả dùng để sử dụng để nhận dạng khuôn mặt, xe tự lái, phát khuôn mặt, di chuyển theo khuôn mặt phát theo thời gian thực Nhưng với hệ thống nhận dạng khuôn mặt thiết kế sử dụng máy tính có cấu hình cao tốn Vì thiết kế hệ thống nhận dạng máy tính q tốn Nhưng với phát triển hệ thống nhúng (Embedded system) hệ thống tích hợp phần cứng phần mềm phục vụ tốn chun dụng nhiều lĩnh vực cơng nghiệp, tự động hóa điều khiển truyền tin Và đề tài luận văn muốn ứng dụng ARDUINO Một bo mạch điện tử nhỏ để thực đề tài luận văn “Thiết kế mạch chống trộm” 1.2 Giới thiệu xử lý ảnh 1.1.1 Một số khái niệm Xử lý ảnh mảng quan trọng vấn đề kỹ thuật thị giác máy tính bước đầu cho nhiều nghiên cứu phát triển lĩnh vực nhận dạng Nhiệm vụ trình xử lý ảnh nâng cao chất lượng hình ảnh xử lý số liệu để cung cấp cho trình nhận dạng GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng Quy trình thu nhận ảnh nguồn (từ thiết bị thu nhận ảnh dạng số tương tự) gửi đến máy tính Và liệu ảnh lưu trừ định dạng phù hợp qua trình xử lý Quy trình xử lý nhận dạng ảnh xem trình thao tác ảnh đầu vào nhằm đạt kết mong muốn Kết đầu q trình xử lý ảnh hình ảnh xử lý kết luận Ảnh Qua Xử Lý Ảnh Xử Lý Kết Luận Hình 1.1 Q trình xử lý ảnh Ảnh coi tập hợp điểm ảnh điểm ảnh xem đặc trưng cường độ sáng hay dấu hiệu vị trí đối tượng khơng gian xem hàm n biến Vì vậy, ảnh xử lý ảnh xem ảnh n chiều 1.1.2 Các hình thái ảnh Chuyển ảnh màu thành ảnh xám: Đơn vị tế bào ảnh số pixel Tùy theo định dạng ảnh màu hay ảnh xám mà pixel có thơng số khác Đối với ảnh màu pixel mang thông tin ba màu tạo màu Đỏ, Xanh lá, Xanh biển Trong pixel ảnh màu ba màu bố trí sát có cường độ sáng khác Lược đồ xám ảnh (Histogram) có mức xám khoảng [0,L-1] hàm rời rạc p(rk) = nk/n Trong nk số pixel có mức xám thứ rk, n tổng số pixel ảnh k=0,1,2…L-1 Do P(rk) cho xác suất xảy mức xám rk Vẽ hàm với tất giá trị k biểu diễn khái quát xuất mức xám ảnh Và thể lược đồ mức GVHD: ThS Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng xám ảnh thơng qua tần suất xuất mức xam qua hệ tọa độ vng góc xOy Trong đó, trục hồnh biểu diễn số mức xám từ đến N (số bit ảnh xám) Trục tung biểu diễn số pixel mức xám 1.3 Hệ thống nhận dạng khuôn mặt 1.1.3 Bài tốn nhận dạng khn mặt Bài tốn hệ thống nhận dạng mặt người hệ thống nhận vào hình ảnh chuỗi ảnh (video) Qua xử lý tính tốn để xác định vị trí khn mặt người ảnh (nếu có) xác định người số người đào tạo trả kết người lạ Hình 1.2 Hệ thống nhận dạng khn mặt 1.1.4 Những tác động việc nhận dạng Điều kiện chụp ảnh: Ảnh chụp có điều kiện khác gây ảnh hưởng đến chất lượng ảnh : ánh sáng, chất lượng camera,… Sự che khuất: Khn mặt bị che khuất bỡi vật thể khác camera bị dính bẩn,… Tư chụp, góc chụp: Ảnh chụp khn mặt bị thay đổi góc chụp camera khn mặt Khn mặt nhìn thẳng góc chụp máy ảnh lại lệch so với hướng nhìn nhiều trường hợp khác tạo nhiều khó khăn lớn cho tốn nhận diện khn mặt 10 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng check_Facedetection(); check_button(); while(index_t == 1) { changePass(); } while(index_t == 2) { resetPass(); } while(index_t == 3) { openDoor(); error_pass = 0; error_card = 0; } while(index_t == 4) { error(); error_pass = 0; error_card = 0; } } unsigned char isBufferdata(char data[]) //Kiem tra buffer da co gia tri chua { unsigned char i = 0; for(i = 0; i < ; i++) { if(data[i] == '\0') { 60 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng return 0; } } return 1; } bool compareData(char data1[], char data2[]) //Kiem tra cai buffer co giong hay khong { unsigned char i = 0; for(i = 0; i< 5; i++) { if(data1[i] != data2[i]) { return false; } } return true; } void insertData(char data1[], char data2[]) //Gan buffer cho buffer { unsigned char i = 0; for(i = 0; i< 5; i++) { data1[i] = data2[i]; } } void getData() //Nhan buffer tu ban phim { char key = keypad.getKey(); //Doc gia tri ban phim if(key) 61 GVHD: ThS Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng { //Serial.println("key != 0"); if(in_num == 0) { data_input[0] = key; lcd.setCursor(5, 1); lcd.print(data_input[0]); delay(200); lcd.setCursor(5, 1); lcd.print("*"); } if (in_num == 1) { data_input[1] = key; lcd.setCursor(6, 1); lcd.print(data_input[1]); delay(200); lcd.setCursor(6, 1); lcd.print("*"); } if (in_num == 2) { data_input[2] = key; lcd.setCursor(7, 1); lcd.print(data_input[2]); delay(200); lcd.setCursor(7, 1); lcd.print("*"); } if (in_num == 3) { data_input[3] = key; lcd.setCursor(8, 1); 62 GVHD: ThS Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng lcd.print(data_input[3]); delay(200); lcd.setCursor(8, 1); lcd.print("*"); } if (in_num == 4) { data_input[4] = key; lcd.setCursor(9, 1); lcd.print(data_input[4]); delay(200); lcd.setCursor(9, 1); lcd.print("*"); } if(in_num == 4) { //Serial.println(data_input); in_num = 0; } else{ in_num ++; } } } void checkPass() //kiem tra password { getData(); if(isBufferdata(data_input)) { //Serial.print("Data: "); //Serial.println(data_input); 63 GVHD: ThS Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng if(compareData(data_input,password)) //Dung pass { //Serial.print("Dung pass"); notification(1); lcd.clear(); clear_data_input(); index_t = 3; } else if(compareData(data_input,mode_changePass)) { //Serial.print("mode_changePass"); lcd.clear(); clear_data_input(); index_t = 1; } else if(compareData(data_input,mode_resetPass)) { //Serial.print("mode_resetPass"); lcd.clear(); clear_data_input(); index_t = 2; } else if(compareData(data_input,mode_hardReset)) { writeEpprom(pass_def); insertData(password,pass_def); lcd.clear(); } else { 64 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng if(error_pass == 2) { notification(3); clear_data_input(); lcd.clear(); index_t = 4; } //Serial.print("Error"); notification(2); lcd.setCursor(1,1); lcd.print(" "); clear_data_input(); error_pass++; } } } void changePass() //Thay doi pass { lcd.setCursor(0,0); lcd.print(" Change Pass "); delay(3000); lcd.setCursor(0,0); lcd.print(" - New Pass -"); while(1) { getData(); if(isBufferdata(data_input)) { insertData(new_pass1,data_input); //Serial.println(new_pass1); 65 GVHD: ThS Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng clear_data_input(); break; } } lcd.clear(); lcd.setCursor(0,0); lcd.print(" AGAIN "); while(1) { getData(); if(isBufferdata(data_input)) { insertData(new_pass2,data_input); //Serial.println(new_pass2); clear_data_input(); break; } } delay(1000); if(compareData(new_pass1,new_pass2)) { lcd.clear(); //Serial.println("Success"); lcd.setCursor(0,0); lcd.print(" - Success -"); notification(1); delay(1000); writeEpprom(new_pass2); insertData(password,new_pass2); lcd.clear(); 66 GVHD: ThS Phan Thanh Hoàng AnhSVTH: Dương Chí Hùng index_t = 0; } else { lcd.clear(); //Serial.println("miss"); lcd.setCursor(0,0); lcd.print(" Mismatched "); notification(3); delay(1000); lcd.clear(); index_t = 0; } } void resetPass() { unsigned char choise = 0; //Serial.println("Pass reset"); lcd.setCursor(0,0); lcd.print(" -Reset Pass -"); getData(); if(isBufferdata(data_input)) { if(compareData(data_input,password)) { lcd.clear(); clear_data_input(); while(1) { lcd.setCursor(0,0); 67 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng lcd.print(" -Reset Pass -"); char key = keypad.getKey(); if(choise == 0) { lcd.setCursor(0,1); lcd.print(">"); lcd.setCursor(2,1); lcd.print("YES"); lcd.setCursor(9,1); lcd.print(" "); lcd.setCursor(11,1); lcd.print("NO"); } if(choise == 1) { lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(2,1); lcd.print("YES"); lcd.setCursor(9,1); lcd.print(">"); lcd.setCursor(11,1); lcd.print("NO") ; } if(key == '*') { if(choise == 1) { choise = 0; } 68 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng else { choise ++; } } if(key == '#' && choise ==0) { lcd.clear(); delay(1000); writeEpprom(pass_def); insertData(password,pass_def); lcd.setCursor(0,0); lcd.print(" -Reset ok -"); notification(1); delay(1000); lcd.clear(); break; } if(key == '#' && choise == 1) { lcd.clear(); break; } } index_t = 0; } else{ notification(1); index_t = 0; lcd.clear(); 69 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng } } } void notification(char select) { unsigned char i = 0; if(select == 1) { for(i = 0; i< 2; i++) { digitalWrite(buzz,HIGH); delay(100); digitalWrite(buzz,LOW); delay(100); } } if(select == 2) { for(i = 0; i< 3; i++) { digitalWrite(buzz,HIGH); delay(100); digitalWrite(buzz,LOW); delay(100); } } if(select == 3) { for(i = 0; i< 4; i++) { 70 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng digitalWrite(buzz,HIGH); delay(100); digitalWrite(buzz,LOW); delay(100); } } } void writeEpprom(char data[]) { unsigned char i = 0; for(i = 0; i< 5; i++) { EEPROM.write(i, data[i]); } } void readEpprom() { unsigned char i = 0; for(i = 0; i< 5; i++) { password[i] = EEPROM.read(i); } } void openDoor() { //Serial.println("Open The Door"); unsigned char pos; lcd.setCursor(0,0); lcd.print("-OPEN THE DOOR-"); delay(1000); 71 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng for (pos = 62; pos < 150; pos ++) { myservo.write(pos); delay(10); } delay(5000); for (pos = 150; pos > 62; pos ) { myservo.write(pos); delay(10); } Serial.print("C"); lcd.clear(); index_t = 0; } void error() { unsigned char minute = 2; unsigned char i = 59; char buff[2]; Serial.print('S'); lcd.setCursor(1,0); lcd.print("Try again for"); while(i>0) { if(i == && minute > 0) { minute ; i = 59; } 72 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng if(i == && minute == 0) { break; } sprintf(buff,"%.2d",i); lcd.setCursor(5,1); lcd.print(minute); lcd.setCursor(6,1); lcd.print(":"); lcd.setCursor(7,1); lcd.print(buff); i ; delay(200); } index_t = 0; lcd.clear(); } void check_Facedetection() { if(Serial.available()) { char c = Serial.read(); if(c == '*') { count_t = 0; } if(c != '*' && c != '#') { buffer[count_t++] = c; } if(c == '#') { if(buffer[0] == 'O' && buffer[1] == 'K') { Serial.print("O"); notification(1); 73 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng index_t = 3; } } } } void check_button() { if(digitalRead(button) == 0) { notification(1); delay(2000); index_t = 3; } } 74 ... Dương Chí Hùng CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 Kết luận 6.1.1 Kết luận Đã thực thành công đề tài ? ?Thiết kế mạch chống trộm? ?? 6.1.2 Kết luận Sau thử nghiệm đề tài đạt kết tốt, thời gian phát... nghiệp, tự động hóa điều khiển truyền tin Và đề tài luận văn muốn ứng dụng ARDUINO Một bo mạch điện tử nhỏ để thực đề tài luận văn ? ?Thiết kế mạch chống trộm? ?? 1.2 Giới thiệu xử lý ảnh 1.1.1 Một... khối thiết bị ngoại vi Mạch vẽ phần mềm Altium Hình 4.5 Sơ đồ kết nối khối MCU 33 GVHD: ThS Phan Thanh Hồng AnhSVTH: Dương Chí Hùng Hình 4.6 Sơ đồ kết nối hệ thống thiết bị ngoại vi Hình 4.7 Sơ đồ