添加人脸识别API
基于serengil/deepface 实现的人脸识别API
通过添加人脸识别-API,可以替代MT Photos服务端内置的人脸识别程序来进行人脸特征识别任务;
如果您的NAS CPU性能较低,可以先使用性能更强的电脑运行人脸识别API服务;
可以等完成第一次全量识别后,再切换回使用NAS上部署的人脸识别API服务,人脸识别API仅执行识别部分任务,识别的结果都会存储在MT Photos数据库中;
另外也可以使用更高效、更准确的insightface模型教程
https://github.com/MT-Photos/mt-photos-deepface/issues/16
https://gitee.com/mt-photos/mt-photos-deepface/issues/IAM6GM
1. 代码仓库
相关代码已开源在 https://github.com/MT-Photos/mt-photos-deepface
2. 安装
Windows可以使用Windows 一键安装包
镜像说明 DockerHub镜像仓库地址: https://hub.docker.com/r/mtphotos/mt-photos-deepface
镜像Tags说明:
- latest:适用于支持avx指令集cpu,比如:Intel酷睿、至强处理器,以及AMD大多数的处理器;
- noavx-latest: 适用于不支持avx指令集的cpu,比如:大多数的Intel赛扬、奔腾处理器;
以上镜像仅支持X86架构机型运行,不支持ARM架构机型
2.1 1.下载镜像
docker pull mtphotos/mt-photos-deepface:latest
当CPU不支持avx指令集时,请替换上方的 latest 为 noavx-latest
看不懂命令行?
5分钟了解Docker:https://mtmt.tech/docs/example/intro
2.1.1 镜像加速
提示:当无法访问DockerHub时,请使用以下命令拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-deepface:latest docker tag registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-deepface:latest mtphotos/mt-photos-deepface:latest当CPU不支持avx指令集时,请替换上方的 latest 为 noavx-latest
第1条命令为拉取镜像
第2条命令为将镜像标记为Docker hub源,这样可以在图形化创建容器时使用
CUDA版本镜像
docker pull mtphotos/mt-photos-deepface:cuda-latest
CUDA 版本 12.3.0 以上,显卡驱动版本 >=545.23.06
提示:当无法访问DockerHub时,请使用以下命令拉取镜像
#下载镜像: docker pull registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-deepface:cuda-latest docker tag registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-deepface:cuda-latest mtphotos/mt-photos-deepface:cuda-latest #启动容器: docker run --gpus all -i -p 8066:8066 -e API_AUTH_KEY=mt_photos_ai_extra --name mt-photos-deepface mtphotos/mt-photos-deepface:cuda-latest
2.2 2. 创建容器
docker run -i -p 8066:8066 -e API_AUTH_KEY=mt_photos_ai_extra --name mt-photos-deepface mtphotos/mt-photos-deepface:latest
当CPU不支持avx指令集时,请替换上方的 latest 为 noavx-latest
如果识别速度很慢,可以使用环境变量:
-e DETECTOR_BACKEND=mtcnn来指定人脸检测模型为mtcnn,mtcnn识别速度会快一些,不过识别的准确度会低一些;
说明:
-p 8066:8066端口映射,访问容器的端口-e API_AUTH_KEY=mt_photos_ai_extra环境变量API_AUTH_KEY是容器内部用来验证请求来源的,请记得修改api_key- API_AUTH_KEY的值可以是一段字符串,比如
051C78C4D217DB28 - 在MT Photos后台添加API时需要填入这个API_AUTH_KEY
- API_AUTH_KEY的值可以是一段字符串,比如
2.3 3、返回MT Photos添加人脸识别api
接口地址 填写 http://[nas的ip]:8066
API_AUTH_KEY 填写 mt_photos_ai_extra (这是默认值,如果上一步有修改过,用修改过的值)
API并发数 控制同时识别的任务数,填写1
人脸置信度阈值 如果人脸检测模型用的是默认的
retinaface,建议填写0.99 ;如果是其他模式建议填写0.9;人物匹配差异值阈值 如果人脸特征提取模型用的是默认的
Facenet512,建议填写0.15;;

2.4 使用docker-compose创建MT Photos 和 AI、人脸识别API容器
docker-compose.yaml 模板文件:
version: "3" services: mtphotos: image: mtphotos/mt-photos:latest container_name: mtphotos restart: always ports: - 8063:8063 volumes: - /volume1/docker/mt_photos/config:/config - /volume1/photos/mt_photos_upload:/upload - /volume1/xxx/其他需要映射的目录:/photos environment: - TZ=Asia/Shanghai -.UTF-8 depends_on: - mtphotos_ai - mtphotos_face_api mtphotos_ai: image: mtphotos/mt-photos-ai:onnx-latest container_name: mtphotos_ai restart: always ports: - 8060:8000 environment: - API_AUTH_KEY=mt_photos_ai_extra mtphotos_face_api: image: mtphotos/mt-photos-deepface:noavx-latest container_name: mtphotos_face_api restart: always ports: - 8066:8066 environment: - API_AUTH_KEY=mt_photos_ai_extra
如果使用yaml同时部署
mtphotos、mtphotos_ai和mtphotos_face_api,在MT Photos后台添加人脸识别API时, 接口地址可以填写 http://mtphotos_face_api:8066
2.5 yaml语法三大规则
2.5.0.1 规则一:缩进
yaml使用一个固定的缩进风格表示数据层结构关系,需要每个缩进级别由两个空格组成。一定不能使用tab键
2.5.0.2 规则二:冒号
services: image: mtphotos/mt-photos:latest每个冒号后面一定要有一个空格(以冒号结尾不需要空格)
2.5.0.3 规则三:短横线
想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分
environment: - TZ=Asia/Shanghai -.UTF-8 - PUID=1000 - PGID=100
2.6 Windows安装包
仅支持Win 10及以上系统
1、从下方网盘分享链接中下载 MT_Photos_Deepface_V1.0.0_Setup.exe
- 「阿里云盘」 https://www.aliyundrive.com/s/BisLTt6emaz
- 「百度网盘」 https://pan.baidu.com/s/1r77cbxNOngL07Oh2S7-umA?pwd=0101 提取码:0101
- 「GitHub」 https://github.com/MT-Photos/mt-photos-deepface/releases/tag/windows_exe_1.0.0
2、下载后,双击MT_Photos_Deepface_V1.0.0_Setup.exe,等待安装完成
3、打开MT Photos Deepface,等待显示 Uvicorn running on http://0.0.0.0:8066

