Skip to content

Releases: jamjamjon/usls

v0.0.19

09 Oct 16:39
57db14c
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.0.18...v0.0.19

Model Demo
Depth Anything v1-s (512 x 512)
Depth Anything v2-s (512 x 512)
Depth Pro (1536 x 1536)

v0.0.18

05 Oct 09:55
1d59638
Compare
Choose a tag to compare

What's Changed

  • Add support for restricting detection classes by @jamjamjon in #45

Full Changelog: v0.0.17...v0.0.18

v0.0.17

01 Oct 02:02
0102c15
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.0.16...v0.0.17

v0.0.16

28 Sep 02:46
f2c4593
Compare
Choose a tag to compare

What's Changed

More Detailed

  • Add with_device() for Options. Now you can use:

    let options = Options::new().with_device(Device::Cuda(2));
    
    // or
    let options = Options::new().with_cuda(2);
  • Add .with_ixx to simplify model building with Options.

    // before
    let options = Options::new()
        .with_i00((1, 2, 4).into())
        .with_i02((416, 640, 800).into())
        .with_i03((416, 640, 800).into());
    
    // now
    let options = Options::new()
      .with_ixx(0, 0, (1, 2, 4).into())
      .with_ixx(0, 2, (416, 640, 800).into())
      .with_ixx(0, 3, (416, 640, 800).into());

    Note: The above only applies to models with dynamic shapes. If your model does not have dynamic shapes, you do not need to call this interface. Additionally, if you are not using TensorRT, you can modify .with_ixx(0, 0, (1, 2, 4).into()) to .with_ixx(0, 0, 2.into()), or you can use .with_batch_size(2) to uniformly set the batch size for all inputs.

  • Update MinOptMax struct. Data type changed from isize to usize. You can create it like:

    let default_mom = MinOptMax::default(); // min = opt = max = 1
    let ones_mom = MinOptMax::ones(); // min = opt = max = 1
    let zeros_mom = MinOptMax::zeros(); // min = opt = max = 0
    let from_i32: MinOptMax = MinOptMax::from(-5); // min = opt = max = 0
    let from_i64: MinOptMax = MinOptMax::from(-3); // min = opt = max = 0
    let from_u32: MinOptMax = MinOptMax::from(4u32); // min = opt = max = 4
    let from_u64: MinOptMax = MinOptMax::from(7u64); // min = opt = max = 7
    let from_usize: MinOptMax = MinOptMax::from(10); // min = opt = max = 10
    let from_isize: MinOptMax = MinOptMax::from(-1isize); // min = opt = max = 0
    let from_f32: MinOptMax = MinOptMax::from(-2.0); // min = opt = max = 0
    let from_f64: MinOptMax = MinOptMax::from(3.9); // min = opt = max = 4
    let tuple_mom: MinOptMax = MinOptMax::from((1, 2, 3)); // min = 1, opt = 2, max = 3
    let array_mom: MinOptMax = [1, 2, 3].into(); // min = 1, opt = 2, max = 3
  • Add Viewer for image displaying and video saving

let mut viewer = Viewer::new().with_delay(10).with_scale(1.).resizable(true);

// iteration
for (xs, _) in dl {
    // inference & annotate
    let ys = model.run(&xs)?;
    let images_plotted = annotator.plot(&xs, &ys, false)?;

    // show image
    viewer.imshow(&images_plotted)?;

    // check out window and key event
    if !viewer.is_open() || viewer.is_key_pressed(usls::Key::Escape) {
        break;
    }

    // write video
    viewer.write_batch(&images_plotted)?;
}

// finish video write
viewer.finish_write()?;

v0.0.15

21 Sep 13:30
f0fd493
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.0.14...v0.0.15

Demo

Task Demo
Caption-To-Phrase-Grounding
Ocr-With-Region
Dense-Region-Caption
Object-Detection
Region-Proposal
Referring-Expression-Segmentation

v0.0.14

16 Sep 03:20
0adddd3
Compare
Choose a tag to compare

What's Changed

  • Added Hub for resource management

    <tag/filename> is from release page, e.g. yolo/v5-n-dyn.onnx, images/bus.jpg
  Hub::new()?.fetch(<tag/filename>)?.commit()?;
  • Updated DataLoader to support video and streaming

    let dl = DataLoader::new(
            "./assets/bus.jpg", // local image
            // "images/bus.jpg",  // remote image
            // "../images", // image folder
            // "../demo.mp4",   // local video
            // "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",  // remote video
            // "rtsp://admin:xyz@192.168.2.217:554/h265/ch1/",  // rtsp h264 stream
        )?
        .with_batch(4)
        .with_progress_bar(true)
        .with_bound(100)
        .build()?;
        
        // run
        for (xs, _) in dl {
            // std::thread::sleep(std::time::Duration::from_millis(1000));
            let ys = model.forward(&xs, false)?;
            annotator.annotate(&xs, &ys);
        }
  • Updated CI

  • Replaced println! with tracing for logging

Full Changelog: v0.0.13...v0.0.14

v0.0.13

02 Sep 16:19
9b969b9
Compare
Choose a tag to compare

v0.0.12

31 Aug 09:21
f6755a8
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.0.11...v0.0.12

v0.0.11

27 Aug 12:18
f25f5cf
Compare
Choose a tag to compare

What's Changed

  • ONNXRuntime -> 1.19.0
  • CUDA -> 12.x
  • TensorRT -> 10.x

Full Changelog: v0.0.10...v0.0.11

v0.0.10

11 Aug 03:19
b81b5e3
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.0.8...v0.0.10