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

Thiết kế khóa nhận dạng khuôn mặt

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

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ KHOÁ NHẬN DẠNG KHUÔN MẶT MÃ SỐ: SV2021-85 CHỦ NHIỆM ĐỀ TÀI: NGUYỄN TRỌNG NGHĨA SKC 0 Tp Hồ Chí Minh, tháng 6/2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC THIẾT KẾ KHOÁ NHẬN DẠNG KHN MẶT MÃ SỐ: 085 Nhóm ngành khoa học: KỸ THUẬT MÁY TÍNH–VIỄN THƠNG SV thực hiện: Nguyễn Trọng Nghĩa MSSV: 17119036 Trần Thị Hoài Thương 17119046 Võ Văn Anh Đức 17119018 Nguyễn Đặng Thu Thảo 17119043 Đỗ Công Tiến 17119047 Dân tộc: Kinh Lớp, khoa: 17119CL2 – Khoa Đào tạo Chất lượng cao Năm thứ: /Số năm đào tạo: Ngành học: Cơng nghệ kỹ thuật máy tính Người hướng dẫn: PSG TS Trương Ngọc Sơn Tp Hồ Chí Minh, tháng 06 năm 2021 LỜI CẢM ƠN Trong thời gian làm nghiên cứu khoa học, nhóm thực nhận nhiều giúp đỡ, đóng góp ý kiến bảo nhiệt tình từ phía thầy cơ, gia đình bạn bè Nhóm thực xin gửi lời cảm ơn chân thành đến PGS TS Trương Ngọc Sơn, giảng viên Bộ mơn Kỹ Thuật Máy Tính-Viễn Thơng - Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, người tận tình hướng dẫn, bảo nhóm suốt q trình làm đồ án Nhóm thực xin chân thành cảm ơn thầy cô giáo trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh nói chung, thầy Bộ mơn Kỹ Thuật Máy Tính-Viễn Thơng nói riêng dạy dỗ cho chúng em kiến thức môn đại cương môn chuyên ngành, giúp chúng em có sở lý thuyết vững vàng tạo điều kiện giúp đỡ chúng em suốt trình học tập Trong trình nghiên cứu, tìm hiểu thực đề tài khơng tránh khỏi sai sót Nhóm thực mong nhận góp ý từ Thầy để đề tài hồn thiện ứng dụng thực tế Cuối cùng, nhóm thực xin chân thành cảm ơn gia đình bạn bè, ln tạo điều kiện, quan tâm, giúp đỡ, động viên suốt trình học tập hồn thành nghiên cứu khoa học Nhóm thực xin chân thành cảm ơn! MỤC LỤC DANH MỤC HÌNH DANH MỤC BẢNG CÁC TỪ VIẾT TẮT CHƯƠNG TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 TÌNH HÌNH NGHIÊN CỨU 1.3 MỤC TIÊU .2 1.4 PHƯƠNG PHÁP NGHIÊN CỨU 1.5 GIỚI HẠN ĐỀ TÀI 1.6 BỐ CỤC TRÌNH BÀY CỦA ĐỀ TÀI CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VỀ XỬ LÝ ẢNH 2.1.1 Thu nhận ảnh .6 2.1.2 Tiền xử lý ảnh 2.1.3 Phân đoạn ảnh 2.1.4 Biểu diễn mô tả 2.1.5 Nhận dạng nội suy 2.2 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO AI (ARTIFICIAL INTENLLIGENT) .7 2.2.1 Trí tuệ nhân tạo (Artificial Intellegence – AI) 2.2.2 Máy học (Machine learning) 2.2.3 Học sâu (Deep Learning) 2.3 THUẬT TỐN RÚT TRÍCH ĐẶC TRƯNG LBP (LOCAL BINARY PATTERN) 10 2.3.1 Lý thuyết LBP 10 2.3.2 Thuật toán LBP 12 2.3.3 Ngun lí phân lớp khơng tham biến 13 2.3.4 Phép quay bất biến 14 2.3.5 Độ tương phản kết cấu mẫu 15 2.4 ĐẶC TRUNG HAAR-LIKE 15 2.5 GIẢI THUẬT ADABOOST 18 2.6 PHẦN CỨNG 20 2.6.1 Máy tính nhúng RPI 20 2.6.1.1 Tổng quan Raspberry Pi 20 2.6.1.2 Giới thiệu Raspberry Pi Model B 21 2.6.2 Camera Pi 23 2.6.3 Động servo 24 2.7 PHẦN MỀM 25 2.7.1 Giới thiệu ngôn ngữ lập trình Python 25 2.7.2 Giới thiệu thư viện OpenCV 27 2.7.3 Giới thiệu thư viện Tkinter 28 CHƯƠNG THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 29 3.1 YÊU CẦU ĐỐI VỚI HỆ THỐNG 29 3.2 ĐẶC TẢ HỆ THỐNG 29 3.2.1 Chức hệ thống 29 3.2.2 Mô tả hoạt động hệ thống 29 3.2.3 Sơ đồ khối hệ thống 30 3.3 THIẾT KẾ HỆ THỐNG 31 3.3.1 Thiết kế phần cứng 31 3.3.1.1 Khối xử lý ảnh 31 3.3.1.2 Khối xử lý trung tâm 31 3.3.1.3 Khối hiển thị 32 3.3.1.4 Khối ngoại vi 32 3.3.1.5 Khối nguồn 32 3.3.2 Thiết kế phần mềm 35 3.3.2.1 Lưu đồ hoạt động hệ thống 35 3.3.2.2 Thiết kế giao diện hệ thống 43 CHƯƠNG KẾT QUẢ THỰC HIỆN, NHẬN XÉT VÀ DÁNH GIÁ 44 4.1 KẾT QUẢ 44 4.1.1 Phần cứng 44 4.1.2 Phần mềm 44 4.2 NHẬN XÉT VÀ ĐÁNH GIÁ 51 4.2.1 Nhận xét 51 4.2.2 Đánh giá 52 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53 5.1 KẾT LUẬN 53 5.1.1 Ưu điểm 53 5.1.2 Hạn chế 53 5.2 HƯỚNG PHÁT TRIỂN 54 5.3 Hướng khắc phục 54 5.4 Hướng phát triển 54 TÀI LIỆU THAM KHẢO 55 PHỤ LỤC 56 DANH MỤC HÌNH Hình Các bước xử lý ảnh Hình 2 Mối quan hệ AI, Machine Learning Deep Learning Hình Ví dụ LBP độ tương phản cục C 11 Hình Tập hợp điểm xung quanh Ptt 11 Hình Các biến thể LBP LBP đồng dạng 12 Hình Bảng thống kê mẫu uniform LBP 13 Hình Minh họa trường hợp LBP quay với góc 15 độ 14 Hình Đặc trưng theo cạnh 15 Hình Đặc trưng theo đường 16 Hình 10 Đặc trưng theo xung quanh tâm 16 Hình 11 Đặc trưng theo đường chéo 16 Hình 12 Cách tính Integral Image ảnh 17 Hình 13 Cách tính tổng giá trị pixel vùng cần tính 17 Hình 14 Mơ hình phân tầng kết hợp phân loại yếu 18 Hình 15 Minh hoạ kết hợp phân loại 19 Hình 16 Sơ đồ nhận diện khn mặt 20 Hình 17 Raspberry Pi model B thực tế 21 Hình 18 Camera Pi v1.3 24 HHình 19 Động Servo 25 Hình 20 Ngơn ngữ lập trình Python 26 Hình 21 Thư viện OpenCV 27 Hình Sơ đồ khối hệ thống 30 Hình Adapter cơng tắc nguồn 5V/3A 33 Hình 3 Sơ đồ cấp nguồn hệ thống 34 Hình Lưu đồ tổng thể hệ thống 35 Hình Lưu đồ giải thuật Lấy liệu 37 Hình Lưu đồ giải thuật Huấn luyện liệu 39 Hình Lưu đồ giải thuật Nhận diện 41 Hình Lưu đồ giải thuật mở khoá 42 Hình Giao diện hoàn chỉnh 43 Hình Mơ hình khố cửa nhận dạng khn mặt sau hồn thành 44 Hình Màn hình giao tiếp người dùng hoàn chỉnh 45 Hình Thực lấy liệu sinh viên Nguyễn Trọng Nghĩa 46 Hình 4 Ảnh sau lấy liệu data_face 47 Hình Quá trình huấn luyện liệu 47 Hình Mở khố khn mặt Nguyễn Trọng Nghĩa 48 Hình Kết hiển thị hình 48 Hình Kết thơng tin người mở khố 49 vii DANH MỤC BẢNG Bảng Thông số kỹ thuật Raspberry 22 Bảng Kết tiến hành thực nghiệm mở khố khn mặt 49 Bảng Bảng thống kê chi tiết số lần số lần sai 50 Bảng Kết tiến hành thực nghiệm mở khoá nhận diện khuôn mặt điều kiện không thuận lợi 50 Bảng 4 Bảng thống kê chi tiết số lần số lần sai điều kiện không thuận lợi 51 viii CÁC TỪ VIẾT TẮT AI Artificial intelligence DNA Deoxyribonucleic acid RFID Radio-frequency identification GSM Global System for Mobile LBP Local Binary Pattern PCA Principal component analysis ix BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI Thông tin chung: - Tên đề tài: THIẾT KẾ KHỐ NHẬN DẠNG KHN MẶT - SV thực hiện: Nguyễn Trọng Nghĩa Mã số SV: 17119036 Trần Thị Hoài Thương 17119046 Võ Văn Anh Đức 17119018 Nguyễn Đặng Thu Thảo 17119043 Đỗ Công Tiến 17119047 - Lớp: 17119CL2 Khoa: Đào tạo Chất lượng cao Năm thứ: Số năm đào tạo: - Người hướng dẫn: PGS TS Trương Ngọc Sơn Mục tiêu đề tài: - Nghiên cứu phương pháp nhận diện khuôn mặt - Thiết kế mơ hình nhận diện khn mặt sử dụng Raspberry pi - Thi cơng mơ hình nhận diện khn mặt Tính sáng tạo: - Thiết kế khố nhận dạng khn mặt thay khố điện tử truyền thống - Kết hợp AI vào đời sống thực tế Kết nghiên cứu: - Nghiên cứu thuật tốn nhận dạng khn mặt : OpenCV, LBP,… - Thiết kế chương trình máy tính nhúng Raspberry - Thi cơng mơ hình đơn giản khố nhận dạng khn mặt Đóng góp mặt giáo dục đào tạo, kinh tế - xã hội, an ninh, quốc phòng khả áp dụng đề tài: - Nghiên cứu phương pháp nhận dạng khuôn mặt áp dụng đời sống thực tế Mơ hình khố nhận dạng khn mặt phát triển lên theo hướng nhỏ gọn dễ sử dụng cho người dùng Công bố khoa học SV từ kết nghiên cứu đề tài (ghi rõ tên tạp chí có) nhận xét, đánh giá sở áp dụng kết nghiên cứu (nếu có): Ngày tháng năm SV chịu trách nhiệm thực đề tài (kí, họ tên) x 5.2 HƯỚNG PHÁT TRIỂN 5.3 Hướng khắc phục - Tiền xử lý ảnh qua nhiều lớp giúp hệ thống cho kết chuẩn xác - Điều kiện ngoại cảnh cần phù hợp khoảng cách, ánh sáng, hạn chế đối tượng làm nhiễu khung ảnh, hướng góc nghiêng khuôn mặt,… để đảm bảo độ tin cậy giảm sai số tới mức thấp cho hệ thống - Cải thiện Camera với chất lượng tốt sử dụng Camera hồng ngoại để không phụ thuộc vào điều kiện thiếu sáng - Nâng cấp Kit Raspberry Pi lên phiên cao để việc xử lý liệu cách nhanh 5.4 Hướng phát triển Kết hợp với ứng dụng điện thoại thông minh, websever việc giám sát quản lý thông tin từ xa 54 TÀI LIỆU THAM KHẢO [1] P T N T Hải, “Giáo trình Xử Lý Ảnh”, Nhà xuất ĐH Quốc Gia, Tp HCM, 2014 [2] P V L Trần Văn Tuấn, "Thiết kế thi công hệ thống phân loại sản phẩm bít chì theo màu sắc, Đồ án tốt nghiệp, Trường ĐH SPKT, Tp HCM," 2020 [3] P B D B A P J Snajder, “Artificial Intelligence”, University of Zagreb, Faculty of Electrical Engineering and Computing, 2018-2019 [4] N V T N D H Trần Như Ý, Phương pháp phát người dựa chuyển động, Trường ĐH Công Nghê Thực Phẩm, Tp HCM, 2017 [5] T T M K Nông Văn Tân, "Ứng dụng xử lý ảnh vào việc phát ngủ gật dùng kit Raspberry, Đồ án tốt nghiệp, Trường ĐH SPKT, tp.HCM," 2018 [6] N D Tâm, Giới thiệu Servo SG90 cách điều khiển biến trở, 2014 55 PHỤ LỤC Code chương trình: from tkinter import * import os import sqlite3 import cv2 import time import numpy as np from PIL import Image import pandas as pd import datetime import csv import RPi.GPIO as IO servo=18 IO.setwarnings(False) IO.setmode (IO.BCM) IO.setup(servo,IO.OUT) p = IO.PWM(servo,50) p.start(2) win =Tk() win.title('NGHIÊN CỨU KHOA HỌC') 56 LbMain = Label(win, text="HỆ THỐNG MỞ CỬA BẰNG NHẬN DIỆN KHUÔN MẶT" ,bg = 'White', fg = 'red' ,width=0 ,padx = 80, pady = 20 ,font=('verdana', 16, ' bold ')) LbMain.place(x=10, y=1) infogv = Label(win, text="Giáo Viên Hướng dẫn: TS Trương Ngọc Sơn" ,fg="blue" ,width=40 ,height=2 ,font=('times', 14, ' bold ')) infogv.place(x=60, y=90) infosv1 = Label(win, text="Sinh Viên Thực Hiện: Nguyễn Trọng Nghĩa 17119036" ,fg="blue" ,width=50 ,height=2 ,font=('times', 14, ' bold ')) infosv1.place(x=45, y=125) infosv2 = Label(win, text="Trần Thị Hoài Thương - 17119046" ,fg="blue" ,width=40 ,height=2 ,font=('times', 14, ' bold ')) infosv2.place(x=187, y=160) infosv3 = Label(win, text="Võ Văn Anh Đức - 17119018" ,fg="blue" ,width=40 ,height=2 ,font=('times', 14, ' bold ')) infosv3.place(x=166, y=195) infosv4 = Label(win, text="Đỗ Công Tiến - 17119018" ,fg="blue" ,width=40 ,height=2 ,font=('times', 14, ' bold ')) infosv4.place(x=152, y=230) infosv5 = Label(win, text="Nguyễn Đặng Thu Thảo - 17119043" ,fg="blue" ,width=40 ,height=2 ,font=('times', 14, ' bold ')) infosv5.place(x=190, y=265) lbl3 = Label(win, text="NGƯỜI MỞ CỬA:",width=20 ,fg="red" ,bg="yellow" ,height=2 ,font=('times', 18,' bold ')) lbl3.place(x=20, y=375) 57 messageName = Label(win, text="" ,fg="red" ,bg="white",activeforeground = "green",width=20 ,height=2 ,font=('times', 20, ' bold ')) messageName.place(x=280, y=375) messageSdt = Label(win, text="" ,fg="red" ,bg="white",activeforeground = "green",width=15 ,height=2 ,font=('times', 20, ' bold ')) messageSdt.place(x=540, y=375) photo = PhotoImage(file = r"logoSPKT.png") photoLogo = photo.subsample(23,23) labelSPKT = Label(win, image = photoLogo).place(x= 1, y=1) photo1 = PhotoImage(file = r"logoDDT.png") photoLogo1 = photo1.subsample(10,10) labelSPKT1 = Label(win, image = photoLogo1).place(x= 730, y=1) def TakePhoto(): def insertOrUpdate(id, name): # connecting to the db conn = sqlite3.connect("Database.db") # check if id already exists query = "SELECT * FROM People WHERE ID=" + str(id) # returning the data in rows cursor = conn.execute(query) isRecordExist = for row in cursor: 58 isRecordExist = if isRecordExist == 1: query = "UPDATE People SET Name = ? WHERE ID = ?" else: query = "INSERT INTO People (Name, ID) VALUES(?,?)" conn.execute(query,(str(name),str(id))) conn.commit() conn.close() root =Tk() face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') cap = cv2.VideoCapture(0) def myclickOK(): id = textcommand1.get() name = textcommand2.get() print (name) insertOrUpdate(id, name) sample_number = while True: ret, img = cap.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x, y, w, h) in faces: sample_number += 59 print(str(sample_number)) if not os.path.exists('data_face'): os.makedirs('data_face') cv2.imwrite('data_face/User.' + str(id) + "." + str(sample_number) + ".jpg", img[y:y + h, x:x + w]) cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) cv2.imshow('img', img) cv2.waitKey(1); if (sample_number > 200): cap.release() cv2.destroyAllWindows() break; #REGISTER INFORMATION THEMES sdt = Label(root, text = "So dien thoai:") sdt.pack() textcommand1 = Entry(root, width = 50) textcommand1.pack() HovaTen = Label(root, text="Ho va Ten:") HovaTen.pack() textcommand2 = Entry(root, width=50) textcommand2.pack() 60 myButtonOK = Button(root, text = "OK", command = myclickOK) myButtonOK.pack() root.mainloop() def TrainData(): recognizer = cv2.face.LBPHFaceRecognizer_create() path = 'data_face' def getImagesWithID(path): imagePaths = [os.path.join(path, f) for f in os.listdir(path)] faces = [] IDs = [] for imagePath in imagePaths: faceImg = Image.open(imagePath).convert('L') faceNp = np.array(faceImg, 'uint8') ID = int(os.path.split(imagePath)[-1].split('.')[1]) faces.append(faceNp) IDs.append(ID) cv2.imshow('training', faceNp) cv2.waitKey(10) return np.array(IDs), faces print("\n [INFO] Training faces It will take a few seconds Wait ") Ids, faces = getImagesWithID(path) recognizer.train(faces, Ids) 61 if not os.path.exists('trainer'): os.makedirs('trainer') recognizer.save('huanluyen/huanluyen.yml') print("\n [INFO] {0} faces trained Exiting Program".format(len(np.unique(Ids)))) cv2.destroyAllWindows() def AttendentData(): face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') recognizer = cv2.face.LBPHFaceRecognizer_create() recognizer.read("huanluyen/huanluyen.yml") columName = ['Id', 'Name', 'Date', 'Time'] attendent = pd.DataFrame( columns= columName) # TIME localtime = time.localtime(time.time()) localtime_fulltime = time.asctime(localtime) def getProfile(Id): conn = sqlite3.connect("Database.db") query = "SELECT * FROM People WHERE ID=" + str(Id) cursor = conn.execute(query) profile = None for row in cursor: profile = row conn.close() 62 return profile cap = cv2.VideoCapture(0) font = cv2.FONT_HERSHEY_COMPLEX sample_number = while True: ret, img = cap.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) img = cv2.putText(img, localtime_fulltime, (10, 25), font, 0.6, (255, 0, 255), 1, cv2.LINE_AA) for (x, y, w, h) in faces: sample_number +=1 cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) roi_gray = gray[y:y + h, x:x + w] roi_color = img[y:y + h, x:x + w] Id, conf = recognizer.predict(gray[y:y + h, x:x + w]) if conf < 50: profile = getProfile(Id) if profile != None: cv2.putText(img, str(profile[1]), (x, y + h), font, 1, (255, 255, 255), 2) SdtOut = profile[0] NameOut = profile[1] else: 63 cv2.putText(img, "Unknown", (x, y + h), font, 1, (255, 255, 255), 2) SdtOut = " " NameOut = "Không xác định!" attendent = attendent.drop_duplicates(subset=['Id'], keep='first') cv2.imshow('img', img) if (cv2.waitKey(1) == ord('q')): break if (sample_number > 0): cap.release() cv2.destroyAllWindows() break; messageName.configure(text = str(NameOut)) messageSdt.configure(text = str(SdtOut)) def confirm(): NameOut = messageName.cget('text') SdtOut = messageSdt.cget('text') if (NameOut != "Không xác định!" and NameOut != ""): messageName.configure(text = "") messageSdt.configure(text = "") p.ChangeDutyCycle(7) print(NameOut) print("1") ts = time.time() 64 date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d') timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S') with open("PersonDetails\PersonDetails.csv", 'a+') as file: writer = csv.writer(file) writer.writerow([SdtOut, NameOut, date, timeStamp]) else: p.ChangeDutyCycle(12) def manager(): face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') recognizer = cv2.face.LBPHFaceRecognizer_create() recognizer.read("huanluyen/huanluyen.yml") # TIME localtime = time.localtime(time.time()) localtime_fulltime = time.asctime(localtime) def getProfile(Id): conn = sqlite3.connect("Database.db") query = "SELECT * FROM People WHERE ID=" + str(Id) cursor = conn.execute(query) profile = None for row in cursor: profile = row conn.close() return profile 65 cap = cv2.VideoCapture(0) font = cv2.FONT_HERSHEY_COMPLEX sample_number = while True: ret, img = cap.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) img = cv2.putText(img, localtime_fulltime, (10, 25), font, 0.6, (255, 0, 255), 1, cv2.LINE_AA) for (x, y, w, h) in faces: sample_number += cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) roi_gray = gray[y:y + h, x:x + w] roi_color = img[y:y + h, x:x + w] Id, conf = recognizer.predict(gray[y:y + h, x:x + w]) if conf < 60: profile = getProfile(Id) if profile != None: cv2.putText(img, str(profile[1]), (x, y + h), font, 1, (255, 255, 255), 2) else: cv2.putText(img, "Unknown", (x, y + h), font, 1, (255, 255, 255), 2) cv2.imshow('img', img) 66 if (cv2.waitKey(1) == ord('q')): cap.release() cv2.destroyAllWindows() break Photo = Button(win, text = "LẤY DỮ LIỆU", command = TakePhoto, bg ='pink', fg = 'black', font = 'verdana 14 bold', padx = 15, pady = 7) Photo.place( x = 20, y = 310) Train = Button(win, text = "XỬ LÍ DỮ LIỆU", command = TrainData, bg ='pink', fg = 'black', font = 'verdana 14 bold', padx = 15, pady = 7) Train.place( x = 200, y = 310) Test = Button(win, text = " NHẬN DẠNG ", command = AttendentData, bg ='pink', fg = 'black', font = 'verdana 14 bold', padx = 15, pady = 7) Test.place( x = 400, y = 310) ConfirmAttendent = Button(win, text = "MỞ KHOÁ", command = confirm, bg ='blue', fg = 'white', font = 'verdana 14 bold', padx = 20, pady = 10) ConfirmAttendent.place( x = 410, y = 450) Manager = Button(win, text = "GS", command = manager, bg ='white', fg = 'black', font = 'verdana 14 bold', padx = 5, pady = 5) Manager.place( x = 740, y = 450) win.mainloop() 67 ... cứu phương pháp nhận diện khuôn mặt - Thiết kế mơ hình nhận diện khn mặt sử dụng Raspberry pi - Thi cơng mơ hình nhận diện khn mặt Tính sáng tạo: - Thiết kế khố nhận dạng khn mặt thay khoá điện... Hushida, cơng ty bán sản phẩm thiết bị liên quan đến nhận diện khuôn mặt như: Thiết bị đo nhiệt độ nhận dạng khn mặt inch, Có thể thấy ứng dụng việc nhận dạng khuôn mặt áp dụng nhiều vào đời sống... Các mã nhận dạng sinh trắc học liên quan đến thể chất người bao gồm: nhận dạng vân tay, bàn tay, quét mống mắt, DNA nhận dạng khuôn mặt? ?? Một ứng dụng bật lĩnh vực kỹ thuật nhận diện khuôn mặt người

Ngày đăng: 07/09/2022, 21:28

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w