Computer vision · API / SDK

Viam Vision Service

Viam

Return detections, classifications or point-cloud objects from camera data.

Official documentationDownload development spec

VIAM / DEVELOPER FIELD GUIDE

Choose an interface. Define a verifiable result.

Company or project context, ten technical entry points and a practical analysis of every reference.

2026-10-08 · Integration not tested

Company / project overview

Original summary of official company or project statements; use the source for the full original page.

Viam · About
OriginsViam states it was founded in 2020 by MongoDB co-founder Eliot Horowitz.
PositioningA software platform for building, deploying and managing robotics applications and fleets.
Company footprintThe company identifies New York City as its headquarters and robotics-lab location, with an international team.
Our fit assessmentA candidate for connecting inspection cameras, model services and fleet data; actual models, processing location and quality depend on configuration.
Complete official About page ↗
About reference — TA analysis
AudienceBuyers, partners and product owners shortlisting an AI provider.
Our assessmentUse positioning and company history for initial fit. Obtain project-specific deployment, support and commercial terms separately.

Official About and Python SDK references read on 2026-10-08. The main Vision guide could not be retrieved, so this guide uses the published SDK contract; verify compatibility with your installed SDK/runtime/module versions.

Top 10 technical entry points

Ten documented interfaces, operations or tools selected by integration task; not an official ranking or ten separate SDKs.

Choose by the work you need to complete
InterfacePurpose and audience
01 · RobotClient connectionPython clientConnect to a machine and discover its named resources.Edge / robotics backend engineer
02 · Camera acquisitionCamera APIRetrieve named images and capture metadata from a configured camera.Camera integrator / image pipeline
03 · Vision capabilitiesCapability queryQuery supported vision operations.Integration architect
04 · Image detectionsVision operationReturn labels, scores and boxes for an image.Inspection UI developer
05 · Image classificationsVision operationReturn requested image classifications.Visual triage / ML integrator
06 · Combined camera captureVision operationRequest images and selected vision outputs together.Live visualisation developer
07 · MLModel tensor inferenceModel-service APIRead model metadata and pass named tensors for inference.ML deployment engineer
08 · ViamImage media adapterImage representationRepresent image bytes, MIME type and dimensions.Media / backend engineer
09 · DataClient retrievalCloud data APIFilter and paginate stored binary data and metadata.Data engineering / fleet analytics
10 · Custom resource moduleRuntime extensionRun custom resources as a module service.Edge platform / custom model developer

Reference analysis

Capabilities summarize official documentation. Constraints and proposed tests are our engineering assessment.

01

Python client

RobotClient connection

RobotClient connection · TA
Target audienceEdge / robotics backend engineer
Documented capabilityConnect to a machine and discover its named resources.
Input → outputMachine address and credentials → resource connection
Execution environmentClient-to-machine communication via Viam runtime.
Our decision constraintThe right credential can still target the wrong machine; retain machine identity.
Our suggested validationVerify resource names, disconnected behavior and connection cleanup.
Official reference · RobotClient connection ↗
02

Camera API

Camera acquisition

Camera acquisition · TA
Target audienceCamera integrator / image pipeline
Documented capabilityRetrieve named images and capture metadata from a configured camera.
Input → outputCamera source selection → images and metadata
Execution environmentConfigured camera driver and Viam runtime.
Our decision constraintMultiple images can represent different imagers, not a temporal video sequence.
Our suggested validationValidate source identity, timestamp, resolution and capture failures.
Official reference · Camera acquisition ↗
03

Capability query

Vision capabilities

Vision capabilities · TA
Target audienceIntegration architect
Documented capabilityQuery supported vision operations.
Input → outputService → capability flags
Execution environmentConfigured service.
Our decision constraintDo not enable a UI action just because a method exists in the SDK.
Our suggested validationUse a classifier-only fixture and verify detection is unavailable.
Official reference · Vision capabilities ↗
04

Vision operation

Image detections

