Camera health monitoring API

Check for camera views too damaged, blocked or blurred to monitor.

What it detects

Flag unusable camera views for maintenance.

Detection
Severe corruption, blockage, blur, or black or blank output makes the view unusable for monitoring people and activity.
Outside the definition
The scene can still be monitored. A few lines, small glitches, noise, glare or low resolution alone do not count.

Send a camera image.

Set KIRKWOOD_API_KEY on your server. Save a frame as frame.jpg.

Python POST /v1/analyze
import base64
import json
import os
import urllib.request

with open("frame.jpg", "rb") as frame:
    image = base64.b64encode(frame.read()).decode()

body = json.loads('''{
  "images": [
    "<BASE64_JPEG>"
  ],
  "tags": [
    "camera_issue"
  ],
  "detections": {
    "return_boxes": true
  }
}''')
body["images"] = [image]
request = urllib.request.Request(
    "https://app.kirkwood.ai/v1/analyze",
    data=json.dumps(body).encode(),
    headers={
        "Authorization": "Bearer " + os.environ["KIRKWOOD_API_KEY"],
        "Content-Type": "application/json",
    },
    method="POST",
)
with urllib.request.urlopen(request, timeout=120) as response:
    print(json.dumps(json.load(response), indent=2))

Read the result

The camera_issue tag returns an answer and probability. Use it to route a frame to a camera maintenance queue.

Camera setup

Include healthy low-resolution footage and small glitches as comparisons. Test views that are fully blocked, severely blurred or corrupted.

Try it on your footage.

Upload an image and select “Camera issue”. Run analysis.

Approved account required. Analysis uses credit. Images are retained for annotation and training.

Open the live Playground

API pricing

Billed per image analyzed. Contact us for your rate.

Request pricing

Before you integrate

A few lines, noise or glare do not count if the scene can still be monitored. A disconnected camera that sends no frame needs a separate heartbeat check.

Will a few bad pixels trigger a camera issue?

That is outside the tag’s positive definition. The view must be materially unusable for monitoring people and activity.

API guide