Map Annotation Tool

A video demo is available for the Map Annotation Tool.

To sign up for the Map Annotation tool, contact the NVIDIA Isaac Mapping team and provide the following information:

  1. Email address

  2. User name

  3. Name of the company or organization

The NVIDIA Isaac Mapping team will create an account for the user, usually within 24 hours. You will then receive an email from no-reply-deepmap@nvidia.com with the initial password and user name. You can log in to the tool hosted at https://robotictools.deepmap.com/labeling/login

The first time you log in, you will be required to change the password.

Through the main page, select one of the maps or click on the “ADD MAP” button to create one:

Note

You don’t need to add a map if your map has been created by NVIDIA.

10000201000000E000000046CE8BD32D72932B3D.png

100002010000080000000200E8951A751B5DE21A.png

Description box will pop up. Enter name (Note: it needs to be unique) and description and click the “SUBMIT” button to create it.

10000201000003D40000021486BAA72A8FE61F13.png

For any given map, a tile shall be created or selected:

Tile Page:

1000020100000800000001E5F46652D586890215.png

Create the tile for the map:

Note

You don’t need to add a tile if your map has been created by NVIDIA.

  • Click the ADD TILE button to open the ADD TILE dialog:

10000201000000E0000000400B182B36CC754277.png

100002010000045600000600C6E1A994B738B407.png

  • Fill out these fields:

    • Tile Image: 2D occupancy map

    • Map UUID:

      • Type: String

      • Description: When you create the map in the Map Page, it will generate this ID for the map.

    • Tile Index:

      • Type: String

      • Description: The tile index of the map. Since there is currently only one tile per floor per map, the first two values will always be 0, and the third value is the floor number: For example, on the first floor, the index is “0,0,0”, and on the second floor, it will be “0,0,1”.

  • The following fields are optional:

    • Pixel Resolution Meter:

      • Type: float

      • Default: 0.05

      • Description: Any pixel with a value smaller than this threshold is considered occupied; usually, this is set to the pixel value of the unknown (gray) pixel.

    • Occupancy Threshold:

      • Type: integer

      • Default: 125

      • Description: The threshold used to identify if a cell is occupied or not. If the pixel value is less than this threshold, it is occupied; otherwise, it is free If the pixel value is equal to this threshold, it means an unknown(unmapped) range between [0 to 255].

  • Click the SUBMIT button to create the tile and close the dialog.

In the Tile page, each row of the non-released semantic tile has an Edit icon button. Click it to open the Tile Edit Dialog. If the tile has a map image, it will be displayed, along with a list of buttons to edit, upload, and download the map image.

  • UPLOAD TILE IMAGE: Uploads a .png file to overwrite the current map image.

    Note

    You don’t need to erase the noise if your map was created by NVIDIA.

    Note

    We recommend backing up the current map image before overwriting it.

  • MANUAL ERASE NOISE: When the image is uploaded, you can use the feature to erase black spots which are not needed (e.g. obstacles that can be moved away or noise caused during acquisition).

    1. Click the MANUAL ERASE NOISE button.

    2. Use the mouse to paint the area to be cleared. The size of the brush can be adjusted by the slider below. You can use the CLEAR button to clear all painted areas.

    3. Click the CONFIRM button to save the image.

    Note

    Since this tool will directly change the uploaded images, make sure to keep an initial backup locally.

  • DOWNLOAD IMAGE: Downloads the map image as a .png file.

1000020100000800000003AD3A253CB6FE6FBAE2.png

Selection

1000020100000056000000404004AD9AE1583B16.png

  • Hotkey: “S”

  • You can use it to select the feature. The selected one will become green and it will show the info on the left top.

  • Ex:

    10000201000008000000034FE6221D9C692FB532.png

  • Multiple Selection

    • Hold the “Shift” key to do the multiple selection.

Modify Polygon

10000201000000440000003C455022717D9B7B48.png

  • Hotkey: “M”

  • Use the Select tool to select the feature first. It only supports one feature at a time.

  • Click the Modify tool. It will show the vertices of the selected feature.

  • 100002010000039400000246A6F1D7E39A87D0DC.png
  • Users can drag the vertex to change the polygon shape.

  • Snapping the vertex.

    • Hold the “Shift” key when dragging the vertex.

    • When the cursor closes to the other feature’s vertex, it will change the cursor style and auto snap the vertex to the vertex.

  • Auto add association.

    • Once updated the vertex, the system will check the feature and automatically add/remove the associations.

Draw Polygon

100002010000003E000000387105CB96588776E6.png

  • Hotkey: “P”

  • Click this button, it will enable the draw polygon feature.

  • It will allow users to click arbitrary points until they click the “Enter” key or click the first point.

  • Generate the polygon by these points.

  • Note:

    • Each polygon needs to have at least three points.

Export

100002010000003C000000380FC32025CEF8FEC1.png

  • Hotkey: “Shift + E”

  • Click it to download all the features in this map to a Geojson file.

  • Note:

    • This button is used to copy and paste the exsiting features to another empty tile with the same map image. The download file can only be used by the “Import” function below and can not be used as the release file.

