/SAMJS

Primary LanguageTypeScriptMIT LicenseMIT

JS SDK for SAM

Rapid development of image segmentation front-end applications inspired by SAM DEMO

this enhanced front-end library provides a seamless solution for loading fixed image or geoImages and their corresponding .npy file embeddings. It empowers you to run the SAM ONNX model in the browser using Web Assembly, while leveraging multi-threading capabilities, SharedArrayBuffer, Web Worker, and SIMD128 to achieve optimal performance.

Features

  • easy to use
  • JS library support Multiple Front-End Frameworks,react/vue/angular
  • worker in browser
  • support RS Image segment
  • support export vector
  • support export GeoJSON Polygon

demo

Installation

Using npm or yarn

We recommend using npm or yarn to install, it not only makes development easier, but also allow you to take advantage of the rich ecosystem of Javascript packages and tooling.

npm install @antv/sam

# or

yarn add @antv/sam

Usage

import SAM

import { SAM } from '@antv/sam';

1.new a SAM instance

const sam = new SAM({
  modelUrl: MODEL_DIR, // the ONNX model
});

2. 初始化 Model,

await sam.initModel(); // async method
// or
sam.initModel().then(() => {
  // do something
});

3. setEmbedding

get imageEmbedding from sam service.

sam.setEmbedding(imageEmbedding);

4. set image

sam.setImage(imageUrl | HTMLImageElement); // use to clip image

5. predict by promopts points or box

sam.predict(position); //  async method