3D Bounding Box Annotation Tool 2.0 (3D-BAT 2.0): Labeling of 3D LiDAR Point Clouds and Camera Images
git clone https://github.com/walzimmer/bat-3d.git
sudo apt-get install npm
bat-3d
in PHP Storm.cd bat-3d
.bat-3d/input/
folder.npm install
index.html
with chromium-browser (Linux) or Chrome (Windows) within the IDE. Right click on index.html -> Open in Browser -> Chrome/Chromium
Reference: https://arxiv.org/abs/1905.00525
Link: https://www.youtube.com/watch?v=gSGG4Lw8BSU
To annotate your own data, follow this steps:
bat-3d/input/waymo
)input/waymo/20210103_waymo
input/waymo/20210104_waymo
input/waymo/20210103_waymo/annotations
(this folder will contain the downloaded annotations)
input/waymo/20210103_waymo/pointclouds
(place your point cloud scans (in .pcd
ascii format) here)
input/waymo/20210103_waymo/pointclouds_without_ground
(optional: Remove the ground using the scripts/nuscenes_devkit/python-sdk/scripts/export_pointcloud_without_ground_nuscenes.py
script to use the checkbox “Filter ground”. Change the threshold of -1.7 to the height of the LiDAR sensor.)
input/waymo/20210103_waymo/images
(optional: For each camera image, create a folder: e.g. CAM_BACK
, CAM_BACK_LEFT
, CAM_BACK_RIGHT
, CAM_FRONT
, CAM_FRONT_LEFT
, CAM_FRONT_RIGHT
)
Make sure, that the LiDAR scan file names follow this naming format 000000.pcd, 000001.pcd, 000002.pcd
and so on. Same for image file names: 000000.png, 000001.png, 000002.png
) and the annotation file names: 000000.json, 000001.json, 000002.json
).
true
in js/base_label_tool.js
:pointCloudOnlyAnnotation: true
Key | Description | |
---|---|---|
![]() |
Toggle view (3D view/Bird’s-Eye-View) | |
![]() |
Move forward in 3D view (TODO) | |
![]() |
Move left in 3D view (TODO) | |
![]() |
Move backward in 3D view (TODO) | |
![]() |
Move right in 3D view (TODO) | |
![]() |
Move down in 3D view (TODO) | |
![]() |
Move up in 3D view (TODO) | |
![]() |
Enlarge camera image | |
![]() |
Next frame | |
![]() |
Previous frame | |
![]() |
Interpolate | |
![]() ![]() |
Snap to grid in 0.5m steps (floor alignment mode) | |
![]() |
Enable/Disable Translation mode | |
![]() |
Move selected object forward (TODO) | |
![]() |
Move selected object to left (TODO) | |
![]() |
Move selected object backward (TODO) | |
![]() |
Move selected object to right (TODO) | |
![]() |
Move selected object down (TODO) | |
![]() |
Move selected object up (TODO) | |
![]() |
Enable/Disable Rotation mode | |
![]() |
Rotate selected object counter-clock-wise (TODO) | |
![]() |
Rotate selected object clock-wise (TODO) | |
![]() |
Enable/Disable Scaling mode | |
![]() |
Increase length along longitudinal axis (y-axis) (TODO) | |
![]() |
Decrease length along longitudinal axis (y-axis) (TODO) | |
![]() |
Decrease width along lateral axis (x-axis) (TODO) | |
![]() |
Increase width along lateral axis (x-axis) (TODO) | |
![]() ![]() |
Increase height along vertical axis (z-axis) (TODO) | |
![]() ![]() |
Decrease height along vertical axis (z-axis) (TODO) | |
![]() |
Increase arrow size | |
![]() |
Decrease arrow size | |
![]() |
Show/Hide X-axis | |
![]() |
Show/Hide Y-axis | |
![]() |
Show/Hide Z-axis (only in 3D mode) | |
![]() |
Switch between different operation modes (translate, rotate, scale) (TODO) | |
![]() |
Select next object (TODO) | |
![]() ![]() |
Delete selected object (TODO) | |
![]() |
Marking mode (TODO) | |
![]() |
Move orientation of object counter-clock-wise (TODO) | |
![]() |
Move orientation of object clock-wise (TODO) | |
![]() |
Select class CAR (TODO) | |
![]() |
Select class Truck (TODO) | |
![]() |
Select class Motorcycle (TODO) | |
![]() |
Select class Bicycle (TODO) | |
![]() |
Select class Pedestrian (TODO) | |
![]() |
On a 2D/3D object: Show bounding box | |
On a camera image: Enlarge/Shrink camera image (TODO) | ||
On ego vehicle: Show field-of-view (TODO) | ||
![]() ![]() |
||
![]() |
Reset all selected bounding boxes (TODO) | |
![]() |
Full Screen Mode | |
![]() |
Play video (TODO) | |
![]() |
Keyboard navigation (only in 3D view) (TODO) | |
![]() |
Toggle Lighting (TODO) | |
![]() ![]() |
Label random color (TODO) | |
![]() ![]() |
Label class color (TODO) | |
![]() |
Show/Hide trajectory (TODO) | |
![]() ![]() |
Save current screen into file (requires request to server) (TODO) | |
![]() ![]() |
Download annotation file (TODO) | |
![]() ![]() |
Undo operation (TODO) | |
![]() ![]() |
Redo operation (TODO) | |
![]() ![]() |
Close tab (exit) | |
![]() |
Show/Hide grid (TODO) | |
![]() |
Toggle aggregated pointcloud (TODO) | |
![]() |
Hide all labels except selected object (Press again to show all labels) (TODO) | |
![]() |
Show keyboard shortcuts | |
![]() |
Unselect box (TODO) | |
Quit fullscreen cam image (TODO) | ||
![]() ![]() |
Copy bounding box (by dragging) (TODO) |
Hints:
Copy label to next frame
checkbox if you want to keep the label (position, size, class) for next framebat-3d/input/<DATASET>/<SEQUENCE>/annotations
For every bounding box, include one of the following labels:
Car: Vehicle designed primarily for personal use, e.g. sedans, hatch-backs, wagons, vans, mini-vans, SUVs, jeeps and pickup trucks (a pickup truck is a light duty truck with an enclosed cab and an open or closed cargo area; a pickup truck can be intended primarily for hauling cargo or for personal use).
Truck: Vehicles primarily designed to haul cargo including lorrys, trucks.
Motorcycle: Gasoline or electric powered 2-wheeled vehicle designed to move rapidly (at the speed of standard cars) on the road surface. This category includes all motorcycles, vespas and scooters. It also includes light 3-wheel vehicles, often with a light plastic roof and open on the sides, that tend to be common in Asia (rickshaws). If there is a rider and/or passenger, include them in the box.
Bicycle: Human or electric powered 2-wheeled vehicle designed to travel at lower speeds either on road surface, sidewalks or bicycle paths. If there is a rider and/or passenger, include them in the box.
Pedestrian: An adult/child pedestrian moving around the cityscape. Mannequins should also be annotated as Pedestrian
.
Bounding Box color convention in example images:
Vehicle designed primarily for personal use, e.g. sedans, hatch-backs, wagons, vans, mini-vans, SUVs and jeeps.
If it is primarily designed to haul cargo it is a truck.
Vehicles primarily designed to haul cargo including lorrys, trucks, pickup truck (a pickup truck is a light duty truck with an enclosed cab and an open or closed cargo area; a pickup truck can be intended primarily for hauling cargo or for personal use).
Gasoline or electric powered 2-wheeled vehicle designed to move rapidly (at the speed of standard cars) on the road surface. This category includes all motorcycles, vespas and scooters. It also includes light 3-wheel vehicles, often with a light plastic roof and open on the sides, that tend to be common in Asia (rickshaws).
If there is a pedestrian standing next to the motorcycle, do NOT include in the annotation.
Human or electric powered 2-wheeled vehicle designed to travel at lower speeds either on road surface, sidewalks or bicycle paths.
If there is a pedestrian standing next to the bicycle, do NOT include in the annotation
An adult/child pedestrian moving around the cityscape.
Mannequins should also be treated as pedestrian.
Copyright © 2019 The Regents of the University of California
All Rights Reserved. Permission to copy, modify, and distribute this tool for educational, research and non-profit purposes, without fee, and without a written agreement is hereby granted, provided that the above copyright notice, this paragraph and the following three paragraphs appear in all copies. Permission to make commercial use of this software may be obtained by contacting:
Office of Innovation and Commercialization
9500 Gilman Drive, Mail Code 0910
University of California
La Jolla, CA 92093-0910
(858) 534-5815
innovation@ucsd.edu
This tool is copyrighted by The Regents of the University of California. The code is supplied “as is”, without any accompanying services from The Regents. The Regents does not warrant that the operation of the tool will be uninterrupted or error-free. The end-user understands that the tool was developed for research purposes and is advised not to rely exclusively on the tool for any reason.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS TOOL, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE TOOL PROVIDED HEREUNDER IS ON AN “AS IS” BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.