# UNIT: Unsupervised Online Instance Segmentation through Time

Corentin Sautier, Gilles Puy, Alexandre Boulch, Renaud Marlet, Vincent Lepetit

► To cite this version:

Corentin Sautier, Gilles Puy, Alexandre Boulch, Renaud Marlet, Vincent Lepetit. UNIT: Unsupervised Online Instance Segmentation through Time. International Conference on 3D Vision 2025, Mar 2025, Singapour, Singapore. hal-05080100

HAL Id: hal-05080100

https://hal.science/hal-05080100v1

Submitted on 22 May 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
arXiv:2409.07887v1 [cs.CV] 12 Sep 2024

# UNIT: Unsupervised Online Instance Segmentation through Time

Corentin Sautier¹,² Gilles Puy² Alexandre Boulch² Renaud Marlet¹,² Vincent Lepetit¹

¹LIGM, Ecole des Ponts, Univ Gustave Eiffel, CNRS, France ²Valeo.ai, France

## Abstract

Online object segmentation and tracking in Lidar point clouds enables autonomous agents to understand their surroundings and make safe decisions. Unfortunately, manual annotations for these tasks are prohibitively costly. We tackle this problem with the task of class-agnostic unsupervised online instance segmentation and tracking. To that end, we leverage an instance segmentation backbone and propose a new training recipe that enables the online tracking of objects. Our network is trained on pseudo-labels, eliminating the need for manual annotations. We conduct an evaluation using metrics adapted for temporal instance segmentation. Computing these metrics requires temporally-consistent instance labels. When unavailable, we construct these labels using the available 3D bounding boxes and semantic labels in the dataset. We compare our method against strong baselines and demonstrate its superiority across two different outdoor Lidar datasets. Project page: csautier.github.io/unit

## 1. Introduction

Being able to segment, classify, and track all object instances in sequences of point clouds acquired by Lidars is critical for many applications, including autonomous driving. This task, called (Multi-Object) Panoptic Tracking [13, 15], can be seen as a temporal version of panoptic segmentation.

Unfortunately, the cost of annotating point cloud data for this task can be enormous [3]. Moreover, to ensure high performance and robustness, a dataset should contain enough examples of rare objects (e.g., one-wheelers, electric scooters) or hard settings (e.g., adversarial weather), increasing the cost of annotation further. For systems with an international scope, such as autonomous driving, there is also a need to address domain shifts and cover different object distributions (e.g., shape variations [35]) and local specificities (e.g., rickshaws). One way to reduce the need for annotations is to rely on self-supervised [4, 24, 25, 28, 30, 31] or unsupervised learning techniques [2, 23, 33, 40].

In this work, we introduce a new fully unsupervised method, which we call UNIT, to segment class-agnostic

object instances and track them over time, regardless of their nature or semantics. More exactly, our goal is to densely segment an input point cloud so that each input point is assigned to one and only one instance ID.

As illustrated in Fig. 1, given unlabeled Lidar sequences, we first obtain pseudo 4D segments of objects by using a spatio-temporal clustering. Our clustering is inspired by Seg-Contrast [24] and TARL [25], but we improve these methods to obtain clusters over a longer time window. This gives us 4D segments of objects present in the Lidar sequences. We then use these segments as pseudo-labels to train a novel auto-regressive architecture, which, at inference, identifies and track objects in new Lidar sequences by being applied to consecutive scans.

To evaluate our method, we test it on two main datasets, SemanticKITTI [3] and PandaSet-GT [37], which exhibit different point densities, scan patterns and environments. We use several metrics to analyze both the segmentation and temporal tracking quality of our method. We compare our results against strong baselines as well as temporally-extended versions of 3D instance segmentation techniques. Finally, we also show the potential of UNIT as a self-supervised pretraining technique for semantic segmentation.

## 2. Related work

**Object detection/segmentation with transformers.** Our network architecture relies on a transformer decoder similar to the one used in DETR [6] for object detection, or in [7, 19, 32] for object segmentation. A set of learnable object queries are provided at the input of a transformer decoder, which is in charge of detecting/segmenting objects in the image or point cloud of interest thanks to a series of cross-attention layers between the object queries and pixel or point features. The transformer is trained so that each query attends to at most one object instance and each object instance is matched to a single query. By default, these methods do not allow objects to be tracked over time.

**Object detection and tracking with transformers.** To detect and track objects in videos, [21, 34, 39] extend DETR [6] using two sets of object queries: a first set of queries is in charge of tracking discovered objects in past scans, while
<figure><img src="image_2.png" /><figcaption>Figure 1. We generate pseudo-labels of instances across time in Lidar scans (4D-Seg), which we use to train an online segmenter (UNIT) that assigns to each 3D point an instance ID consistent over time. We show aggregations of scans over time. The sample scene from Semantic-KITTI, with the car in the foreground, is mostly static, while the scene from PandaSet-GT is dynamic, with the trace of a moving vehicle.</figcaption></figure>

<caption>Column 1 shows TARL [25] spatio-temporal segments. Column 2 shows our improved 4D segments. Column 3 shows an aggregation of our online labeling of successive scans (our input is *not* an aggregated scan). Column 4 shows the ground truth. Segment colors are random.</caption>

Note that we obtain more labels than in the ground truth as our class-agnostic segmentation include all objects and stuff, such as trees or buildings. Also, while our architecture performs online, it outperforms the offline spatio-temporal clustering that we use for training.

a second one is in charge of discovering new objects. In contrast, we propose an architecture that detects and tracks objects with a single set of queries.

**Unsupervised instance segmentation.** UnScene3D [29] performs unsupervised instance segmentation in dense point clouds acquired in static indoor scenes. A Mask3D model [32] is trained using pseudo-masks obtained by leveraging self-supervised features and a graph-cut algorithm. Because of the static setting considered, UnScene3D does not require any temporal consistency in predictions.

SegContrast [24] and TARL [25] are self-supervised methods whose pretext tasks rely on pseudo-masks of objects. SegContrast uses a RANSAC [12] algorithm to remove the road plan of Lidar scans, and then a DBSCAN clustering [11] to obtain pseudo-segments of instances. TARL extends SegContrast by working on accumulated scans, replacing RANSAC with Patchwork [17], a better-performing ground segmentation method, and using HDBSCAN instead of DBSCAN [20], which gives better segments especially in low-density regions of the point cloud. We compute our pseudo-segments by building upon TARL (see Sec. 3.1).

3DUIS [23] uses a self-supervised model trained with SegContrast to define affinity in a graph between points, and a graph-cut algorithm to get object instances. [23] also propose the $S_{assoc}$ metric for evaluating unsupervised segments.

AutoInst [27], like 3DUIS, obtains object segments using a graph-cut algorithm. This graph is built by exploiting TARL [25] point features (possibly complemented with DI-NOv2 [26] features) instead of SegContrast [24] features. A notable difference between AutoInst and 3DUIS is that

AutoInst operates on accumulated scans instead of single scans. These segments are then used as pseudo-labels to train a MaskPLS [19] model, which improves the quality of predicted segments. This MaskPLS model, like the graph-cut algorithm, operates on accumulated scans. Unlike AutoInst, UNIT operates on single scans instead of accumulated scans, in an online fashion. At inference time, contrary to AutoInst, UNIT does not need odometry information for accumulation. UNIT also does not need to leverage pretrained models to obtain pseudo-labeled objects segments. Besides, AutoInst, only evaluates on SemanticKITTI where sequences 01 and 04 are removed from the training set because they predominantly consist of dynamic instances. In contrast, with UNIT, there are no requirements limiting the number of dynamic instances for training. Last, the code of AutoInst is not publicly available, which prevents full-fledged comparisons.

OYSTER [40], SeMoLi [33] and LISO [2] use motion cues to find moving objects and regress boxes around them, which are used to train an object detector unsupervisedly. While some aspects are similar to our work, they focus on moving objects and object detection, while we target all objects and instance segmentation. Besides, they do not use a temporal architecture.

## 3. Method

Fig. 2 provides an overview of our approach: given a sequence of Lidar scans, we train an online instance segmenter that labels each 3D point with an ID for the object to which it belongs, while maintaining consistent IDs over time: two points from different scans sharing the same ID belongs
<figure><img src="image_3.png" /><figcaption>Figure 2. **Method overview.** Given unlabeled Lidar scans, we create offline pseudo-labels by spatio-temporal clustering (preprocessing). We then use these pseudo-labels to train an auto-regressive network. At inference, we apply this network to successive scans as they come.</figcaption></figure>

