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 文件夹是否包含所有必需的模型文件
  • 如果人脸检测失败,请尝试使用更清晰的图片
  • 如果替换结果不理想,请尝试调整源图像和目标图像的角度和光照条件
相关推荐
YueJoy.AI4 分钟前
低算力场景下中小企业接入大模型的商业化路径
人工智能·ai·语言模型
smart199828 分钟前
U.2 NVMe全闪磁盘阵列让AI, ML, HPC业务运行稳性高效
人工智能·科技·存储
懷淰メ29 分钟前
【AI加持】基于PyQt+YOLO+DeepSeek的疟原虫检测系统(详细介绍)
人工智能·yolo·计算机视觉·pyqt·医疗·ai分析·疟原虫
Black蜡笔小新30 分钟前
自动化AI算法训练服务器DLTM训推一体化平台助力农业生产管理实现安全智能化
人工智能·算法·自动化
米小虾34 分钟前
Claude Code、Codex、Cursor三分天下:2026年AI编程Agent生态全景剖析
人工智能·agent
ZHW_AI课题组1 小时前
腾讯云调用IP定位
人工智能·python·机器学习
Wch1G0z8A1 小时前
Google 开源了啥,让 AI Agent 碰数据库不再是定时炸弹
数据库·人工智能·开源
武子康1 小时前
调查研究-151 Slack vs Jira:区别、使用指南与团队选择方法
人工智能·科技·深度学习·ai·职场和发展·jira·slack
米小虾1 小时前
黄仁勋GTC 2026宣告Agent AI时代:从生成式到代理式的范式转移
人工智能·aigc·agent