添加人脸识别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

更新记录:

V1.1.0 - 2025-03-14

1、增加容器启动后延迟加载模型,以及2分钟内没有识别任务自动释放模型内存

使用方法:

一、使用图形化安装的教程

如果您使用的Nas,不在以下列表中,可以参考 群晖 的安装方法

API配置参数

人脸置信度阈值设置 建议填 0.65

人脸匹配差异度阈值 建议填 0.5

配置

二、使用命令行安装的教程

  • 下载镜像
docker pull devfox101/mt-photos-insightface-unofficial: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

默认使用cpu处理人脸识别,如果是arm架构或需要使用cuda加速,可以查看下方的 ARM版本镜像 和 CUDA版本镜像

ARM版本镜像

如果是m系列芯片的Mac,以及其他armV8架构的处理器,使用这个镜像安装;

#使用命令行下载镜像

docker pull devfox101/mt-photos-insightface-unofficial:arm-latest

#启动容器:

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:arm-latest

docker镜像下载失败?使用镜像地址下载

CUDA版本镜像

CUDA 版本 12.3.0 以上,显卡驱动版本 >=545.23.06

CUDA版本镜像,未内置buffalo_l相关的模型文件;如果容器启动后,下载模型文件失败;请查看下载模型后目录映射给容器

#下载镜像
docker pull 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镜像下载失败?使用镜像地址下载

docker-compose模板

如果需要使用docker compose安装,参考下面的模板;

查看 yaml语法的三大规则

同时安装 MT Photos + 智能识别API + 人脸识别API 的yaml模板

提示:docker compose 和上面 docker run 创建容器的效果是一样的,只需要选择其中一种方法运行;

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

无法下载镜像

可以使用这个国内的地址拉取镜像

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源,这样可以在图形化创建容器时使用

tag

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

cuda版本 国内镜像地址

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

启动容器后,测试api提示不是人脸识别API

第一次启动容器后需要等待下载模型完成才能使用;
如果由于网络问题,下载失败,可以按下面的方法手动下载镜像:

  1. 创建容器时,要映射 /root/.insightface/models 这个目录 不能直接映射/root目录

  2. 下载模型文件 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

Copyright © 2025 杭州相册家科技有限公司 All Rights Reserved

隐私协议软件许可及服务协议

浙公网安备 33019202000625号浙ICP备2022014580号