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

NGHIÊN cứu, xây DỰNG hệ THỐNG GIÁM sát NHÀ THÔNG MINH và NHẬN DIỆN KHUÔN mặt

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

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT - 2022 KHOA ĐIỆN – ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ, TRUYỀN THÔNG Người hướng dẫn: T.S Trần Hồng Vũ Sinh viên thực hiện: Lê Đình Phong Nguyễn Đức Thắng Mã Sinh Viên: 1811505410126 1811505410130 Lớp: 18DT1 Đà nẵng, tháng năm 2022 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN – ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI: NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ, TRUYỀN THÔNG Người hướng dẫn: T.S Trần Hồng Vũ Sinh viên thực hiện: Lê Đình Phong Nguyễn Đức Thắng Mã Sinh Viên: 1811505410126 1811505410130 Lớp: 18DT1 Đà Nẵng, tháng năm 2022 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN-ĐIỆN TỬ CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP (Dành cho người hướng dẫn) I Thông tin chung Họ tên sinh viên: Lê Đình Phong Mã SV: 1811505410126 Nguyễn Đức Thắng Mã SV: 1811505410130 Lớp:18DT1 Tên đề tài: NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT Người hướng dẫn: TS Trần Hoàng Vũ Học hàm/ học vị: Tiến sĩ II Nhận xét, đánh giá đồ án tốt nghiệp: Về tính cấp thiết, tính mới, mục tiêu đề tài: a Tính cấp thiết - Hiện nay, hộ gia đình thường cịn nhiều thiếu sót, khơng đảm bảo nhu cầu cảnh báo cháy nổ Bên cạnh đó, cịn thường xun có tình trạng trộm đột nhập, đánh cắp tài sản có giá trị - Với mục tiêu đó, việc phát sớm nguy hiểm tiềm tàng nhà, để cảnh báo sớm đến chủ nhân ngơi nhà, mơ hình giám sát nhà nhận diện thông minh giúp giảm tối đa thiệt hại người tài sản b Tính  Xây dựng lưu đồ thuật tốn để lập trình cho mạch  Thiết lập tảng server ứng ụng cho smartphone c Mục tiêu - Tìm hiểu cảm biến thu thập thông tin môi trường như: cảm biến nhiệt độ, độ ẩm; cảm biến khí gas, cảm biến đo độ đục nước - Tìm hiểu vi điều khiển ESP32 tích hợp camera phần mềm lập trình arduino - Tìm hiểu ứng dụng điều khiển Blynk - Thực theo hướng thông báo nhanh thay đổi bất thường hộ Về kết giải nội dung nhiệm vụ yêu cầu đồ án: - Khảo sát vấn đề an toàn việc phòng tránh trộm cắp vấn đề liên quan đến sức khoẻ người - Đưa chức hệ thống, mục đích thiết kế phạm vi sử dụng hệ thống - Thiết kế trung tâm xử lý hình ảnh, tín hiệu cảm biến thu thập gửi thông báo đến người dùng - Thiết kế giao diện người dùng, giao diện điều chỉnh hệ thống - Hoàn thiện báo cáo tổng kết, đánh giá hoàn thiện sản phẩm iii Về hình thức, cấu trúc, bố cục đồ án tốt nghiệp: Nội dung đồ án tốt nghiệp: gồm chương đáp ứng mục tiêu đề tài CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG CHƯƠNG II: THIẾT KẾ HỆ THỐNG CHƯƠNG III: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN Kết đạt được, giá trị khoa học, khả ứng dụng đề tài Kết đạt được: - Mơ hình nhà thơng minh có chức nhận diện - Chương trình điều khiển hệ thống - Giao diện giám sát, điều khiển hệ thống - Báo cáo thuyết minh đề tài Giá trị khoa học: Sử dụng phần cứng chip vi điều khiển ESP32-CAM kết hợp với phần mềm ArduinoIDE phần mềm Blynk để điều khiển nhằm xây dựng hệ thống vừa có khả tự hoạt động, đồng thời điều khiển từ xa thơng qua mạng WiFi Khả ứng dụng: Ứng dụng khu công nghiệp, nhà máy, smart home Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa Cần chỉnh sửa số lỗi tả đồ án III Tinh thần, thái độ làm việc sinh viên: Có tinh thần thái độ nghiên cứu nghiêm túc, làm việc theo kế hoạch quy định Chủ động báo cáo kết đạt hàng tuần IV Đánh giá Điểm đánh giá: Đề nghị: 8,5/10 (lấy đến số lẻ thập phân) Được bảo vệ đồ án Bổ dung để bảo vệ Không bảo vệ Đà Nẵng, ngày 04 tháng năm 2022 Người hướng dẫn iv TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN-ĐIỆN TỬ CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT PHẢN BIỆN ĐỒ ÁN TỐT NGHIỆP (Dành cho người phản biện) I Thông tin chung Họ tên sinh viên: Lê Đình Phong Nguyễn Đức Thắng Lớp: 18DT1 Mã SV: 1811505410126 1811505410130 Tên Đề tài: NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT Người phản biện: Nguyễn Thị Khánh Hồng Học hàm/ học vi: Tiến sỹ II Nhận xét, đánh giá đồ án: Về tính cấp thiết, tính mới, mục tiêu đề tài: Mơ hình giám sát nhà nhận diện thơng minh qua internet mơ hình xây dựng việc kết nối IoTs Các thiết bị kết nối với nhau, quản lí thơng báo thơng qua internet, giúp cho việc đảm bảo an toàn cho nhà tránh tai nạn không cần thiết, đồng thời giúp cảnh báo sớm nguy hiểm cháy nổ, trộm cắp Về kết giải nội dung nhiệm vụ yêu cầu đồ án: Sử dụng cảm biến thu thập thông tin môi trường như: cảm biến nhiệt độ, độ ẩm; cảm biến khí gas, cảm biến đo độ đục nước; Tìm hiểu vi điều khiển ESP32 tích hợp camera phần mềm lập trình arduino; nghiên cứu ứng dụng điều khiển Blynk; Thực theo hướng thông báo nhanh thay đổi bất thường nhà Về hình thức, cấu trúc, bố cục đồ án tốt nghiệp: Đồ án bố cục gồm chương; với 45 trang 13 tài liệu tham khảo Kết đạt được, giá trị khoa học, khả ứng dụng đề tài: Xây dựng thử nghiệm thành cơng mơ hình hệ thống giám sát nhà thơng minh nhận diện khuôn mặt Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa Số lượng trang không đủ theo quy định từ 50 trang trở lên, cần bổ sung thêm Tài liệu tham khảo sai định dạng Các trang in bị tô màu xám trang cần xem lại từ trang trở Font chữ không thống Trang 20 21 cần xem lại hình vẽ 1.18, giải thích Mục 2,1 trang 22 cần giải thích lại quy trình hoạt động hay ngun lý làm việc hệ thống? Hình vẽ 2.14, 2.15 cài đặt chức ghi danh? Hay cài đặt chức khố cửa? hình mờ q khơng đọc v Hình 2.16, 2.17, 2.19, 2.20 mờ Xem lại lưu đồ thuật tốn hình 2.2 trang 23 Điểm tối đa TT Các tiêu chí đánh giá 1 1a 1b 1c 1d 2a 2b Sinh viên có phương pháp nghiên cứu phù hợp, giải nhiệm vụ đồ án giao - Tính cấp thiết, tính (nội dung ĐATN có phần so với ĐATN trước - Đề tài có giá trị khoa học, cơng nghệ; giá trị ứng dụng thực tiễn - Kỹ giải vấn đề; hiểu, vận dụng kiến thức bản, sở, chuyên nghành vấn đề nghiên cứu - Khả thực hiện/phân tích/tổng hợp/đánh giá; - Khả thiết kế, chế tạo hệ thống, thành phần, quy trình đáp ứng yêu cầu đặt ra; - Chất lượng sản phẩm ĐATN nội dung báo cáo, vẽ, chương trình, mơ hình, hệ thống, ; 8,0 Điểm đánh giá 6,5 1,0 1,0 3,0 2,5 3,0 2,0 - Có kỹ sử dụng phần mềm ứng dụng vấn đề nghiên cứu (thể qua kết tính tốn phần mềm); - Có kỹ sử dụng tài liệu liên quan đến vấn đề nghiên cứu (thể qua tài liệu tham khảo); Kỹ trình bày báo cáo đồ án tốt nghiệp Bố cục hợp lý, lập luận rõ ràng, chặt chẽ, lời văn súc tích; - Hình thức trình bày Tổng điểm theo thang 10 (lấy đến số lẻ thập phân) 1,0 1,0 2,0 1,0 1,0 0,5 1,0 0,5 7,5 - Câu hỏi đề nghị sinh viên trả lời buổi bảo vệ Làm rõ phương pháp nhận diện khuôn mặt? Tại sử dụng vi điều khiển ESP32 CAM ESP8266 - Đề nghị: Được bảo vệ đồ án Bổ sung để bảo vệ Không bảo vệ Đà Nẵng, ngày vi tháng năm 2022 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN – ĐIỆN TỬ Độc lập – Tự – Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Giảng viên hướng dẫn: TS Trần Hoàng Vũ Sinh viên thực hiện: Lê Đình Phong MSV: 1811505410126 Nguyễn Đức Thắng MSV: 1811505410130 Tên đề tài: NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT Các số liệu tài liệu ban đầu: - Tìm hiểu thơng tin qua trang mạng, tài liệu liên quan - Tra cứu thông tin linh kiện - Tài liệu công nghệ IoTs - Cộng đồng Arduino Việt Nam Nội dung đồ án: - Khảo sát vấn đề an tồn việc phịng tránh trộm cắp vấn đề liên quan đến sức khoẻ người - Đưa chức hệ thống, mục đích thiết kế phạm vi sử dụng hệ thống - Thiết kế trung tâm xử lý hình ảnh, tín hiệu cảm biến thu thấp gửi thơng báo đến cho người dùng - Thiết kế giao diện người dùng, giao diện điều chỉnh hệ thống - Báo cáo, thuyết minh đề tài Các sản phẩm dự kiến - Mơ hình nhà thơng minh có chức nhận diện - Chương trình điều khiển hệ thống - Giao diện giám sát, điều khiển hệ thống - Báo cáo, thuyết minh đề tài Ngày giao đồ án: 23/02/2022 Ngày nộp đồ án: 04/06/2022 Đà Nẵng, ngày tháng năm 2022 Trưởng Bộ môn Người hướng dẫn vii TÓM TẮT Tên đề tài: Nghiên cứu, xây dựng hệ thống giám sát nhận diện khuôn mặt thông minh Sinh viên thực hiện: Lê Đình Phong MSV: 1811505410126 Nguyễn Đức Thắng MSV: 1811505410130 Lớp: 18DT1 Đề tài đồ án xây dựng dựa kiến thức học trường đại học Đề tài sử dụng phần cứng chip vi điều khiển ESP32CAM kết hợp với phần mềm ArduinoIDE phần mềm Blynk để điều khiển nhằm xây dựng hệ thống vừa có khả tự hoạt động, đồng thời điều khiển từ xa thông qua mạng WiFi Đề tài tập trung vào việc thu tín hiệu từ cảm biến, sau chuyển cho ESP8266 để gửi tín hiệu đến điện thoại thông qua Blynk Về phần nhận diện khuôn mặt, hệ thống sử dụng ESP32-CAM để nhận diện Thông qua việc nhận diện, hệ thống cấp quyền cho vào không Khi không nhận diện được, hệ thống phát cảnh báo, đồng thời gửi tín hiệu cho chủ nhà biết để tránh đề phịng viii CAM ĐOAN Nhóm chúng em gồm thành viên: - Lê Đình Phong - Nguyễn Đức Thắng Chúng em xin cam đoan đề tài: “Nghiên cứu hệ thống giám sát nhận diện khn mặt thơng minh” cơng trình nghiên cứu độc lập khơng có chép người khác Đề tài sản phẩm mà em nỗ lực nghiên cứu trình học tập trường Trong q trình viết có tham khảo số tài liệu có nguồn gốc rõ ràng, hướng dẫn thầy T.S Trần Hoàng Vũ Trưởng khoa khoa Điện – Điện tử - trường đại học Sư Phạm Kỹ Thuật Đà Nẵng Em xin cam đoan có vấn đề em xin chịu hồn tồn trách nhiệm Đã bổ sung, cập nhật theo yêu cầu Giảng viên phản biện Hội đồng chấm Đồ án tốt nghiệp họp ngày 17, 18/06/2022 Sinh viên thực {Chữ kí, họ tên sinh viên} Lê Đình Phong Nguyễn Đức Thắng ix LỜI MỞ ĐẦU I Giới thiệu đề tài - Ngày nay, IoTs (Internet of Things) công nghệ phổ biến sống đại Từ hệ thống nhà thông minh, đến hệ thống mơi trường, có bóng dáng IoTs Các thiết bị điện tử có liên quan kết nối với tạo thành hệ thống Các ứng dụng IoTs đã, giúp người có sống trở nên thuận tiện - Hiện nay, hệ thống quan trắc môi trường, đắc biệt quan trắc mơi trường khơng khí môi trường nước diện nhiều toàn cầu, nhằm giúp cho người dễ dàng đo đạc quản lý môi trường - Với giải pháp nhà tập trung chủ yếu vào vấn đề an tồn người nhóm em muốn nhắm đến vấn đề đảm bảo điều kiện lý tưởng người sống bên nhà, đồng thờigiúp người tránh phần tác nhân, hiểm hoạ gây hại dần xuất ngày nhiều trái đất cơng nghiệp hóa hay hiên tượng nóng lên tồn cầu II Tính cấp thiết đề tài - Hiện nay, hộ gia đình thường cịn nhiều thiếu sót, khơng đảm bảo nhu cầu cảnh báo cháy nổ Bên cạnh đó, cịn thường xun có tình trạng trộm đột nhập, đánh cắp tài sản có giá trị - Với mục tiêu đó, việc phát sớm nguy hiểm tiềm tàng nhà, để cảnh báo sớm đến chủ nhân nhà, chúng em định bắt đầu ý tưởng mơ hình giám sát nhà nhận diện thơng minh Mơ hình giúp giảm tối đa thiệt hại người tài sản - Mơ hình giám sát nhà nhận diện thông minh qua internet mô hình xây dựng việc kết nối IoTs Các thiết bị kết nối với nhau, quản lí thông báo thông qua internet, giúp cho việc né trành tai nạn không cần thiết, đồng thời tận dụng công nghệ khoa học - Nhận thấy đề tài có nhiều ứng dụng cấp thiết sống cịn nhiều thiếu sót Do nhóm em định nghiên cứu thi cơng mơ hình giám sát nhà nhận diện thông minh thông qua internet nhằm phục vụ cho việc học tập tạo mơ hình hồn thiện III Mục tiêu đề tài: - Tìm hiểu cảm biến thu thập thơng tin môi trường như: cảm biến nhiệt độ, độ ẩm; cảm biến khí gas, cảm biến đo độ đục nước - Tìm hiểu vi điều khiển ESP32 tích hợp camera phần mềm lập trình arduino - Tìm hiểu ứng dụng điều khiển Blynk - Thực theo hướng thông báo nhanh thay đổi bất thường hộ IV Đối tượng phạm vi nghiên cứu đề tài - Đối tượng nghiên cứu: Căn hộ gia đình - Phạm vi nghiên cứu: Lập trình, Điều khiển ESP32 x NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT if (msg.data().substring(0, 8) == "capture:") { g_state = START_ENROLL; char person[FACE_ID_SAVE_NUMBER * ENROLL_NAME_LEN] = {0,}; msg.data().substring(8).toCharArray(person, sizeof(person)); memcpy(st_name.enroll_name, person, strlen(person) + 1); client.send("CAPTURING"); } if (msg.data() == "recognise") { g_state = START_RECOGNITION; client.send("RECOGNISING"); } if (msg.data().substring(0, 7) == "remove:") { char person[ENROLL_NAME_LEN * FACE_ID_SAVE_NUMBER]; msg.data().substring(7).toCharArray(person, sizeof(person)); delete_face_id_in_flash_with_name(&st_face_list, person); send_face_list(client); // reset faces in the browser } if (msg.data() == "delete_all") { delete_all_faces(client); } } void open_door(WebsocketsClient &client) { if (digitalRead(relay_pin) == LOW) { digitalWrite(relay_pin, HIGH); //close (energise) relay so door unlocks Serial.println("Door Unlocked"); client.send("door_open"); door_opened_millis = millis(); // time relay closed and door opened } } void loop() { auto client = socket_server.accept(); client.onMessage(handle_message); dl_matrix3du_t *image_matrix = dl_matrix3du_alloc(1, 320, 240, 3); SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 67 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT http_img_process_result out_res = {0}; out_res.image = image_matrix->item; send_face_list(client); client.send("STREAMING"); while (client.available()) { client.poll(); if (millis() - interval > door_opened_millis) { // current time - face recognised time > secs digitalWrite(relay_pin, LOW); //open relay } fb = esp_camera_fb_get(); if (g_state == START_DETECT || g_state == START_ENROLL || g_state == START_RECOGNITION) { out_res.net_boxes = NULL; out_res.face_id = NULL; fmt2rgb888(fb->buf, fb->len, fb->format, out_res.image); out_res.net_boxes = face_detect(image_matrix, &mtmn_config); if (out_res.net_boxes) { if (align_face(out_res.net_boxes, image_matrix, aligned_face) == ESP_OK) { out_res.face_id = get_face_id(aligned_face); last_detected_millis = millis(); if (g_state == START_DETECT) { client.send("FACE DETECTED"); } SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 68 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT if (g_state == START_ENROLL) { int left_sample_face = do_enrollment(&st_face_list, out_res.face_id); char enrolling_message[64]; sprintf(enrolling_message, "SAMPLE NUMBER %d FOR %s", ENROLL_CONFIRM_TIMES - left_sample_face, st_name.enroll_name); client.send(enrolling_message); if (left_sample_face == 0) { ESP_LOGI(TAG, "Enrolled Face ID: %s", st_face_list.tail->id_name); g_state = START_STREAM; char captured_message[64]; sprintf(captured_message, "FACE CAPTURED FOR %s", st_face_list.tail>id_name); client.send(captured_message); send_face_list(client); } } // if (g_state == START_RECOGNITION && (st_face_list.count > 0)) // { // face_id_node *f = recognize_face_with_name(&st_face_list, out_res.face_id); // if (f) // { // char recognised_message[64]; // sprintf(recognised_message, "DOOR OPEN FOR %s", f->id_name); // open_door(client); // client.send(recognised_message); // } // else // { // client.send("FACE NOT RECOGNISED"); // // } } SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 69 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT dl_matrix3d_free(out_res.face_id); } } else { if (g_state != START_DETECT) { client.send("NO FACE DETECTED"); } } if (g_state == START_DETECT && millis() - last_detected_millis > 500) { // Detecting but no face detected client.send("DETECTING"); } } client.sendBinary((const char *)fb->buf, fb->len); esp_camera_fb_return(fb); fb = NULL; } } b Chương trình khố cửa //#include #define BLYNK_PRINT Serial #include #include #include BlynkTimer timer; WidgetLED LedConnect(V12); SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 70 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT #include "esp_timer.h" #include "esp_camera.h" #include "camera_index.h" #include "fd_forward.h" #include "fr_forward.h" #include "fr_flash.h" const char* ssid = "esp8266"; const char* password = "01234567890"; char auth[] = "qL9oOV3AUtjcGe6h_kpx-WDOHCL3CYmU"; #define led_flash #define speaker 13 #define led 12 #define relay_pin #define PHOTO 14 String local_IP; boolean flag_openDoor = 0; int count = 0; #define ENROLL_CONFIRM_TIMES #define FACE_ID_SAVE_NUMBER #define CAMERA_MODEL_AI_THINKER #include "camera_pins.h" camera_fb_t * fb = NULL; long last_detected_millis = 0; unsigned long door_opened_millis = 0; unsigned long timeScan = 0; long interval = 5000; // open lock for milliseconds SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 71 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT boolean statusButton = 1; void app_facenet_main(); typedef struct { uint8_t *image; box_array_t *net_boxes; dl_matrix3d_t *face_id; } http_img_process_result; static inline mtmn_config_t app_mtmn_config() { mtmn_config_t mtmn_config = {0}; mtmn_config.type = FAST; mtmn_config.min_face = 80; mtmn_config.pyramid = 0.707; mtmn_config.pyramid_times = 4; mtmn_config.p_threshold.score = 0.6; mtmn_config.p_threshold.nms = 0.7; mtmn_config.p_threshold.candidate_number = 20; mtmn_config.r_threshold.score = 0.7; mtmn_config.r_threshold.nms = 0.7; mtmn_config.r_threshold.candidate_number = 10; mtmn_config.o_threshold.score = 0.7; mtmn_config.o_threshold.nms = 0.7; mtmn_config.o_threshold.candidate_number = 1; return mtmn_config; } mtmn_config_t mtmn_config = app_mtmn_config(); face_id_name_list st_face_list; static dl_matrix3du_t *aligned_face = NULL; SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 72 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT http_img_process_result out_res = {0};/////////////////////////////////////////////////// static dl_matrix3du_t *image_matrix = NULL; void startCameraServer(); void takePhoto() { digitalWrite(led_flash, HIGH); delay(200); uint32_t randomNum = random(50000); Serial.println("http://" + local_IP + "/capture?_cb=" + (String)randomNum); Blynk.setProperty(V9, "urls", "http://" + local_IP + "/capture?_cb=" + (String)randomNum); digitalWrite(led_flash, LOW); delay(1000); } //BLYNK_CONNECTED() //{ // Blynk.syncAll(); //} BLYNK_WRITE(V11) { int value = param.asInt(); if (value == 1) takePhoto(); } BLYNK_WRITE(V8) { int value = param.asInt(); if (value == 1) digitalWrite(relay_pin, 1); else digitalWrite(relay_pin, LOW); } SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 73 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT void setup() { Serial.begin(115200); Serial.setDebugOutput(true); Serial.println(); pinMode(relay_pin, OUTPUT); pinMode(speaker, OUTPUT); pinMode(led, OUTPUT); pinMode(led_flash, OUTPUT); digitalWrite(relay_pin, LOW); digitalWrite(speaker, LOW); digitalWrite(led, LOW); digitalWrite(led_flash, LOW); http_img_process_result out_res = {0}; camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 74 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; //init with high specs to pre-allocate larger buffers if (psramFound()) { config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; config.fb_count = 1; } // camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return; } sensor_t * s = esp_camera_sensor_get(); // initial sensors are flipped vertically and colors are a bit saturated if (s->id.PID == OV3660_PID) { s->set_vflip(s, 1); // flip it back s->set_brightness(s, 1); // up the brightness just a bit s->set_saturation(s, -2); // lower the saturation } // drop down frame size for higher initial frame rate s->set_framesize(s, FRAMESIZE_QVGA); WiFi.begin(ssid, password); SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 75 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); local_IP = WiFi.localIP().toString(); startCameraServer(); app_facenet_main(); Blynk.config(auth, IPAddress(103, 153, 68, 25), 8080); timer.setInterval(1000L, blinkLedWidget); bipbip() ; } void app_facenet_main() { face_id_name_init(&st_face_list, FACE_ID_SAVE_NUMBER, ENROLL_CONFIRM_TIMES); aligned_face = dl_matrix3du_alloc(1, FACE_WIDTH, FACE_HEIGHT, 3); read_face_id_from_flash_with_name(&st_face_list); image_matrix = dl_matrix3du_alloc(1, 320, 240, 3); ///////////////////////////////////////////////////////////////// out_res.image = image_matrix->item; } void moCua() { if (digitalRead(relay_pin) == LOW) { digitalWrite(relay_pin, HIGH); //close (energise) relay so door unlocks Serial.println("Door Unlocked"); Blynk.virtualWrite(V8, 1); door_opened_millis = millis(); // time relay closed and door opened SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 76 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT } } void loop() { if (millis() - interval > door_opened_millis && flag_openDoor == 1) { // sau mở 5s sau đóng cửa digitalWrite(relay_pin, LOW); Blynk.virtualWrite(V8, 0); Serial.println("resetKhoa"); count = 0; flag_openDoor = 0; } statusButton = digitalRead(15) ; fb = esp_camera_fb_get(); if (statusButton == 0) { timeScan = millis(); digitalWrite(led, 1); while (millis() - timeScan < 1500) { // quét anh vong 1,5s out_res.net_boxes = NULL; out_res.face_id = NULL; fmt2rgb888(fb->buf, fb->len, fb->format, out_res.image); out_res.net_boxes = face_detect(image_matrix, &mtmn_config); Serial.println("a"); if (out_res.net_boxes) { Serial.println("b"); if (align_face(out_res.net_boxes, image_matrix, aligned_face) == ESP_OK) { SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 77 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT out_res.face_id = get_face_id(aligned_face); // last_detected_millis = millis(); Serial.println("c"); if (statusButton == && (st_face_list.count > 0)) { Serial.println("d"); face_id_node *f = recognize_face_with_name(&st_face_list, out_res.face_id); Serial.println(f->id_name); if (f) { Blynk.virtualWrite(V10, f->id_name); // Blynk.notify("mo cua cho: " + String(f->id_name)); // gửi thông báo lên mở cửa Blynk.notify("THONG BAO MOI!"); Blynk.virtualWrite(V14, "mo cua cho: " + String(f->id_name)); // cờ báo mở cửa flag_openDoor = 1; moCua(); // tắt dèn báo quét digitalWrite(led, 0); break; } else { Serial.println("FACE NOT RECOGNISED"); } } dl_matrix3d_free(out_res.face_id); } } } digitalWrite(led, 0); if (flag_openDoor == 0) { // tắt dèn báo quét // khơng nhận diện tăng biến đếm lên delay(30); SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 78 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT count ++; Serial.println(count); } } esp_camera_fb_return(fb); fb = NULL; if (count == 3) { // cố tình mở lần cảnh báo Serial.println("canh bao"); canhBao(); count = 0; } nhanChuong(); if (WiFi.status() == WL_CONNECTED) // NẾU CĨ WIFI THÌ ĐÔNG BỘ TRẠNG THÁI VỚI BLYNK { Blynk.run(); timer.run(); } } void canhBao() { takePhoto(); // chup hình sửi app // Blynk.notify("co nguoi la dot nhap, xin chu y!!!"); Blynk.notify("THONG BAO MOI!"); Blynk.virtualWrite(V14, "co nguoi la, xin chu y!!!"); // gửi thông báo app for (int i = 0; i < 30; i++) { // cảnh báo còi đèn vào 15s digitalWrite(speaker, !digitalRead(speaker)); digitalWrite(led, !digitalRead(led)); delay(500); } SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 79 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT digitalWrite(speaker, 0); digitalWrite(led, 0); } void nhanChuong() { if (digitalRead(PHOTO) == 0) { // Blynk.notify("co o cua nha ban"); Blynk.notify("THONG BAO MOI!"); Blynk.virtualWrite(V14, "co o cua nha ban"); Serial.println("Capture Photo"); takePhoto(); digitalWrite(speaker, 1); delay(1000); digitalWrite(speaker, 0); } } void bipbip() { digitalWrite(speaker, 1); delay(200); digitalWrite(speaker, 0); delay(200); digitalWrite(speaker, 1); delay(200); digitalWrite(speaker, 0); delay(200); } void blinkLedWidget() // hàm báo trạng thái kết nối với blynk { if (LedConnect.getValue()) { LedConnect.off(); } else { LedConnect.on(); } SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 80 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHN MẶT } SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 81 ... Khi camera khơng nhận diện Hình 3.11 Nút quét hình: Khi camera nhận diện xv NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG 1.1 Giới... 26 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT 2.3.1 Lưu đồ thuật tốn Hình 2.7 Lưu đồ thuật tốn mạch nhận diện khn mặt 2.3.2 Sơ đồ ngun lý Hình 2.8 Khối nhận diện. .. khn mặt SVTH: Lê Đình Phong, Nguyễn Đức Thắng Trang 27 NGHIÊN CỨU, XÂY DỰNG HỆ THỐNG GIÁM SÁT NHÀ THÔNG MINH VÀ NHẬN DIỆN KHUÔN MẶT a Khối xử lý Camera Hình 2.9 Khối xử lý nhận diện khuôn mặt

Ngày đăng: 12/08/2022, 10:36

w