Image detections · TA
Target audienceInspection UI developer
Documented capabilityReturn labels, scores and boxes for an image.
Input → outputImage → detections
Execution environmentConfigured detector.
Our decision constraintOur adapter must choose pixel or normalized units explicitly.
Our suggested validationCheck frame identity, box bounds and absence of unintended actuations.
Official reference · Image detections ↗
05

Vision operation

Image classifications

Image classifications · TA
Target audienceVisual triage / ML integrator
Documented capabilityReturn requested image classifications.
Input → outputImage and count → classes and scores
Execution environmentConfigured classifier.
Our decision constraintA class result alone cannot locate a defect or justify machine control.
Our suggested validationCompare known categories and keep unfamiliar samples for review.
Official reference · Image classifications ↗
06

Vision operation

Combined camera capture

Combined camera capture · TA
Target audienceLive visualisation developer
Documented capabilityRequest images and selected vision outputs together.
Input → outputCamera and return flags → optional result fields
Execution environmentConfigured camera/service.
Our decision constraintPreserve unrequested null fields separately from requested empty arrays.
Our suggested validationFor every frame verify requested flags and matching overlay data.
Official reference · Combined camera capture ↗
07

Model-service API

MLModel tensor inference

MLModel tensor inference · TA
Target audienceML deployment engineer
Documented capabilityRead model metadata and pass named tensors for inference.
Input → outputInput tensor map → output tensor map
Execution environmentSelected ML model service implementation.
Our decision constraintShape, dtype, channel order and normalization must match model metadata.
Our suggested validationUse a fixed tensor fixture and reject a deliberately wrong shape before rollout.
Official reference · MLModel tensor inference ↗
08

Image representation

ViamImage media adapter

ViamImage media adapter · TA
Target audienceMedia / backend engineer
Documented capabilityRepresent image bytes, MIME type and dimensions.
Input → outputEncoded bytes and MIME → ViamImage
Execution environmentPython media representation.
Our decision constraintA declared MIME type does not validate corrupted bytes or color order.
Our suggested validationDecode a known image and compare dimensions and orientation before detection.
Official reference · ViamImage media adapter ↗
09

Cloud data API

DataClient retrieval

DataClient retrieval · TA
Target audienceData engineering / fleet analytics
Documented capabilityFilter and paginate stored binary data and metadata.
Input → outputBounded filter and cursor → records and next cursor
Execution environmentViam cloud data access; distinct from direct camera inference.
Our decision constraintEmpty filters can be broad; downloads and metadata-only reads have different cost and exposure.
Our suggested validationStart with machine/time filters and metadata-only; verify pagination has no skipped records.
Official reference · DataClient retrieval ↗
10

Runtime extension

Custom resource module

Custom resource module · TA
Target audienceEdge platform / custom model developer
Documented capabilityRun custom resources as a module service.
Input → outputResource implementation → registered runtime service
Execution environmentModule process beside the Viam runtime.
Our decision constraintA loaded process is not proof that hardware or weights are ready.
Our suggested validationExercise startup readiness, missing weights, reconfiguration and clean shutdown.
Official reference · Custom resource module ↗

Viam Python SDK

Viam Python SDK · Supporting reference analysis
TAPlatform engineer: installation, runtime and connection prerequisites.
Our validation advicePin SDK/runtime/module versions and check target OS transport support; SDK installation alone does not configure cameras or models.
Official reference · Viam Python SDK ↗

Primary developer documentation

Primary developer documentation · Supporting reference analysis
TAEngineers choosing the supported API and installed version.
Our validation adviceMatch the operation and version to the specific references above before implementation. The illustrative output is an internal application contract.
Official reference · Primary developer documentation ↗

04 / INPUT · EXPECTED OUTPUT · ACCEPTANCE

Expected results before implementation

Illustrative camera-inspection result only; no connection, image capture, inference or physical action was performed.

Illustrative contract · no API call or model execution · not measured provider output

Known marked frame

