尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

InsightFace-REST Docker Compose部署全指南:单GPU到多GPU方案

InsightFace-REST Docker Compose部署全指南:单GPU到多GPU方案 InsightFace-REST Docker Compose部署全指南单GPU到多GPU方案【免费下载链接】InsightFace-RESTInsightFace REST API for easy deployment of face recognition services with TensorRT in Docker.项目地址: https://gitcode.com/gh_mirrors/in/InsightFace-RESTInsightFace-REST 是一个生产级的人脸检测与人脸识别 REST API 服务基于 FastAPI 构建并针对 NVIDIA TensorRT 做了高性能推理优化。通过 Docker Compose你可以在几分钟内完成部署——无论使用单张 GPU、多张 GPU还是没有显卡的纯 CPU 环境。本文带你从环境准备到多 GPU 负载均衡完整走通这套人脸服务的一键安装流程。项目概览它能为你的应用做什么InsightFace-REST 把 InsightFace 的完整识别流水线封装成了 HTTP 接口核心能力包括高性能推理默认配置下 RTX 4090 可达 820 fps换用更轻的模型还能更快容器化部署官方提供 GPU 与 CPU 两套 Docker 镜像模型自动下载SCRFD、YOLOv5-face 检测器 ArcFace 系识别模型开箱即用批量推理检测与识别模型均支持 batch 推理⚙️多后端GPU 用 TensorRTCPU 用 ONNX Runtime下图就是它处理万人合影的实测效果——每张脸都被框出并标注了置信度部署前准备一键安装所需环境清单在开始之前请确认你的服务器已具备以下条件组件要求Docker最新稳定版NVIDIA Container Toolkit已安装并可用NVIDIA 驱动535 或更新版本GPU支持 TensorRT 的兼容显卡CPU 部署可跳过准备工作完成后克隆仓库并进入部署目录git clone https://gitcode.com/gh_mirrors/in/InsightFace-REST cd InsightFace-REST/compose所有部署方案都集中在compose/目录中官方也提供了对应的说明文档compose/README.md可对照本文查看。单GPU部署最快上手的路径单 GPU 是最常见的场景对应compose/docker-compose.yml。整个流程只有四步第 1 步准备配置文件cp example.env .env.env文件集中管理所有参数模型选择、worker 数量、推理精度等示例配置在compose/example.env中有完整注释。第 2 步构建镜像docker compose build第 3 步启动服务docker compose up第 4 步访问 API 文档打开浏览器访问http://localhost:18081/docs你会看到 FastAPI 自动生成的交互式文档支持直接在线调用/extract接口测试人脸识别效果 首次启动时容器会自动下载模型并编译 TensorRT 引擎耗时取决于网络与显卡请耐心等待 healthcheck 通过。多GPU部署双卡并行 Nginx负载均衡如果你的服务器有多张 GPU可以用compose/docker-compose-multi-gpu.yml它为每张卡启动一个服务容器ifr-trt-gpu0、ifr-trt-gpu1再挂一个 Nginx 容器做负载均衡。如果偏好 Docker Compose v2 的 profiles 语法compose/docker-compose-v2.yml用一条命令即可切换方案# 单GPU docker compose -f docker-compose-v2.yml --profile gpu up --build # 双GPUNginx负载均衡 docker compose -f docker-compose-v2.yml --profile mgpu up --build⚠️多 GPU 部署有两个容易踩的坑首次启动的竞态问题多容器同时启动时会各自下载模型、编译 TRT 引擎。正确姿势是先用单 GPU 启动一次等模型下载和引擎编译完成后再切回多 GPU 启动。TRT 引擎与显卡型号绑定如果机器上混用不同型号的 GPU需要为不同 GPU 指定不同的模型目录确保各自加载正确的.plan文件。另一个细节多 GPU 方案因为经过 Nginx 代理对外端口从单卡模式的18081变为18080。Nginx 的配置位于misc/nginx_conf/conf.d/default.conf。CPU部署没有显卡也能跑没有 GPU 也不怕。compose/docker-compose-cpu.yml使用 ONNX Runtime 后端配合compose/cpu.env配置docker compose -f docker-compose-cpu.yml up注意 CPU 模式下cpu.env已将INFERENCE_BACKEND设为onnx批处理大小也会调低适合验证流程或对延迟不敏感的轻量场景。关键配置调优.env 中最重要的几个参数部署完成后按需修改.env即可调优性能与效果参数说明建议DET_NAME人脸检测模型scrfd / yolov5-face 等追求速度选scrfd_500m_bnkpsREC_NAME人脸识别模型w600k_r50、glintr100 等平衡精度与速度NUM_WORKERS每容器工作进程数现代 GPU 上 4-6 个通常就是性能上限过多会 CUDA OOMMAX_SIZE输入图像最大尺寸越小越快注意 SCRFD 要求边长可被 32 整除INFERENCE_BACKENDtrtGPU或onnxCPU按硬件选择FORCE_FP16强制 FP16 精度支持的 GPU 上可提速官方建议以NUM_WORKERS为第一调优项从小往大加直到出现 CUDA Out of Memory 后回退一档。验证部署一张万人图测试极限服务起来后最直观的验证方式是处理大场景图片。项目内置了misc/test_images/lumia.jpg——一张包含数百张人脸的世界最大自拍照常被用作检测性能的基准测试图通过 API 文档页或 Python 客户端库ifr_clients/发起请求确认返回的faces数量与vec特征向量符合预期即说明整条部署链路已打通。常见问题快速排查模型下载失败默认从 Google Drive 拉取模型网络受限地区可手动下载后放入models/目录CUDA Out of Memory调小NUM_WORKERS或REC_BATCH_SIZE端口访问不通单卡用18081多卡经 Nginx 用18080注意别混Numba 缓存报错仓库更新后可能出现模块缺失清理__pycache__目录即可写在最后InsightFace-REST 把复杂的人脸识别推理栈压缩成了克隆仓库 → 改配置 → docker compose up三步单卡、多卡、纯 CPU 三种形态开箱即用。对于需要在生产环境快速落地人脸识别能力的团队来说这是一份相当省心的部署方案。【免费下载链接】InsightFace-RESTInsightFace REST API for easy deployment of face recognition services with TensorRT in Docker.项目地址: https://gitcode.com/gh_mirrors/in/InsightFace-REST创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表