to the same instance. The online, temporal processing is
performed by a novel auto-regressive architecture that suc-
cessively takes individual Lidar scans as input and labels
points as scans come in (without knowing the future).

We train this network without any human supervision.
To that end, we first create pseudo-labels on unannotated
Lidar sequences using a spatio-temporal clustering. As it
is unsupervised and incorporates very few priors beyond
4D consistency, our method makes no distinction between
“thing” objects (e.g., cars, pedestrians) and “stuff” objects
(e.g., vegetation, buildings), whose separation may anyway
vary from one dataset to another (e.g., for traffic signs).

We detail each step of our approach below.

**3.1. Pseudo-labeling via spatio-temporal clustering**

**Road segmentation.** As experimentally verified in prior work [24, 25, 40], a good strategy for segmenting objects in automotive Lidar scans is to first remove the ground, as it makes the objects stand out as isolated clusters that are more easily separable. As the ground can often be assimilated to a large, mostly horizontal plane, RANSAC [12] can be used to separate this plane from the rest of the scan. However, as they take into account the specific patterns of Lidar point clouds, recent alternative methods [16, 17] obtain better performance on ground segmentation, while remaining unsupervised.

We rely on these methods to segment the ground. To
find the ground points, we used Patchwork [17] on Se-
manticKITTI (as in TARL [25]), and Patchwork++ [16] on
PandaSet-GT. Both methods need to be applied scan-wise
on each Lidar scan of the training set.

**Spatio-temporal segmentation.** The authors of TARL [25] demonstrate that applying HDBSCAN [20] on temporally accumulated scans enables the extraction of spatially and temporally coherent object instances, even for dynamic objects. Yet, the complexity of HDBSCAN restricts the application of this clustering to a short time window. In practice, TARL [25] aggregates 12 successive scans of SemanticKITTI, and thus provides pseudo-labels over a temporal window of 1.2 s

as the Lidar operates at 10 Hz. To increase the temporal
context window, we apply a voxel grid sampling to heavily
reduce the number of points to cluster after temporal aggre-
gation. More details are given in the supplementary material.
With this process, we are able to obtain time-coherent clus-
ters over 40 aggregated scans. We will see in Sec. 4 (Tab. 1)
that our clusters have the same quality as the clusters ob-
tained in [25] when evaluated on a per-scan basis, but that
their temporal consistency is of a much better quality.

**3.2. Online instance segmentation network**

Our segmenter architecture is based on Mask3D [32], which
itself is an adaptation of MaskFormer [7] for 3D point clouds.
We recall below how these methods work (using object-based
queries) and explain what modifications we bring to make
them work in a class-agnostic and temporal (online) setting.
More details are provided in appendix.

**Class-agnostic object segmentation.** Mask3D uses a transformer decoder to segment objects. This decoder attends to point features and produces one embedding for each input query, with a fixed number of queries |Q|. Each query q ∈ Q is in charge of segmenting one object via a mask module: the scalar product between each query embedding and all point features provide an instance heatmap, which can be transformed into a object-wise binary mask, e.g., via thresholding. The modifications we bring to Mask3D are threefold.

First, we have to take into account that, in our unsup-
vised setting, we have no access to the object classes. We
therefore do not use any semantic classification head on top
of the query embeddings.

Second, to densely segment the whole input point cloud,
each input point must be assigned to a mask ID, and thus to a
query. To do so, at inference, after computing all scalar prod-
ucts ⟨feat(p), q⟩ between the point features and the query
embeddings, each point p is assigned the ID of the query
<figure><img src="image_4.png" /><figcaption>Figure 3. Mask3D [32] network architecture. The queries are trained to favor attending to at most one object in the Lidar point cloud (Sec. 3.3). Output point instances are defined from the most responding queries (Eqs. (1) and (2)).</figcaption></figure>

We leverage and adapt this architecture for online segmentation and tracking of objects in Lidar sequences (cf. Sec. 3.2). To that end, the output queries are input to another instance of the network, in an auto-regressive manner (see Fig. 2).

that responds the most to the point features:

$$ID(p) = ID.query(p)) \qquad (1)$$

$$query(p) = \arg \max_{q \in Q} \langle \text{feat}(p), q \rangle . \qquad (2)$$

(There is no thresholding here as it could leave points without any assigned ID.) Queries to which at least one point is assigned are called active queries. During training, this hard assignment is not applied and the loss is directly computed on the results of the scalar products (cf. Sec. 3.3).

Finally, we wish to adapt the queries to follow moving objects. To that end, we consider an auto-regressive architecture where the queries at network output are used again as input to the next network inference (see below).

**Auto-regressive extension.** Mask3D's transformer decoder refines the object queries progressively by attending at point features output at different resolutions (cf. Fig. 3). After each refinement step, each query increasingly specializes to a specific object.

To allow the tracking of each instance through time, we inject the query embedding at time $t$ (output of the transformer decoder) as input to the transformer decoder at time $t+1$. As the encoder and decoder share the same weights at each time step, each query at time $t+1$ should therefore continue to attend to the same object that it was already attending to at time $t$. At least in principle, this architecture enables the tracking of objects over an infinite time window. This recursion is illustrated in Fig. 2 (training, inference).

As input to the first network application of this auto-regressive scheme (see input queries at bottom of Fig. 3), we use fully-learnable initial queries. This flexibility, which is

in line with [6–8] but unlike the non-parametric queries of [22, 32], prepare for the recursive use of the queries.

### 3.3. Training loss

Our training loss is made of two main terms. The first term is a scan-wise training loss, similar to the one used in Mask3D [32]. We detail its construction in our class-agnostic setup below. The second loss term favors a time-consistent segmentation.

We denote the number of points, queries and pseudo ground-truth instances by $N_p$, $N_q$ and $N_o$, respectively. The loss is computed based on an affinity score $A_{ij}$, which is the scalar product between the query-embeddings $j = 1, \dots, N_q$ and the point features $i = 1, \dots, N_p$, followed by a sigmoid. We also denote by $G \in [0, 1]^{N_p \times N_o}$ the assignment matrix between the points and the objects as computed from the pseudo-labels: $G_{io} = 1$ if point $i$ belongs to object $o$ according to the clustering, and 0 otherwise.

**Scan-wise training loss.** To compute the scan-wise loss, we need to find correspondences between queries and object instances. These correspondences are computed by minimizing a cost of assignment between them. The global cost matrix $C \in \mathbb{R}^{N_q \times N_o}$ between the queries and the object instances is defined as:

$$C = \lambda_{\text{dice}} C^{\text{dice}} + \lambda_{\text{BCE}} C^{\text{BCE}}, \qquad (3)$$

where $C^{\text{dice}}$ is based on the Dice loss,

$$C_{jo}^{\text{dice}} = \frac{2 \sum_{i=1}^{N_p} A_{ij} G_{io}}{\sum_{i=1}^{N_p} A_{ij}^2 + \sum_{i=1}^{N_p} G_{io}^2}, \qquad (4)$$

and $C^{\text{BCE}}$ is based on the binary cross entropy,

$$C_{jo}^{\text{BCE}} = \sum_{i=1}^{N_p} G_{io} \log(A_{ij}) + (1 - G_{io}) \log(1 - A_{ij}). \qquad (5)$$

We use $\lambda_{\text{dice}} = 2$ and $\lambda_{\text{BCE}} = 5$, as in [32]. Unlike in [32], we do not have any information about the semantic class of the objects in our unsupervised setting. We therefore do not use any classification loss related to semantic categories. The actual matching between object instances $o$ and queries $j$ is obtained using the Kuhn–Munkres algorithm (aka Hungarian matching) with $C$ as cost matrix. Once this matching $m(\cdot)$ is obtained, we minimize

$$\min_{o=1}^{N_p} \sum_{i=1}^{N_p} \lambda_{\text{dice}} C_{m(o)_o}^{\text{dice}} + \lambda_{\text{BCE}} C_{m(o)_o}^{\text{BCE}}, \qquad (6)$$

