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

# Camera Intrinsics

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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://multiset.gitbook.io/multiset/basics/rest-api-docs/camera-intrinsics.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
