This commit is contained in:
jamjamjon
2025-05-20 17:01:27 +08:00
parent 26de63d239
commit d3c738b5cf
110 changed files with 298 additions and 264 deletions

View File

@ -1,4 +1,4 @@
use usls::{models::RMBG, Annotator, DataLoader, ModelConfig};
use usls::{models::RMBG, Annotator, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -20,7 +20,7 @@ fn main() -> anyhow::Result<()> {
let args: Args = argh::from_env();
// build model
let config = ModelConfig::ben2_base()
let config = Config::ben2_base()
.with_model_dtype(args.dtype.as_str().try_into()?)
.with_model_device(args.device.as_str().try_into()?)
.commit()?;

View File

@ -1,4 +1,4 @@
use usls::{models::Blip, DataLoader, ModelConfig};
use usls::{models::Blip, Config, DataLoader};
#[derive(argh::FromArgs)]
/// BLIP Example
@ -20,7 +20,7 @@ fn main() -> anyhow::Result<()> {
let args: Args = argh::from_env();
// build model
let config = ModelConfig::blip_v1_base_caption()
let config = Config::blip_v1_base_caption()
.with_device_all(args.device.as_str().try_into()?)
.commit()?;
let mut model = Blip::new(config)?;

View File

@ -1,4 +1,4 @@
use usls::{models::ImageClassifier, Annotator, DataLoader, ModelConfig};
use usls::{models::ImageClassifier, Annotator, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -37,11 +37,11 @@ fn main() -> anyhow::Result<()> {
// build model
let config = match args.model.to_lowercase().as_str() {
"beit" => ModelConfig::beit_base(),
"convnext" => ModelConfig::convnext_v2_atto(),
"deit" => ModelConfig::deit_tiny_distill(),
"fastvit" => ModelConfig::fastvit_t8_distill(),
"mobileone" => ModelConfig::mobileone_s0(),
"beit" => Config::beit_base(),
"convnext" => Config::convnext_v2_atto(),
"deit" => Config::deit_tiny_distill(),
"fastvit" => Config::fastvit_t8_distill(),
"mobileone" => Config::mobileone_s0(),
_ => anyhow::bail!("Unsupported model: {}", args.model),
};

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::Clip, DataLoader, ModelConfig, Ops};
use usls::{models::Clip, Config, DataLoader, Ops};
#[derive(argh::FromArgs)]
/// CLIP Example
@ -17,7 +17,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// build model
let config = ModelConfig::jina_clip_v1()
let config = Config::jina_clip_v1()
.with_device_all(args.device.as_str().try_into()?)
.commit()?;
let mut model = Clip::new(config)?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::RTDETR, Annotator, DataLoader, ModelConfig};
use usls::{models::RTDETR, Annotator, Config, DataLoader};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -8,7 +8,7 @@ fn main() -> Result<()> {
.init();
// config
let mut model = RTDETR::new(ModelConfig::d_fine_n_coco().commit()?)?;
let mut model = RTDETR::new(Config::d_fine_n_coco().commit()?)?;
// load
let xs = DataLoader::try_read_n(&["./assets/bus.jpg"])?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::DB, Annotator, DataLoader, ModelConfig, Style};
use usls::{models::DB, Annotator, Config, DataLoader, Style};
#[derive(argh::FromArgs)]
/// Example
@ -42,8 +42,8 @@ fn main() -> Result<()> {
// build model
let config = match &args.model {
Some(m) => ModelConfig::db().with_model_file(m),
None => ModelConfig::ppocr_det_v4_ch().with_model_dtype(args.dtype.as_str().try_into()?),
Some(m) => Config::db().with_model_file(m),
None => Config::ppocr_det_v4_ch().with_model_dtype(args.dtype.as_str().try_into()?),
}
.with_device_all(args.device.as_str().try_into()?)
.commit()?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::RTDETR, Annotator, DataLoader, ModelConfig};
use usls::{models::RTDETR, Annotator, Config, DataLoader};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -8,7 +8,7 @@ fn main() -> Result<()> {
.init();
// config
let mut model = RTDETR::new(ModelConfig::deim_dfine_s_coco().commit()?)?;
let mut model = RTDETR::new(Config::deim_dfine_s_coco().commit()?)?;
// load
let xs = DataLoader::try_read_n(&["./assets/bus.jpg"])?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::DepthAnything, Annotator, DataLoader, ModelConfig, Style};
use usls::{models::DepthAnything, Annotator, Config, DataLoader, Style};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -8,7 +8,7 @@ fn main() -> Result<()> {
.init();
// build model
let mut model = DepthAnything::new(ModelConfig::depth_anything_v2_small().commit()?)?;
let mut model = DepthAnything::new(Config::depth_anything_v2_small().commit()?)?;
// load
let xs = DataLoader::try_read_n(&["images/street.jpg"])?;

View File

@ -1,6 +1,6 @@
use anyhow::Result;
use usls::DataLoader;
use usls::{models::DepthPro, Annotator, ModelConfig, Style};
use usls::{models::DepthPro, Annotator, Config, Style};
#[derive(argh::FromArgs)]
/// Example
@ -23,7 +23,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// model
let config = ModelConfig::depth_pro()
let config = Config::depth_pro()
.with_model_dtype(args.dtype.as_str().try_into()?)
.with_model_device(args.device.as_str().try_into()?)
.commit()?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::DINOv2, DataLoader, ModelConfig};
use usls::{models::DINOv2, Config, DataLoader};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -11,7 +11,7 @@ fn main() -> Result<()> {
let xs = DataLoader::try_read_n(&["./assets/bus.jpg", "./assets/bus.jpg"])?;
// model
let config = ModelConfig::dinov2_small()
let config = Config::dinov2_small()
.with_batch_size_all(xs.len())
.commit()?;
let mut model = DINOv2::new(config)?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::YOLO, Annotator, DataLoader, ModelConfig};
use usls::{models::YOLO, Annotator, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -18,7 +18,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// build model
let config = ModelConfig::doclayout_yolo_docstructbench()
let config = Config::doclayout_yolo_docstructbench()
.with_model_device(args.device.as_str().try_into()?)
.commit()?;
let mut model = YOLO::new(config)?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::DB, Annotator, DataLoader, ModelConfig, Scale, Style};
use usls::{models::DB, Annotator, Config, DataLoader, Scale, Style};
#[derive(argh::FromArgs)]
/// Example
@ -27,9 +27,9 @@ fn main() -> Result<()> {
// build model
let config = match args.scale.as_str().try_into()? {
Scale::T => ModelConfig::fast_tiny(),
Scale::S => ModelConfig::fast_small(),
Scale::B => ModelConfig::fast_base(),
Scale::T => Config::fast_tiny(),
Scale::S => Config::fast_small(),
Scale::B => Config::fast_base(),
_ => unimplemented!("Unsupported model scale: {:?}. Try b, s, t.", args.scale),
};
let mut model = DB::new(

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::YOLO, Annotator, DataLoader, ModelConfig};
use usls::{models::YOLO, Annotator, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -22,7 +22,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// build model
let config = ModelConfig::fastsam_s()
let config = Config::fastsam_s()
.with_model_dtype(args.dtype.as_str().try_into()?)
.with_model_device(args.device.as_str().try_into()?)
.commit()?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::Florence2, Annotator, DataLoader, ModelConfig, Style, Task};
use usls::{models::Florence2, Annotator, Config, DataLoader, Style, Task};
#[derive(argh::FromArgs)]
/// Example
@ -25,7 +25,7 @@ fn main() -> Result<()> {
let xs = DataLoader::try_read_n(&["images/green-car.jpg", "assets/bus.jpg"])?;
// build model
let config = ModelConfig::florence2_base()
let config = Config::florence2_base()
.with_dtype_all(args.dtype.as_str().try_into()?)
.with_device_all(args.device.as_str().try_into()?)
.with_batch_size_all(xs.len())

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::GroundingDINO, Annotator, DataLoader, ModelConfig};
use usls::{models::GroundingDINO, Annotator, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -45,7 +45,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
let config = ModelConfig::grounding_dino_tiny()
let config = Config::grounding_dino_tiny()
.with_model_dtype(args.dtype.as_str().try_into()?)
.with_model_device(args.device.as_str().try_into()?)
.with_text_names(&args.labels.iter().map(|x| x.as_str()).collect::<Vec<_>>())

View File

@ -1,6 +1,6 @@
use anyhow::Result;
use usls::DataLoader;
use usls::{models::DB, Annotator, ModelConfig, Scale, Style};
use usls::{models::DB, Annotator, Config, Scale, Style};
#[derive(argh::FromArgs)]
/// Example
@ -28,9 +28,9 @@ fn main() -> Result<()> {
// build model
let config = match args.scale.as_str().try_into()? {
Scale::T => ModelConfig::linknet_r18(),
Scale::S => ModelConfig::linknet_r34(),
Scale::B => ModelConfig::linknet_r50(),
Scale::T => Config::linknet_r18(),
Scale::S => Config::linknet_r34(),
Scale::B => Config::linknet_r50(),
_ => unimplemented!("Unsupported model scale: {:?}. Try b, s, t.", args.scale),
};
let mut model = DB::new(

View File

@ -1,4 +1,4 @@
use usls::{models::MODNet, Annotator, DataLoader, ModelConfig};
use usls::{models::MODNet, Annotator, Config, DataLoader};
fn main() -> anyhow::Result<()> {
tracing_subscriber::fmt()
@ -7,7 +7,7 @@ fn main() -> anyhow::Result<()> {
.init();
// build model
let mut model = MODNet::new(ModelConfig::modnet_photographic().commit()?)?;
let mut model = MODNet::new(Config::modnet_photographic().commit()?)?;
// load image
let xs = DataLoader::try_read_n(&["images/liuyifei.png"])?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::Moondream2, Annotator, DataLoader, ModelConfig, Scale, Task};
use usls::{models::Moondream2, Annotator, Config, DataLoader, Scale, Task};
#[derive(argh::FromArgs)]
/// Example
@ -40,8 +40,8 @@ fn main() -> Result<()> {
// build model
let config = match args.scale.as_str().try_into()? {
Scale::Billion(0.5) => ModelConfig::moondream2_0_5b(),
Scale::Billion(2.) => ModelConfig::moondream2_2b(),
Scale::Billion(0.5) => Config::moondream2_0_5b(),
Scale::Billion(2.) => Config::moondream2_2b(),
_ => unimplemented!(),
}
.with_dtype_all(args.dtype.as_str().try_into()?)

View File

@ -1,6 +1,6 @@
use anyhow::Result;
use usls::DataLoader;
use usls::{models::OWLv2, Annotator, ModelConfig};
use usls::{models::OWLv2, Annotator, Config};
#[derive(argh::FromArgs)]
/// Example
@ -47,7 +47,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// config
let config = ModelConfig::owlv2_base_ensemble()
let config = Config::owlv2_base_ensemble()
// owlv2_base()
.with_model_dtype(args.dtype.as_str().try_into()?)
.with_model_device(args.device.as_str().try_into()?)

View File

@ -1,6 +1,6 @@
use anyhow::Result;
use usls::DataLoader;
use usls::{models::PicoDet, Annotator, ModelConfig};
use usls::{models::PicoDet, Annotator, Config};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -9,7 +9,7 @@ fn main() -> Result<()> {
.init();
// config
let config = ModelConfig::picodet_layout_1x().commit()?;
let config = Config::picodet_layout_1x().commit()?;
// picodet_l_layout_3cls()
// picodet_l_layout_17cls()
let mut model = PicoDet::new(config)?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::RFDETR, Annotator, DataLoader, ModelConfig};
use usls::{models::RFDETR, Annotator, Config, DataLoader};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -8,7 +8,7 @@ fn main() -> Result<()> {
.init();
// config
let mut model = RFDETR::new(ModelConfig::rfdetr_base().commit()?)?;
let mut model = RFDETR::new(Config::rfdetr_base().commit()?)?;
// load
let xs = DataLoader::try_read_n(&["./assets/bus.jpg"])?;

View File

@ -1,4 +1,4 @@
use usls::{models::RMBG, Annotator, DataLoader, ModelConfig};
use usls::{models::RMBG, Annotator, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -24,8 +24,8 @@ fn main() -> anyhow::Result<()> {
let args: Args = argh::from_env();
let config = match args.ver {
1.4 => ModelConfig::rmbg1_4(),
2.0 => ModelConfig::rmbg2_0(),
1.4 => Config::rmbg1_4(),
2.0 => Config::rmbg2_0(),
_ => unreachable!("Unsupported version"),
};

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::RTDETR, Annotator, DataLoader, ModelConfig};
use usls::{models::RTDETR, Annotator, Config, DataLoader};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -8,7 +8,7 @@ fn main() -> Result<()> {
.init();
// config
let config = ModelConfig::rtdetr_v2_s_coco().commit()?;
let config = Config::rtdetr_v2_s_coco().commit()?;
// rtdetr_v1_r18vd_coco()
// rtdetr_v2_ms_coco()
// rtdetr_v2_m_coco()

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::RTMO, Annotator, DataLoader, ModelConfig, Style, SKELETON_COCO_19};
use usls::{models::RTMO, Annotator, Config, DataLoader, Style, SKELETON_COCO_19};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -8,7 +8,7 @@ fn main() -> Result<()> {
.init();
// build model
let mut model = RTMO::new(ModelConfig::rtmo_s().commit()?)?;
let mut model = RTMO::new(Config::rtmo_s().commit()?)?;
// load image
let xs = DataLoader::try_read_n(&["./assets/bus.jpg"])?;

View File

@ -1,7 +1,7 @@
use anyhow::Result;
use usls::{
models::{SamKind, SamPrompt, SAM},
Annotator, DataLoader, ModelConfig, Scale,
Annotator, Config, DataLoader, Scale,
};
#[derive(argh::FromArgs)]
@ -29,16 +29,16 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// Build model
let config = match args.kind.as_str().try_into()? {
SamKind::Sam => ModelConfig::sam_v1_base(),
SamKind::Sam => Config::sam_v1_base(),
SamKind::Sam2 => match args.scale.as_str().try_into()? {
Scale::T => ModelConfig::sam2_tiny(),
Scale::S => ModelConfig::sam2_small(),
Scale::B => ModelConfig::sam2_base_plus(),
Scale::T => Config::sam2_tiny(),
Scale::S => Config::sam2_small(),
Scale::B => Config::sam2_base_plus(),
_ => unimplemented!("Unsupported model scale: {:?}. Try b, s, t.", args.scale),
},
SamKind::MobileSam => ModelConfig::mobile_sam_tiny(),
SamKind::SamHq => ModelConfig::sam_hq_tiny(),
SamKind::EdgeSam => ModelConfig::edge_sam_3x(),
SamKind::MobileSam => Config::mobile_sam_tiny(),
SamKind::SamHq => Config::sam_hq_tiny(),
SamKind::EdgeSam => Config::edge_sam_3x(),
}
.with_device_all(args.device.as_str().try_into()?)
.commit()?;

View File

@ -1,7 +1,7 @@
use anyhow::Result;
use usls::{
models::{SamPrompt, SAM2},
Annotator, DataLoader, ModelConfig, Scale,
Annotator, Config, DataLoader, Scale,
};
#[derive(argh::FromArgs)]
@ -26,10 +26,10 @@ fn main() -> Result<()> {
// Build model
let config = match args.scale.as_str().try_into()? {
Scale::T => ModelConfig::sam2_1_tiny(),
Scale::S => ModelConfig::sam2_1_small(),
Scale::B => ModelConfig::sam2_1_base_plus(),
Scale::L => ModelConfig::sam2_1_large(),
Scale::T => Config::sam2_1_tiny(),
Scale::S => Config::sam2_1_small(),
Scale::B => Config::sam2_1_base_plus(),
Scale::L => Config::sam2_1_large(),
_ => unimplemented!("Unsupported model scale: {:?}. Try b, s, t, l.", args.scale),
}
.with_device_all(args.device.as_str().try_into()?)

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::Sapiens, Annotator, DataLoader, ModelConfig};
use usls::{models::Sapiens, Annotator, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -17,7 +17,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// build
let config = ModelConfig::sapiens_seg_0_3b()
let config = Config::sapiens_seg_0_3b()
.with_model_device(args.device.as_str().try_into()?)
.commit()?;
let mut model = Sapiens::new(config)?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::SLANet, Annotator, Color, DataLoader, ModelConfig};
use usls::{models::SLANet, Annotator, Color, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -26,7 +26,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// build model
let config = ModelConfig::slanet_lcnet_v2_mobile_ch()
let config = Config::slanet_lcnet_v2_mobile_ch()
.with_model_device(args.device.as_str().try_into()?)
.with_model_dtype(args.dtype.as_str().try_into()?)
.commit()?;

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::SmolVLM, DataLoader, ModelConfig, Scale};
use usls::{models::SmolVLM, Config, DataLoader, Scale};
#[derive(argh::FromArgs)]
/// Example
@ -30,8 +30,8 @@ fn main() -> Result<()> {
// build model
let config = match args.scale.as_str().try_into()? {
Scale::Million(256.) => ModelConfig::smolvlm_256m(),
Scale::Million(500.) => ModelConfig::smolvlm_500m(),
Scale::Million(256.) => Config::smolvlm_256m(),
Scale::Million(500.) => Config::smolvlm_500m(),
_ => unimplemented!(),
}
.with_device_all(args.device.as_str().try_into()?)

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::SVTR, DataLoader, ModelConfig};
use usls::{models::SVTR, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -22,7 +22,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// build model
let config = ModelConfig::ppocr_rec_v4_ch()
let config = Config::ppocr_rec_v4_ch()
// ppocr_rec_v4_en()
// repsvtr_ch()
.with_model_device(args.device.as_str().try_into()?)

View File

@ -1,6 +1,6 @@
use usls::{
models::{TrOCR, TrOCRKind},
DataLoader, ModelConfig, Scale,
Config, DataLoader, Scale,
};
#[derive(argh::FromArgs)]
@ -40,12 +40,12 @@ fn main() -> anyhow::Result<()> {
// build model
let config = match args.scale.as_str().try_into()? {
Scale::S => match args.kind.as_str().try_into()? {
TrOCRKind::Printed => ModelConfig::trocr_small_printed(),
TrOCRKind::HandWritten => ModelConfig::trocr_small_handwritten(),
TrOCRKind::Printed => Config::trocr_small_printed(),
TrOCRKind::HandWritten => Config::trocr_small_handwritten(),
},
Scale::B => match args.kind.as_str().try_into()? {
TrOCRKind::Printed => ModelConfig::trocr_base_printed(),
TrOCRKind::HandWritten => ModelConfig::trocr_base_handwritten(),
TrOCRKind::Printed => Config::trocr_base_printed(),
TrOCRKind::HandWritten => Config::trocr_base_handwritten(),
},
x => anyhow::bail!("Unsupported TrOCR scale: {:?}", x),
}

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::YOLO, Annotator, DataLoader, ModelConfig};
use usls::{models::YOLO, Annotator, Config, DataLoader};
#[derive(argh::FromArgs)]
/// Example
@ -22,7 +22,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// build model
let config = ModelConfig::ultralytics_rtdetr_l()
let config = Config::ultralytics_rtdetr_l()
.with_model_dtype(args.dtype.as_str().try_into()?)
.with_model_device(args.device.as_str().try_into()?)
.commit()?;

View File

@ -1,7 +1,7 @@
use anyhow::Result;
use usls::{
models::{SamPrompt, SAM2, YOLO},
Annotator, DataLoader, ModelConfig, Scale, Style,
Annotator, Config, DataLoader, Scale, Style,
};
#[derive(argh::FromArgs)]
@ -21,10 +21,10 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// build SAM
let mut sam = SAM2::new(ModelConfig::sam2_1_tiny().commit()?)?;
let mut sam = SAM2::new(Config::sam2_1_tiny().commit()?)?;
// build YOLOv8
let options_yolo = ModelConfig::yolo_detect()
let options_yolo = Config::yolo_detect()
.with_scale(Scale::N)
.with_version(8.into())
.with_model_device(args.device.as_str().try_into()?)

View File

@ -1,7 +1,7 @@
use anyhow::Result;
use usls::{
models::YOLO, Annotator, DataLoader, ModelConfig, Style, NAMES_COCO_80,
NAMES_COCO_KEYPOINTS_17, NAMES_IMAGENET_1K, SKELETON_COCO_19, SKELETON_COLOR_COCO_19,
models::YOLO, Annotator, Config, DataLoader, Style, NAMES_COCO_80, NAMES_COCO_KEYPOINTS_17,
NAMES_IMAGENET_1K, SKELETON_COCO_19, SKELETON_COLOR_COCO_19,
};
#[derive(argh::FromArgs, Debug)]
@ -130,7 +130,7 @@ fn main() -> Result<()> {
.with_timer(tracing_subscriber::fmt::time::ChronoLocal::rfc_3339())
.init();
let args: Args = argh::from_env();
let mut config = ModelConfig::yolo()
let mut config = Config::yolo()
.with_model_file(&args.model.unwrap_or_default())
.with_task(args.task.as_str().try_into()?)
.with_version(args.ver.try_into()?)
@ -170,7 +170,8 @@ fn main() -> Result<()> {
})
.with_topk(args.topk)
.retain_classes(&args.retain_classes)
.exclude_classes(&args.exclude_classes);
.exclude_classes(&args.exclude_classes)
.with_model_num_dry_run(2);
if args.use_coco_80_classes {
config = config.with_class_names(&NAMES_COCO_80);
}

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::YOLO, Annotator, DataLoader, ModelConfig, Style};
use usls::{models::YOLO, Annotator, Config, DataLoader, Style};
#[derive(argh::FromArgs)]
/// Example
@ -22,7 +22,7 @@ fn main() -> Result<()> {
let args: Args = argh::from_env();
// config
let config = ModelConfig::yoloe_v8s_seg_pf()
let config = Config::yoloe_v8s_seg_pf()
// yoloe_v8m_seg_pf()
// yoloe_v8l_seg_pf()
// yoloe_11s_seg_pf()

View File

@ -1,5 +1,5 @@
use anyhow::Result;
use usls::{models::YOLOPv2, Annotator, DataLoader, ModelConfig};
use usls::{models::YOLOPv2, Annotator, Config, DataLoader};
fn main() -> Result<()> {
tracing_subscriber::fmt()
@ -8,7 +8,7 @@ fn main() -> Result<()> {
.init();
// build model
let mut model = YOLOPv2::new(ModelConfig::yolop_v2_480x800().commit()?)?;
let mut model = YOLOPv2::new(Config::yolop_v2_480x800().commit()?)?;
// load image
let xs = DataLoader::try_read_n(&["images/car-view.jpg"])?;

View File

@ -13,8 +13,8 @@ use prost::Message;
use std::collections::HashSet;
use crate::{
build_progress_bar, elapsed, human_bytes_binary, onnx, DType, Device, EngineConfig, Iiix,
MinOptMax, Ops, Ts, Xs, PROGRESS_BAR_STYLE_CYAN_2, PROGRESS_BAR_STYLE_FINISH, X,
build_progress_bar, elapsed, human_bytes_binary, onnx, DType, Device, Iiix, MinOptMax,
ORTConfig, Ops, Ts, Xs, PROGRESS_BAR_STYLE_CYAN_2, PROGRESS_BAR_STYLE_FINISH, X,
};
impl From<TensorElementType> for DType {
@ -93,7 +93,7 @@ impl Default for Engine {
}
impl Engine {
pub fn try_from_config(config: &EngineConfig) -> Result<Self> {
pub fn try_from_config(config: &ORTConfig) -> Result<Self> {
Self {
file: config.file.clone(),
spec: config.spec.clone(),
@ -101,7 +101,7 @@ impl Engine {
device: config.device,
trt_fp16: config.trt_fp16,
num_dry_run: config.num_dry_run,
graph_opt_level: config.ort_graph_opt_level,
graph_opt_level: config.graph_opt_level,
..Default::default()
}
.build()

View File

@ -17,7 +17,9 @@ impl std::fmt::Debug for Hbb {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Hbb")
.field("xyxy", &[self.x, self.y, self.xmax(), self.ymax()])
.field("meta", &self.meta)
.field("id", &self.meta.id())
.field("name", &self.meta.name())
.field("confidence", &self.meta.confidence())
.finish()
}
}

View File

@ -22,7 +22,6 @@ impl std::fmt::Debug for Keypoint {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Keypoint")
.field("xy", &[self.x, self.y])
.field("uid", &self.meta.uid())
.field("id", &self.meta.id())
.field("name", &self.meta.name())
.field("confidence", &self.meta.confidence())

View File

@ -20,7 +20,6 @@ impl std::fmt::Debug for Mask {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Mask")
.field("dimensions", &self.dimensions())
.field("uid", &self.meta.uid())
.field("id", &self.meta.id())
.field("name", &self.meta.name())
.field("confidence", &self.meta.confidence())

View File

@ -1,12 +1,10 @@
#[cfg(any(feature = "ort-download-binaries", feature = "ort-load-dynamic"))]
mod engine;
mod engine_config;
mod hbb;
mod image;
mod instance_meta;
mod keypoint;
mod mask;
mod model_config;
mod obb;
mod polygon;
mod prob;
@ -22,13 +20,11 @@ pub(crate) mod onnx {
#[cfg(any(feature = "ort-download-binaries", feature = "ort-load-dynamic"))]
pub use engine::*;
pub use engine_config::EngineConfig;
pub use hbb::*;
pub use image::*;
pub use instance_meta::*;
pub use keypoint::*;
pub use mask::*;
pub use model_config::*;
pub use obb::*;
pub use polygon::*;
pub use prob::*;

View File

@ -13,7 +13,7 @@ pub struct Obb {
impl std::fmt::Debug for Obb {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Obb")
.field("uid", &self.meta.uid())
.field("vertices", &self.vertices)
.field("id", &self.meta.id())
.field("name", &self.meta.name())
.field("confidence", &self.meta.confidence())

View File

@ -27,8 +27,7 @@ impl Default for Polygon {
impl std::fmt::Debug for Polygon {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("Polygon")
.field("count", &self.count())
.field("uid", &self.meta.uid())
.field("n_points", &self.count())
.field("id", &self.meta.id())
.field("name", &self.meta.name())
.field("confidence", &self.meta.confidence())

View File

@ -1,5 +1,5 @@
/// Model configuration for `BEiT`
impl crate::ModelConfig {
impl crate::Config {
pub fn beit() -> Self {
Self::default()
.with_name("beit")

View File

@ -1,5 +1,5 @@
/// Model configuration for `BEN2`
impl crate::ModelConfig {
impl crate::Config {
pub fn ben2_base() -> Self {
Self::rmbg().with_model_file("ben2-base.onnx")
}

View File

@ -1,5 +1,5 @@
/// Model configuration for `BLIP`
impl crate::ModelConfig {
impl crate::Config {
#[allow(clippy::excessive_precision)]
pub fn blip() -> Self {
Self::default()

View File

@ -2,7 +2,7 @@ use aksr::Builder;
use anyhow::Result;
use ndarray::{s, Axis};
use crate::{elapsed, Engine, Image, LogitsSampler, ModelConfig, Processor, Ts, Xs, X, Y};
use crate::{elapsed, Config, Engine, Image, LogitsSampler, Processor, Ts, Xs, X, Y};
#[derive(Debug, Builder)]
pub struct Blip {
@ -18,7 +18,7 @@ pub struct Blip {
}
impl Blip {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let visual = Engine::try_from_config(&config.visual)?;
let textual = Engine::try_from_config(&config.textual)?;
let (batch, height, width) = (

View File

@ -1,5 +1,5 @@
/// Model configuration for `CLIP`
impl crate::ModelConfig {
impl crate::Config {
pub fn clip() -> Self {
Self::default()
.with_name("clip")

View File

@ -2,7 +2,7 @@ use aksr::Builder;
use anyhow::Result;
use ndarray::Array2;
use crate::{elapsed, Engine, Image, ModelConfig, Processor, Ts, X};
use crate::{elapsed, Config, Engine, Image, Processor, Ts, X};
#[derive(Debug, Builder)]
pub struct Clip {
@ -16,7 +16,7 @@ pub struct Clip {
}
impl Clip {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let visual = Engine::try_from_config(&config.visual)?;
let textual = Engine::try_from_config(&config.textual)?;
let (batch, height, width) = (

View File

@ -1,7 +1,7 @@
use crate::NAMES_IMAGENET_1K;
/// Model configuration for `ConvNeXt`
impl crate::ModelConfig {
impl crate::Config {
pub fn convnext() -> Self {
Self::default()
.with_name("convnext")

View File

@ -1,5 +1,5 @@
/// Model configuration for `d_fine`
impl crate::ModelConfig {
impl crate::Config {
pub fn d_fine() -> Self {
Self::rtdetr().with_name("d-fine")
}

View File

@ -1,5 +1,5 @@
/// Model configuration for [DB](https://github.com/MhLiao/DB) and [PaddleOCR-Det](https://github.com/PaddlePaddle/PaddleOCR)
impl crate::ModelConfig {
impl crate::Config {
pub fn db() -> Self {
Self::default()
.with_name("db")

View File

@ -4,8 +4,7 @@ use ndarray::Axis;
use rayon::prelude::*;
use crate::{
elapsed, DynConf, Engine, Hbb, Image, Mask, ModelConfig, Obb, Ops, Polygon, Processor, Ts, Xs,
Y,
elapsed, Config, DynConf, Engine, Hbb, Image, Mask, Obb, Ops, Polygon, Processor, Ts, Xs, Y,
};
#[derive(Debug, Builder)]
@ -25,7 +24,7 @@ pub struct DB {
}
impl DB {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let (batch, height, width, ts, spec) = (
engine.batch().opt(),

View File

@ -1,5 +1,5 @@
/// Model configuration for `DEIM`
impl crate::ModelConfig {
impl crate::Config {
pub fn deim() -> Self {
Self::d_fine().with_name("deim")
}

View File

@ -1,7 +1,7 @@
use crate::NAMES_IMAGENET_1K;
/// Model configuration for `DeiT`
impl crate::ModelConfig {
impl crate::Config {
pub fn deit() -> Self {
Self::default()
.with_name("deit")

View File

@ -1,5 +1,5 @@
/// Model configuration for `DepthAnything`
impl crate::ModelConfig {
impl crate::Config {
pub fn depth_anything() -> Self {
Self::default()
.with_name("depth-anything")

View File

@ -1,7 +1,7 @@
use aksr::Builder;
use anyhow::Result;
use crate::{elapsed, Engine, Image, Mask, ModelConfig, Ops, Processor, Ts, Xs, Y};
use crate::{elapsed, Config, Engine, Image, Mask, Ops, Processor, Ts, Xs, Y};
#[derive(Debug, Builder)]
pub struct DepthAnything {
@ -15,7 +15,7 @@ pub struct DepthAnything {
}
impl DepthAnything {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let spec = engine.spec().to_string();

View File

@ -1,5 +1,5 @@
/// Model configuration for `DepthPro`
impl crate::ModelConfig {
impl crate::Config {
pub fn depth_pro() -> Self {
Self::default()
.with_name("depth-pro")

View File

@ -2,7 +2,7 @@ use aksr::Builder;
use anyhow::Result;
use ndarray::Axis;
use crate::{elapsed, Engine, Image, Mask, ModelConfig, Ops, Processor, Ts, Xs, Y};
use crate::{elapsed, Config, Engine, Image, Mask, Ops, Processor, Ts, Xs, Y};
#[derive(Builder, Debug)]
pub struct DepthPro {
@ -16,7 +16,7 @@ pub struct DepthPro {
}
impl DepthPro {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let spec = engine.spec().to_string();
let (batch, height, width, ts) = (

View File

@ -1,5 +1,5 @@
/// Model configuration for `DINOv2`
impl crate::ModelConfig {
impl crate::Config {
pub fn dinov2() -> Self {
Self::default()
.with_name("dinov2")

View File

@ -1,7 +1,7 @@
use aksr::Builder;
use anyhow::Result;
use crate::{elapsed, Engine, Image, ModelConfig, Processor, Scale, Ts, Xs, X};
use crate::{elapsed, Config, Engine, Image, Processor, Scale, Ts, Xs, X};
#[derive(Builder, Debug)]
pub struct DINOv2 {
@ -15,7 +15,7 @@ pub struct DINOv2 {
}
impl DINOv2 {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let (batch, height, width, ts) = (
engine.batch().opt(),

View File

@ -1,5 +1,5 @@
/// Model configuration for [FAST: Faster Arbitrarily-Shaped Text Detector with Minimalist Kernel Representation](https://github.com/czczup/FAST)
impl crate::ModelConfig {
impl crate::Config {
pub fn fast() -> Self {
Self::db()
.with_name("fast")

View File

@ -1,7 +1,7 @@
use crate::NAMES_IMAGENET_1K;
/// Model configuration for `FastViT`
impl crate::ModelConfig {
impl crate::Config {
pub fn fastvit() -> Self {
Self::default()
.with_name("fastvit")

View File

@ -1,5 +1,5 @@
/// Model configuration for `Florence2`
impl crate::ModelConfig {
impl crate::Config {
pub fn florence2() -> Self {
Self::default()
.with_name("florence2")

View File

@ -4,7 +4,7 @@ use ndarray::{s, Axis};
use rayon::prelude::*;
use crate::{
elapsed, models::Quantizer, Engine, Hbb, Image, LogitsSampler, ModelConfig, Polygon, Processor,
elapsed, models::Quantizer, Config, Engine, Hbb, Image, LogitsSampler, Polygon, Processor,
Scale, Task, Ts, Xs, X, Y,
};
@ -28,7 +28,7 @@ pub struct Florence2 {
}
impl Florence2 {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let vision_encoder = Engine::try_from_config(&config.visual)?;
let text_embed = Engine::try_from_config(&config.textual)?;
let encoder = Engine::try_from_config(&config.textual_encoder)?;

View File

@ -1,5 +1,5 @@
/// Model configuration for `GroundingDino`
impl crate::ModelConfig {
impl crate::Config {
pub fn grounding_dino() -> Self {
Self::default()
.with_name("grounding-dino")

View File

@ -4,7 +4,7 @@ use ndarray::{s, Array2, Axis};
use rayon::prelude::*;
use std::fmt::Write;
use crate::{elapsed, DynConf, Engine, Hbb, Image, ModelConfig, Processor, Ts, Xs, X, Y};
use crate::{elapsed, Config, DynConf, Engine, Hbb, Image, Processor, Ts, Xs, X, Y};
#[derive(Builder, Debug)]
pub struct GroundingDINO {
@ -24,7 +24,7 @@ pub struct GroundingDINO {
}
impl GroundingDINO {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let spec = engine.spec().to_string();
let (batch, height, width, ts) = (

View File

@ -1,5 +1,5 @@
/// Model configuration for [LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation](https://arxiv.org/abs/1707.03718)
impl crate::ModelConfig {
impl crate::Config {
pub fn linknet() -> Self {
Self::fast()
.with_name("linknet")

View File

@ -1,7 +1,7 @@
use crate::NAMES_IMAGENET_1K;
/// Model configuration for `MobileOne`
impl crate::ModelConfig {
impl crate::Config {
pub fn mobileone() -> Self {
Self::default()
.with_name("mobileone")

View File

@ -1,5 +1,5 @@
/// Model configuration for `MODNet`
impl crate::ModelConfig {
impl crate::Config {
pub fn modnet() -> Self {
Self::default()
.with_name("modnet")

View File

@ -2,7 +2,7 @@ use aksr::Builder;
use anyhow::Result;
use ndarray::Axis;
use crate::{elapsed, Engine, Image, Mask, ModelConfig, Ops, Processor, Ts, Xs, Y};
use crate::{elapsed, Config, Engine, Image, Mask, Ops, Processor, Ts, Xs, Y};
#[derive(Builder, Debug)]
pub struct MODNet {
@ -16,7 +16,7 @@ pub struct MODNet {
}
impl MODNet {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let spec = engine.spec().to_string();
let (batch, height, width, ts) = (

View File

@ -1,5 +1,5 @@
/// Model configuration for `moondream2`
impl crate::ModelConfig {
impl crate::Config {
pub fn moondream2() -> Self {
Self::default()
.with_name("moondream2")

View File

@ -5,8 +5,8 @@ use ndarray::{s, Array, Array2, Array3, Axis, IxDyn};
use ndarray_npy::ReadNpyExt;
use crate::{
DType, Engine, Hbb, Hub, Image, Keypoint, LogitsSampler, ModelConfig, Processor, Scale, Task,
Xs, X, Y,
Config, DType, Engine, Hbb, Hub, Image, Keypoint, LogitsSampler, Processor, Scale, Task, Xs, X,
Y,
};
#[derive(Builder, Debug)]
@ -32,7 +32,7 @@ pub struct Moondream2 {
}
impl Moondream2 {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let max_length = 2048;
let max_objects = 50;
let eos_token_id = 50256;

View File

@ -1,5 +1,5 @@
/// Model configuration for `OWLv2`
impl crate::ModelConfig {
impl crate::Config {
pub fn owlv2() -> Self {
Self::default()
.with_name("owlv2")

View File

@ -3,7 +3,7 @@ use anyhow::Result;
use ndarray::{s, Axis};
use rayon::prelude::*;
use crate::{elapsed, DynConf, Engine, Hbb, Image, ModelConfig, Processor, Ts, Xs, X, Y};
use crate::{elapsed, Config, DynConf, Engine, Hbb, Image, Processor, Ts, Xs, X, Y};
#[derive(Debug, Builder)]
pub struct OWLv2 {
@ -22,7 +22,7 @@ pub struct OWLv2 {
}
impl OWLv2 {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let (batch, height, width, ts) = (
engine.batch().opt(),

View File

@ -4,7 +4,7 @@ use crate::{
};
/// Model configuration for `PicoDet`
impl crate::ModelConfig {
impl crate::Config {
pub fn picodet() -> Self {
Self::default()
.with_name("picodet")

View File

@ -3,7 +3,7 @@ use anyhow::Result;
use ndarray::Axis;
use rayon::prelude::*;
use crate::{elapsed, DynConf, Engine, Hbb, Image, ModelConfig, Processor, Ts, Xs, X, Y};
use crate::{elapsed, Config, DynConf, Engine, Hbb, Image, Processor, Ts, Xs, X, Y};
#[derive(Debug, Builder)]
pub struct PicoDet {
@ -19,7 +19,7 @@ pub struct PicoDet {
}
impl PicoDet {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let (batch, height, width, ts) = (
engine.batch().opt(),

View File

@ -2,7 +2,7 @@ use aksr::Builder;
use anyhow::Result;
use crate::{
elapsed, DType, Device, Engine, Image, ModelConfig, Processor, Scale, Task, Ts, Version, Xs, X,
elapsed, Config, DType, Device, Engine, Image, Processor, Scale, Task, Ts, Version, Xs, X,
};
#[derive(Debug, Builder)]
@ -27,7 +27,7 @@ impl BaseModelVisual {
self.ts.summary();
}
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let err_msg = "You need to specify the image height and image width for visual model.";
let (batch, height, width, ts, spec) = (
@ -103,7 +103,7 @@ impl BaseModelTextual {
self.ts.summary();
}
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let (batch, ts, spec) = (
engine.batch().opt(),

View File

@ -3,7 +3,7 @@ use anyhow::Result;
use ndarray::Axis;
use rayon::prelude::*;
use crate::{elapsed, Engine, Image, ModelConfig, Prob, Processor, Ts, Xs, Y};
use crate::{elapsed, Config, Engine, Image, Prob, Processor, Ts, Xs, Y};
#[derive(Debug, Builder)]
pub struct ImageClassifier {
@ -19,16 +19,16 @@ pub struct ImageClassifier {
ts: Ts,
}
impl TryFrom<ModelConfig> for ImageClassifier {
impl TryFrom<Config> for ImageClassifier {
type Error = anyhow::Error;
fn try_from(config: ModelConfig) -> Result<Self, Self::Error> {
fn try_from(config: Config) -> Result<Self, Self::Error> {
Self::new(config)
}
}
impl ImageClassifier {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let spec = engine.spec().to_string();
let (batch, height, width, ts) = (

View File

@ -1,7 +1,7 @@
use crate::NAMES_COCO_91;
/// Model configuration for `RT-DETR`
impl crate::ModelConfig {
impl crate::Config {
pub fn rfdetr() -> Self {
Self::default()
.with_name("rfdetr")

View File

@ -3,7 +3,7 @@ use anyhow::Result;
use ndarray::{s, Axis};
use rayon::prelude::*;
use crate::{elapsed, DynConf, Engine, Hbb, Image, ModelConfig, Processor, Ts, Xs, Y};
use crate::{elapsed, Config, DynConf, Engine, Hbb, Image, Processor, Ts, Xs, Y};
#[derive(Debug, Builder)]
pub struct RFDETR {
@ -19,7 +19,7 @@ pub struct RFDETR {
}
impl RFDETR {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let (batch, height, width, ts) = (
engine.batch().opt(),

View File

@ -1,5 +1,5 @@
/// Model configuration for `RMBG`
impl crate::ModelConfig {
impl crate::Config {
pub fn rmbg() -> Self {
Self::default()
.with_name("rmbg")

View File

@ -1,7 +1,7 @@
use aksr::Builder;
use anyhow::Result;
use crate::{elapsed, Engine, Image, Mask, ModelConfig, Ops, Processor, Ts, Xs, Y};
use crate::{elapsed, Config, Engine, Image, Mask, Ops, Processor, Ts, Xs, Y};
#[derive(Builder, Debug)]
pub struct RMBG {
@ -15,7 +15,7 @@ pub struct RMBG {
}
impl RMBG {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let spec = engine.spec().to_string();
let (batch, height, width, ts) = (

View File

@ -1,7 +1,7 @@
use crate::NAMES_COCO_80;
/// Model configuration for `RT-DETR`
impl crate::ModelConfig {
impl crate::Config {
pub fn rtdetr() -> Self {
Self::default()
.with_name("rtdetr")

View File

@ -3,7 +3,7 @@ use anyhow::Result;
use ndarray::{s, Axis};
use rayon::prelude::*;
use crate::{elapsed, DynConf, Engine, Hbb, Image, ModelConfig, Processor, Ts, Xs, X, Y};
use crate::{elapsed, Config, DynConf, Engine, Hbb, Image, Processor, Ts, Xs, X, Y};
#[derive(Debug, Builder)]
pub struct RTDETR {
@ -19,7 +19,7 @@ pub struct RTDETR {
}
impl RTDETR {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let (batch, height, width, ts) = (
engine.batch().opt(),

View File

@ -1,5 +1,5 @@
/// Model configuration for `RTMO`
impl crate::ModelConfig {
impl crate::Config {
pub fn rtmo() -> Self {
Self::default()
.with_name("rtmo")

View File

@ -2,7 +2,7 @@ use aksr::Builder;
use anyhow::Result;
use ndarray::Axis;
use crate::{elapsed, DynConf, Engine, Hbb, Image, Keypoint, ModelConfig, Processor, Ts, Xs, Y};
use crate::{elapsed, Config, DynConf, Engine, Hbb, Image, Keypoint, Processor, Ts, Xs, Y};
#[derive(Builder, Debug)]
pub struct RTMO {
@ -18,7 +18,7 @@ pub struct RTMO {
}
impl RTMO {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let spec = engine.spec().to_string();
let (batch, height, width, ts) = (

View File

@ -1,7 +1,7 @@
use crate::{models::SamKind, ModelConfig};
use crate::{models::SamKind, Config};
/// Model configuration for `Segment Anything Model`
impl ModelConfig {
impl Config {
pub fn sam() -> Self {
Self::default()
.with_name("sam")

View File

@ -4,8 +4,7 @@ use ndarray::{s, Axis};
use rand::prelude::*;
use crate::{
elapsed, DynConf, Engine, Image, Mask, ModelConfig, Ops, Polygon, Processor, SamPrompt, Ts, Xs,
X, Y,
elapsed, Config, DynConf, Engine, Image, Mask, Ops, Polygon, Processor, SamPrompt, Ts, Xs, X, Y,
};
#[derive(Debug, Clone)]
@ -49,7 +48,7 @@ pub struct SAM {
}
impl SAM {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let encoder = Engine::try_from_config(&config.encoder)?;
let decoder = Engine::try_from_config(&config.decoder)?;

View File

@ -1,7 +1,7 @@
use crate::ModelConfig;
use crate::Config;
/// Model configuration for `SAM2.1`
impl ModelConfig {
impl Config {
pub fn sam2_1_tiny() -> Self {
Self::sam()
.with_encoder_file("sam2.1-hiera-tiny-encoder.onnx")

View File

@ -3,7 +3,7 @@ use anyhow::Result;
use ndarray::{s, Axis};
use crate::{
elapsed, DynConf, Engine, Image, Mask, ModelConfig, Ops, Processor, SamPrompt, Ts, Xs, X, Y,
elapsed, Config, DynConf, Engine, Image, Mask, Ops, Processor, SamPrompt, Ts, Xs, X, Y,
};
#[derive(Builder, Debug)]
@ -20,7 +20,7 @@ pub struct SAM2 {
}
impl SAM2 {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let encoder = Engine::try_from_config(&config.encoder)?;
let decoder = Engine::try_from_config(&config.decoder)?;
let (batch, height, width) = (

View File

@ -1,7 +1,7 @@
use crate::NAMES_BODY_PARTS_28;
/// Model configuration for `Sapiens`
impl crate::ModelConfig {
impl crate::Config {
pub fn sapiens() -> Self {
Self::default()
.with_name("sapiens")

View File

@ -2,7 +2,7 @@ use aksr::Builder;
use anyhow::Result;
use ndarray::{s, Array2, Axis};
use crate::{elapsed, Engine, Image, Mask, ModelConfig, Ops, Polygon, Processor, Task, Ts, Xs, Y};
use crate::{elapsed, Config, Engine, Image, Mask, Ops, Polygon, Processor, Task, Ts, Xs, Y};
#[derive(Builder, Debug)]
pub struct Sapiens {
@ -18,7 +18,7 @@ pub struct Sapiens {
}
impl Sapiens {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let spec = engine.spec().to_string();
let (batch, height, width, ts) = (

View File

@ -1,5 +1,5 @@
/// Model configuration for `SLANet`
impl crate::ModelConfig {
impl crate::Config {
pub fn slanet() -> Self {
Self::default()
.with_name("slanet")

View File

@ -2,7 +2,7 @@ use aksr::Builder;
use anyhow::Result;
use ndarray::{s, Axis};
use crate::{elapsed, models::BaseModelVisual, Image, Keypoint, ModelConfig, Ts, Xs, Y};
use crate::{elapsed, models::BaseModelVisual, Config, Image, Keypoint, Ts, Xs, Y};
#[derive(Builder, Debug)]
pub struct SLANet {
@ -19,7 +19,7 @@ impl SLANet {
self.ts.summary();
}
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let base = BaseModelVisual::new(config)?;
let spec = base.engine().spec().to_owned();
let sos = 0;

View File

@ -1,5 +1,5 @@
/// Model configuration for `SmolVLM`
impl crate::ModelConfig {
impl crate::Config {
pub fn smolvlm() -> Self {
Self::default()
.with_name("smolvlm")

View File

@ -3,7 +3,7 @@ use anyhow::Result;
use image::GenericImageView;
use ndarray::s;
use crate::{Engine, Image, LogitsSampler, ModelConfig, Processor, Scale, Ts, Xs, X, Y};
use crate::{Config, Engine, Image, LogitsSampler, Processor, Scale, Ts, Xs, X, Y};
#[derive(Debug, Builder)]
pub struct SmolVLM {
@ -32,7 +32,7 @@ pub struct SmolVLM {
}
impl SmolVLM {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let vision = Engine::try_from_config(&config.visual)?;
let text_embed = Engine::try_from_config(&config.textual)?;
let decoder = Engine::try_from_config(&config.textual_decoder_merged)?;

View File

@ -1,5 +1,5 @@
/// Model configuration for `SVTR`
impl crate::ModelConfig {
impl crate::Config {
pub fn svtr() -> Self {
Self::default()
.with_name("svtr")

View File

@ -3,7 +3,7 @@ use anyhow::Result;
use ndarray::Axis;
use rayon::prelude::*;
use crate::{elapsed, DynConf, Engine, Image, ModelConfig, Processor, Ts, Xs, Y};
use crate::{elapsed, Config, DynConf, Engine, Image, Processor, Ts, Xs, Y};
#[derive(Builder, Debug)]
pub struct SVTR {
@ -18,7 +18,7 @@ pub struct SVTR {
}
impl SVTR {
pub fn new(config: ModelConfig) -> Result<Self> {
pub fn new(config: Config) -> Result<Self> {
let engine = Engine::try_from_config(&config.model)?;
let (batch, height, width, ts) = (
engine.batch().opt(),

View File

@ -1,7 +1,7 @@
use crate::Scale;
/// Model configuration for `TrOCR`
impl crate::ModelConfig {
impl crate::Config {
pub fn trocr() -> Self {
Self::default()
.with_name("trocr")

Some files were not shown because too many files have changed in this diff Show More