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 文件夹是否包含所有必需的模型文件
  • 如果人脸检测失败,请尝试使用更清晰的图片
  • 如果替换结果不理想,请尝试调整源图像和目标图像的角度和光照条件
相关推荐
ajassi200017 分钟前
AI语音智能体开发日记(十二)GX8006 固件定制指南——从双唤醒词到 UART 音频传输
人工智能·ai·ai编程
大模型momo23 分钟前
告别单体 Agent:多智能体设计模式(Multi-Agent Patterns)深度实战手册
人工智能·agent·multi-agent·多agent
DisonTangor32 分钟前
【SeeDream开源平替】MiniMax H3 重磅开源:全模态视频生成新标杆,2K 画质 + 原生立体声,15 秒大片一键生成!
人工智能·ai作画·开源·aigc·音视频
很楠爱上1 小时前
(附上相关学习资源)适合新手做的第一个agent项目*ovo*Dify Agent 全栈实战:从智能选车顾问到新能源汽车之家的端到端开发
人工智能·汽车·agent·项目·开发笔记
IT智慧客07311 小时前
2026年7月前端面试高频考点与趋势分析(面20个前端后的总结)
人工智能
不瘦80斤不改名1 小时前
01-vibe-coding-起源与本质
人工智能·python
冬奇Lab1 小时前
代码库知识库系列(08):生产级架构设计——向量、图、符号索引如何组合
人工智能
冬奇Lab1 小时前
开源项目第177期:Apache Airflow — 用 Python 写出来的工作流调度器,数据工程师的标配工具
人工智能·开源·资讯
她说可以呀2 小时前
Spring-ai-alibaba文生图
java·人工智能·spring