Expected behavior — illustrative, not executed
InputA 640×480 fixture with a declared service and frame ID.
Expected resultok; one bounded box and matching frame_ref.
AcceptanceNo cross-frame overlay or implicit unit conversion.

Valid empty detection

Expected behavior — illustrative, not executed
InputDetector succeeds on a no-target fixture.
Expected resultok; detections=[]; unrequested classifications=null.
AcceptanceEmpty remains distinct from not requested and unavailable.

Camera offline

Expected behavior — illustrative, not executed
InputConfigured camera cannot deliver a frame.
Expected resulterror; data=null; camera_unavailable.
AcceptanceNo stale frame silently treated as current success.

Wrong capability

Expected behavior — illustrative, not executed
InputRequest detections from a classification-only service.
Expected resulterror; data=null; unsupported_capability.
AcceptanceValidate capabilities before scheduling repeated requests.

Map the expected result to your application

Before implementation identify the machine, camera, vision service, model revision and permitted data path. This JSON is an internal expected envelope, not Viam’s native response. Coordinate and confidence values are invented fixtures.

Expected output JSON — illustrative, not measured · ViamVision-expected-results.json
{
  "schema_version": "1.0.0",
  "provider": "Viam",
  "status": "ok",
  "example": true,
  "contract_origin": "Smart Tools illustrative internal contract; not a provider response",
  "input": {
    "machine_ref": "example-cell-A",
    "camera_ref": "example-camera-1",
    "service_ref": "example-detector",
    "frame_ref": "example-frame-101",
    "image_size_pixels": [
      640,
      480
    ],
    "requested": [
      "image",
      "detections"
    ]
  },
  "data": {
    "frame_ref": "example-frame-101",
    "detections": [
      {
        "label": "surface_mark",
        "score": 0.88,
        "box_xyxy_pixels": [
          64,
          48,
          192,
          144
        ]
      }
    ],
    "classifications": null,
    "actuation_requested": false
  },
  "error": null
}
Download specification, example and acceptance plan
Engineering handoff — our proposed contract and gates
Input requirementsRequire authorized machine access, valid camera/service names, supported detection capability and a decodable frame.
Expected successReturn detections with frame identity and explicit coordinate units; preserve the configured model revision separately.
Expected emptyRequested detections=[] is a valid empty result; classifications=null means not requested in this contract.
Expected failureCamera offline, unsupported capability, bad credentials or deadline failure return status=error and data=null.
AcceptanceFor a 640×480 fixture validate box bounds, frame correlation and the distinction among empty, unrequested and failed results.
LimitationsNo measured accuracy or latency. A surface-mark label is not a certified defect, and this contract sends no actuation command.
Data and runtimeInspect module implementation to establish where inference happens; data-cloud capture/sync is a separate configuration decision.

Related route to assess: Roboflow

Development assessment

Camera perception adapter

Development concept · integration not tested

Provider capabilities above are based on official documentation or repositories. The proposed product, inputs, deliverable and acceptance criteria below are our development assessment.

Integration pilot

Validate runtime, schemas or hardware together before estimating a deployable product.

Proposed inputs
A small authorized image dataset, task definition and reference annotations.
Proposed deliverable
A reviewable result with image references, labels or annotation state; keep original files.
Acceptance criterion
Compare the supported operation against a labeled sample; report errors and missing results separately.
Dependencies
Dataset access, image rights and a supported model or annotation project.

Development sequence

  1. Confirm access to Viam Vision Service, license and the exact supported version.
  2. Prepare the sample above and implement one documented operation for “Camera perception adapter”.
  3. Normalize the result with source, time and explicit error state; keep the provider response for review.
  4. Run the acceptance criterion before estimating rollout effort or committing a customer deliverable.

How to validate demand

Record product views, documentation clicks, specification downloads and contextual hub clicks. These are event counts, not unique people or completed integrations.

This feasibility assessment uses implementation conditions. No traffic-based rank or delivery-time promise is assigned.

Related products