侵权投诉
订阅
纠错
加入自媒体

通过门铃也能识别出是谁在敲门了吗?

2021-03-13 10:05
磐创AI
关注


加载模型的代码很简单。模型存储在目录model/files/中。from tensorflow.keras.models import load_model

model = load_model('model/facenet_keras.h5')

开发一个模型来概括它以前从未见过的面孔是很困难的。FaceNet模型是在MS-Celeb-1M数据集上训练的,该数据集包含100万张不同名人的照片。通过对同一个人的图像组进行L2归一化,以及余弦相似函数,FaceNet能够产生令人难以置信的高识别精度。我发明了一种方便的方法来登记你家人的面孔,运行submit_face.py,并传递参数“name”(要注册的人的名字)。另外,为了提高准确性和匹配照明条件,你可以使用布尔参数“from_door”,如果为真,将直接从你的门铃的最后录制的视频中保存图像。这些图像被存储在目录data/faces/中。用MTCNN人脸检测对它们进行预裁剪。检测方法将在稍后显示,它是face_recognition.py的一部分。对于拍到的视频,我抓取了视频的特定帧,并测试哪些帧可以工作。我们将需要做一些图像预处理,以及其他小的函数,我将在utils.py中定义:import cv2
def normalize(img):
   mean, std = img.mean(), img.std()
   return (img - mean) / (std + 1e-7)
def preprocess(cv2_img):
   cv2_img = normalize(cv2_img)
   cv2_img = cv2.resize(cv2_img, (160, 160))
   return cv2_img
def get_specific_frames(video_path, times):
   vidcap = cv2.VideoCapture(video_path)
   frames = []
   for time in times:
       vidcap.set(1, time * 15)
       success, image = vidcap.read()
       if success:
           frames.append(image)
   return frames

一旦你想要识别的每个人的图像都在目录data/faces/中,我们就可以将其转换为编码。我们把这作为单独的一步,因为我们L2标准化了每个人对应的所有图像。import os
from utils import preprocess
import cv2
import numpy as np
from sklearn.preprocessing import Normalizer
import face_recognition
import pickle
encoding_dict = {}
l2_normalizer = Normalizer('l2')
for face_names in os.listdir('data/faces/'):
   person_dir = os.path.join('data/faces/', face_names)
   encodes = []
   for image_name in os.listdir(person_dir):
       image_path = os.path.join(person_dir, image_name)
       face = cv2.imread(image_path)
       face = preprocess(face)
       encoding = face_recognition.encode(face)
       encodes.append(encoding)
   if encodes:
       encoding = np.sum(encodes, axis=0)
       encoding = l2_normalizer.transform(np.expand_dims(encoding, axis=0))[0]
       encoding_dict[face_names] = encoding
path = 'data/encodings/encoding.pkl'
with open(path, 'wb') as file:
   pickle.dump(encoding_dict, file)

<上一页  1  2  3  4  5  下一页>  余下全文
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

智能家居 猎头职位 更多
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号