Package: scalabel
Scalabel(pronounced "sca⋅label") is a versatile and scalable annotation platform, supporting both 2D and 3D data labeling.BDD100Kis labeled with this tool.Documentation|Overview Video|Discussion|ContributorsMain featuresCreating a new annotation projectImage tagging2D bounding box detection and tracking annotation2D polygon/polyline and tracking annotation3D bounding box detection and tracking annotation on point cloudsReal-time session synchronization for seamless collaborationSemi-automatic annotation with label pre-loadingPython API for label handling and visualizationQuick StartTry Scalabel on your local machinegitclonehttps://github.com/scalabel/scalabelcdscalabel

chmod+xscripts/setup_ubuntu.shscripts/setup_osx.shscripts/setup_local_dir.sh# Or run scripts/setup_osx.sh for MacOS.scripts/setup_ubuntu.sh
.scripts/setup_local_dir.sh
npmrunserveOpen your browser and go tohttp://localhost:8686to use Scalabel. You can check our projectconfiguration examplesto create some sample projects.We also provide docker image to avoid installing the libraries. To pull the image:dockerpullscalabel/wwwLaunch the server through dockerdockerrun-it-v"`pwd`/local-data:/opt/scalabel/local-data"-p\8686:8686-p6379:6379scalabel/www\nodeapp/dist/main.js\--config/opt/scalabel/local-data/scalabel/config.yml\--max-old-space-size=8192The Python API can be installed throughpip:python3-mpipinstall-UscalabelFor other operating systems or if you wish to use the Docker image, please refer to theinstallation guide.Creating a new annotation projectSupporting importing popular data formats such as 2D images and 3D point cloudsConvenient data uploading using integrated or multiple configuration files for items, categories, and attributesDivide a project into multiple tasks using variable task sizesCreating a project consists of filling in the fields that specify the task, data type, and other parameters such as the task size. Item lists, categories, and attributes must be in theScalabel formatwhen uploaded.Image taggingImages can be tagged with multiple attributes. Categories include weather, scene, and time of day as defaults, but can be freely customised.2D bounding box detection and tracking annotationSimple click-and-drag area selectionGroup boxes into a wide range of categoriesProvides extra configurable options such as occlusion, truncation, and traffic light coloursTracking between keyframesCreate bounding boxes by selecting an area on the canvas. Bounding boxes can be freely adjusted and moved around. Categories and attributes of the bounding boxes can be customised. Bounding boxes can be linked between frames if the object disappears and reappears in subsequent frames. Linked bounding boxes are colour-coded to indicate the link.Bounding boxes are interpolated between keyframes if the position, orientation, or scale of the bounding boxes differ. This is useful for tracking objects that move between keyframes.2D polygon/polyline and tracking annotationChoosing between closed paths for image segmentation or open paths for lane markingSupporting bezier curves for precise annotation for round objectsTracking interpolation between keyframesClick on multiple points on the canvas to generate vertices of a polygon. Click on the first vertex to close the polygon. Vertices can be moved around, and new vertices can be added by clicking on the midpoint of the line segment between two vertices. Creating bezier curves is also supported for smoother labeling of curved objects.Polylines can be created for lane marking. They support the same functions as polygons, but do not have to be closed.Polygons are interpolated between keyframes if the position, orientation, or scale of the polygons differ. This is useful for tracking objects that move between keyframes.3D bounding box detection and tracking annotation on point cloudsMulti-sensor view for side-by-side comparison with corresponding 2D imagesSimple four-point click to generate 3D bounding boxesSupporting undo and panning functions during annotation for added precisionTracking interpolation between keyframesClick on the canvas to define the length, breadth, and height of the 3D bounding box. There is an in-built ground plane prediction that aligns the 3D bounding box with the ground. Bounding boxes can be freely adjusted and moved around. Categories and attributes of the bounding boxes can be customised. Bounding boxes can be linked between frames if the object disappears and reappears in subsequent frames. Linked bounding boxes are colour-coded to indicate the link.Bounding boxes are interpolated between keyframes if the position, orientation, or scale of the bounding boxes differ. This is useful for tracking objects that move between keyframes.Real-time session synchronization for seamless collaborationMultiple sessions can be initialised by opening new windows or tabs. Each session synchronises its changes in labels and tags with the other sessions in real-time. Tracking changes are also updated in real-time as well.Semi-automatic annotation with label pre-loadingDeep learning models can be used to assist annotation for large batches of data. New models can be trained on a subset of the data, and the remaining data can be uploaded for Scalabel to label automatically. The labels can be preloaded in the backend and can also be manually adjusted in the interface.Python API for label handling and visualizationProviding conveniencescriptsfor converting from and to other popular formats, such as COCO, KITTI, WaymoSupportingevaluationof various tasks with the Scalabel formatImage taggingDetectionPose estimationInstance segmentationSemantic segmentationPanoptic segmentationBoundary detectionBounding box trackingSegmentation trackingContains avisualizerto easily visualize annotations as well as model predictions in Scalabel formatPython backend provides a convenient API for label handling and visualization. For compatibility with Scalabel's interface, datasets can be converted to the appropriate formats via scripts. Algorithms can be evaluated for each task by uploading the predictions and corresponding ground truth annotations in the Scalabel format. The labels can be easily visualised using the Python interface.ContributorsScalabel is currently supported byETH VIS Group.Many contributorshave contributed to the project.