feat: Added cli features for mnn and ort
This commit is contained in:
40
src/cli.rs
40
src/cli.rs
@@ -1,4 +1,6 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
use mnn::ForwardType;
|
||||
#[derive(Debug, clap::Parser)]
|
||||
pub struct Cli {
|
||||
#[clap(subcommand)]
|
||||
@@ -21,23 +23,10 @@ pub enum Models {
|
||||
Yolo,
|
||||
}
|
||||
|
||||
#[derive(Debug, clap::ValueEnum, Clone, Copy)]
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum Executor {
|
||||
Mnn,
|
||||
Onnx,
|
||||
}
|
||||
|
||||
#[derive(Debug, clap::ValueEnum, Clone, Copy)]
|
||||
pub enum OnnxEp {
|
||||
Cpu,
|
||||
}
|
||||
|
||||
#[derive(Debug, clap::ValueEnum, Clone, Copy)]
|
||||
pub enum MnnEp {
|
||||
Cpu,
|
||||
Metal,
|
||||
OpenCL,
|
||||
CoreML,
|
||||
Mnn(mnn::ForwardType),
|
||||
Ort(Vec<detector::ort_ep::ExecutionProvider>),
|
||||
}
|
||||
|
||||
#[derive(Debug, clap::Args)]
|
||||
@@ -48,10 +37,21 @@ pub struct Detect {
|
||||
pub model_type: Models,
|
||||
#[clap(short, long)]
|
||||
pub output: Option<PathBuf>,
|
||||
#[clap(short = 'e', long)]
|
||||
pub executor: Option<Executor>,
|
||||
#[clap(short, long, default_value = "cpu")]
|
||||
pub forward_type: mnn::ForwardType,
|
||||
#[clap(
|
||||
short = 'p',
|
||||
long,
|
||||
default_value = "cpu",
|
||||
group = "execution_provider",
|
||||
required_unless_present = "mnn_forward_type"
|
||||
)]
|
||||
pub ort_execution_provider: Vec<detector::ort_ep::ExecutionProvider>,
|
||||
#[clap(
|
||||
short,
|
||||
long,
|
||||
group = "execution_provider",
|
||||
required_unless_present = "ort_execution_provider"
|
||||
)]
|
||||
pub mnn_forward_type: Option<mnn::ForwardType>,
|
||||
#[clap(short, long, default_value_t = 0.8)]
|
||||
pub threshold: f32,
|
||||
#[clap(short, long, default_value_t = 0.3)]
|
||||
|
||||
Reference in New Issue
Block a user