where $m(o)$ is the index of the matched query for object $o$. Finally, this process is repeated identically at 12 different layers and scales of the ResUNet, and the final loss is a sum of all corresponding loss computations, as in [32].
<figure><img src="image_5.png" /><figcaption>Figure 4. **Computing the consistency loss.** Given an object, we compute the averages $H_o^t$ and $H_o^{t+1}$ of its pointwise query predictions over two time steps. The consistency loss is the cross-entropy between $H_o^t$ and $H_o^{t+1}$.</figcaption></figure>

**Time consistency loss.** We aim at being able to segment and track object instances for a time period much longer than the time window seen during training. In fact, we can only train our network on two consecutive scans on our resources. To enforce time-coherent segmentation over longer periods of time, we propose the consistency loss described below.

Let us consider an object instance $o$ segmented at time $t$ and $t+1$ with our pseudo-labeling strategy. For instance $o$ and for each query $q$, we compute the average similarity score (scalar product between query embedding and point features) with the points belonging to $o$ at time $t$ and $t+1$. We then transform these scores as a probability of assignment over the queries using a softmax layer (over the dimensions of the queries). We obtain two probability distributions for each object $o$: $H_o^t \in [0, 1]^{N_q}$ and $H_o^{t+1} \in [0, 1]^{N_q}$. To encourage temporal continuity, we minimize the relative entropy, i.e., the Kullback-Leibler divergence from $H_o^{t+1}$ to $H_o^t$

$$ \mathcal{L}_o^{\text{cons}} = D_{\text{KL}}(H_o^t || H_o^{t+1}). \qquad (7) $$

We consider $H_o^t$ to be the target distribution and do not back-propagate through it (thanks to a stop-gradient operation). However, note that back-propagation goes through the two timesteps thanks to the auto-regressive architecture. In practice, an equivalent gradient is obtained with a cross-entropy loss between $H_o^{t+1}$ and $H_o^t$, while keeping the stop-gradient operation on $H_o^t$.

**Global loss.** We first pretrain our network in a single scan setting, using the scan-wise loss function:

$$ \frac{1}{N} \sum_{o=1}^{N} \left[ \lambda_{\text{dice}} C_{m(o) o}^{\text{dice}} + \lambda_{\text{BCE}} C_{m(o) o}^{\text{BCE}} \right], \qquad (8) $$

with $N = \min(N_q, N_o)$. We then train on two consecutive scans by adding the time-consistency loss between the first and second scans:

$$ \frac{1}{N} \sum_{o=1}^{N} \left[ \lambda_{\text{dice}} C_{m(o) o}^{\text{dice}} + \lambda_{\text{BCE}} C_{m(o) o}^{\text{BCE}} + \lambda_{\text{cons}} \mathcal{L}_{o}^{\text{cons}} \right]. \qquad (9) $$

In this second phase, costs $C^{\text{dice}}$ and $C^{\text{BCE}}$ are computed only on the second scan. Thus, the Hungarian matching used to compute mapping $m(\cdot)$ uses only the query embedding at the second scan. We used $\lambda_{\text{cons}} = 1$ in our experiments.

Further details about the architecture and training procedure are provided in appendix.

## 3.4. Query recycling mechanism

The number of queries in our architecture is fixed. In our experiments, it is set to $N_q = 300$, which off-the-shelf allows the segmentation and tracking of at most 300 different instances over an entire sequence. This is far lower than the number of objects in a sequence of thousands of scans. We need a process to handle the appearance of new objects and their disappearance (when they go out of sight) with a query recycling mechanism.

Our recycling process is based on a simple heuristics. After each scan at a given time $t$ is processed, we compute the barycenter of the points associated to every active query. Then for each active query $q$, we retrieve its previous barycenter, at $t_{\text{past}}$. At this stage, we need a simple rule to determine if query $q$ is still tracking the same object or tracking a new object. We do so by checking the distance between the two barycenters for $q$ at $t$ and $t_{\text{past}}$. If this distance is smaller than 10 m, then we assume the query is still tracking the same object; otherwise it is tracking a new object, which was never seen in the past. In this case, we assign a new object ID to the query.

Note that the barycenters are computed in the coordinate system of the ego vehicle. We compute the distance between barycenters without compensating for the motion of the ego-vehicle between time $t_{\text{past}}$ and $t$, which means we do not need odometry information nor a side method to register the scans. Our criterion simply checks if, relative to the ego-vehicle, the segmented object appears in a completely different area than where it was before. This criterion is imperfect. For instance, a new object could be detected by the same query as an old object if it were appearing at a location close to the position of the old object relative to the
ego-vehicle. While this strategy still works reasonably well in practice, it leaves room for improvement.

# 4. Experiments

## 4.1. Datasets

**SemanticKITTI** [3] is a Lidar dataset acquired in Germany, with a 64-beam Lidar capturing scans at 10 Hz. We use the usual split where sequences 00 to 10 but 08 are used for (unsupervised) training, and sequence 08 is used for validation. On the validation sequence, our metric are computed on object instances of the following classes: car, bicycle, motorcycle, truck, other-vehicle, person, bicyclist, and motorcyclist. This dataset contains the longest sequences, with the validation sequence consisting of 4071 consecutive scans.

**PandaSet** [37] contains data captured with two different Lidar sensors, a rotating Pandar64 and a solid-state PandarGT, at 10 Hz. Following [28], we use GPS coordinates to create two spatially separated training and validation sets, using scans collected in San Francisco for training and the rest as the validation set. PandaSet does not contain instance ground truth. We create them by combining semantic segmentation and object detection labels in a process described in the supplementary material. In this work, we only experiment with the dense point clouds captured with PandarGT, as Pandar64 has similar characteristics to the Velodyne HDL-64E used in SemanticKITTI. We denote this set by PandaSet-GT.

## 4.2. Baselines

We consider six different baselines. The first three baselines are 3DUIS [23], the unsupervised spatio-temporal segmentation used in TARL [25] (TARL-Seg), and our technique for generating pseudo-labels (dubbed 4D-Seg). All of these baselines are able to segment and track over a limited time window. We thus propose an improved version of them by post-processing the results to find correspondences between instances obtain over two successive time windows. Note that, unlike UNIT, none of these baselines are online, except 3DUIS, which does not provide spatio-temporal segments.

**3DUIS** [23] is, to the best of our knowledge, the only published method performing unsupervised instance segmentation on automotive Lidar point clouds. This method is working scan-wise and obtains instances by solving a graph-cut problem. As solving this graph-cut problem already is computationally intensive in the scan-wise setting, we do not apply graph-cuts directly in the spatio-temporal setting. Instead, we compare this method to ours in a scan-wise setting but also use the post-processing described below to turn the discovered 3D segments into 4D segments.

**TARL's segments and our 4D segments** are obtained using classical clustering (HDBSCAN [20]) on scans accumulated

after rigid registration (see Sec. 3.1). Both methods provide spatio-temporal segments over a predefined time-window, unlike our method UNIT which is online. Note as well that we do not need to register the scans in UNIT. The clustering used in TARL was tuned for SemanticKITTI, with a time window corresponding to 12 consecutive scans. Our 4D segments provides object instances over 40 consecutive scans on both SemanticKITTI and PandaSet-GT.

**Baseline improvement.** All of the above methods provide 4D segments over a fixed time window. By construction, they are unable to track an object over a temporal horizon longer than this time window, which impacts negatively their performance relatively to the metrics defined in Sec. 4.3.

We improve the performance of these baselines by matching instances discovered in two successive time-windows. Given the last scan $l$ in a reference time window and the first scan $f$ in the next time window, we register these scans in the same coordinate system and compute the convex hull of all instances in $l$ and $f$. Whenever the convex hulls of two instances from different scans overlap with an IoU larger than 0.5, the object instance in $f$ is assigned the object ID of the instance in $l$. Note that we use the ground-truth poses of the ego-vehicle only for these baselines—UNIT does not need access to the vehicle poses. More details are provided in the supplementary material. We denote the improved baselines by 3DUIS++, TARL-Seg++, and 4D-Seg++.

## 4.3. Metrics

**Association score.** Our main metric is the association score used in [1] for 4D panoptic segmentation in Lidar data, and used in [23] for unsupervised class-agnostic instance segmentation. We recall its definition below for completeness.

Let $\mathcal{G}$ be the set of manually-annotated objects (sets of points) serving as ground truth for evaluation but unused during training, and $\mathcal{S}$ be the set of segments (objects) predicted by our network. Note that any object in $\mathcal{G}$ (similarly for $\mathcal{S}$) is a 4D segments containing the list of points belonging to that object at every timestep of the sequence. The temporal association score $S_{\text{assoc}}^{\text{temp}}$ satisfies:

