Add SAM UI Demo (#854)

* fix tensor flattening

* send image data back

* sam ui worker example

* SAM example

* resize container

* no need for this
This commit is contained in:
Radamés Ajna
2023-09-14 22:31:58 -07:00
committed by GitHub
parent 5cefbba757
commit 39157346cb
4 changed files with 609 additions and 2 deletions

View File

@ -98,7 +98,7 @@ impl Model {
Some((x, y)),
false,
)?;
let iou = iou_predictions.to_vec1::<f32>()?[0];
let iou = iou_predictions.flatten(0, 1)?.to_vec1::<f32>()?[0];
let mask_shape = mask.dims().to_vec();
let mask_data = mask.ge(0f32)?.flatten_all()?.to_vec1::<u8>()?;
let mask = Mask {
@ -106,7 +106,13 @@ impl Model {
mask_shape,
mask_data,
};
let json = serde_json::to_string(&mask)?;
let image = Image {
original_width: embeddings.original_width,
original_height: embeddings.original_height,
width: embeddings.width,
height: embeddings.height,
};
let json = serde_json::to_string(&MaskImage { mask, image })?;
Ok(json)
}
}
@ -117,6 +123,18 @@ struct Mask {
mask_shape: Vec<usize>,
mask_data: Vec<u8>,
}
#[derive(serde::Serialize, serde::Deserialize)]
struct Image {
original_width: u32,
original_height: u32,
width: u32,
height: u32,
}
#[derive(serde::Serialize, serde::Deserialize)]
struct MaskImage {
mask: Mask,
image: Image,
}
fn main() {
console_error_panic_hook::set_once();