C#版winform实现FaceFusion人脸替换

效果展示


项目介绍

这是一个基于 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 - 人脸替换模型

安装说明

  1. 确保已安装 Visual Studio 2019 或更高版本
  2. 克隆或下载本项目到本地
  3. 打开 FIRC.sln 解决方案
  4. 还原 NuGet 包依赖
  5. 构建项目
  6. 确保 weights 文件夹中包含所需的模型文件

使用方法

  1. 运行 FIRC 应用程序
  2. 点击 "选择替换人脸图片" 按钮,选择一张包含人脸的图片作为源图像
  3. 点击 "选择原图片" 按钮,选择一张包含人脸的图片作为目标图像
  4. 点击 "开始替换" 按钮,程序会自动检测人脸并进行替换
  5. 替换结果会显示在右侧的图片框中
  6. 结果会自动保存到目标图像所在目录的 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 文件夹是否包含所有必需的模型文件
  • 如果人脸检测失败,请尝试使用更清晰的图片
  • 如果替换结果不理想,请尝试调整源图像和目标图像的角度和光照条件
相关推荐
深小乐6 分钟前
AI 周刊【2026.04.13-04.19】:中美差距减小、Claude Opus 4.7发布、国产算力突围
人工智能
深小乐7 分钟前
从 AI Skills 学实战技能(七):让 AI 自动操作浏览器
人工智能
workflower9 分钟前
人机交互部分OOD
运维·人工智能·自动化·集成测试·人机交互·软件需求
lanker就是懒蛋13 分钟前
深度学习Q&A:手写反向传播与OOM排查的深层逻辑
人工智能·深度学习
Old Uncle Tom13 分钟前
Claude Code 记忆系统分析2
人工智能·ai·agent
小和尚同志20 分钟前
skill-creator 1 —— 快速创建你的专属 skill
人工智能·aigc
skywalk816337 分钟前
近期有什么ai的新消息,新动态? 2026.4月
人工智能
庄小焱1 小时前
【AI模型】——RAG索引构建与优化
人工智能·ai·向量数据库·ai大模型·rag·rag索引·索引构建与优化
STLearner1 小时前
WSDM 2026 | 时间序列(Time Series)论文总结【预测,表示学习,因果】
大数据·论文阅读·人工智能·深度学习·学习·机器学习·数据挖掘
玩转单片机与嵌入式1 小时前
不会 Python、不会深度学习,也能在STM32上跑AI模型吗?
人工智能·单片机·嵌入式硬件·嵌入式ai