$$S_{\text{assoc}}^{\text{temp}} = \frac{1}{|\mathcal{G}|} \sum_{g \in \mathcal{G}} \frac{1}{|g|} \sum_{\substack{s \in \mathcal{S} \\ s \cap g \neq \emptyset}} \text{TPA}(s, g)\text{IoU}(s, g), \quad (10)$$

where $TPA(s, g) = |s \cap g|$ is the number of true positive associations between the 4D segments $s$ and $g$, and IoU is the intersection-over-union.

A non-temporal version of the association score can be computed by considering that objects and predictions in different scans come from different instances. This version of the association metric, denoted $S_{\text{assoc}}$, is the metric used in [23] as this method works in a scan-wise setting.
<table><caption>Table 1. **Results on SemanticKITTI.** All scores are computed on the validation set of SemanticKITTI. The association scores are computed using the code of [1], which, by default, is only applied on segments of more than 50 points for any given scan; we report the corresponding scores with and without filtering.</caption><thead><tr><th rowspan="2">Sem.KITTI</th><th rowspan="2">Online</th><th colspan="3">Unfiltered</th><th colspan="2">Filtered</th></tr><tr><th>S<sup>temp</sup><sub>assoc</sub></th><th>IoU*</th><th>S<sub>assoc</sub></th><th>S<sup>temp</sup><sub>assoc</sub></th><th>S<sub>assoc</sub></th></tr></thead><tbody><tr><td>3DUIS w/o time</td><td>✓</td><td>-</td><td>-</td><td>0.550</td><td>-</td><td>0.768</td></tr><tr><td>UNIT w/o time</td><td>✓</td><td>-</td><td>-</td><td><strong>0.715</strong></td><td>-</td><td><strong>0.811</strong></td></tr><tr><td>3DUIS++</td><td>✓</td><td>0.116</td><td>0.214</td><td>0.550</td><td>0.148</td><td>0.769</td></tr><tr><td>TARL-Seg</td><td>✗</td><td>0.231</td><td>0.353</td><td>0.668</td><td>0.264</td><td>0.735</td></tr><tr><td>TARL-Seg++</td><td>✗</td><td>0.317</td><td>0.446</td><td>0.617</td><td>0.370</td><td>0.678</td></tr><tr><td>4D-Seg</td><td>✗</td><td>0.421</td><td>0.529</td><td>0.667</td><td>0.486</td><td>0.784</td></tr><tr><td>4D-Seg++</td><td>✗</td><td>0.447</td><td>0.513</td><td>0.647</td><td>0.512</td><td>0.762</td></tr><tr><td>UNIT</td><td>✓</td><td><strong>0.482</strong></td><td><strong>0.568</strong></td><td>0.696</td><td><strong>0.563</strong></td><td>0.790</td></tr></tbody></table>

<table><caption>Table 2. **Results on PandaSet-GT** (validation set, see Sec. 4.1).</caption><thead><tr><th rowspan="2">PandaSet-GT</th><th rowspan="2">Online</th><th colspan="3">Unfiltered</th><th colspan="2">Filtered</th></tr><tr><th>S<sup>temp</sup><sub>assoc</sub></th><th>IoU*</th><th>S<sub>assoc</sub></th><th>S<sup>temp</sup><sub>assoc</sub></th><th>S<sub>assoc</sub></th></tr></thead><tbody><tr><td>UNIT w/o time</td><td>✓</td><td>-</td><td>-</td><td><strong>0.562</strong></td><td>-</td><td>0.719</td></tr><tr><td>TARL-Seg</td><td>✗</td><td>0.206</td><td>0.286</td><td>0.369</td><td>0.390</td><td>0.757</td></tr><tr><td>4D-Seg</td><td>✗</td><td><strong>0.332</strong></td><td><strong>0.399</strong></td><td>0.492</td><td><strong>0.503</strong></td><td><strong>0.740</strong></td></tr><tr><td>UNIT</td><td>✓</td><td>0.209</td><td>0.310</td><td>0.531</td><td>0.351</td><td>0.688</td></tr></tbody></table>

**Best IoU.** In complement to the above score, we introduce another metric where, for each object in $\mathcal{G}$, we first find the best overlapping segments in $\mathcal{S}$ in terms of IoU, and then compute the average IoU with these best matches:

$$ \text{IoU}^* = \frac{1}{|\mathcal{G}|} \sum_{g \in \mathcal{G}} \max_{s \in \mathcal{S}} \text{IoU}(s, g). \quad (11) $$

Note that this metric is computed using 4D segments: the higher the score, the better the temporal consistency. Note as well that, in this metric, a predicted segment *s* can be a best match for two different ground-truth objects *g* and *g'* ($g \neq g'$). It thus provides a measure of the best IoU we can reach with the available set predictions.

**Limitations.** The above metrics require 4D manual segments of each object. In existing datasets, such annotations are available only for *thing* classes (cars, pedestrians, etc.). Thus, while our method is able to segment and track all objects (both *stuff* and *things*), these metrics are only used to measure performance on a subset of the objects.

**Filtered metrics.** The metrics used by [23] and [1] include a scan-wise filter removing all 3D ground-truth segments with fewer than 50 points. We include these “filtered” metrics for comparability purposes. We would like to recall nevertheless that this filtering removes small or distant objects

<table><caption>Table 3. **Ablation study on the validation set of SemanticKITTI.** Influence of the training and inference procedure (scan-wise or auto-regressive) as well as the effect of the loss (7) on the performance.</caption><thead><tr><th colspan="2">Training</th><th colspan="2">Inference</th><th colspan="2">Metric</th></tr><tr><th>Scan-wise</th><th>Autoreg.</th><th>Scan-wise</th><th>Autoreg.</th><th>Stemp</th><th>S<sub>assoc</sub></th></tr><tr><th>ε<sup>cons</sup><sub>o</sub> (7)</th><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td colspan="2">4D-Seg</td><td colspan="2"></td><td>0.420</td><td>0.667</td></tr><tr><td>✓</td><td>-</td><td>✗</td><td>✓</td><td>-</td><td>0.715</td></tr><tr><td>✓</td><td>-</td><td>✗</td><td>-</td><td>✓</td><td>0.330</td></tr><tr><td>-</td><td>✓</td><td>✗</td><td>-</td><td>✓</td><td>0.446</td></tr><tr><td>-</td><td>✓</td><td>✓</td><td>-</td><td>✓</td><td>0.482</td></tr></tbody></table>

from the metrics. We thus also compute the metrics without any filtering to provide a more complete assessment of the performance of the methods.

## 4.4. Results of UNIT

**On SemanticKITTI.** We compare our method to all the considered baselines on SemanticKITTI. The results are presented in Tab. 1. In the single-scan setting, UNIT is better than 3DUIS. This shows the advantage of training end-to-end an instance segmenter rather than relying on a graph-cut method. In the online setting, we notice that post-processing the segments obtained by 3DUIS is not enough to compete with the segments obtained by TARL-Seg and 4D-Seg on both temporal metrics $S_{\text{assoc}}^{\text{temp}}$ and IoU*. We also remark that 4D-Seg performs better than TARL-Seg. This is due to the longer temporal window used in 4D-Seg as both methods give similar scores on the scan-wise metric $S_{\text{assoc}}$. We also observe that our post-processing over the segments of TARL-Seg and 4D-Seg improve the spatio-temporal quality of the segments. The best scores are obtained with our method.

**On PandaSet-GT.** We notice in Tab. 2 that UNIT surpasses TARL-Seg, except when filtering out all small ground-truth segments. Unlike on SemanticKITTI, UNIT does not outperform its pseudo-labels (4D-Seg). The large context window (4 s) for 4D-Seg with respect to sequence duration (8 s) on PandaSet-GT provides an advantage to 4D-Seg which has access to nearly the whole sequence for segmentating, while UNIT works online. We also recall that UNIT does not require precise registration of the scans, unlike the baselines.

## 4.5. Ablation study

We conduct an ablation study on the components of UNIT on SemanticKITTI. The results are reported in Tab. 3.

