写在后面
本文是对 Github 我的项目 Masked-Face-Recognition-using-Facenet 的实际。
实际步骤
一、收集图像
- 下载并解压 Masked-Face-Recognition-using-Facenet 我的项目。
-
收集图片。这些图片的要求如下:
- A. 非蒙面人脸图像
- B. 带眼镜或护目镜的非蒙面人脸图像
- C. 用任何类型的口罩(如 N -95、布或内科口罩)蒙面
- D. 用任何类型的口罩如 N -95、布或内科口罩以及眼镜或护目镜遮住脸。
- E. 用手帕或任何布或围巾遮住脸。
- F. 戴眼镜或护目镜时,用手帕或任何布或围巾遮住脸。
-
新建
dataset
文件夹。在dataset
文件夹中新建若干文件夹,这些文件夹以你要辨认的人名来命名。在这些文件夹中放入用户口罩图片。目录格局如图所示:
你也能够不命名为dataset
,批改embeddings_generator.py
的base_dir
变量即可(见下)。二、生成 embeddings
-
关上谷歌硬盘,关上
model
文件夹,点击右键下载facenet_keras.h5
。- 谷歌硬盘不须要科 / 学 / 上 / 网,这里提供一个谷歌拜访助手:google-access-helper2021,2021/9/ 7 亲测“红”可用。
-
下载结束后,将
facenet_keras.h5
重命名为facenet.h5
并放到该目录下。-
你也能够不命名为
facenet.h5
,批改embeddings_generator.py
的第 20 行model_emb
变量即可:# 批改前:model_emb=load_model('facenet.h5') #批改后:model_emb=load_model('facenet_keras.h5') 或 model_emb=load_model('下载的 h5 文件的相应门路')
-
-
关上
embeddings_generator.py
这一文件,批改第 6 行为你的数据集目录。
如果你将图片放在dataset\ 人名
目录下,则批改为base_dir=r'dataset'
即可。-
例如,我将人脸照片放在
\Masked-Face-Recognition-using-Facenet-main\dataset\zsq
这一文件夹中,则我批改第 6 行为:# 批改前:base_dir=r'Location to the direcotory that contain directories with images of persons to be trained.' #批改后 base_dir=r'dataset'
-
-
在命令行应用如下命令装置 MTCNN 包:
pip install mtcnn
-
运行
embeddings_generator.py
。如果产生以下报错可批改程序:-
如果报错
File "E:\Masked-Face-Recognition-using-Facenet-main\Masked-Face-Recognition-using-Facenet-main\embeddings_generator.py", line 50, in load y.append(img.split('/')[-2]) IndexError: list index out of range
则能够将
y.append(img.split('/')[-2])
批改为:# 批改前:y.append(img.split('/')[-2]) #批改后 y.append(img.split('\\')[-2])
-
如果报错
File "E:\Masked-Face-Recognition-using-Facenet-main\Masked-Face-Recognition-using-Facenet-main\embeddings_generator.py", line 72, in <module> trainx_embed=load_embeddings(trainx_pix) NameError: name 'trainx_pix' is not defined
则能够将
trainx_embed=load_embeddings(trainx_pix)
批改为:# 批改前:trainx_embed=load_embeddings(trainx_pix) #批改后 trainx_embed=load_embeddings(trainx)
运行
embeddings_generator.py
。运行结束如图:三、人脸识别
-
-
在 cmd 命令行应用如下命令装置
streamlit
包:pip install streamlit
如果太慢,也可参考 streamlit 装置踩坑应用如下命令:
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com streamlit
装置实现后,在命令行应用
streamlit hello
命令进行测试,在Email:
处按回车即可。如果呈现下图则 streamlit 装置胜利:CTRL+C
退出测试。 -
在该我的项目文件的目录中关上 cmd 命令行,执行以下命令:
streamlit run face_recognizer.py
- 执行命令后,浏览器会主动关上
http://localhost:8501/
这一 Streamlit 我的项目。
期待若干秒、网页加载结束后,点击Browse files
能够上传你要辨认的图片: - 上传完毕后,期待若干秒,呈现辨认的图片:
参考
Masked-Face-Recognition-using-Facenet
google-access-helper2021
streamlit 装置踩坑