Computer Vision Model Deployment | Beam

Deploy computer vision models at scale

Serve detection, segmentation, and classification models behind managed API endpoints. Send images as URLs, base64, or file payloads — Beam scales the GPUs underneath.

frame 0348 · 30fpsperson 0.44vehicle 0.24pallet 0.6

Serve any computer vision model

Image ingestion, warm weights, burst scaling, and batch backfills — handled by the platform, not your team.

Send images any way

Endpoints accept URLs, base64 payloads, or file uploads — whatever fits your client.
Explore docs

Warm weights per container

on_start loads the model once per container so requests skip straight to inference.
Explore docs

Scale with request volume

Autoscaling adds containers as traffic grows and drops to zero when it stops — no capacity planning.
Explore docs

Batch over image archives

Backfill millions of images by fanning the same function out across containers with .map().
Explore docs

CPU or GPU per model

Run small detectors on fractional CPUs and reserve GPUs for heavy segmentation — priced per second either way.
Explore docs

Per-second billing

Pay for compute while frames are being processed — never for idle capacity between bursts.
Explore docs

“We would not have been able to get our API running and win our first enterprise contract without Beam.”
Daniel Heinen
Co-founder, GeoSpy
Read the case study

3Minference requests in one month

99.9%production uptime

100sof requests per minute at peak

Run computer vision models at scale

01

Wrap your model

YOLO, DETR, SAM, or a custom classifier — load it in on_start and declare the hardware inline.

02

Deploy the endpoint

beam deploy returns an authenticated HTTPS URL with autoscaling already wired up.

03

POST images, get predictions

Send a URL or file payload and get structured detections back as JSON.

terminal

$ beam deploy app.py:detect
=> Deployed 🎉
=> https://object-detection-abc123.app.beam.cloud

$ curl -X POST https://object-detection-abc123.app.beam.cloud  
    -H 'Authorization: Bearer YOUR_TOKEN'  
    -d '{"image_url": "https://example.com/warehouse.jpg"}'

{"detections": [
  {"label": "forklift", "confidence": 0.94, "box": [102, 44, 380, 291]}
]}

Frequently asked questions

How do I send images to the endpoint?+

Three ways: pass a URL for the container to fetch, base64-encode the image into the JSON body, or send the file directly using Beam's file payload support.

Which vision models work?+

Anything that runs in Python — YOLO and ultralytics models, DETR, SAM, CLIP, or vision-language models via transformers.

Can I process video?+

Yes. For long videos, deploy the job as a task queue: split into frames or segments inside the container, process on GPU, and get a webhook when results are ready.

What about latency-sensitive applications?+

Use keep_warm_seconds to hold containers hot, and pick a GPU close to your model's size. Cold boots take seconds and you're never billed for them.

Do small models need a GPU at all?+

Often not. Beam lets you request fractional CPUs for lightweight models and attach a GPU only where it pays for itself.

How do I run several vision models side by side?+

Deploy each model as its own endpoint with its own dependencies, hardware, and scaling settings — Beam scales them independently. Deployments are versioned, so rolling back a misbehaving model takes one click. GeoSpy manages multiple production vision models this way.