First, we remark that, surprisingly, training our network in a scan-wise setting but doing the inference in an auto-regressive manner (second row of the table) already provides reasonable segmentation of instances in 4D, with scores not so far from those of 4D-Seg. This indicates that using as
<table><caption>Table 4. Results on nuScenes (validation set).</caption><thead><tr><th rowspan="2">nuScenes</th><th rowspan="2">Online</th><th colspan="3">Unfiltered</th><th colspan="2">Filtered</th></tr><tr><th>S<sup>temp</sup><sub>assoc</sub></th><th>IoU*</th><th>S<sub>assoc</sub></th><th>S<sup>temp</sup><sub>assoc</sub></th><th>S<sub>assoc</sub></th></tr></thead><tbody><tr><td>UNIT w/o time</td><td>✓</td><td>-</td><td>-</td><td><strong>0.390</strong></td><td>-</td><td><strong>0.570</strong></td></tr><tr><td>TARL-Seg</td><td>✗</td><td>0.085</td><td>0.156</td><td>0.189</td><td>0.253</td><td>0.475</td></tr><tr><td>4D-Seg</td><td>✗</td><td><strong>0.163</strong></td><td><strong>0.246</strong></td><td>0.287</td><td><strong>0.350</strong></td><td>0.546</td></tr><tr><td>UNIT</td><td>✓</td><td>0.126</td><td>0.221</td><td>0.356</td><td>0.270</td><td>0.561</td></tr></tbody></table>

<table><caption>Table 5. Fine-tuning for semantic segmentation. We show the quality (mIoU% after fine-tuning) of the features we learn self-supervisedly. Other methods, in grey, have a similar training setup but a different network architecture and inputs. ‘i’ is for intensity.</caption><thead><tr><th rowspan="2"></th><th rowspan="2">Pre-training</th><th rowspan="2">Inputs</th><th colspan="4">Percentage of training data</th></tr><tr><th>1%</th><th>10%</th><th>50%</th><th>100%</th></tr></thead><tbody><tr><td rowspan="10">nuScenes</td><td>No pre-training</td><td>xyz + i</td><td>35.0</td><td>57.3</td><td>69.0</td><td>71.2</td></tr><tr><td>PointContrast [38]</td><td>xyz + i</td><td>37.0 +2.0</td><td>58.9 +1.6</td><td>69.4 +0.4</td><td>71.1 -0.1</td></tr><tr><td>ALSO [4]</td><td>xyz + i</td><td>37.4 +2.4</td><td><strong>59.0 +2.7</strong></td><td>69.8 +0.8</td><td>71.8 +0.6</td></tr><tr><td>BEVContrast [31]</td><td>xyz + i</td><td><strong>37.9 +2.9</strong></td><td><strong>59.0 +2.7</strong></td><td><strong>70.5 +1.5</strong></td><td><strong>72.2 +1.0</strong></td></tr><tr><td>No pretraining</td><td>depth + i</td><td>35.4</td><td>60.2</td><td>71.3</td><td>71.3</td></tr><tr><td>UNIT w/o time</td><td>depth + i</td><td>35.3 -0.1</td><td>60.9 +0.7</td><td><strong>72.2 +0.9</strong></td><td><strong>74.0 +2.7</strong></td></tr><tr><td>UNIT</td><td>depth + i</td><td>35.4</td><td><strong>61.9 +1.7</strong></td><td>72.0 +0.7</td><td>73.6 +2.3</td></tr><tr><td rowspan="10">SemanticKITTI</td><td>No pre-training</td><td>xyz + i</td><td>46.2</td><td>57.6</td><td>61.8</td><td>62.7</td></tr><tr><td>PointContrast [38]</td><td>xyz + i</td><td>47.9 +1.7</td><td>59.7 +2.1</td><td>62.7 +0.9</td><td>63.4 +0.7</td></tr><tr><td>SegContrast [24]</td><td>xyz + i</td><td>48.9 +2.7</td><td>58.7 +1.1</td><td>62.1 +0.3</td><td>62.3 -0.4</td></tr><tr><td>STSSL [36]</td><td>xyz + i</td><td>49.4 +3.2</td><td>60.0 +2.4</td><td>62.9 +1.1</td><td>63.3 +0.6</td></tr><tr><td>ALSO [4]</td><td>xyz + i</td><td>50.0 +3.8</td><td>60.5 +2.9</td><td><strong>63.4 +1.6</strong></td><td>63.6 +0.9</td></tr><tr><td>TARL [25]</td><td>xyz + i</td><td>52.5 +6.3</td><td>61.2 +3.6</td><td><strong>63.4 +1.6</strong></td><td>63.7 +1.0</td></tr><tr><td>BEVContrast [31]</td><td>xyz + i</td><td><strong>53.8 +7.6</strong></td><td><strong>61.4 +3.8</strong></td><td><strong>63.4 +1.6</strong></td><td><strong>64.1 +1.4</strong></td></tr><tr><td>No pretraining</td><td>depth + i</td><td>46.6</td><td>59.8</td><td>62.2</td><td>63.4</td></tr><tr><td>UNIT w/o time</td><td>depth + i</td><td>49.0 +2.4</td><td>61.8 +2.0</td><td><strong>64.9 +2.7</strong></td><td>65.1 +1.7</td></tr><tr><td>UNIT</td><td>depth + i</td><td><strong>50.2 +3.6</strong></td><td><strong>62.4 +2.6</strong></td><td><strong>64.9 +2.7</strong></td><td><strong>65.9 +2.5</strong></td></tr></tbody></table>

input the query embedding of the past scan already allows to track some object instances without explicit supervision. This justifies the auto-regressive use of the queries.

Second, as seen from the third row of Tab. 3, training the network in an auto-regressive manner permits us to surpass the 4D-Seg baseline (our pseudo-labels). Note that, in this case, there is no explicit constraint or regularization that favors the discovery of spatially and temporally consistent instances. This behavior is only achieved implicitly via the auto-regressive use of the query embeddings and the use of spatio-temporal pseudo-labels. Yet, these two ingredients are enough to surpass 4D-Seg.

Finally, adding the time consistency loss further boosts the performance on the spatio-temporal metrics.

## 4.6. Case of low density point clouds

Our method, like [23–25], relies on the extraction of accurate segments for pseudo-labeling. Such a segmentation is far easier when starting from dense point clouds, as available in SemanticKITTI and PandaSet-GT, than when starting from low-density point clouds. This probably explains why related methods do not conduct experiments on datasets

like nuScenes, where point clouds are much sparser than in SemanticKITTI. To test the limits of our method and baselines on low-density point clouds, we apply them on nuScenes [5] (see description in Appendix).

As on the other datasets, we notice (cf. Tab. 4) that 4D-Seg surpasses TARL-Seg thanks to its longer temporal window. UNIT performs better than 4D-Seg on the non-temporal metric S<sub>assoc</sub> but remains below on the temporal metrics: UNIT does not surpass its pseudo-labels. We recall nevertheless that UNIT work online and without accumulation and registration of scans, unlike 4D-Seg. Let us also mention that we noticed a slight drop of performance for UNIT when using the consistency loss on nuScenes. We hypothesize that the small point density leads to worse pseudo-labels for small or distant objects, which in turn creates more noise on the segments used in the consistency loss.

## 4.7. Fine-tuning the backbone for self-supervision

As an additional experiment, we study the potential of UNIT as a self-supervised method for semantic segmentation. We use the sparse U-Net [32] backbone pre-trained by UNIT as a point-based segmenter. Following the protocol of [4, 31] on nuScenes and SemanticKITTI, we finetune the pretrained backbone with different amount of annotated data (1%, 10%, 50% and 100%). The results are presented in Tab. 5. For comparison, we also report the scores from the literature [31]. Let us highlight nevertheless that these methods use different variants of sparse U-Net, with different input features. Yet all sparse U-Nets attain comparable baseline results when using 100% of labeled data and no pretraining.

We notice that our pretrained sparse backbone under-performs at very low data regime, but reaches better performance than state-of-the-art self-supervised techniques at high annotation percentages. It could be due to the size of the self-training head, i.e., the layers on top of the sparse U-Net. Indeed our head is a complete multi-scale transformer, as opposed to previous methods that are at most 3-layered MLPs. In the latter case, the output feature maps are more likely to be linearly separable, thus requiring less finetuning and performing better in low-data regime. A similar behavior is observed for MAE [14] where the pretraining head is an 8-block transformer and the best performance are reached for very long finetuning. We also observe that going from single-scan to multi-scan models improves the performance.

## 5. Conclusion

