> For the complete documentation index, see [llms.txt](https://docs.multiset.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.multiset.ai/fundamentals/rest-api-docs/camera-intrinsics.md).

# Camera Intrinsics

Estimate focal length, principal point and optional distortion from one to five images of a scene, for cameras with no factory calibration.

Estimate a camera's **intrinsic parameters** (focal length and principal point, with optional lens distortion) from one to five images of the same scene. Use it as a prior when you don't have factory calibration data for a camera.

{% hint style="info" %}
All images in a single request must come from the **same camera at the same resolution**. Sending 1–5 images of the same scene improves the estimate. Images of different resolutions (or from different cameras) are rejected.
{% endhint %}

### Camera Intrinsics API

Make a `POST` request to **`/v1/vps/camera-intrinsics`** with your authentication token. The request is `multipart/form-data`:

* **`images`**: 1 to 5 image files (field name `images`). Each file must be an image and **≤ 15 MB**.
* **`cameraModel`**: optional string, one of `pinhole` (default), `simple_radial`, `radial`, `simple_divisional`. Use a distortion model (`simple_radial` / `radial` / `simple_divisional`) for wide-angle or fisheye lenses.

The endpoint is synchronous and returns the estimated intrinsics in the response.

#### Sample Request

```bash
curl -X POST "https://api.multiset.ai/v1/vps/camera-intrinsics" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -F "images=@frame_01.jpg" \
  -F "images=@frame_02.jpg" \
  -F "cameraModel=pinhole"
```

#### Sample Response

```json
{
    "requestId": "b1c2d3e4-....",
    "cameraModel": "pinhole",
    "imageCount": 2,
    "intrinsics": { "fx": 1462.3, "fy": 1462.3, "px": 960.0, "py": 540.0 },
    "resolution": { "width": 1920, "height": 1080 },
    "focalUncertainty": 12.4,
    "focalUncertaintyRatio": 0.0085,
    "distortion": null
}
```

### Reading the Result

* **`intrinsics.fx` / `intrinsics.fy`**: focal length in pixels. **`px` / `py`**: the principal point (image centre).
* **`resolution`**: the pixel dimensions the intrinsics correspond to. If you resize the image, scale the intrinsics by the same factor.
* **`focalUncertainty`** / **`focalUncertaintyRatio`**: the estimate's uncertainty in pixels and as a fraction of `fx`. Lower is more confident.
* **`distortion`**: present only when a distortion model is requested and coefficients are returned; `null` for `pinhole`.

{% hint style="warning" %}
This is a **prior/estimate**, not a substitute for a full calibration target. Treat the result as a good starting point that a downstream process can refine.
{% endhint %}

{% openapi src="/files/c9LGlr2GJL4BlKVHq2ap" path="/vps/camera-intrinsics" method="post" %}
[camera-intrinsics.yaml](https://3163433004-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FokTDI7QVY04Zvb1pQ8Ry%2Fuploads%2Fgit-blob-8467843fe3cd7dd90e313d3028ea732e325fb6bb%2Fcamera-intrinsics.yaml?alt=media)
{% endopenapi %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.multiset.ai/fundamentals/rest-api-docs/camera-intrinsics.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
