添加人脸识别API
基于kqstone大佬的仓库 https://github.com/kqstone/mt-photos-insightface-unofficial 打包
相关改动:
1、将 buffalo_l 相关的模型文件,打包进了docker镜像内;避免容器第一次运行时,从github下载模型文件失败
2、打包了armV8架构的docker镜像
insightface是开源中准确率最高的预训练模型,特别是针对亚洲人脸型准确率比Facenet512高很多
相关讨论:
打开github中查看: https://github.com/MT-Photos/mt-photos-deepface/issues/16
或者
打开gitee中查看: https://gitee.com/mt-photos/mt-photos-deepface/issues/IAM6GM
使用方法:
一、使用图形化安装的教程
如果您使用的Nas,不在以下列表中,可以参考 群晖 的安装方法
二、使用命令行安装的教程
- 下载镜像
docker pull devfox101/mt-photos-insightface-unofficial:latest
# 如果是armV8架构,用这个镜像
docker pull devfox101/mt-photos-insightface-unofficial:arm-latest
docker镜像下载失败?使用镜像地址下载
- 创建及运行容器
docker run -i -p 8066:8066 -e API_AUTH_KEY=mt_photos_ai_extra --name mt-photos-insightface-unofficial --restart="unless-stopped" devfox101/mt-photos-insightface-unofficial:latest
CUDA版本镜像
CUDA 版本 12.3.0 以上,显卡驱动版本 >=545.23.06
CUDA版本镜像,未内置buffalo_l相关的模型文件;如果容器启动后,下载模型文件失败;请查看下载模型后目录映射给容器
#下载镜像
docker pull xayane/mt-photos-insightface-unofficial:latest
#使用国内镜像地址下载:
docker pull crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:cuda-latest
docker tag crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:cuda-latest xayane/mt-photos-insightface-unofficial:latest
#启动容器:
docker run --gpus all -i -p 8066:8066 -e API_AUTH_KEY=mt_photos_ai_extra --name mt-photos-insightface xayane/mt-photos-insightface-unofficial:latest
docker-compose模板
同时安装 MT Photos + 智能识别API + 人脸识别API
version: "3"
services:
mtphotos:
image: registry.cn-hangzhou.aliyuncs.com/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
- LANG=C.UTF-8
dns:
- 114.114.114.114
depends_on:
- mtphotos_ai
- mtphotos_face_api
mtphotos_ai:
image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-ai:onnx-latest
container_name: mtphotos_ai
restart: always
ports:
- 8060:8060
environment:
- API_AUTH_KEY=mt_photos_ai_extra
mtphotos_face_api:
image: crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:latest
container_name: mtphotos_face_api
restart: always
ports:
- 8066:8066
environment:
- API_AUTH_KEY=mt_photos_ai_extra
API配置参数
人脸置信度阈值设置 建议填 0.65 人脸匹配差异度阈值 建议填 0.5
无法下载镜像
可以使用这个国内的地址拉取镜像
docker pull crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:latest
docker tag crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:latest devfox101/mt-photos-insightface-unofficial:latest
第1条命令为拉取镜像
第2条命令为将镜像标记为Docker hub源,这样可以在图形化创建容器时使用
armV8版本镜像地址
docker pull crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:arm-latest
docker tag crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:arm-latest devfox101/mt-photos-insightface-unofficial:arm-latest
启动容器后,测试api提示不是人脸识别API
第一次启动容器后需要等待下载模型完成才能使用;
如果由于网络问题,下载失败,可以按下面的方法手动下载镜像:
-
创建容器时,要映射 /root/.insightface/models 这个目录 不能直接映射/root目录
-
下载模型文件 buffalo_l.zip 或者 antelopev2.zip 并解压到映射的目录中;
模型文件下载地址:https://github.com/kqstone/mt-photos-insightface-unofficial/releases/tag/models
或者百度网盘:https://pan.baidu.com/s/1SsY7_2t7aORh2jCvGWtD1A?pwd=1234
下载模型后目录映射给容器
比如容器的目录映射为: -v /mnt/docker/insightface/models:/root/.insightface/models
需要把buffalo_l.zip的文件解压到 /mnt/docker/insightface/models/buffalo_l
这个目录
解压完成后,在 /mnt/docker/insightface/models/buffalo_l
目录下,可以看到 1k3d68.onnx、2d106det.onnx、det_10g.onnx、genderage.onnx、w600k_r50.onnx 5个文件
创建容器的完整命令:
docker run -d \
--name="mt-photos-insightface" \
-p 8066:8066 \
-e API_AUTH_KEY=mt_photos_ai_extra \
-v /mnt/docker/insightface/models:/root/.insightface/models \
--restart="unless-stopped" \
devfox101/mt-photos-insightface-unofficial:latest