We showed that we could segment and track objects in Lidar data without requiring any manual annotations. This is made thanks to an offline method generating pseudo-labels, and to a novel auto-regressive architecture that performs robustly online once trained on these noisy pseudo-labels only. We hope that our approach will inspire other authors to consider other tracking problems where annotations are not available.
**Acknowledgements:** This work was performed using HPC resources from GENCI-IDRIS (Grants 2023-AD011013765R1). This work was supported in part by the French Agence Nationale de la Recherche (ANR) grant MultiTrans (ANR21-CE23-0032).

## References

[1] Mehmet Aygun, Aljosa Osep, Mark Weber, Maxim Maximov, Cyrill Stachniss, Jens Behley, and Laura Leal-Taixé. 4D Panoptic LiDAR Segmentation. In *Conference on Computer Vision and Pattern Recognition*, 2021. 6, 7

[2] Stefan Baur, Frank Moosmann, and Andreas Geiger. LISO: LiDAR-Only Self-Supervised 3D Object Detection. In *arXiv Preprint*, 2024. 1, 2

[3] Jens Behley, Martin Garbade, Andres Milioto, Jan Quenzel, Sven Behnke, Cyrill Stachniss, and Jurgen Gall. SemanticKITTI: A Dataset for Semantic Scene Understanding of LiDAR Sequences. In *International Conference on Computer Vision*, 2019. 1, 6, 12

[4] Alexandre Boulch, Corentin Sautier, Bjoern Michele, Gilles Puy, and Renaud Marlet. ALSO: Automotive LiDAR Self-Supervision by Occupancy Estimation. In *Conference on Computer Vision and Pattern Recognition*, 2023. 1, 8

[5] Holger Caesar, Varun Bankiti, Alex H. Lang, Sourabh Vora, Venice Erin Liong, Qiang Xu, Anush Krishnan, Yu Pan, Giancarlo Baldan, and Oscar Beijbom. nuScenes: A Multimodal Dataset for Autonomous Driving. In *Conference on Computer Vision and Pattern Recognition*, 2020. 8, 12

[6] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-To-End Object Detection with Transformers. In *European Conference on Computer Vision*, 2020. 1, 4

[7] Bowen Cheng, Alexander G. Schwing, and Alexander Kirillov. Per-Pixel Classification Is Not All You Need for Semantic Segmentation. In *Advances in Neural Information Processing Systems*, 2021. 1, 3

[8] Bowen Cheng, Ishan Misra, Alexander G. Schwing, Alexander Kirillov, and Rohit Girdhar. Masked-attention mask transformer for universal image segmentation. In *Conference on Computer Vision and Pattern Recognition*, 2022. 4

[9] Christopher Choy, JunYoung Gwak, and Silvio Savarese. 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks. In *Conference on Computer Vision and Pattern Recognition*, 2019. 12

[10] Tri Dao, Dan Fu, Stefano Ermon, Atri Rudra, and Christopher Ré. Flashattention: Fast and Memory-Efficient Exact Attention with Io-Awareness. In *Advances in Neural Information Processing Systems*, 2022. 12

[11] Martin Ester, Hans-Peter Kriegel, Jörg Sander, Xiaowei Xu, and Others. A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise. In *Conference on Knowledge Discovery and Data Mining*, pages 226–231, 1996. 2

[12] Martin A. Fischler and Robert C. Bolles. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography. *Communications of the ACM*, 24(6):381–395, 1981. 2, 3

[13] Whye Kit Fong, Rohit Mohan, Juana Valeria Hurtado, Lubing Zhou, Holger Caesar, Oscar Beijbom, and Abhinav Valada. Panoptic nuScenes: A Large-Scale Benchmark for LiDAR Panoptic Segmentation and Tracking. *IEEE Robotics and Automation Letters (RA-L)*, 2022. 1

[14] Kaiming He, Xinlei Chen, Saining Xie, Yanghao Li, Piotr Dollár, and Ross Girshick. Masked autoencoders are scalable vision learners. In *Conference on Computer Vision and Pattern Recognition*, 2022. 8

[15] Juana Valeria Hurtado, Rohit Mohan, Wolfram Burgard, and Abhinav Valada. MOPT: Multi-Object Panoptic Tracking. In *CVPR Workshop on Scalability in Autonomous Driving*, 2020. 1

[16] Seungjae Lee, Hyungtae Lim, and Hyun Myung. Patchwork++: Fast and Robust Ground Segmentation Solving Partial Under-Segmentation Using 3D Point Cloud. In *Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst.*, 2022. 3, 11

[17] Hyungtae Lim, Oh Minho, and Hyun Myung. Patchwork: Concentric Zone-Based Region-Wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor. *IEEE Robotics and Automation Letters (RA-L)*, 2021. 2, 3, 11

[18] Ilya Loshchilov and Frank Hutter. Decoupled Weight Decay Regularization. In *International Conference for Learning Representations*, 2019. 12

[19] R. Marcuzzi, L. Nunes, L. Wiesmann, J. Behley, and C. Stachniss. Mask-Based Panoptic LiDAR Segmentation for Autonomous Driving. *IEEE Robotics and Automation Letters (RA-L)*, 2023. 1, 2

[20] Leland Mcinnes, John Healy, and Steve Astels. HDBSCAN: Hierarchical Density Based Clustering. *The Journal of Open Source Software*, 2(11):205, 2017. 2, 3, 6

[21] Tim Meinhardt, Alexander Kirillov, Laura Leal-Taixe, and Christoph Feichtenhofer. Trackformer: Multi-Object Tracking with Transformers. In *Conference on Computer Vision and Pattern Recognition*, 2022. 1

[22] Ishan Misra, Rohit Girdhar, and Armand Joulin. An End-to-End Transformer Model for 3D Object Detection. In *International Conference on Computer Vision*, 2021. 4

[23] Lucas Nunes, Xieyuanli Chen, Rodrigo Marcuzzi, Aljosa Osep, Laura Leal-Taixé, Cyrill Stachniss, and Jens Behley. Unsupervised Class-Agnostic Instance Segmentation of 3D LiDAR Data for Autonomous Vehicles. *IEEE Robotics and Automation Letters (RA-L)*, 2022. 1, 2, 6, 7, 8

[24] Lucas Nunes, Rodrigo Marcuzzi, Xieyuanli Chen, Jens Behley, and Cyrill Stachniss. SegContrast: 3D Point Cloud Feature Representation Learning through Self-Supervised Segment Discrimination. *IEEE RA-L*, 2022. 1, 2, 3, 8

[25] Lucas Nunes, Louis Wiesmann, Rodrigo Marcuzzi, Xieyuanli Chen, Jens Behley, and Cyrill Stachniss. Temporal Consistent 3D LiDAR Representation Learning for Semantic Perception in Autonomous Driving. In *Conference on Computer Vision and Pattern Recognition*, 2023. 1, 2, 3, 6, 8, 11