如果无法访问http://127.0.0.1:8066, 那么有可能是8066端口被占用了
请修改程序文件夹下 .env 文件中的 HTTP_PORT;比如 HTTP_PORT = 8067
如果需要修改api_key,请修改 .env 文件中的API_AUTH_KEY
.env文件修改之后,请关闭 mt-photos-deepface-server.exe,然后再重新打开
如果局域网内其他客户端无法访问,请在Windows防火墙中找到【允许应用通过防火墙】,在底部【允许其他应用】中添加mt-photos-deepface-server.exe
3. 自定义
3.1 自定义向量长度
如果人脸特征提取模型用的不是Facenet512,可以在API配置中点击 自定义向量长度 设置数据库中存储人脸特征字段的长度
3.2 自定义模型
-e DETECTOR_BACKEND=retinaface自定义人脸检测模型- DETECTOR_BACKEND 可以是这些
'opencv', 'ssd', 'dlib', 'mtcnn', 'retinaface', 'mediapipe', 'yolov8', 'yunet', 'fastmtcnn'
- DETECTOR_BACKEND 可以是这些
-e RECOGNITION_MODEL=Facenet512自定义人脸特征提取模型- RECOGNITION_MODEL 可以是这些:
"VGG-Face", "Facenet", "Facenet512", "OpenFace", "DeepFace", "DeepID", "ArcFace", "Dlib", "SFace", "GhostFaceNet"
- RECOGNITION_MODEL 可以是这些:
3.2.1 模型目录映射
镜像已内置 retinaface.h5 和 facenet512_weights.h5,如果不修改识别模型,不需要添加目录映射;
当指定了别的模型,容器内下载模型很慢,可以增加 /models 目录映射
-v /host_path:/models
然后将对应的预训练模型放到容器内的 /models/.deepface/weights/ 下;
比如 /models/.deepface/weights/retinaface.h5
预训练模型下载地址:https://github.com/serengil/deepface_models/releases/tag/v1.0
提示:在享受本文内容的同时,请注意版权归属 徐州鑫坤机电设备有限公司https://www.xzxkjd.com如果您觉得有价值欢迎分享,但请务必注明出处,感谢您的理解,谢谢!
以下部分内容需要登录查看 立即登录
相关内容
- 添加人脸识别API
- 上海非急救出租服务全解析
- 深耕中考复读赛道 深圳深才教育为复读生搭建升学桥梁
- 阳光下的童年:那些被温暖照亮的纯真时光
- 群晖DSM7.0-7.21监控套件Surveillance Station 9.20-11289开心版60个许可证设置教程(无重启、无断流、无卡死、史上最完美)
- 云服务器+SD-WAN组网和域名DNS解析
- 在云主机上安装iKuai OS,实现SD-WAN组网,利用云主机80;443端口搭建企业网站。个人博客。让云主机当做你的堡垒机,实现数据本地化。
- 中央空调只开一台=全开耗电?真相让人意外!
- 告别卡顿时代:PCDN正成为互联网内容分发的核心引擎
- 5G时代必备!PCDN如何让视频加载速度快如闪电?
- 降本增效利器!企业都在用的PCDN技术到底强在哪?
- 揭秘PCDN业务:如何用边缘计算重构内容分发新生态?
简体中文
繁體中文
English
Nederlands
Français
Русский язык
Polski
日本語
ภาษาไทย
Deutsch
Português
español
Italiano
한어
Suomalainen
Gaeilge
dansk
Tiếng Việt
Pilipino
Ελληνικά
Maori
tongan
ᐃᓄᒃᑎᑐᑦ
ଓଡିଆ
Malagasy
Norge
bosanski
नेपालीName
čeština
فارسی
हिंदी
Kiswahili
ÍslandName
ગુજરાતી
Slovenská
היברית
ಕನ್ನಡ್Name
Magyar
தாமில்
بالعربية
বাংলা
Azərbaycan
lifiava
IndonesiaName
Lietuva
Malti
català
latviešu
УкраїнськаName
Cymraeg
ກະຣຸນາ
తెలుగుQFontDatabase
Română
Kreyòl ayisyen
Svenska
հայերեն
ဗာရမ်
پښتوName
Kurdî
Türkçe
български
Malay
मराठीName
eesti keel
മലമാലം
slovenščina
اوردو
አማርኛ
ਪੰਜਾਬੀName
albanian
Hrvatski
Suid-Afrikaanse Dutch taal
ខ្មែរKCharselect unicode block name