Import

100002010000003C0000003AFB52A8293CCB3AB8.png

  • Hotkey: “Shift + I”

  • Click it to import the features from the selected Geojson file.

Preview

map_annotation_image_2.png

  • Hotkey: “Shift + P”

  • Click to preview the polygons after processing.

Multiple Delete

100002010000003E0000003AE354AF5CBE6657C8.png

  • Hotkey: “Shift + D”

  • It will delete all the selected features.

Feature Info Card

10000201000001E60000015E9DC29B8A90672F68.png

Single Delete

  • Click the “DELETE” button to delete the selected feature.

Edit Config

  • Click The “EDIT CONFIG” button to edit the selected feature’s configuration.

Feature Config

After creating the polygon feature, it will popup a config dialog. Users need to set feature type (Category), name and customized attributes for this feature.

new_feature_edit_dialog.png

Feature Types (Category)

  • OBJECT_TYPE_UNKNOWN

    • This type can not be selected. It will be auto selected if users try to create a feature with invalid type.

  • NAVIGABLE_SURFACE

    • Its polygon can not have overlapping with the other NAVIGABLE_SURFACE type polygon.

  • OBSTACLE

  • STAIRS

  • ELEVATOR

  • DOCKING_STATION

  • ROOM

    • Its polygon can not have overlapping with the other ROOM type polygon.

  • ZONE

    • Its polygon can not have overlapping with the other ZONE type polygon.

  • ENTRANCE

SubType

This field will only show up for the NAVIGABLE_SURFACE.

  • General

  • Corridor

  • Ramp

Other

  • Name

    • Optional

    • Give name to help filter or search later.

  • Moveable

    • Default: False

    • Check the box If this object can be moved/removed.

  • Inaccessible

    • Default: true for Obstacle type. False for the other types.

    • Check the box if this object can not be accessed.

  • Customized Attributes:

    • This is a String to String key-value pair.

    • Users can give arbitrary key-value pairs here for different purposes.

  • Cancel Button

    • It will close the dialog and also remove the polygon.

    • Click “ESC” is the same as clicking “Cancel Button”.

  • Submit Button

    • It can only be clicked if the validation passes or click the force created checkbox.

      • Force create checkbox

        100002010000032400000086447E30FCB4FD868D.png

        • It will only show up if it does not pass the validation.

    • After clicking it, it will create/update a semantic object with the given config and drawing polygon.

Labeling Note (Correct way vs. Wrong way)

Obstacle type can not cut Navigable Surface type to multiple pieces.

  • Wrong:

100002010000029E000001E280751D13F915CED0.png

  • Correct:

10000201000002D000000174E9DA3147505D6ADD.png

10000201000002B40000013C3A1995898754E7DD.png

Navigable Surface Type can only have shared edges with the other Navigable Surface types. (Same for the Zone/Room type).

  • Correct:

100002010000017200000156DE6C1FA6B33A5CCE.png

  • Wrong:

10000201000001C0000001A427AFEAC8D8FA7F69.png

How to check if navigable surfaces have a shared edge?

  • If it has a shared edge between navigable surfaces, it will have an

    association line between them. Otherwise, it may have overlapping or does not share all nodes on the edge.

When the tile is done labeling, users need to release it to generate the release version. The system will perform preprocessing (cut obstacles from navigable surfaces and do validation) for the labeling data, save it in SemanticMapTile proto format, and provide a JSON file for download. The downstream user can use the download file to support robotics applications. Once the tile is released, the content becomes immutable. The user can create a new version and update in the new version.

In the Tile page, there is a Release icon button for each row.

1000020100000044000000428A1517A45BDD6894.png

  • Click it to open a release dialog.

    10000201000002B2000003284133AE73116ED976.png

  • Automatically process the labeling data.

  • Show the result map to let users verify.

    • Shared Edge:

      • Mark as the blue line.

    • Isolated Polygon:

      • The obstacles not fully contained by the navigable surface will be cut off from the navigable surface.

  • If it does not look good, click CANCEL button and go to the back labeling page to update it.

  • If it looks good, click the RELEASE button.

    • It will mark the tile data as released and can not be updated again.

    • Close the dialog.

  • Download the released version.

    • After the tile is released, the Release button will become the Download button for row of released tiles in the Tile page. Click the Download button to open the download dialog, which is similar to release dialog. Click the DOWNLOAD button in the dialog to download the SemanticMapTile data as a json file.

      10000201000002AC0000032A258B4680721CD78E.png

    • The system will generate a unique ID to identify the released version.

After the tile is released, it will lock the current tile version so it cannot not be edited or labelled. To edit the tile, you will need to create a new tile version that derives from the current released version.

In the Tile page, the released semantic tile row will display a Derive a new Tile Version button. Click it to derive a new tile version from the released tile version. Once the new version is created, you can also expand the tile row to see the history of old tile versions.

© Copyright 2018-2023, NVIDIA Corporation. Last updated on Oct 23, 2023.