[26] Maxime Oquab, Timothée Darcet, Théo Moutakanni, Huy V. Vo, Marc Szafraniec, Vasil Khalidov, Pierre Fernandez, Daniel HAZIZA, Francisco Massa, Alaaeldin El-Nouby, Mido Assran, Nicolas Ballas, Wojciech Galuba, Russell
Howes, Po-Yao Huang, Shang-Wen Li, Ishan Misra, Michael Rabbat, Vasu Sharma, Gabriel Synnaeve, Hu Xu, Herve Jégou, Julien Mairal, Patrick Labatut, Armand Joulin, and Piotr Bojanowski. DINOv2: Learning robust visual features without supervision. TMLR, 2024. 2
[27] Cedric Perauer, Laurenz Adrian Heidrich, Haifan Zhang, Matthias Niessner, Anastasiia Kornilova, and Alexey Artemov. AutoInst: Automatic instance-based segmentation of lidar 3d scans. arxiv:2403.16318, 2024. 2
[28] Gilles Puy, Spyros Gidaris, Alexandre Boulch, Oriane Siméoni, Corentin Sautier, Patrick Pérez, Andrei Bursuc, and Renaud Marlet. Three pillars improving vision foundation model distillation for lidar. In Conference on Computer Vision and Pattern Recognition, 2024. 1, 6
[29] David Rozenberszki, Or Litany, and Angela Dai. UnScene3D: Unsupervised 3D Instance Segmentation for Indoor Scenes. In Conference on Computer Vision and Pattern Recognition, 2024. 2
[30] Corentin Sautier, Gilles Puy, Spyros Gidaris, Alexandre Boulch, Andrei Bursuc, and Renaud Marlet. Image-To-LiDAR Self-Supervised Distillation for Autonomous Driving Data. In Conference on Computer Vision and Pattern Recognition, 2022. 1
[31] Corentin Sautier, Gilles Puy, Alexandre Boulch, Renaud Marlet, and Vincent Lepetit. BEVContrast: Self-Supervision In BEV Space for Automotive LiDAR Point Clouds. In 3DV, 2024. 1, 8
[32] Jonas Schult, Francis Engelmann, Alexander Hermans, Or Litany, Siyu Tang, and Bastian Leibe. Mask3D: Mask Transformer for 3D Semantic Instance Segmentation. In International Conference on Robotics and Automation, 2023. 1, 2, 3, 4, 8, 12
[33] Jenny Seidenschwarz, Aljosa Osep, Francesco Ferroni, Simon Lucey, and Laura Leal-Taixé. SeMoLi: What Moves Together Belongs Together. In Conference on Computer Vision and Pattern Recognition, 2024. 1, 2
[34] Peize Sun, Jinkun Cao, Yi Jiang, Rufeng Zhang, Enze Xie, Zehuan Yuan, Changhu Wang, and Ping Luo. Trantrack: Multiple Object Tracking with Transformer. In arXiv Preprint, 2020. 1
[35] Yan Wang, Xiangyu Chen, Yurong You, Li Erran, Bharath Hariharan, Mark Campbell, Kilian Q. Weinberger, and Wei-Lun Chao. Train in Germany, test in the USA: Making 3D object detectors generalize. In Conference on Computer Vision and Pattern Recognition, 2020. 1
[36] Yanhao Wu, Tong Zhang, Wei Ke, Sabine Süsstrunk, and Mathieu Salzmann. Spatiotemporal Self-Supervised Learning for Point Clouds in the Wild. In Conference on Computer Vision and Pattern Recognition, 2023. 8
[37] Pengchuan Xiao, Zhenlei Shao, Steven Hao, Zishuo Zhang, Xiaolin Chai, Judy Jiao, Zesong Li, Jian Wu, Kai Sun, Kun Jiang, and Others. Pandaset: Advanced Sensor Suite Dataset for Autonomous Driving. In ITSC, 2021. 1, 6, 12
[38] Saining Xie, Jiatao Gu, Demi Guo, Charles R. Qi, Leonidas Guibas, and Or Litany. Pointcontrast: Unsupervised Pre-Training for 3D Point Cloud Understanding. In European Conference on Computer Vision, 2020. 8

[39] Fangao Zeng, Bin Dong, Yuang Zhang, Tiancai Wang, Xiangyu Zhang, and Yichen Wei. MOTR: End-To-End Multiple-Object Tracking with Transformer. In European Conference on Computer Vision, 2022. 1
[40] Lunjun Zhang, Anqi Joyce Yang, Yuwen Xiong, Sergio Casas, Bin Yang, Mengye Ren, and Raquel Urtasun. Towards Unsupervised Object Detection from LiDAR Point Clouds. In Conference on Computer Vision and Pattern Recognition, 2023. 1, 2, 3
# UNIT: Unsupervised Online Instance Segmentation through Time

## Supplementary Material

In Appendix A, we detail the construction of pseudo-labels. In Appendix B, we provide details on the architecture and training of UNIT. In Appendix C, we provide details on our improvement of the baselines. Finally, in Appendix D, we detail the experiments on low density point clouds and provide more qualitative results (visualizations).

### A. Pseudo-label construction

In this section, we describe the practical implementation details of the construction of pseudo-labels: for our 4D-Seg (Appendix A.1), for TARL-Seg (Appendix A.2) regarding other datasets than the one used in [25], and for the case of PandaSet (Appendix A.3), which does not contain ground-truth instance information.

#### A.1. 4D-Seg implementation details

**Ground point segmentation.** To construct our 4D segments, we first apply Patchwork [17] or Patchwork++ [16] on each individual scan to segment ground points.

For SemanticKITTI, we used Patchwork with the set of parameters used by TARL [25]. For nuScenes, which uses a 32-beam Lidar, we used Patchwork++ with a sensor height of 1.840, thresholds for seeds and distance respectively of 0.5 and 0.25, and a minimum range of 2. PandaSet being provided in world coordinates, we register each Lidar scan to its local reference frame before applying Patchwork++ with default parameters. The respective quality of Patchwork++ for nuScenes and PandaSet-GT varies little with the parameters.

**Temporal aggregation.** Points are then aggregated on a common reference frame, along with their temporal index (an integer), for 40 consecutive scans on SemanticKITTI and PandaSet-GT, and 80 on the less dense nuScenes dataset, that is however captured at 20 Hz while both SemanticKITTI and PandaSet-GT are scanned at 10 Hz.

A grid sampling with a voxel size of 5 cm along the spatial axis and 5 time steps along the temporal axis is then applied to reduce the computation burden. While this grid sampling may reduce the overall quality of the segmentation, it considerably speeds up clustering, enabling longer temporal windows compared to TARL [25].

**Clustering.** Points that have little chances to belong to an object instance are put aside before clustering. It concerns estimated ground points as well as points extremely close to the sensor, which are likely to be outliers or part of the roof of the ego-vehicle.

For the HDBSCAN spatio-temporal clustering, the temporal dimension is multiplied by 0.03 to reduce its importance relative to the spatial dimensions. On nuScenes, the *z* coordinate is also multiplied by 0.25 to alleviate a splicing issue occurring in HDBSCAN due to the large vertical distance between Lidar beams of the Velodyne HDL-32E sensor. HDBSCAN's minimum number of samples and minimum cluster size are respectively set to 1 and 300 to obtain a large set of clusters, with very few discarded points.

**Instance ID assignment.** Each resulting segment is assumed to correspond to a different object instance and is given a separate index. Ground points and discarded points are given special instance indexes. Points culled by the grid sampling process are added back, with the same index as non-culled points in their voxel.

**Processing and output.** This segmentation is computed a single time, as a pre-processing for our method, and provides temporal windows of consecutive scans with consistent segments, sharing IDs between scans, and special ground and unknown segments.

#### A.2. Implementing TARL-Seg on more datasets

TARL [25] was implemented by its authors on SemanticKITTI solely. For comparison purposes, we reimplemented TARL-Seg for PandaSet-GT and nuScenes.

We used Patchwork++ [17] for ground point segmentation as it requires less tuning that Patchwork [17], and has been tested with success on 4D-Seg (see Appendix A.1).

As in the original TARL-Seg segment construction for SemanticKITTI, we do not apply any grid sampling. We thus use context windows of 12 time steps for PandaSet-GT and 24 for nuScenes.

Unlike in 4D-Seg, we do not use time as extra information for clustering. However, on nuScenes, we apply the splicing trick described previously (see Appendix A.1), as otherwise results are unfairly poor. The HDBSCAN parameters are the same as those used in TARL for SemanticKITTI.

#### A.3. Instance ground-truth on PandaSet-GT

The PandaSet dataset does not come with panoptic labels. However, it comes with semantically-labeled 3D bounding boxes, as well as semantic segmentation for all Lidar points, with matching semantic classes between both modalities.

To obtain instance labels, we look for all points inside a box that share the same class as the box; we then assign to these points an instance ID based on their associated
box. We then relax slightly this point assignment by also incorporating into instance segments neighboring points of the same class, on the condition that their distance to the closest point of the instance is less than 1 m. In case a point is less than 1 m away from several instances, it is assigned to the closest one.

The code to generate these instance labels for PandaSet-GT will be supplied with the code for UNIT.

# B. UNIT implementation details

## B.1. Architecture

Our architecture is largely inherited from [32]. The backbone is a MinkUnet34 [9] with a voxel size of 15 cm. To save some computation resources, we use mixed precision using bfloat16, as well as flash attention [10].

We apply two random augmentations during scan-wise training: a random scaling of ±10% and a random rotation 0-360°. No augmentation is applied when training in a temporal setup.

The input features are the Euclidean distance to the sensor and the returned Lidar intensity.

## B.2. Training protocol

