How To Use 3D Object Interpolation To Speed Up Point Cloud Annotation for LiDAR & Radar
The complete guide on 3D bounding box interpolation in point cloud episodes in Supervisely.
Table of Contents
Labeling process in 3D point clouds can be time-consuming and difficult. To automate 3D object annotation process you can follow tutorial on using state-of-the-art 3D object tracking model MBPTrack.
But if object’s motion trajectory is not very complicated, then you can significantly speed up data labeling process with the help of interpolation. In this tutorial you will learn about interpolation in point clouds and how to do it in Supervisely.
Follow this step-by-step video guide to learn how to use 3D object interpolation tool for labeling point cloud episodes (sequences) in Supervisely Platform.
What is interpolation?
Interpolation is a process of finding unknown intermediate values of some function from the available discrete set of its known values. There are many variants of interpolation. The simplest one is linear interpolation. If you have 2 data points, linear interpolation will be a straight line between these 2 points.
Linear and spline interpolations
To get linear interpolation of a set of data points, you need to concatenate linear interpolation between each pair of available data points. The result will look like a continuous curve. Linear interpolation is pretty simple and computationally cheap, but it is not very accurate in some scenarios.
Unlike linear interpolation, which uses a linear function for each of intervals [Xk, Xk+1], spline interpolation applies low-degree polynomials to find missing data points, and selects the polynomial pieces such that they fit smoothly together. The resulting function will be a piecewise polynomial called a spline.
Compared to linear interpolation, spline interpolation allows to get smoother interpolation and smaller interpolation error. That's why we decided to use it in our app.
How to run 3D bounding box interpolation in Supervisely
It is possible to interpolate between data points not only in 2D space, but also in 3D space. Let's assume that you have a number of point cloud episodes and want to label them with with bounding boxes. Labeling every single point cloud from scratch can be very time consuming, but you can label only several point clouds and label other point clouds automatically with the help of interpolation.
Supervisely Ecosystem provides a simple tool for interpolating your bounding boxes in point clouds - 3D BBox Interpolation. This app uses a modification of spline interpolation to label point clouds based on bounding boxes given in first and last point clouds in the sequence.
3D BBox Interpolation
Deploy interpolation method as REST API service
This application is started automatically and should be available out of the box. But if it is not, rut it yourself or contact your instance administrator to run and make available for all users.
Label 3D objects in point cloud segment
Label object with 3D bounding box tool on at least at the beginning and end of the point cloud segment.
Select range of point clouds (first and last point cloud in the range must be labeled) in the timeline and press
Preview results and correct manually if needed
Interpolation will generate new cuboids in the segment, you can preview the object track and correct the position of the 3D bounding box if needed with using the axis arrows.
In this tutorial we learned about simple, fast and efficient way of speeding up point clouds labeling process with interpolation. Sign up and try to label your point clouds for free in Community Edition.
Supervisely for Computer Vision
Supervisely is online and on-premise platform that helps researchers and companies to build computer vision solutions. We cover the entire development pipeline: from data labeling of images, videos and 3D to model training.
The big difference from other products is that Supervisely is built like an OS with countless Supervisely Apps — interactive web-tools running in your browser, yet powered by Python. This allows to integrate all those awesome open-source machine learning tools and neural networks, enhance them with user interface and let everyone run them with a single click.