sparsemask / README.md
mhassanch's picture
Update README.md
934c17a verified
---
tags:
- geospatial
- geobase
- land-cover-classification
license: mit
---
| <img src="https://upload.wikimedia.org/wikipedia/commons/6/6a/JavaScript-logo.png" width="28" height="28"> | [GeoAi](https://www.npmjs.com/package/geoai) |
|---|---|
> `task = land-cover-classification`
### 🛠 Model Purpose
This model is part of the **[GeoAi](https://github.com/decision-labs/geoai.js)** javascript library.
**GeoAi** enables geospatial AI inference **directly in the browser or Node.js** without requiring a heavy backend.
**GeoAi** pipeline accepts **geospatial polygons** as input (in GeoJSON format) and outputs results as a **GeoJSON FeatureCollection**, ready for use with libraries like **Leaflet** and **Mapbox GL**.
<video controls autoplay loop width="1024" height="720" src="https://geobase-docs.s3.amazonaws.com/geobase-ai-assets/land-cover-classification.mp4"></video>
---
### 🚀 Demo
Explore the model in action with the interactive [Demo](https://docs.geobase.app/geoai-live/tasks/land-cover-classification).
### 📦 Model Information
- **Architecture**: [SparseMask](https://github.com/wuhuikai/SparseMask)
- **Source Model**: https://github.com/cliffbb/oem-lightweight
- **Quantization**: Yes
---
> **Note:** This model only works if the input imagery contains both RGB and NIR bands.
### 💡 Example Usage
```javascript
import { geoai } from "geoai";
// Example polygon (GeoJSON)
const polygon = {
type: "Feature",
properties: {},
geometry: {
coordinates: [
[
[-99.98170823334205, 50.64318249608178],
[-99.9806018185983, 50.6431476272638],
[-99.9807117895183, 50.642403469489295],
[-99.98256386074388, 50.64247150726101],
[-99.98170823334205, 50.64318249608178]
],
],
type: "Polygon",
},
} as GeoJSON.Feature;
// Initialize pipeline
const pipeline = await geoai.pipeline(
[{ task: "land-cover-classification" }],
providerParams
);
// Run detection
const result = await pipeline.inference({
inputs: { polygon }
});
// Sample output format
// {
// "detections": [
// {type: 'FeatureCollection', features: Array(6)},
// {type: 'FeatureCollection', features: Array(43)},
// {type: 'FeatureCollection', features: Array(6)},
// {type: 'FeatureCollection', features: Array(3)},
// {type: 'FeatureCollection', features: Array(11)},
// {type: 'FeatureCollection', features: Array(36)},
// {type: 'FeatureCollection', features: Array(0)},
// {type: 'FeatureCollection', features: Array(9)}
// ]
// "outputimage": GeoRawImage {data: Uint8ClampedArray(1048576), width: 512, height: 512, channels: 4, bounds: {…}, …}
// }
```
### 📖 Documentation & Demo
- GeoBase Docs: https://docs.geobase.app/geoai
- NPM Package: https://www.npmjs.com/package/geoai
- Demo Playground: https://docs.geobase.app/geoai-live/tasks/land-cover-classification
- GitHub Repo: https://github.com/decision-labs/geoai.js