FaceFound Qt6 - 现代化液态玻璃界面的人脸识别工具

Enco Lv.999

项目介绍

在初代 FaceFound 的基础上,我开发了全新的 FaceFound Qt6 版本,使用 PyQt6 打造了现代化的液态玻璃界面,并新增了 C++/Qt6 重写版,支持 Windows 桌面和 Android 平台。

项目地址:https://github.com/Enco-shark/facefound_qt6

功能特点

  • 图片人脸识别 — 自动检测并标注人脸姓名
  • 视频人脸识别 — 逐帧分析视频,输出带标注的结果视频
  • 液态玻璃界面 — PyQt6 现代化毛玻璃效果,透明背景
  • 视觉调节 — 支持透明度、明暗度实时调节
  • 无边框窗口 — 自定义标题栏,支持拖动移动
  • 多种命令行工具 — 适合不同场景的批量处理需求
  • GPU 加速 — 支持 DirectML / CUDA 加速
  • 中文标注 — 支持在图片上绘制中文姓名

C++/Qt6 重写版

仓库内新增了一个 C++17 + Qt6 的重写版本,目录为 cpp_rewrite/,按以下结构拆分:

  • cpp_rewrite/core:跨平台共享核心(模型加载、检测/对齐/特征、模板库 ftdb、匹配)
  • cpp_rewrite/windows:Windows 桌面 GUI(Qt Widgets)
  • cpp_rewrite/android:Android GUI(Qt Quick/QML)

模板库格式

推荐使用 .ftdb 格式(更快、体积小、便于打包),通过 GUI 选择”模板图片目录”并点击”生成人脸库”即可生成。

构建指南

Windows

依赖(建议全部随发行包一起打包):

  • Qt 6(带 Widgets/Multimedia 模块)
  • OpenCV(用于图片/视频编解码与基础图像处理)
  • ONNX Runtime C/C++(用于加载 buffalo_l 的 onnx)
1
2
3
4
5
cmake -S cpp_rewrite -B build_cpp ^
-DFACEAPP_ORT_ROOT="C:/path/to/onnxruntime" ^
-DOpenCV_DIR="C:/path/to/opencv/build" ^
-DFACEAPP_BUILD_WINDOWS_GUI=ON -DFACEAPP_BUILD_ANDROID_GUI=OFF
cmake --build build_cpp --config Release

Android

Android 端使用 Qt for Android 工具链构建 cpp_rewrite/android,并复用 core

需要 Qt for Android(含 NDK/SDK 配置),OpenCV/ONNX Runtime 需要提供 Android 对应的预编译库并随 APK 一起打包。

模型放置

沿用 InsightFace 的 buffalo_l 模型目录结构,放在可执行文件可找到的位置:

1
2
3
buffalo_l/
det_10g.onnx
w600k_r50.onnx

Python PyQt6 版

安装依赖

1
pip install insightface onnxruntime opencv-python numpy Pillow tqdm PyQt6 pyinstaller

主程序

1
2
3
4
5
# 图形界面版(推荐) — PyQt6 液态玻璃界面
python face_tool.py

# 模板生成工具 — 扫描照片生成特征缓存
python make_cache_npz.py [目录]

命令行工具

项目提供了多种版本的命令行视频处理工具:

文件 特点
video.py 基础版,joblib 并行处理
video_Pro.py 优化版,坐标越界检查
video_Max.py 最大性能版,多进程加速
video_ultra.py 极简版,单线程
video_ultra2.py 基础版2
video_ultra3.py 多线程版
video_npz.py 推荐 npz 版 — 支持 -c -o 参数
only_npz.py 带完整日志的 npz 版
face_recognize.py 命令行人脸识别工具

环境要求

  • Python 3.8+
  • Windows 10/11(Linux/macOS 也可运行)

快速开始

1. 下载模型

从 InsightFace 官方 Release 下载 buffalo_l 模型:
下载地址

解压后放在程序同目录下:

1
2
3
4
5
6
7
项目目录/
├── buffalo_l/
│ ├── det_10g.onnx # 人脸检测模型
│ ├── w600k_r50.onnx # 人脸识别模型
│ ├── 1k3d68.onnx # 3D 关键点模型
│ ├── 2d106det.onnx # 2D 关键点模型
│ └── genderage.onnx # 性别年龄模型

2. 生成人脸特征缓存

1
python make_cache_npz.py D:\照片\人物

照片命名规则:张三.jpg → 识别结果为 “张三”

3. 运行界面

1
python face_tool.py

版本对比

相比初代 FaceFound,Qt6 版本的改进:

  • 界面从 Tkinter 升级为 PyQt6,支持液态玻璃效果
  • 新增 C++/Qt6 重写版,性能更优
  • 新增 Android 支持(Qt Quick/QML)
  • 新增 .ftdb 模板库格式
  • 更丰富的命令行工具选择

欢迎 Star 和 PR!🌟

  • 标题: FaceFound Qt6 - 现代化液态玻璃界面的人脸识别工具
  • 作者: Enco
  • 创建于 : 2026-05-10 10:30:00
  • 更新于 : 2026-05-22 13:02:12
  • 链接: https://enco-shark.github.io/2026/05/10/FaceFound Qt6液态玻璃界面/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。