效果展示


项目介绍
这是一个基于 C# 和 OpenCV 的人脸替换工具,使用 ONNX Runtime 进行模型推理,支持将一张图片中的人脸替换到另一张图片中。
功能特点
- 基于 ONNX Runtime 进行模型推理,支持 CPU 推理
- 使用 OpenCVSharp 进行图像处理
- 简单直观的 Windows 窗体界面
- 支持选择源图像和目标图像
- 自动检测人脸并进行替换
- 实时显示替换结果
- 保存替换结果到本地文件
技术栈
- .NET Framework 4.7.2
- OpenCvSharp 4.13.0
- ONNX Runtime 1.20.1
模型文件
项目需要以下 ONNX 模型文件,应放置在 weights 文件夹中:
yoloface_8n.onnx- 人脸检测模型arcface_w600k_r50.onnx- 人脸特征提取模型inswapper_128.onnx- 人脸替换模型
安装说明
- 确保已安装 Visual Studio 2019 或更高版本
- 克隆或下载本项目到本地
- 打开
FIRC.sln解决方案 - 还原 NuGet 包依赖
- 构建项目
- 确保
weights文件夹中包含所需的模型文件
使用方法
- 运行 FIRC 应用程序
- 点击 "选择替换人脸图片" 按钮,选择一张包含人脸的图片作为源图像
- 点击 "选择原图片" 按钮,选择一张包含人脸的图片作为目标图像
- 点击 "开始替换" 按钮,程序会自动检测人脸并进行替换
- 替换结果会显示在右侧的图片框中
- 结果会自动保存到目标图像所在目录的
result.jpg文件中
项目结构
FIRC/
├── BoundingBox.cs - 人脸边界框类
├── Common.cs - 通用工具方法
├── FaceDetectResult.cs - 人脸检测结果类
├── FaceRecognizerArcface.cs - 人脸特征提取器
├── FaceSwapper.cs - 人脸替换核心类
├── Form1.cs - 主窗体界面
├── Processor.cs - 处理器基类
├── Vision.cs - 图像处理工具
├── YoloFace.cs - 人脸检测器
├── FIRC.csproj - 项目配置文件
├── FIRC.sln - 解决方案文件
└── weights/ - 模型文件目录
├── yoloface_8n.onnx
├── arcface_w600k_r50.onnx
└── inswapper_128.onnx
注意事项
- 确保源图像和目标图像中都包含清晰的人脸
- 模型文件较大,请确保有足够的磁盘空间
- 首次运行时,模型加载可能需要一些时间
- 人脸替换结果的质量取决于源图像和目标图像的质量以及人脸的角度和光照条件
故障排除
- 如果模型初始化失败,请检查
weights文件夹是否包含所有必需的模型文件 - 如果人脸检测失败,请尝试使用更清晰的图片
- 如果替换结果不理想,请尝试调整源图像和目标图像的角度和光照条件