In a first phase, we pretrain our network in a single-scan setting. The training is done in mixed precision using AdamW [18], a cosine annealing scheduler for the learning rate with initial value of $10^{-4}$, a weight decay of $10^{-2}$, and a batch size of 3. Due to differences in dataset sizes, we pre-train the network for 50 epochs on SemanticKITTI, 150 on PandaSet-GT and 4 epochs on nuScenes, which corresponds to roughly 300k training iterations for SemanticKITTI and nuScenes, and 200k iterations for PandaSet-GT.

In the second phase, we finetune the network using pairs of consecutive scans as input. We use the same hyperparameters for the optimizer. We use the same number of epochs, and a batch size of 4 for SemanticKITTI and 5 for other methods, which corresponds to roughly 200k training iterations for SemanticKITTI and nuScenes, and 100k training iterations for PandaSet-GT.

# C. Baseline improvement details

All the baselines methods that we initially considered either operate on single scans (3DUIS) or are consistent over a limited time window (TARL-Seg, 4D-Seg). We extended those baselines to stitch objects between two scans with separate ID predictions. For 3DUIS, we stitch all pairs of successive scans; for TARL-Seg and 4D-Seg, we stitch every pair of non-overlapping successive windows. This results in our improved versions of the baselines (3DUIS++, TARL-Seg++, 4D-Seg++).

The process is as follows. Given the last scan $f$ and the new scan $f$, registered in a common reference frame, we

compute the convex hulls of all predicted instances in $f$ and in $f'$. For each hull in $f$, we compute the IoU with all hulls in $f$ using a Monte Carlo method, and associate the two instances if the IoU is greater than 0.5.

This process is extremely slow, and to speed it up, we decimate the instances to at most 200 points before the computation of the convex hull, estimate the IoU using 1000 samples, and stop the computation at the first hull found greater than 0.5. An interesting observation is that this criterion is not strictly unique, meaning that multiple instances in $f$ can be associated to a single instance in $f'$. This alone explains why those improved baselines performs usually poorer in scan-wise metrics.

# D. Experiments

## D.1. Datasets

SemanticKITTI [3] and PandaSet-GT [37] are described in the main paper. We give here an overview of nuScenes [5].

nuScenes is a Lidar dataset acquired in Boston and Singapore, with a 32-beam Lidar capturing scans at 20 Hz. We use the official train/val split with 700 sequences for (un-supervised) training and 150 sequences for validation. We leverage all the lidar scans acquired at 20 Hz during training and inference, for all methods. However, all metrics are computed on a subset of the validation scans as the point-wise annotations are provided at 2 Hz only. For evaluation, we use the official panoptic annotations provided for the instances of: barrier, bicycle, bus, car, construction vehicle, motorcycle, pedestrian, traffic cone, trailer and truck.

## D.2. Qualitative results: more visualizations

For qualitative inspection, we provide in the following figures more visualizations of the segments of 3DUIS++, TARL-Seg 4D-Seg, UNIT and the ground truth, both on SemanticKITTI and PandaSet-GT.
<figure><img src="image_6.png" /><figcaption>3DUIS++: offline stitching ('++') of online 3DUIS single-scan segments</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>4D-Seg: our offline 4D segments computed on aggregated scans</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>UNIT (trained on 4D-Seg): overlay of our successive online single-scan segments</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>GT: overlay of ground-truth single-scan segments</figcaption></figure>

Figure 5. Visualization of object instances across time, obtained on a sample scene of SemanticKITTI. Different instances are assigned colors that are random but (tentatively) consistent over time, forming segments in offline aggregated scans or overlaid online scans.

In this sample, which features a static scene, 4D-Seg is significantly cleaner than 3DUIS++ where single objects, such as the foreground car, have points belonging to several instances and leaking into the ground. UNIT is online (it inputs and outputs one scan at a time) while 4D-Seg is offline (operating on an aggregation of scans), and is here slightly better than 4D-Seg on the cars, but not as good on "stuff" such as vegetation or walls.

Please note that we (4D-Seg and UNIT) obtain more labels than in the ground truth as our class-agnostic segmentation include all objects and stuff, such as trees or buildings, while the ground truth is restricted to a few selected object classes.
<figure><img src="image_10.png" /><figcaption>Figure 6. Visualization of object instances across time, obtained on a sample scene of SemanticKITTI. Different instances are assigned colors that are random but (tentatively) consistent over time, forming segments in offline aggregated scans or overlaid online scans.</figcaption></figure>

In this sample, which features a static scene, 4D-Seg is not perfect but still better than 3DUIS++: there is no object segment leaking onto the ground, and the objects are assigned a smaller number of different IDs. For instance, the foreground car in 3DUIS++ is made of 6 different IDs while only 2 are used in 4D-Seg. It is all the more so when the objects are further away, e.g., concerning the cars at the end of the street. The training of UNIT on 4D-Seg, while it is harder because it works online on single scans, rather than offline on aggregated scans as does 4D-Seg, regularizes the segmentation. For instance, the foreground car with UNIT is “now” almost exclusively made of a single ID. Even further away objects benefit from that regularization, e.g., the cars at the end of the street. The instance ground truth shown here was obtained in a process detailed in Appendix A.3

Please note that we (4D-Seg and UNIT) obtain more labels than in the ground truth as our class-agnostic segmentation include all objects and stuff, such as trees or buildings, while the ground truth is restricted to a few selected object classes.
<figure><img src="image_11.png" /><figcaption>Figure 7. Visualization of object instances across time, obtained on a sample scene of PandaSet-GT. Different instances are assigned colors that are random but (tentatively) consistent over time, forming segments in offline aggregated scans or overlaid online scans.</figcaption></figure>

In this sample, which features a dynamic scene, both TARL-Seg and 4D-Seg fail to catch the moving vehicle as a single object. On static objects (stopped cars), TARL-Seg is a bit better than 4D-Seg. Yet, for most such objects, 4D-Seg catches with a single ID the majority of the object points. It provides enough regularization, after training UNIT (which is online) on offline 4D-Seg data, so that, for all static cars, points of an object instance mostly get a single ID. The moving car is still split into several IDs, but considerably less than in TARL-Seg or 4D-Seg. In fact, it seems that with UNIT, the car is more or less consistently tracked over time, but is split into different parts.
<figure><img src="image_12.png" /><figcaption>TARL-Seg: offline 4D segments from TARL computed on aggregated scans</figcaption></figure>

<figure><img src="image_13.png" /><figcaption>4D-Seg: our offline 4D segments computed on aggregated scans</figcaption></figure>

<figure><img src="image_14.png" /><figcaption>UNIT (trained on 4D-Seg): overlay of our successive online single-scan segments</figcaption></figure>

<figure><img src="image_15.png" /><figcaption>GT: overlay of ground-truth single-scan segments</figcaption></figure>

<caption>Figure 8. Visualization of object instances across time, obtained on a sample scene of PandaSet-GT. Different instances are assigned colors that are random but (tentatively) consistent over time, forming segments in offline aggregated scans or overlaid online scans.</caption>

In this sample, which features a parked car, UNIT shows the highest precision of instance segmentation, with 4D-Seg showing very close results albeit. TARL-Seg shows the car instance divided into multiple IDs, showing the limits of its small context window.
<figure><img src="image_16.png" /><figcaption>TARL-Seg: offline 4D segments from TARL computed on
aggregated scans</figcaption></figure>

<figure><img src="image_17.png" /><figcaption>4D-Seg: our offline 4D segments computed on
aggregated scans</figcaption></figure>

<figure><img src="image_18.png" /><figcaption>UNIT (trained on 4D-Seg): overlay of our successive
online single-scan segments</figcaption></figure>

<figure><img src="image_19.png" /><figcaption>GT: overlay of ground-truth single-scan segments</figcaption></figure>

Figure 9. Visualization of object instances across time, obtained on a sample scene of PandaSet-GT (cf. Fig. 1). Different instances are assigned colors that are random but (tentatively) consistent over time, forming segments in offline aggregated scans or overlaid online scans.

In this sample, which features a dynamic scene, TARL-Seg and 4D-Seg have a similar qualitative performance: the background stuff and objects are a bit noisy while the moving car is segmented with two IDs instead of one. After training UNIT (which is online) on offline 4D-Seg data, a regularization operates and the moving car is now assigned a single ID over time, apart from just a few noisy points.

Please note that we (4D-Seg and UNIT) obtain more labels than in the ground truth as our class-agnostic segmentation include all objects and stuff, such as trees or buildings, while the ground truth is restricted to a few selected object classes.