This Dockerfile sets up an environment for using the Pointcloud Labeler.
- Point Labeler: A tool for manually labeling point clouds.
-
Clone this repository:
git clone --recurse-submodules https://github.com/AIR-UFG/pointcloud_labeler.git cd pointcloud_labeler
-
Build the Docker image:
docker build -t pointcloud_labeler Docker
If you face any issues with the zoom functionality, build the Docker image with the following command:
docker build --build-arg ZOOM_ISSUE=true -t pointcloud_labeler Docker
This will apply the workaround for the zoom issue. For more information, refer to the Zoom Issue section.
-
Run the Docker container:
To run the Docker container, utilize the provided run script with the following parameters:
./run.sh pointcloud_labeler --rm [--nvidia]
<image-name>
: The name you assigned to the Docker image during the build process.--rm
: Automatically remove the container when it exits.--nvidia
: Run the container with NVIDIA GPU support.
After running the container, a shared-dir
folder will be created within the repository directory.
This folder is linked to the /root/shared-dir
directory within the container. You can use this folder to share files between the host and the container, such as point cloud data or labeled data.
-
Prepare Point Cloud Data:
Place your dataset in the
shared-dir
folder. -
Run Point Labeler:
- Within the container, navigate to the Point Labeler's bin directory and run the Point Labeler:
cd /root/point_labeler/bin ./labeler
- Open the
/root/dataset/sequences/XX/
folder you want to annotate inside the Point Labeler to start labeling the point cloud.
For more information on how to use the Point Labeler, please refer to the Tutorial we provided or the official Point Labeler documentation.
- Within the container, navigate to the Point Labeler's bin directory and run the Point Labeler:
- An alias are added to facilitate common commands:
labeler
: Launches the Point Labeler tool.
- The
run.bash
script launches the Docker container with appropriate configurations for GUI display and volume mounts.
While using the tool, it was observed that zooming with the mouse wheel may not function correctly, depending on the specific mouse model and the operating system version. As stated in Issue with Zooming Using the Mouse Wheel #84 on the official repository, the author has indicated no current plans to address UX improvements.
With this in mind, our team implemented a workaround by modifying a portion of the code in the function responsible for handling zoom.
If you are interested in applying the same solution, simply replace the Viewport.cpp
file located at /root/point_labeler/src/widget/Viewport.cpp
with the Viewport.cpp
file located in the Docker/files
folder.
The modification essentially updates the wheelEvent
function by normalizing the delta value within the if
block as follows:
if (!numPixels.isNull()) {
delta = numPixels.y() / 120.f; // solution
} else if (!numDegrees.isNull()) {
delta = numDegrees.y() / 15.f;
}
It is important to note that this change may alter the intended behavior of the tool. Use it only if you are experiencing issues with zoom functionality.
- This Dockerfile is based on instructions by Armin Niedermueller.
- Point Cloud Labeling Tool was created by Jens Behley.