Java 发丝级人像抠图,背景替换
这是一个使用 ONNX Runtime 在 Java 中实现的高质量人像抠图解决方案。该项目能够执行发丝级别的分割,非常适用于需要精确图像编辑和背景替换的应用场景
项目地址:https://gitee.com/sulv0302/matting-onnx-java.git
特性
- 发丝级别的人像分割
- ONNX 模型集成(rvm_mobilenetv3_fp32.onnx)
- 背景替换功能
- 集成 OpenCV 进行图像处理
- GPU 加速支持
- RESTful API 接口
环境要求
- Java 17 或更高版本
- Maven
- 支持 CUDA 的 GPU(用于 GPU 加速)
依赖
- Spring Boot 2.7.2
- ONNX Runtime GPU 1.17.0
- OpenCV 4.7.0-0
使用方法
API 接口
项目提供了两个主要的 API 接口用于人像抠图:
- 使用纯色背景抠图
- 接口:
POST /api/portraitMattingBGR
- 参数:
originalImage
: 原始图像文件(MultipartFile)b
: 背景蓝色通道值(0-255)g
: 背景绿色通道值(0-255)r
: 背景红色通道值(0-255)
- 返回:处理后的图像(JPEG格式)
- 使用自定义背景图抠图
- 接口:
POST /api/portraitMatting
- 参数:
originalImage
: 原始图像文件(MultipartFile)backgroundImage
: 背景图像文件(MultipartFile)
- 返回:处理后的图像(JPEG格式)
示例请求
发丝级抠图