Nhận Diện Hình Ảnh Bằng Python

     
*

Hiện nay hệ thống thống kê giám sát được vận dụng ngày càng phổ biến ở không chỉ có các cơ quan thiết yếu phủ, doanh nghiệp, ngôi trường học, nơi công cộng hay hộ gia đình. Để triển khai việc thống kê giám sát và ghi nhận có khá nhiều cách, bài viết này bọn họ sử dụng hình hình ảnh qua camera hay webcam để thống kê giám sát và ghi thừa nhận sự mở ra của một cá nhân thông qua câu hỏi nhiện diện khuôn mặt.

Dữ liệu đầu vào

Dữ liệu đầu vào là các hình hình ảnh chụp cá nhân của các đối tượng muốn nhấn dạng

*

Dữ liệu đầu ra

Dữ liệu áp ra output là file Excel dạng csv lưu quy trình ghi dấn được đối tượng người tiêu dùng gồm tên, thời hạn và tỷ lệ.

Kết quả nhấn dạng

Kết quả dìm dạng giỏi dù dữ liệu hình ảnh đầu vào có unique thấp hoặc webcam với camera có độ sắc nét không cao. Đặc biệt, dù treo khẩu trang công dụng nhận dạng vẫn siêu khả quan.

*

Kết quả ghi nhận biết Excel

*

Code Python tham khảo


import cv2import numpy as npimport face_recognitionimport osfrom datetime import datetime# from PIL import ImageGrab path = "Images_Excel"images = <>classNames = <>myList = os.listdir(path)print(myList)for cl in myList: curImg = cv2.imread(f"path/cl") images.append(curImg) classNames.append(os.path.splitext(cl)<0>)print(classNames) def findEncodings(images): encodeList = <> for img in images: img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) encode = face_recognition.face_encodings(img)<0> encodeList.append(encode) return encodeList def Attendance(name,valmin): with open("Diem_danh.csv","r+") as f: myDataList = f.readlines() nameList = <> for line in myDataList: entry = line.split(",") nameList.append(entry<0>) #if name not in nameList: now = datetime.now() dtString = now.strftime("%d/%m/%Y, %H:%M:%S") f.writelines(f" name,dtString,valmin") encodeListKnown = findEncodings(images)print("Endcoding OK. Loading camera...") cap = cv2.VideoCapture(0) while True: success, img = cap.read() #img = captureScreen() imgS = cv2.resize(img,(0,0),None,0.25,0.25) imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB) facesCurFrame = face_recognition.face_locations(imgS) encodesCurFrame = face_recognition.face_encodings(imgS,facesCurFrame) # đối chiếu và ghi nhận ID for encodeFace,faceLoc in zip(encodesCurFrame,facesCurFrame): matches = face_recognition.compare_faces(encodeListKnown,encodeFace) faceDis = face_recognition.face_distance(encodeListKnown,encodeFace) #print(faceDis) matchIndex = np.argmin(faceDis) # get index of min value is true # vẽ khung với hiển thị thương hiệu if matches: name = classNames.upper() valmin = "".format(round(100*(1-faceDis))) #print(valmin) y1,x2,y2,x1 = faceLoc y1, x2, y2, x1 = y1*4,x2*4,y2*4,x1*4 cv2.rectangle(img,(x1,y1),(x2,y2),(0,255,0),2) cv2.rectangle(img,(x1,y2-35),(x2,y2),(0,255,0),cv2.FILLED) cv2.putText(img,name + " - " + valmin +"%",(x1+6,y2-6),cv2.FONT_HERSHEY_PLAIN,1,(255,255,255),2) Attendance(name,valmin) # camera cv2.imshow("Camera 01",img) cv2.waitKey(1)