1 个不稳定版本
0.1.0 | 2024 年 3 月 28 日 |
---|
#494 在 图像
14KB
136 行
RMBG Crate
本 crate 提供了一个易于使用的接口,用于从图像中去除背景,利用机器学习模型。它旨在无缝集成到需要背景去除功能的 Rust 项目中。
Rust 文档:https://docs.rs/rmbg/latest/rmbg/struct.Rmbg.html Crates.io:https://crates.io/crates/rmbg
功能
- 加载机器学习模型以从图像中去除背景。
- 保持原始图像尺寸,用透明度替换背景。
- 预处理和后处理图像以符合模型要求。
入门指南
先决条件
在开始使用 rmbg
crate 之前,您需要下载所需的 model.onnx
文件。此模型是关键组件,因为它是背景去除过程的核心。您可以从以下 URL 下载它
https://hugging-face.cn/briaai/RMBG-1.4/blob/main/onnx/model.onnx
将下载的 model.onnx
文件放置在项目中的一个已知目录中。
安装
将 rmbg
添加到您的 Cargo.toml
文件
[dependencies]
rmbg = { version = "0.1.0", default-features = false }
针对库开发者的说明
如果您正在开发包含 rmbg
的库,强烈建议禁用默认功能,以避免不必要的膨胀。Cargo 特性是累加的,在库中启用默认功能可能会阻止下游用户选择不使用这些功能,从而导致编译时间和二进制文件大小增加。
相反,您可以在以下方式中启用开发依赖项中的必要功能
[dev-dependencies]
rmbg = { version = "0.1.0", features = ["download-binaries"] }
指示下游用户根据需要包含 ort
,并启用 download-binaries
功能
[dependencies]
ort = { version = "...", features = ["download-binaries"] }
使用方法
要在项目中使用 rmbg
crate,首先,使用 model.onnx
文件的路径初始化 Rmbg
结构的实例。然后,调用 remove_background
方法处理图像。
以下是一个简单的示例
use rmbg::Rmbg;
use image::DynamicImage;
fn main() -> anyhow::Result<()> {
// Load the model
let rmbg = Rmbg::new("path/to/model.onnx")?;
// Load an image
let original_img = image::open("path/to/image.png")?;
// Remove the background
let img_without_bg = rmbg.remove_background(&original_img)?;
// Save or further process `img_without_bg` as needed
Ok(())
}
许可
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
模型许可
本crate使用的.onnx模型受其自身许可协议约束。该模型以bria-rmbg-1.4许可证发布,这是一个仅限非商业用途的Creative Commons许可证。若要商业使用该模型,需要与BRIA签订商业协议。
请确保在使用该模型时遵守其许可协议。
依赖项
~6–8MB
~153K SLoC