跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI写作AI算法

CPU 也能跑的人脸识别部署实录

RetinaFace 负责检测人脸和关键点,CurricularFace 负责提取 512 维特征,镜像里已经预置了依赖、模型和推理脚本,所以在没有 GPU 的 CPU 环境里也能直接跑人脸检测与比对。文章给出启动镜像、执行 `inference_face.py`、替换自定义图片和调整阈值的用法,并说明脚本默认只处理最大人脸,适合课程作业、原型验证和简单的人脸比对场景。

GopherDev发布于 2026/6/300 浏览

CPU 也能跑的人脸识别部署实录

要做一个能用的人脸识别系统,不一定非得先把 GPU、CUDA 和一堆版本依赖理顺。这个场景里,RetinaFace 负责检测人脸,CurricularFace 负责提特征,配上预置好的镜像,CPU 环境就能直接跑起来。省掉的不是'几条命令',而是最容易把人磨没耐心的那段环境排障。

这套方案的思路很简单:先找到脸,再判断是不是同一个人。RetinaFace 会在图片里定位人脸和五个关键点,CurricularFace 把对齐后的人脸编码成 512 维特征向量,最后用余弦相似度做比对。流程不复杂,重点是链路已经封好了,inference_face.py 把检测、对齐、特征提取和相似度计算都串了起来。

快速启动

先进入工作目录并激活预置环境:

cd /root/Retinaface_CurricularFace
conda activate torch25

环境里常用依赖已经装好,模型权重也在镜像里,不需要再额外下载。确认没问题后,直接运行示例脚本:

python inference_face.py

脚本默认会拿内置的两张图片做比对,终端里会输出检测到的人脸数量、相似度分数和最终判定结果。一般还能看到生成的结果图,检测框和关键点会一并画出来。

如果要换成自己的图片,把文件传到当前目录后,再指定输入路径即可:

python inference_face.py --input1 ./my_face1.jpg --input2 ./my_face2.jpg

也可以用简写:

python inference_face.py -i1 ./my_face1.jpg -i2 ./my_face2.jpg

参数怎么用

inference_face.py 主要就三个参数,够用了:

参数简写作用默认值
--input1-i1第一张图片路径,也支持 URL内置示例图 1
--input2-i2第二张图片路径,也支持 URL内置示例图 2
--threshold-t判定阈值,相似度高于它就认为是同一人0.4

阈值没有统一答案,得看你要干什么。做门禁、支付这类场景,阈值一般要抬高一点,宁可保守;做相册整理、同人聚类,阈值可以松一些,目标是尽量把同一个人找全。0.4 不是标准答案,只是一个能跑起来的起点。

几个常见用法:

python inference_face.py -i1 ./employee_morning.jpg -i2 ./employee_afternoon.jpg --threshold 0.65

这个更适合严格比对,阈值提高后,误判为同一个人的概率会低一些,但漏掉也会更多。

python inference_face.py -i1 https://example.com/photo_a.jpg -i2 https://example.com/photo_b.jpg

直接喂网络图片也行,脚本会自己拉取并处理,做验证时挺省事。

如果要批量测,脚本本身没有把整个文件夹一次性扫完的接口,但可以自己包一层循环,思路大概这样:

import os
import subprocess

folder1 = './personA_photos'
folder2 = './personB_photos'
for img1 in os.listdir(folder1)[:5]:
    for img2 in os.listdir(folder2)[:5]:
        path1 = os.path.join(folder1, img1)
        path2 = os.path.join(folder2, img2)
        cmd = f'python inference_face.py -i1 {path1} -i2 {path2}'
        print(f"\n比对:{img1} vs {img2}")
        subprocess.run(cmd, shell=True)

这套流程实际做了什么

脚本跑起来后,背后就是几步固定动作:先加载模型,再读图,接着用 RetinaFace 找最大的人脸和关键点,做对齐,然后送进 CurricularFace 提特征,最后算余弦相似度并和阈值比较。逻辑没什么神秘的,真正影响结果的反而是输入图片质量和阈值设置。

这里有几个容易踩空的地方。

  • 图片尽量清晰、正面、光线正常。人脸太小、遮挡太多,效果都会掉。
  • 脚本默认只处理每张图里最大的那张脸。单人照没问题,多人合影就不太够用,想识别特定对象得先自己裁图。
  • 侧脸、背光、极暗环境都会影响相似度,别指望模型在所有照片上都表现得一样稳。
  • 美颜太重的图不太友好,脸部纹理和结构被改得太多,特征会跟着飘。

结论

这套方案的价值,不在于它有多'炫',而在于它够省事。预置镜像把环境和模型都准备好了,inference_face.py 把识别流程也封装好了,剩下的事就是换图片、调阈值、看结果。对课程作业、原型验证、简单 demo 来说,这已经够用了。

如果后面还想继续扩展,可以在这个比对链路上往外接:做相册分类、做考勤 demo,或者写个小工具去筛自己在社交媒体上的照片。底层这套检测 + 特征 + 比对的流程,能支撑的东西比看上去多一点。

目录

  1. CPU 也能跑的人脸识别部署实录
  2. 快速启动
  3. 参数怎么用
  4. 这套流程实际做了什么
  5. 结论
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenClaw 本地 Memory 配置:Ubuntu、CUDA、llama.cpp
  • 在浏览器里跑 FRCRN:WebAssembly 轻量化部署实录
  • Vivado AXI4-Stream Data FIFO 配置与仿真记录
  • Web 开发里的 5 种加密算法:原理与代码
  • Python 协程与异步编程实战笔记
  • Spring 国际化原理与实战:MessageSource、LocaleResolver、LocaleContextHolder、MessageFormat
  • 安卓本地跑 Stable Diffusion 的开源工具
  • 鸿蒙金融理财全栈:风控、合规与产品实现
  • C++ list 容器的用法与简化实现
  • Java 中 Excel 转 PDF 的几种方案与取舍
  • OpenClaw 飞书机器人部署记录
  • StyleSelectorXL:在 SDXL 里管理 77 种绘画风格
  • OpenClaw 的安装、启动和联网配置
  • Flutter 应用架构从入门到可扩展的演进实践
  • ASP.NET Core WebAPI 常用配置整理
  • WebRTC 远程控制里的 AI 编排实践
  • 三道滑动窗口与子串题的 Python 写法
  • 裴蜀定理与扩展欧几里得:从同余到逆元
  • RunningHub 平台架构与创作流程拆解
  • PID 控制原理、整定方法与 C 语言实现

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online