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

BÀI tập lớn MẠNG kết nối vạn vật xây DỰNG hệ THỐNG NHẬN DIỆN KHUÔN mặt SINH VIÊN TRƯỜNG đại học KINH tế QUỐC dân tại GIẢNG ĐƯỜNG a2 BẰNG ARDUINO

46 39 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

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN VIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ BÀI TẬP LỚN MẠNG KẾT NỐI VẠN VẬT ĐỀ TÀI : XÂY DỰNG HỆ THỐNG NHẬN DIỆN KHUÔN MẶT SINH VIÊN TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN TẠI GIẢNG ĐƯỜNG A2 BẰNG ARDUINO Giảng viên hướng dẫn : TH.S Nguyễn Thanh Hương Sinh viên thực : Nguyễn Xuân Dương Mã sinh viên : 11181128 Hà Nội, Năm 2021 MỤC LỤC MỤC LỤC a Yêu Cầu Bảo Mật Thông Tin Các Bạn Sinh Viên b Yêu Cầu Hệ Thống Và Các Bạn Sinh Viên CHƯƠNG 4: QUÁ TRÌNH XÂY DỰNG HỆ THỐNG NHẬN DIỆN KHUÔN MẶT SINH VIÊN TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN TẠI GIẢNG ĐƯỜNG A2 1) Cài Đặt Công Cụ Và Môi Trường Xây Dựng Hệ Thống a) Cài Đặt Arduino IDE b) Cài Đặt ESP32 2) Tìm Hiểu Và Cài Đặt ESP32 Cam - board Trên Arduino IDE MỤC LỤC a) Tổng Quan Module ESP32 b) Cài Đặt ESP32 Cam - board Arduino IDE 3) Thiết Kế Hệ Thống Nhận Diện Khuôn Mặt Tại Giảng Đường A2 a) Khảo Sát Thực Tế b) Thiết Kế Sơ Đồ Lắp Đặt Hệ Thống 4) Xây Dựng Hệ Thống a) Lược Đồ Phân Vùng Lưu Trữ Liên Tục b) Chụp Dữ Liệu Khuôn Mặt Để Lưu Trữ Liên Tục c) Kích Hoạt Nhận Dạng Khn Mặt d) Khởi Động Hệ Thống e) Xóa Một Khn Mặt Khỏi Hệ Thống Máy Chủ 5) Quy Trình Vận Hành Hệ Thống a) Cách Thức Hoạt Động b) Quy Trình Vận Hành Hệ Thống Các Máy Chủ CHƯƠNG 5: KẾT LUẬN 1) Những Kết Quả Đạt Được 2) Hướng Phát Triển Trong Tương Lai DANH SÁCH CÁC HÌNH ẢNH Hình 1: ESP Cam thiết bị ngoại vi .15 Hình 2: Thơng số kỹ thuật ESP Cam 16 Hình 3: Bộ lập trình FTDI 16 Hình 4: Chi tiết module AI - Thinker .17 Hình 5: Kết nối ESP Cam lập trình FTDI 20 Hình 6: Thiết lập địa IP cục máy chủ ESP Cam 22 Hình 7: Sơ đồ khối giảng đường A2 .23 Hình 8: Sơ đồ tịa nhà A2 .23 Hình 9: Sơ đồ tầng G giảng đường A2 24 Hình 10: Thiết kế hệ thống lắp đặt tầng G 25 Hình 11: Quy trình phân tích hệ thống 37 Hình 12: Sơ đồ vận hành hệ thống .39 MẠNG KẾT NỐI VẠN VẬT HỆ THỐNG NHẬN DIỆN KHUÔN MẶT SINH VIÊN Trang | MẠNG KẾT NỐI VẠN VẬT HỆ THỐNG NHẬN DIỆN KHN MẶT SINH VIÊN cảm ơn giáo, TH.S Nguyễn Thanh Hương người trực tiếp hướng dẫn em trình xây dựng hệ thống CHƯƠNG 1: LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN CỦA CÁC ỨNG DỤNG Trang | MẠNG KẾT NỐI VẠN VẬT HỆ THỐNG NHẬN DIỆN KHUÔN MẶT SINH VIÊN IOT Trang | MẠNG KẾT NỐI VẠN VẬT HỆ THỐNG NHẬN DIỆN KHUÔN MẶT SINH VIÊN Internet vạn vật (IOT) mô tả mạng lưới đối tượng vật lý - "sự vật" đối tượng - nhúng với cảm biến, phần mềm cơng nghệ khác nhằm mục đích kết nối trao đổi liệu với thiết bị hệ thống khác qua Internet Khái Niệm Internet of Things (IOT) hệ thống thiết bị máy tính, máy móc, vật thể, động vật người có liên quan đến nhau, cung cấp định danh có khả để truyền liệu qua mạng mà không cần tương tác người với người hay người với máy tính Thing Internet of Things (Mạng lưới vạn vật kết nối) người có cấy ghép để giám sát hoạt động tim, động vật với chip sinh học (có khả tự động nhận truyền tín hiệu radio), tơ có cảm biến lắp sẵn để cảnh báo cho người lái áp suất lốp thấp vật thể khác tự nhiên hay người làm mà gán địa IP có khả truyền liệu qua mạng IOT bao gồm hội tụ đến đỉnh cao công nghệ không dây, hệ thống điện vi mô (MEMS), microservice (một kiểu kiến trúc phần mềm, chia phần mềm thành dịch vụ nhỏ) Internet Điều phá vỡ tường silo công nghệ vận hành (OT) công nghệ thông tin (IT), cho phép phân tích liệu phi cấu trúc để có hiểu biết, cải thiện hiệu Lịch Sử Hình Thành Và Phát Triển Khái niệm mạng lưới thiết bị thông minh thảo luận vào đầu năm 1982, với máy bán hàng tự động Coca-Cola sửa đổi Đại học Carnegie Mellon trở thành thiết bị kết nối internet đầu tiên, khơng hiểu hàng tồn kho liệu đồ uống nạp có lạnh hay không Bài báo năm 1991 Mark Weiser máy tính phổ biến, "Máy tính kỷ 21", địa điểm học thuật UbiComp PerCom tạo tầm nhìn đương đại IOT Năm 1994, Reza Raji mô tả khái niệm IEEE Spectrum "[di chuyển] gói liệu nhỏ đến tập hợp lớn nút, để tích hợp tự động hóa thứ từ thiết bị gia dụng đến toàn nhà máy" Trang | MẠNG KẾT NỐI VẠN VẬT HỆ THỐNG NHẬN DIỆN KHUÔN MẶT SINH VIÊN Từ năm 1993 đến 1997, số công ty đề xuất giải pháp Microsoft's at Work Novell's NEST Lĩnh vực đạt động lực Bill Joy hình dung giao tiếp thiết bị với thiết bị phần khuôn khổ "Sáu trang web" ơng, trình bày Diễn đàn Kinh tế Thế giới Davos năm 1999 Thuật ngữ "Internet of things" đặt Kevin Ashton Procter & Gamble, sau Trung tâm Auto-ID MIT, vào năm 1999, ơng thích cụm từ "Internet for things" Tại thời điểm đó, ơng coi nhận dạng tần số vô tuyến (RFID) điều cần thiết Internet vạn vật, cho phép máy tính quản lý tất thứ riêng lẻ Định nghĩa Internet vạn vật "chỉ đơn giản thời điểm mà nhiều 'thứ đối tượng' kết nối với Internet người", Cisco Systems ước tính IOT "sinh ra" từ năm 2008 đến năm 2009, với tỷ lệ vạn vật / người ngày tăng từ 0,08 năm 2003 lên 1,84 năm 2010 Mặc dù đến năm 1999 khái niệm Internet of Things gọi tên, công nghệ phát triển nhiều thập kỷ Ví dụ, thiết bị Internet máy Coke Carnegie Melon University vào đầu năm 1980 Các lập trình viên kết nối với máy thông qua Internet, kiểm tra trạng thái máy xem xem máy có đồ uống lạnh hay khơng Nếu có đồ uống, họ đến để lấy Các Ứng Dụng Phổ Biến Của Mạng Kết Nối Vạn Vật(IOT) Bộ ứng dụng mở rộng cho thiết bị IOT thường chia thành không gian tiêu dùng, thương mại, công nghiệp sở hạ tầng 3.1) Hệ Thống Nhà Thông Minh Các thiết bị IOT phần khái niệm lớn tự động hóa gia đình, bao gồm hệ thống chiếu sáng, sưởi ấm điều hịa khơng khí, phương tiện hệ thống an ninh hệ thống camera Các lợi ích lâu dài bao gồm tiết kiệm lượng cách tự động đảm bảo tắt đèn thiết bị điện tử cách làm cho cư dân nhà biết cách sử dụng Trang | 4) Xây Dựng Hệ Thống Giải thích cách lưu hình ảnh đăng ký đèn flash bo mạch để chúng sống sót sau ESP32 tắt nguồn sử dụng nhận dạng lưu để điều khiển thiết bị kết nối với ESP32 Có ba bước • Tạo lược đồ phân vùng phép lưu trữ liên tục • Sửa đổi phác thảo ví dụ CameraWebServer để lưu liệu khuôn mặt vào phân vùng • Sử dụng nhận dạng lưu để điều khiển thiết bị kết nối với ESP32 a) Lược Đồ Phân Vùng Lưu Trữ Liên Tục > Tạo lược đồ phân vùng với nhớ lưu trữ liên tục on-board flash bo mạch > Cài đặt phân vùng phù hợp với phiên thư viện phần cứng Arduino ESP32 Đường link cài đặt: https://robotzero.one/wp-content/uploads/2019/04/partitions.csv > Thêm tệp vừa cài đặt vào thư mục chứa lược đồ phân vùng khác Tùy vào cách cài đặt Arduino IDE mà có cách thêm tệp khác • Arduino IDE cài đặt từ Windows Store: C > Users > *your-user-name* > Documents > ArduinoData > packages > esp32 > hardware > esp32 > 1.0.4 > tools > partitions • Arduino IDE cài đặt từ trang web Arduino: C > Users > *your-user-name* > AppData > Local > Arduino15 > packages > esp32 > hardware > esp32 > 1.0.4 > tools > partitions > Lược đồ phải thêm vào thiết bị ESP tệp cấu hình trình boards manager coníiguration file boards.txt • Arduino IDE installed from the Windows Store: C > Users > *your-user-name* > Documents > ArduinoData > packages > esp32 > hardware > esp32 > 1.0.4 • Arduino IDE cài đặt từ trang web Arduino: C > Users > *your-user-name* > AppData > Local > Arduino15 > packages > esp32 > hardware > esp32 > 1.0.4 • Thêm ba dịng sau vào bên tùy chọn phân vùng có cho esp32wrover board tệp boards.txt esp32wrover.menu.PartitionScheme.rzo_partition=Face Recognition (2621440 bytes with OTA) esp32wrover.menu.PartitionScheme.rzo_partition.build.partitions=rzo_partitions esp32wrover.menu.PartitionScheme.rzo_partition.upload.maximum_size=2621440 > Tạo board mới: rzo.name=Nhân Diên Khuon Mat // Đặt Tên Vùng Lưu Trữ rzo.upload.tool=esptool_py rzo.upload.maximum_size=1310720 rzo.upload.maximum_data_size=2621440 rzo.upload.wait_for_upload_port=true # Tạo Vùng Lưu Trữ Tối Đa rzo.serial.disableDTR=true rzo.serial.disableRTS=true rzo.build.mcu=esp32 rzo.build.core=esp32 rzo.build.variant=esp32 rzo.build.board=ESP32_DEV rzo.build.f_cpu=240000000L rzo.build.flash_size=4MB rzo build flash_freq=4 0m rzo.build.flash_mode=dio rzo.build.boot=dio rzo.build.partitions=default rzo.build.defines= rzo.menu.PSRAM.disabled=Disabled rzo.menu.PSRAM.disabled.build.defines= rzo.menu.PSRAM.enabled=Enabled rzo.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue # Xây Dựng Lược Đồ Phân Vùng rzo.menu.PartitionScheme.default=Default rzo.menu.PartitionScheme.default.build.partitions=default rzo.menu.PartitionScheme.minimal=Minimal (2MB FLASH) rzo.menu.PartitionScheme.minimal.build.partitions=minimal rzo.menu.PartitionScheme.no_ota=No OTA (Large APP) rzo.menu.PartitionScheme.no_ota.build.partitions=no_ota rzo.menu.PartitionScheme.no_ota.upload.maximum_size=2097152 rzo.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA) rzo.menu.PartitionScheme.huge_app.build.partitions=huge_app rzo.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 rzo.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) rzo.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs rzo.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 rzo.menu.PartitionScheme.fatflash=16M Fat rzo.menu.PartitionScheme.fatflash.build.partitions=ffat rzo.menu.PartitionScheme.rzo_partition=Face Recognition (2621440 bytes with OTA) rzo.menu.PartitionScheme.rzo_partition.build.partitions=rzo_partition rzo.menu.PartitionScheme.rzo_partition.upload.maximum_size=2621440 rzo.menu.CPUFreq.240=240MHz (WiFi/BT) rzo.menu.CPUFreq.240.build.f_cpu=240000000L rzo.menu.CPUFreq.160=160MHz (WiFi/BT) rzo.menu.CPUFreq.160.build.f_cpu=160000000L rzo.menu.CPUFreq.80=80MHz (WiFi/BT) rzo.menu.CPUFreq.80.build.f_cpu=80000000L rzo.menu.CPUFreq.40=40MHz (40MHz XTAL) rzo.menu.CPUFreq.40.build.f_cpu=40000000L rzo.menu.CPUFreq.26=26MHz (26MHz XTAL) rzo.menu.CPUFreq.26.build.f_cpu=26000000L rzo.menu.CPUFreq.20=20MHz (40MHz XTAL) rzo.menu.CPUFreq.20.build.f_cpu=20000000L rzo.menu.CPUFreq.13=13MHz (26MHz XTAL) rzo.menu.CPUFreq.13.build.f_cpu=13000000L rzo.menu.CPUFreq 10= 10MHz (40MHz XTAL) rzo.menu.CPUFreq.10.build.f_cpu=10000000L # Cài Đặt Chế Độ Sáng camera quan sát rzo.menu.FlashMode.qio=QIO rzo.menu.FlashMode.qio.build.flash_mode=dio rzo.menu.FlashMode.qio.build.boot=qio rzo.menu.FlashMode.dio=DIO rzo.menu.FlashMode.dio.build.flash_mode=dio rzo.menu.FlashMode.dio.build.boot=dio rzo.menu.FlashMode.qout=QOUT rzo.menu.FlashMode.qout.build.flash_mode=dout rzo.menu.FlashMode.qout.build.boot=qout rzo.menu.FlashMode.dout=DOUT rzo.menu.FlashMode.doutbuild.flash_mode=dout rzo.menu.FlashMode.doutbuild.boot=dout # Tần Suất sáng rzo.menu.FlashFreq 80=80MHz rzo.menu.FlashFreq.80.build.flash_freq=80m rzo.menu.FlashFreq.40=40MHz rzo.menu.FlashFreq.40.build.flash_freq=40m # Kích Thước Vùng Sáng rzo.menu.FlashSize.4M=4MB (32Mb) rzo.menu.FlashSize.4M.build.flash_size=4MB rzo.menu.FlashSize.2M=2MB (16Mb) rzo.menu.FlashSize.2M.build.flash_size=2MB rzo.menu.FlashSize.2M.build.partitions=minimal rzo.menu.FlashSize.16M=16MB (128Mb) rzo.menu.FlashSize.16M.build.flash_size=16MB rzo.menu.FlashSize.16M.build.partitions=ffat # Tốc Độ Tải Lên rzo.menu.UploadSpeed.921600=921600 rzo.menu.UploadSpeed.921600.upload.speed=921600 rzo.menu.UploadSpeed.115200=115200 rzo.menu.UploadSpeed.115200.upload.speed=115200 rzo.menu.UploadSpeed.256000.windows=256000 rzo.menu.UploadSpeed.256000.upload.speed=256000 rzo.menu.UploadSpeed.230400.windows.upload.speed=256000 rzo.menu.UploadSpeed.230400=230400 rzo.menu.UploadSpeed.230400.upload.speed=230400 rzo.menu.UploadSpeed.460800.linux=460800 rzo.menu.UploadSpeed.460800.macosx=460800 rzo.menu.UploadSpeed.460800.upload.speed=460800 rzo.menu.UploadSpeed.512000.windows=512000 rzo.menu.UploadSpeed.512000.upload.speed=512000 #Mức Độ Gỡ Lỗi rzo.menu.DebugLevel.none=None rzo.menu.DebugLevel.none.build.code_debug=0 rzo.menu.DebugLevel.error=Error rzo.menu.DebugLevel.error.build.code_debug=1 rzo.menu.DebugLevel.warn=Warn rzo.menu.DebugLevel.warn.build.code_debug=2 rzo.menu.DebugLevel.info=Info rzo.menu.DebugLevel.info.build.code_debug=3 rzo.menu.DebugLevel.debug=Debug rzo.menu.DebugLevel.debug.build.code_debug=4 rzo.menu.DebugLevel.verbose=Verbose rzo.menu.DebugLevel.verbose.build.code_debug=5 > Trong Arduino IDE, lược đồ có sẵn cho borad board thêm định nghĩa vào: 3?1 CameraVVebServer I Arduino 1,8.9 (Windows Store 1.8,21.0) Archive Sketch VViHlOl / VVIHININA FirmwareUpdater Board: "RobotZero One" Upload Speed: "921600" CPU Prequency: "240MHz (WiFi/B1)" Flash Frequency: "80MHz" 39 #define 40 #define Flash Mode: "QIO" Flash Size “4MB (32Mb)" Partitiữn Scheme: "Huge APP (3MB No OTA)" Core Debug Level: "None" Minimaí (2MB HLASH) PSRAM: "Pnahled" NữOTA(LargeAPP) HưgeAPP (3MB NoOTA) Minimal SPIFFS(LargeAPPSwith OTA) 16M Fat Programmen "Parallel Programmer" Face Recognition (2621440 bytes with OTA) Burn Bootloader Fix Eneoding & Reload Manaqe Libraries > Đóng mở lại IDE để xác nhận lược đồ phân vùng 'Nhận dạng khn mặt' có sẵn menu Công cụ b) Chụp Dữ Liệu Khuôn Mặt Để Lưu Trữ Liên Tục CameraWebServer IDE không lưu khn mặt đăng ký theo cách tồn điện Để sửa đổi để sử dụng phân vùng mới, số thay đổi cần thực đoạn code Trong Arduino IDE, tạo CameraWebServer Sketch hoạt động máy chủ từ hướng dẫn trước cách lưu với tên tệp chẳng hạn CameraWebServerPermanent > Trong Arduino IDE hiển thị tab hình sau : • Trong tab thứ hai (app_httpd.cpp), thực thay đổi sau Sau #include "fr_osystem.h" (xung quanh dòng 24), thêm: #include "fr_flash.h"; • Thay đổi int8_t left_sample_face = register_face (& id_list, align_face); (& id_list, align_face); (xung quanh dòng 178) đến: int8_t left_sample_face = enroll_face_id_to_flash(&id_list, aligned_face); • Sau face_id_init (& id_list, FACE_ID_SAVE_NUMBER, ENROLL_CONFIRM_TIMES); (xung quanh dòng 636) thêm: read_face_id_from_flash(&id_list); > Flash chạy Sketch theo cách tương tự trước Dữ liệu khuôn mặt đăng ký lưu vào phân vùng nhớ flash c) Kích Hoạt Nhận Dạng Khuôn Mặt > Khởi động Arduino IDE, tạo Sketch #include "esp_camera.h" #include "fd_forward.h" #include "fr_forward.h" #include "fr_flash.h" 5 #define relayPin 12 //pin sử dụng unsigned long currentMillis = 0; unsigned long openedMillis = 0; long interval = 5000; //mở khóa mili giây 10 #define ENROLL_CONFIRM_TIMES 10 #define FACE_ID_SAVE_NUMBER 13 11 static inline mtmn_config_t app_mtmn_config() 12 { 13 mtmn_config_t mtmn_config = {0}; 14 mtmn_config.type = FAST; 15 mtmn_config.min_face = 80; 16 mtmn_config.pyramid = 0.707; 17 mtmn_config.pyramid_times = 4; 18 mtmn_config.p_threshold.score = 0.6; 19 mtmn_config.p_threshold.nms = 0.7; 20 mtmn_config.p_threshold.candidate_number = 20; 21 mtmn_config.r_threshold.score = 0.7; 22 mtmn_config.r_threshold.nms = 0.7; 23 mtmn_config.r_threshold.candidate_number = 10; 24 mtmn_config.o_threshold.score = 0.7; 25 mtmn_config.o_threshold.nms = 0.7; 26 mtmn_config.o_threshold.candidate_number = 1; 27 retun mtmn_config; 28 } 29 mtmn_config_t mtmn_config = app_mtmn_config(); 33 30 static face_id_list id_list = {0}; 31 dl_matrix3du_t *image_matrix = NULL; 32 camera_fb_t * fb = NULL; 37 33 dl_matrix3du_t *aligned_face = dl_matrix3du_alloc(1, FACE_WIDTH, FACE_HEIG HT, 3); 39 34 void setup() { 35 Serial.begin(115200); // Tốc độ boaud 36 // đặt chế độ ban đầu vào cho chân relay led 37 digitalWrite(relayPin, LOW); 38 pinMode(relayPin, OUTPUT); 45 39 camera_config_t config; 40 config.ledc_channel = LEDC_CHANNEL_0; 41 config.ledc_timer = LEDC_TIMER_0; 42 config.pin_d0 = 5; 43 config.pin_d1 = 18; 44 config.pin_d2 = 19; 45 config.pin_d3 = 21; 46 config.pin_d4 = 36; 47 config.pin_d5 = 39; 48 config.pin_d6 = 34; 49 config.pin_d7 = 35; 50 config.pin_xclk = 0; 51 config.pin_pclk = 22; 52 config.pin_vsync = 25; 53 config.pin_href = 23; 54 config.pin_sscb_sda = 26; 55 config.pin_sscb_scl = 27; 56 config.pin_pwdn = 32; 57 config.pin_reset = -1; 58 config.xclk_freq_hz = 20000000; 59 config.pixel_format = PIXFORMAT_JPEG; 60 config.frame_size = FRAMESIZE_SVGA; 61 config.jpeg_quality = 12; 62 config.fb_count = 1; 70 63 esp_err_t err = esp_camera_init(&config); 64 if (err != ESP_OK) { 65 Serial.printf("Camera init failed with error 0x%x", err); 66 return; 67 } 68 , , , 69 //thả xuống kích thước khung hình để có tốc độ khung hình ban đầu cao 70 sensor_t * s = esp_camera_sensor_get(); 71 s->set_framesize(s, FRAMESIZE_QVGA); 80 72 face_id_init(&id_list, FACE_ID_SAVE_NUMBER, ENROLL_CONFIRM_TIMES); 73 read_face_id_from_flash(&id_list); //Đọc liệu khuôn mặt từ đèn flash bo mạch 74 } 84 75 void rzoCheckForFace() { 76 currentMillis = millis(); 77 if (run_face_recognition()) { //chức nhận dạng khuôn mặt trả true 78 Serial.println("Face recognised"); 79 digitalWrite(relayPin, HIGH); //đóng(tiếp điện ) relay 80 openedMillis = millis(); //thời gian relay thoát 81 } 82 if (currentMillis - interval > openedMillis){ //thời gian đến thời gian nhận diện khuôn mặt >5s 83 digitalWrite(relayPin, LOW); //mở relay 84 } 85 } 96 86 bool run_face_recognition() { 87 bool faceRecognised = false; //mặc định 88 int64_t start_time = esp_timer_get_time(); 89 fb = esp_camera_fb_get(); 90 if (!fb) { 91 Serial.println("Camera capture failed"); 92 return false; 93 } 105 94 int64_t fb_get_time = esp_timer_get_time(); 95 Serial.printf("Get one frame in %u ms.\n", (fb_get_time - start_time) / 1000); // dòng bình luận 96 ’ ’ 97 image_matrix = dl_matrix3du_alloc(1, fb->width, fb->height, 3); 98 uint32_t res = fmt2rgb888(fb->buf, fb->len, fb->format, image_matrix->item); 99 if (!res) { 100 Serial.println("to rgb888 failed"); 101 dl_matrix3du_free(image_matrix); 102 } 115 103 e sp_camera_fb_return(fb); 117 104 box_array_t *net_boxes = face_detect(image_matrix, &mtmn_config); 119 105 if (net_boxes) { 106 if (align_face(net_boxes, image_matrix, aligned_face) == ESP_OK) { 122 107 int matched_id = recognize_face(&id_list, aligned_face); 108 if (matched_id >= 0) { 109 Serial.printf("Match Face ID: %u\n", matched_id); 110 faceRecognised = true; //bây hàm trả true 111 } else { 112 113 114 115 116 117 134 118 119 120 121 139 122 123 124 143 125 126 127 Serial.println("No Match Found"); matched_id = -1; } } else { Serial.println("Face Not Aligned"); } free(net_boxes->box); free(net_boxes->landmark); free(net_boxes); } dl_matrix3du_free(image_matrix); return faceRecognised; } void loop() { rzoCheckForFace(); } > Code hàm rzoCheckForFace () đoạn code thay đổi thành hàm yêu cầu khuôn mặt nhận dạng > Khi flash chạy Sketch này, ‘Khuôn mặt nhận dạng’ hình camera giám sát nối tiếp khn mặt phù hợp tìm thấy d) Khởi Động Hệ Thống > Sketch kết hợp với relay module Mosfet sử dụng để bật tắt thiết bị điện > Truy cập máy chủ để phát trực tuyến camera giám sát mạng cục bộ, mở trình duyệt nhập địa IP ESP32-CAM, chọn nút bắt đầu để tiến hành giám sát nhận diện khuôn mặt e) Xóa Một Khn Mặt Khỏi Hệ Thống Máy Chủ Khởi động Arduino IDE, tạo sketch #include "esp_camera.h" #include "fd_forward.h" #include "fr_forward.h" #include "fr_flash.h" #define ENROLL_CONFIRM_TIMES #define FACE_ID_SAVE_NUMBER static face_id_list id_list = {0}; void setup() { Serial.begin(115200); face_id_init(&id_list, FACE_ID_SAVE_NUMBER, ENROLL_CONFIRM_TIMES); read_face_id_from_flash(&id_list); //Đọc liệu khuôn mặt từ đèn flash bo mạch Serial.println("Faces Read"); while ( delete_face_id_in_flash(&id_list) > -1 ){ Serial.println("Deleting Face"); } Serial.println("All Deleted"); } void loop() { } 5) Quy Trình Vận Hành Hệ Thống a) Cách Thức Hoạt Động > Hệ thống nhận diện khuôn mặt sinh viên trường Đại Học Kinh Tế Quốc Dân vào giảng đường A2 hệ thống nhận diện khuôn mặt trực tiếp qua camera quan sát > Hệ thống nhận diện sử dụng sinh trắc học để định vị đặc điểm khuôn mặt bạn sinh viên qua camera quan sát Sau so sánh thơng tin vừa nhận diện với liệu lưu trữ hệ thống máy chủ để tìm kết phù hợp Trường hợp khơng tìm thấy kết phù hợp hệ thống máy chủ hiển thị cảnh báo có người lạ vào tịa nhà Nguyên lý hoạt động hệ thống: ■ Lấy mẫu: camera quan sát > ■ ■ ■ Phát hiện: nhận dạng đặc điểm khuôn mặt sinh viên Phân tích: liệu trích xuất từ mẫu ■ Kết quả: hệ thống đưa thơng tin có phải sinh viên trường đại học kinh tế quốc dân hay không ■ Lưu trữ: cuối hệ thống lưu trữ danh sách sinh viên vào giảng đường A2 So sánh: liệu vừa thu tiến hành so sánh với liệu lưu trữ hệ thống máy chủ ^ Khi bạn sinh viên di chuyển vào giảng đường A2 lọt vào tầm ngắm camera quan sát, hệ thống tự động xác định vị trí khn mặt thực thuật tốn để trích dẫn liệu khn mặt Trong q trình di chuyển vào giảng đường A2 bạn sinh viên giúp hệ thống dễ dàng nhận diện khuôn mặt Sau sơ đồ quy trình phân tích liệu: Hình 11: Quy trình phân tích hệ thống > Tóm lại, hệ thống phân tích 68 đặc điểm sinh trắc khuôn mặt khoảng cách mắt, khoảng cách từ trán đến cằm, chiều dài, chiều rộng mặt, tạo nên “chìa khóa” cho khn mặt bạn sinh viên lưu lại phần mềm hệ thống dạng thuật tốn Mỗi có đối tượng, máy quét phân tích liệu xem khn mặt có khớp với thuật tốn lưu hay chưa Tồn quy trình diễn vịng 0.2 giây b) Quy Trình Vận Hành Hệ Thống Các Máy Chủ > Hệ thống nhận diện khuôn mặt sinh viên trường Đại Học Kinh Tế Quốc Dân gồm máy chủ (máy chủ 1,máy chủ 2) kết nối với Sever Chính > Tại Sever Chính: cài đặt VMS(Sever) liệu ID khuôn mặt sinh viên trường Đại Học Kinh Tế Quốc Dân Toàn hệ thống bao phủ Internet > > Hệ thống sử dụng cáp quang (Fttp) để kết nối với camera quan sát Internet \Vordstation -VMS -FR module -poE siritch Hệ Thõng Các Camera Quan Sát Hình 12: Sơ đồ vận hành hệ thống CHƯƠNG 5: KẾT LUẬN 1) Những Kết Quả Đạt Được > Kinh nghiệm rút cho thân: Quá trình xây dựng hệ thống nhận diện khuôn mặt bạn sinh viên trường Đại Học Kinh Tế Quốc Dân Arduino giúp em có thêm hiểu biết việc xây dựng hệ thống , ứng dụng Internet of Things > Kết đạt hệ thống: • Hệ thống hoạt động thành công tiết kiệm nhiều thời gian bạn sinh viên vào tòa nhà A2 học tập tham gia hoạt động ngoại khóa • Ngăn ngừa nhiều kẻ xấu đột nhập vào tòa nhà A2 • Khắc phục hồn tồn tình hình học hộ, thi hộ 2) Hướng Phát Triển Trong Tương Lai > Hệ thống nhận diện khuôn mặt dần hoạt động tốt, nhiên mức độ bảo mật thông tin hệ thống chưa thực tốt nên thời gian tới em cần khắc phục lỗi > Hiện tại, hệ thống vào hoạt động giảng đường A2 Trong tương lai dự kiến em phát triển hệ thống rộng giảng đường lại khu vực ký túc xá trường ... sinh viên trường Đại Học Kinh Tế Quốc Dân CHƯƠNG 3: TỔNG QUAN VỀ HỆ THỐNG NHẬN DIỆN KHUÔN MẶT SINH VIÊN TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN TẠI GIẢNG ĐƯỜNG A2 1) Mục Đích Xây Dựng Hệ Thống > Hệ thống. .. với mục đích nhận diện khn mặt bạn sinh viên ra,vào giảng đường A2 trường Đại Học Kinh Tế Quốc Dân Trang | MẠNG KẾT NỐI VẠN VẬT > HỆ THỐNG NHẬN DIỆN KHN MẶT SINH VIÊN Ngồi ra: hệ thống sử dụng... Hành Hệ Thống a) Cách Thức Hoạt Động > Hệ thống nhận diện khuôn mặt sinh viên trường Đại Học Kinh Tế Quốc Dân vào giảng đường A2 hệ thống nhận diện khuôn mặt trực tiếp qua camera quan sát > Hệ thống

Ngày đăng: 17/02/2022, 10:42

Xem thêm:

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w