Geospatial Computer Vision

Run models on planet scale data in near-real time

inference on satellite images is hard

Satellite images are huge. They might be hundreds of thousands of pixels in each dimension.
Typical computer vision model can be applied to an image of up to a couple of thousands of pixels. One can split an image into chunks (tiles), run a model on each of them and then combine results together. Right?

Unfortunately in reality things are a bit more complicated…

- Most important: if we want to make accurate predictions we need to make tiles overlap. Otherwise there is a big chance to make a mistake during processing of objects shared across tiles. This makes the process of stitching results much more complicated compared to naive one. Namely we will need to resolve collisions across adjacent tiles (remove duplicate predictions, stitch partial predictions).
- Image may have different spatial resolution compared to what model expects. For example model was trained on 1 m/pixel images, but request contains 0.5 m/pixel raster
- Image may have unusual projection (for example resolution along x-axis differs from resolution along y-axis)
- Nobody wants to store collections of tiles and manage them (keeping on a distributed file system and copying them back and forth?). Even more - different models work on different spatial resolutions. So one may end up storing multiple collections of tiles in different spatial resolutions...
- Likely it will take unreasonable amount of time to process a huge raster on a single machine (yes, even on powerful machine)

Our platform takes care of the complexities and more. It allows you to focus on what matters for you by removing the engineering part.

Create your model and run it at scale using our API

Want to give it a try? Drop email at to get a free access key.

try beta api