# face_recognition_demo **Repository Path**: csbobo/face_recognition_demo ## Basic Information - **Project Name**: face_recognition_demo - **Description**: 使用face_recognition的demo,包括代码调用示例,环境搭建与程序打包 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-15 - **Last Updated**: 2024-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人脸识别脚本 这个项目提供了一个基于 `face_recognition` 库的命令行人脸识别接口。它允许用户将一组未知图像中的人脸与一组已知人脸进行比较。 ## 目录 - [特性](#特性) - [系统要求](#系统要求) - [face_recognition 安装 (Ubuntu 环境配置)](#face_recognition-安装-(Ubuntu-环境配置)) - [该项目环境安装](#该项目环境安装) - [使用方法](#使用方法) - [示例输出](#示例输出) - [打包为可执行文件](#打包为可执行文件) - [注意事项](#注意事项) - [官方文档](#官方文档) - [贡献](#贡献) - [许可证](#许可证) ## 特性 - 多核处理以提高性能 - 可自定义人脸匹配的容差 - 可选择在结果中显示距离 - 加载已知人脸和处理未知人脸时显示进度条 ## 系统要求 - Python 3.6+ - face_recognition 库 - tqdm 库 ## face_recognition 安装 (Ubuntu 环境配置) ### 创建虚拟环境 ```bash conda create --name face python=3.12 # 使用conda创建名为"face"的虚拟环境,并指定Python版本为3.12 ``` ### 激活虚拟环境 ```bash conda activate face # 激活名为"face"的虚拟环境 ``` ### 安装依赖 #### 安装编译工具 ```bash sudo apt-get install build-essential cmake # 使用apt-get安装编译C/C++程序所需的工具和CMake构建系统 ``` #### 安装Boost库 ```bash sudo apt-get install libboost-all-dev # 使用apt-get安装Boost库的开发版本,dlib库依赖于此 ``` ### 安装dlib库 ```bash pip install dlib # 使用pip安装dlib库,它是人脸识别功能的核心依赖库 ``` ### 验证dlib安装 ```python python3 import dlib print(dlib.__version__) exit() # 进入Python交互式环境,导入dlib库并打印其版本号,然后退出 ``` ### 安装face_recognition库 ```bash pip install face_recognition # 使用pip安装face_recognition库,它基于dlib提供人脸识别功能 ``` ## 使用face_recognition进行人脸识别 ```bash face_recognition --cpus 8 --tolerance 0.5 --show-distance true ~/图片/face/ ~/图片/截图/ # 使用face_recognition命令行工具进行人脸识别 # --cpus 8: 指定使用8个CPU核心进行并行处理 # --tolerance 0.5: 设置人脸匹配的容忍度(数值越小匹配越严格) # --show-distance true: 显示人脸匹配的距离值,有助于评估匹配的准确性。 # ~/图片/face/: 指定包含已知人脸图片的目录 可以包含多个文件 文件名为这个人的名称 # ~/图片/截图/: 指定包含待识别图片的目录 ``` ## 示例输出 ``` face_recognition --cpus 8 --tolerance 0.5 --show-distance true ~/图片/face/ ~/图片/截图/ /home/csbobo/图片/截图/xzq_ttt.png,薛之谦,0.0 /home/csbobo/图片/截图/截图 2024-10-15 11-25-57.png,no_persons_found,None /home/csbobo/图片/截图/zp.png,no_persons_found,None /home/csbobo/图片/截图/截图 2024-10-15 11-33-04.png,赵本山,0.0 /home/csbobo/图片/截图/zjl.png,周杰伦,0.4340748404432876 /home/csbobo/图片/截图/zjl_xzq.png,周杰伦,0.43677927331483013 /home/csbobo/图片/截图/zjl_ttt.png,周杰伦,0.0 /home/csbobo/图片/截图/zbs_ttt.png,赵本山,0.310838037996634 /home/csbobo/图片/截图/zbs_ttt.png,赵本山,0.4040144607648003 /home/csbobo/图片/截图/zbs_ttt.png,赵本山,0.0 /home/csbobo/图片/截图/zbs_ttt.png,赵本山,0.2832424286909872 /home/csbobo/图片/截图/zbs_ttt.png,赵本山,0.41300021726528013 /home/csbobo/图片/截图/zbs_ttt.png,赵本山,0.38796133860408666 /home/csbobo/图片/截图/zbs_zjl.png,赵本山,0.41552164189202806 /home/csbobo/图片/截图/zbs_zjl.png,赵本山,0.3054458989118777 /home/csbobo/图片/截图/zbs_zjl.png,赵本山,0.2832424286909872 /home/csbobo/图片/截图/zbs_zjl.png,赵本山,0.38796133860408666 /home/csbobo/图片/截图/zbs_zjl.png,赵本山,0.40020190999431987 /home/csbobo/图片/截图/zbs_zjl.png,赵本山,0.0 /home/csbobo/图片/截图/zbs_zjl.png,周杰伦,0.10773199300002463 ``` ## 备注 - 确保在执行上述命令前已正确激活虚拟环境。 - 根据实际情况调整`--cpus`和`--tolerance`参数以达到最佳效果。 - 替换路径为实际存放图片的路径。 ## 该项目环境安装 1. 克隆此仓库: ``` git clone https://github.com/yourusername/face_recognition_demo.git cd face_recognition_demo ``` 2. 安装所需的库: ``` pip install tqdm ``` ## 使用方法 从命令行运行脚本: ``` python face_recognition_script.py [选项] 已知人脸文件夹 待检查图像文件夹 ``` ### 选项: - `--cpus INTEGER`:使用的 CPU 核心数(默认:1,使用 -1 表示使用所有可用核心) - `--tolerance FLOAT`:人脸比较的容差(默认:0.6) - `--show-distance BOOLEAN`:在结果中显示距离(默认:False) ### 示例: ```bash conda activate face python face_recognition_script.py --cpus -1 --tolerance 0.5 --show-distance true ~/图片/face/ ~/图片/截图/ ``` ## 示例输出 ``` /home/csbobo/图片/截图/xzq_ttt.png,薛之谦,0.0 /home/csbobo/图片/截图/截图 2024-10-15 11-25-57.png,no_persons_found,None /home/csbobo/图片/截图/zp.png,no_persons_found,None /home/csbobo/图片/截图/截图 2024-10-15 11-33-04.png,赵本山,0.0 /home/csbobo/图片/截图/zjl.png,周杰伦,0.4340748404432876 ... ``` ## 打包为可执行文件 使用以下命令将脚本打包为可执行文件: ```bash python build_executable.py ``` ## 注意事项 - 确保已知人脸文件夹中的图像文件名为人物的名字(例如:张三.jpg)。 - 处理大量图像时可能需要较长时间,请耐心等待。 - 使用多核处理可以显著提高处理速度,但也会增加内存使用。 ## 官方文档 更多信息请参考 [face_recognition 官方中文文档](https://bgithub.xyz/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md)。 ## 贡献 欢迎提交问题报告和拉取请求。对于重大更改,请先开 issue 讨论您想要改变的内容。 ## 许可证 [MIT](https://choosealicense.com/licenses/mit/)