---
title: "LiDAR + 3D Point Cloud Annotation for AD and Robotics | YPAI"
url: https://ypai.ai/annotation/lidar-3d-point-cloud-annotation-services/
description: "3D cuboid, 9-DoF tracking, per-point semantic and sensor-fusion alignment for automotive, robotics, construction and surveying. EEA processing, kappa-gated."
source: "src/copy/routes (route /annotation/lidar-3d-point-cloud-annotation-services/)"
---

# 3D point cloud annotation, delivered fusion-ready.

> 3D cuboid, 9-DoF tracking, per-point semantic and sensor-fusion alignment for automotive, robotics, construction and surveying. EEA processing, kappa-gated.

3D cuboid, 9-DoF tracking, semantic per-point, sensor-fusion alignment for LiDAR + camera + radar. EEA processing by default, kappa-gated, calibration checked before annotation.

## Compliance posture for 3D perception training data.

EU AI Act Article 10 enforcement begins 2 December 2027 for standalone Annex III systems and 2 August 2028 for AI embedded in type-approved products such as vehicles. Project-specific data-governance evidence supports automotive engagements.

- Per-class 3D IoU + BEV mAP report

### EU AI Act Article 10

- Data governance for high-risk AI in vehicles. Annotation provenance, bias-examination notes, ODD coverage documentation, ALKS edge-case taxonomy.

### GDPR Articles 7, 28, 30

- Per-contributor consent. Processor agreement. Records of processing. 30-day erasure SLA.

### EEA processing + Norway jurisdiction

- EEA residency by default, Norwegian jurisdiction, and project-specific evidence.

## Five 3D annotation primitives.

Which one you procure depends on what your perception stack needs. Ordering cuboids when the stack needs per-point semantics means paying twice.

- 7-DoF bounding box (x, y, z, w, h, l, yaw) plus class. Sufficient for most AD object-detection baselines and counting tasks.
- AD/ADAS perception baseline, counting, basic tracking
- 3D IoU >= 0.6 vehicle, >= 0.5 pedestrian

### x/y/z

### w/h/l

### yaw

- Adds pitch + roll to the 7-DoF box. Captures orientation for rare poses, robotics grasp planning, and motorcycles or off-road cases.
- Orientation-aware tracking, grasp planning, edge-case poses
- 3D IoU >= 0.6 + orientation error < 5°

### x/y/z

### w/h/l

### y/p/r

- Every LiDAR return labelled with a class. Per-point granularity for road surface, vegetation, drivable area, terrain modelling.
- Road surface, drivable area, terrain DEM

### points

### classes

- Unified per-point class plus per-instance IDs. Single representation for full scene understanding (stuff and things).
- AD stack training, full scene perception
- PQ >= 0.55, RQ >= 0.7

### class

### instance

- Persistent instance IDs across frames. Enables multi-frame perception, prediction, and planning. Identity-switch rate reported in delivery.

### instance

### t

## Six verticals, each with its own sensors and ontology.

Different sensors, different ontologies, same delivery contract: EEA processing by default, calibration checked, Article 30 records on delivery.

- Cuboid + tracking + multi-modal fusion for perception stacks.
- Warehouse SLAM, delivery autonomy, grasp planning.
- BIM-ready 3D, structural surveying, terrain DEM.
- Canopy height, biomass, per-tree segmentation, yield.
- Rail, pipeline, power line. Change detection, defect localisation.
- High-density urban + rural maps for HD positioning.

## Every project clears the same six gates.

Calibration checked before annotation. 3D IoU thresholds documented. Multi-frame consistency checked.

Six gates. One trail of evidence. Calibration checked before any annotation.

### Schema + calibration check

- Class taxonomy locked with your team. Calibration data (intrinsic, extrinsic, PTP-sync timestamps) checked before annotation begins.

### Annotation guideline

- Class definitions with ODD scope. Occlusion handling, partial-visibility policy, distance-bucket thresholds for ground truth.

### Calibration round

- Pilot batch on shared subset. 3D IoU between annotators computed. Camera-LiDAR projection check. Disagreement patterns drive refinement.

### IAA gate

- Production starts only when calibration clears the task-specific agreement, geometry, distance, and projection thresholds in the acceptance plan.
- Signed record that the gate was cleared

### Production with tracker-assist

- Multi-frame interpolation between keyframes. Tracker continuity check. Self-hosted CVAT 3D configured per project + proprietary fusion viewer.

### QA + adjudication + delivery

- Per-class 3D IoU. BEV mAP. Tracking continuity. Camera-LiDAR projection consistency. Article 30 records, signed DPA, sub-processor list.

## Scene types our 3D pipeline ingests.

Six representative driving scenes, each with the annotation class taxonomy we lock with your team before production. Class counts shift per scene type. Production work runs against your raw scans, multi-frame, with calibration checked.

## Benchmark coverage on public datasets.

3D IoU at 0.7 is the threshold autonomous-driving perception teams usually test against. We hold this on the public splits we have published; customer-deployment numbers are reported under NDA.

