23 个版本 (10 个重大变更)
0.12.8 | 2024年5月6日 |
---|---|
0.11.1 | 2024年5月5日 |
0.8.1 | 2024年3月16日 |
#550 在 游戏开发
在 2 个库 中使用
110KB
1.5K SLoC
bevy_ort 🪨
bevy 插件,用于 ort 库
> modnet 推理示例
功能
- 将 ONNX 模型加载为 ORT 会话资产
- 使用默认执行提供者初始化 ORT
- modnet bevy 图像 <-> ort 张量 IO(具有
modnet
功能) - 批处理 modnet 预处理
- 计算任务池推理调度
模型
- lightglue(特征匹配)
- modnet(摄影人像抠图)
- yolo_v8(物体检测)
- flame(参数化头部模型)
库使用
use bevy::prelude::*;
use bevy_ort::{
BevyOrtPlugin,
models::flame::{
FlameInput,
FlameOutput,
Flame,
FlamePlugin,
},
};
fn main() {
App::new()
.add_plugins((
DefaultPlugins,
BevyOrtPlugin,
FlamePlugin,
))
.add_systems(Startup, load_flame)
.add_systems(Startup, setup)
.add_systems(Update, on_flame_output)
.run();
}
fn load_flame(
asset_server: Res<AssetServer>,
mut flame: ResMut<Flame>,
) {
flame.onnx = asset_server.load("models/flame.onnx");
}
fn setup(
mut commands: Commands,
) {
commands.spawn(FlameInput::default());
commands.spawn(Camera3dBundle::default());
}
#[derive(Debug, Component, Reflect)]
struct HandledFlameOutput;
fn on_flame_output(
mut commands: Commands,
flame_outputs: Query<
(
Entity,
&FlameOutput,
),
Without<HandledFlameOutput>,
>,
) {
for (entity, flame_output) in flame_outputs.iter() {
commands.entity(entity)
.insert(HandledFlameOutput);
println!("{:?}", flame_output);
}
}
运行示例人员分割模型(modnet)
cargo run
使用加速执行提供者
- Windows -
cargo run --features ort/cuda
或cargo run --features ort/openvino
- macOS -
cargo run --features ort/coreml
- Linux -
cargo run --features ort/tensorrt
或cargo run --features ort/openvino
在此处查看 ort 功能的完整列表: https://github.com/pykeio/ort/blob/0aec4030a5f3470e4ee6c6f4e7e52d4e495ec27a/Cargo.toml#L54
注意:如果您使用
pip install onnxruntime
,可能需要运行ORT_STRATEGY=system cargo run
,请参阅: https://docs.rs/ort/latest/ort/#how-to-get-binaries
兼容的 bevy 版本
bevy_ort |
bevy |
---|---|
0.1.0 |
0.13 |
致谢
许可证
本软件同时受 MIT 许可证和 GNU 通用公共许可证第 3 版(GPL-3.0)的约束。
您可以选择根据MIT许可证或GNU通用公共许可证版本3(GPL-3.0)使用本软件,除非以下规定。
本软件中使用的yolo_v8
功能受GNU通用公共许可证版本3(GPL-3.0)的专门规范。使用yolo_v8
功能,您同意遵守GPL-3.0的条款和条件。
有关许可证的更多详细信息,请参阅随本软件提供的LICENSE.MIT和LICENSE.GPL-3.0文件。
依赖项
~56–95MB
~1.5M SLoC