写在前面
本文是对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安装踩坑
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。