Most LiDAR public datasets are research-licensed; A2D2 is the notable commercial-clean exception. Production work runs against your own data under your engagement DPA.

Licence status reflects publicly stated terms. Check per engagement before commercial training use. 'in-house' figures are anonymised customer-deployment results under NDA.

### KITTI / KITTI-360

### nuScenes

### Waymo Open

### A2D2 (Audi)

### SemanticKITTI

### Argoverse 2

## Every delivery includes the records your Article 10 file needs.

The records a regulated AD or robotics buyer expects, with every 3D engagement. No upgrade tier, no separate request.

### Annotation guideline + ODD scope.

- Versioned guideline with class definitions, occlusion handling, partial-visibility policy, distance-bucket thresholds. ODD scope documented. Every version preserved for audit.

### Calibration verification log.

- Intrinsic, extrinsic, and PTP-sync timestamp verification before any annotation begins. Calibration drift checks on long sequences. Camera-LiDAR projection consistency report.

### Per-class 3D IoU + BEV mAP.

- Per-class 3D IoU at multiple thresholds. BEV mAP. Per-distance-bucket accuracy (near, mid, far). Orientation error (yaw, pitch, roll). Centre-distance error.

### Tracking continuity report.

- Multi-frame tracking ID continuity. Track switch rate. Per-track length distribution. Identity switches per kilometre or per frame.

### Records of processing, DPA, and sub-processor list.

- Article 30 records of processing, signed Article 28 DPA, lawful-basis documentation, 30-day erasure SLA, and full sub-processor list with Article 28(2) change notifications.

## Brief us. We reply inside one EU business day.

Short brief now, deeper scoping in the reply.

## Frequently asked questions

Cuboids, per-point classes, instances and tracks, labelled in calibrated 3D by EEA annotators and delivered with the measures your acceptance plan names.

## What geometry proposes, what a person holds.

The page fits a box to each object's returns with a ground plane, a clustering pass and an L-shape search, with no model involved. The green box is the label a person held, drawn to the object's full extent. Select an object and read one against the other the way an acceptance plan does.

{label} · {range} m · {returns} returns

the page's fit · ground plane, clustering, L-shape · no model

yolov10n saw a {label} at {score} · lifted through the extrinsics · 3D IoU {iou} · {verdict}

outside the front camera · the camera model has no say here

in the frame · yolov10n drew no box on it

yolov10n drew {boxes} boxes on the frame · {lifted} lifted onto a held object · {pass} reach their written threshold

corner ticks · a 2D model's box lifted into the sweep through the rig's extrinsics

{returns} returns · Pandar64 {p64} / PandarGT {gt}

Vehicles in this sweep, by the range buckets acceptance plans tier their thresholds by

geometry alone at 3D IoU 0.7

Past 60 m a vehicle is a handful of returns, and its label is still a whole car with a heading. Holding that extent the same way across a fleet of annotators is the work.

ground agreement with the held classes

{height} m under the origin · {tilt}° to the rig

## A label is as good as the rig's register.

These are the sweep's returns on the camera frame, through the extrinsics that came with it. Disturb the rig three ways and read the damage in pixels. A rotation costs the same pixels at every range and more metres the further out you label. A sideways shift or a late clock costs the near field. All three are verified on your calibration before the first cuboid is drawn, and the log ships with the delivery.

at 50 m on the road

in register · every return on the pixel it came from

{px} px mean displacement · {m} m at 50 m

budget in a calibration log: 1 to 2 px commercial · under 0.5 px target-based

{m} m at 50 m on the road

## The car kept moving while the LiDAR looked once.

Each return carries its own timestamp. With the ego motion taken out, a pole is a pole. Put the motion back and the same pole smears along the direction of travel, and a box drawn on it inherits the error. Sweeps are checked for per-point compensation before annotation starts.

as delivered · compensated per return

returns still in the sign's box

the sign shifted {m} m along the direction of travel · every return of it was taken in one instant

## What we draw on a sweep.

The same tenth of a second, labelled five ways. Each plate carries the measure that its label type is accepted on, computed here.

### 7-DoF cuboid

- x {x} · y {y} · z {z} · l {l} · w {w} · h {h} · ψ {yaw}°
- Centre, size and heading on the ground plane. The baseline for vehicles, drawn to the object's full extent whatever share of it the sensor saw.

### 9-DoF cuboid

- road under this vehicle · pitch {pitch}° · roll {roll}° · a level box stands {lift} cm off the road at one corner
- Pitch and roll added where the ground tilts under the object: ramps, off-road, loading docks, anything grasped. The plate reads the road's tilt under this vehicle.

### Per-point semantic

- {classes} held classes · plane-fit ground against held ground IoU {iou}
- A class on every return. The plate shows the held classes and reads how far a plain plane fit agrees with the held ground.

### Panoptic

- PQ {pq} · SQ {sq} · RQ {rq} · {tp} of {held} held instances matched by geometry
- Class and instance together, so two parked cars are two things. Panoptic quality is read between the clusters geometry proposes and the held instances.

### Tracking

