---
title: "Annotation Files"
description: "File format of LumiScan Annotation Web: CSV with the oriented boxes, JSON save history, annotator versions and settings, identical to the desktop tool."
product: "LumiScan Annotation Web"
component: "lumiscan-annotation-web"
version: "2.2.0"
display_version: "2.2.0.0"
latest_version: false
language: "en"
url: "https://docs.hdvisionsystems.com/en/lumiscan-annotation-web/2.2.0/annotation-files.html"
---

# Annotation Files – LumiScan Annotation Web

The files are byte-identical to those of the desktop tool LumiScan Annotation, so LumiScan Training and every other tool that reads them work unchanged.

## Next to each image

For an image `<name>.png`:

|   |   |
| --- | --- |
| `<name>.csv` | The boxes (reference annotation): one line per box. |
| `<name>.json` | The save history: who saved when. |

### CSV: the boxes

Tab-separated, with a header line, one line per box:

```none
 centerX	 centerY	   width	  height	angleRad	   label	metadata
 +1106.6	  +149.1	   +68.3	   +59.0	  +0.857	     nut	    null
  +681.4	  +613.1	  +210.6	   +64.8	  +2.512	 bracket	    null
```

|   |   |
| --- | --- |
| `centerX`, `centerY` | Centre of the box in image pixels; x to the right, y downwards from the top left corner of the image. |
| `width` | Along the box’s own x axis, in pixels. |
| `height` | Along the box’s own y axis, in pixels. |
| `angleRad` | Rotation in radians, clockwise in image coordinates. 0: the top of the box points up. The bottom edge (drawn green) is the edge at +height/2. |
| `label` | The class of the object. |
| `metadata` | Additional data as compact JSON, `null` if none. |

Numbers have a sign and one decimal (angle: three), right-aligned in 8 characters; label and metadata are right-aligned in 8 characters too. Line endings as the desktop tool writes them: CRLF on Windows, LF on Linux.

### JSON: the save history

An array with one entry per save:

```json
[
    {
        "user": "anna",
        "timestamp": 1794009447,
        "imageName": "part_003.png",
        "annotationName": "part_003.csv"
    },
    {
        "user": "david",
        "timestamp": 1794009449,
        "imageName": "part_003.png",
        "annotationName": "part_003.csv"
    }
]
```

`timestamp` is the time of the save in seconds since 1970-01-01 UTC (Unix time).

`auto-consensus` marks a reference written automatically because all annotators agreed.

## Several annotators per image

The annotators' own versions are kept apart, so training does not read them:

```none
<folder>/.annotations/<name>/<user>.tsv        an annotator's version (same format as the CSV)
<folder>/.annotations/<name>/consensus.json   who decided the reference, when
```

## Project settings

`<project folder>/.lumiscan-annotation/settings.json`: labels, region of interest, box line thickness, several annotators per image, box suggestions. The keys `labels` and `roiSettings` are those of the desktop tool’s `settings.json`.

## What is kept in the database

Everything else is in the server’s database: accounts, sessions, projects and members, the history of every saved version, revision notes and an index of the images. See [Backup and Restore](https://docs.hdvisionsystems.com/en/lumiscan-annotation-web/2.2.0/backup-and-restore.html).
