Multiview images
Last updated
Was this helpful?
Last updated
Was this helpful?
Multiview mode is a feature that allows you to view and annotate multiple images simultaneously. It is especially useful when you need to label objects from different perspectives, 3D reconstruction images, Autonomous vehicle camera views or depth estimation task images. Labeling in multiview mode can significantly increase the speed of the labeling process (for example, you don't need to switch between images and select a desired class to label the same object)
Just organize images into groups and drop them to the import. The app will do the rest: it will detect groups, tag images, and activate grouping and multiview modes in the project settings.
Note: To use the multiview import feature, you need to create a project with the Multiview image annotation
setting enabled. You can also enable this setting in the project settings after the import. Here is an illustration of how to upload multiview images:
Enterprise users have access to "Import as links" option, which supports import of this format with annotations. This option might be beneficial in many cases, as it allows data import to Supervisely platform without re-uploading, maintaining a single source and speeding up import process.
To step up import speed even further you can compress all annotation files (.json
's) into an archive and import it together with the images. (Note: This method is format-dependent and may not apply to all formats.)
Supported image formats: .jpg
, .jpeg
, .mpo
, .bmp
, .png
, .webp
, .tiff
, .tif
, .jfif
, .avif
, .heic
, and .heif
With annotations: Yes
Annotation types: Tags in Supervisely format
Grouped by: Folders (corresponding tags will be assigned to images)\
🏷️ NEW: Upload multiview project with grouped labels
All images in groups in the created project will be tagged
Images Grouping
option will be turned on by default in the created project
Images will be grouped by tag's value
Tag value is defined by the group directory name
Works with .nrrd
image format (2D only)
1. Prepare structure:
Archive zip
, tar
, tar.xz
, tar.gz
Folder
Structure explained:
An archive must contain only 1 project directory.
Inside the project directory must be 1 dataset directory.
Group directories must be populated with images and placed inside the dataset directory. All images inside the group will be tagged with folder name value.
All images in the root dataset directory will be uploaded as regular images and will not be tagged.
🏷️ NEW: Supervisely Project Folder or Archive with label groups
This type of structure will work only if you have the required data in the files:
All images must be tagged with a group tag of the same value.
All necessary labels must be tagged with a label group tag of the same value.
The project settings in meta.json
must contain a multiView
section with the correct data.
Recommended structure
Annotation explained:
Below is the annotation for each image, for example 106_1.jpeg.json
. Only the lines of interest are shown; other lines are omitted, but the structure is preserved.
For an image group, an image must be tagged with the multiview
tag (in our example) and assigned a value that represents the group, such as 106
.
For a label group, an object (label) must be tagged with the @label-group-id
tag and assigned a value that represents the group. For example head-light
Meta explained
Required setting for the project to import as multiview. Also shown only lines of interest.
Image Labeling Tool Interface
1 Multiview group
2 Labeling group
We prepared sample datasets for you to try the import process:
images: download ⬇️
NRRD: download ⬇️
To display single images switch off Images Grouping
setting.
If you want to disable images grouping for the whole project, go to Project
→ Settings
→ Visuals
and uncheck
Windowing tool is available when working with .nrrd
files. It helps to filter pixels to see bones, air, liquids etc.
Images view synchronization
Automate processes with multiview images using Supervisely Python SDK.
You can learn more about it in our Developer Portal, but here we'll just give you a quick examples of how you can get started with multiview images.
The following code snippets demonstrate how you can upload your multiview images with just a few lines of code.
In the example above we uploaded two groups of multiview images. Before or after uploading images, we also need to enable image grouping in the project settings.\
Available starting from version v6.73.236
of the Supervisely Python SDK.
If you already have images in your project and you want to group them for multiview, you can group them by your own logic. By default, images will be grouped by the value of the multiview
tag. You can change the tag name by passing the multiview_tag_name
argument.
Here is an example of how you can do it with just a few lines of code.
If the tag does not exist, it will be created automatically.
If multiview mode is not enabled in the project settings, it will be enabled automatically.
Let's consider a more complex example. For instance, you have a project with several datasets containing images and you want to group them by dataset name. Here is an example of how you can do it.
We recommend grouping images in batches of 6-12 images (depending on the size of your display).
Available starting from version v6.73.293
of the Supervisely Python SDK.
There are many cases when you need to group labels together. For example, if you have some labels captured from different perspectives that represent one object on different images and you want to analyze the object as a whole and not as separate instances, you can join them into a single group.
Label group - is a simple group of objects, that displays the relationship between objects and helps you to quickly locate the object on different images and to avoid labeling the same object multiple times.
Using the api.annotation.append_labels_group
method, you can upload labels as a group to images.
Let's group it all together and upload local images and labels to Supervisely using this method.
Our sample data directory structure:
⬇️ You can download this sample here: data.zip
Follow the code below to upload images and labels to Supervisely.
Result:
Synchronization OFF
Synchronization ON