- {tracks} moving tracks · {seconds} s at 10 Hz · longest path {path} m · frame {f} of {n}
- One identity per object across the sequence, with rigid dimensions: a car keeps its length from the first frame to the last. The plate draws eight seconds of held tracks.

## Returns thin out with range. The label stays a whole car.

Every held object in the sweep, by range and by the returns inside its cuboid. Below five returns an object falls in the hardest tier of the public benchmarks. It still gets a class, an extent and a heading, from context, from the camera and from the frames around it.

### Far range

- held objects beyond 60 m hold five returns or fewer. Each still carries a class, a full extent and a heading.

### Heading

- fits inside 60 m point the wrong way. The long axis reads off the returns to a median of {deg}°; which end is the front is a judgement.

### Occlusion

- of a vehicle's held footprint is supported by its returns, median inside 60 m. The rest is drawn amodally, to the guideline.

## Written the way your SOW writes it.

Thresholds are yours. These are the forms they usually take, each one computed somewhere on this page, each one reported per batch.

{centre} m on the car ahead

0 switches · {tracks} tracks over {seconds} s

ground IoU {ground} · PQ {pq}

{px} px at 1.0° · 0.0 px in register

measured per batch on the blind overlap

- 3D IoU by class and range
- at least 0.7 for vehicles and 0.5 for pedestrians and cyclists, tiered 0 to 30, 30 to 60 and beyond 60 m
- a cap in degrees, with front and back flips counted apart
- a cap in centimetres, tiered by range
- zero identity switches on fully visible objects inside a sequence, rigid dimensions held
- mIoU per class, panoptic quality for instances
- a pixel budget on LiDAR to camera, checked before annotation and on long sequences
- a blind overlap share of each batch, agreement on class and on dimensions, billed on pass

## The same cuboid, three ways.

The object selected above, serialised from the same numbers. ASAM OpenLABEL for multi-sensor programmes, KITTI and nuScenes for the toolchains built around them. PCD, LAS and LAZ, custom JSON and Protocol Buffers are delivered on request. Work product is yours.

vehicle frame, ISO 8855 · x forward, y left, z up · this object's stanza in frame 0

camera frame · x right, y down, z forward · location at the floor's centre

the vehicle frame of this sweep · size as w, l, h · rotation as a quaternion w x y z

this object is outside the front camera, and KITTI labels live in the camera frame

x {x} · y {y} · z {z} · ψ {yaw}° in every file

## Six gates, one trail of evidence.

Calibration is verified before annotation. Thresholds are written down. Every batch is measured against them.

on this sweep · {px} px in register

on this sweep · 3D IoU {iou} on the car ahead

threshold · yours, per class and range

on this sweep · {b0} · {b1} · {b2} pass at 0.7

## Brief us on the rig and the labels.

A named project lead replies inside one EU business day. A pilot batch runs your guideline on your data against your acceptance plan, and ends with a throughput figure, a rejection rate and the disagreements that sharpen the guideline.

A project lead replies inside one EU business day.

Describe the rig and the task

Include: sensors and mounts, calibration and sync, label types and classes, range of interest, sequence length and volume, output format, and any residency constraints.

- [Image, 3D and sensor data](https://ypai.ai/image-3d-sensor-data/)
- [Sensor fusion annotation](https://ypai.ai/annotation/sensor-fusion-annotation-services/)
- [Semantic segmentation annotation](https://ypai.ai/annotation/semantic-segmentation-annotation-services/)

Sweep, camera frame and held labels: PandaSet by Hesai and Scale AI, sequence 013, frame 00, licensed CC BY 4.0. Returns are re-expressed in ISO 8855 vehicle axes and number plates are blurred. The held labels are PandaSet's own; the fits are this page's.

Send a sweep. Get it back measured.

3D IoU by range · heading · identity · re‑projection · on your acceptance plan

## What calibration data do you need from us?

Camera intrinsic + extrinsic parameters, LiDAR-camera extrinsics, PTP-synchronised timestamps. Calibration checked before annotation begins; drift checks on long sequences. Calibration verification log shipped with every delivery.

## Do you handle multi-modal fusion annotation?

Yes. LiDAR + camera (most common), LiDAR + camera + radar, LiDAR + IMU + GPS, LiDAR + thermal. Single 3D box drawn in LiDAR and projected to all cameras. Time-synced multi-frame annotation.

## Where is our data processed?

Norwegian company, EEA processing by default, EEA-only sourcing on request. 30-day GDPR Article 17 erasure SLA. Norwegian jurisdiction; transfer controls defined per project.

## Which compliance frameworks govern your work?

GDPR Article 28 processor obligations, EU AI Act Article 10 data governance, EEA residency by default, DPA-by-default, and project-specific evidence. Records of processing under GDPR Article 30 ship with every delivery.

## What output formats do you deliver?

KITTI format, nuScenes JSON, custom JSON or Protocol Buffers, vendor formats (Ouster, Velodyne, Hesai), PCD, LAS/LAZ for surveying. Customer-owned work product, no reuse rights retained.
