3D Lines
This page has two halves. Annotating is the order to work in and the tools that make each step cheap. Reviewing is what to check before a task leaves your hands โ the same checks whether you are checking your own work or someone else's.
Annotating, in short:
Set up the view
Bird's Eye View (b) plus the settings that make the ground visible.
Read the scene
What you are annotating, and whether the data supports it.
Choose the order
One class at a time, each class supporting the next.
Draw the lines
Adjust
Simplify, align to the ground, fix directions.
Set properties
Once, then paste along the run.
Annotating
3D lines describe the ground, so set the view up to show the ground clearly. Once per project is usually enough.
If you change only three things: Bird's Eye View (b), point cloud colours by Intensity, and Show node ground alignment. The rest is refinement.
See the ground
Setting | Where | Why |
|---|---|---|
Bird's Eye View (b) | Main view | New nodes land at ground level, based on the lidar points. |
Hide object points | View โ Point cloud point filter | Hides other objects' points. Not in all task types. |
See the markings
Setting | Where | Why |
|---|---|---|
Point cloud colors โ Intensity or Intensity gradient | View โ Point cloud colors | Painted markings reflect more light, so they stand out. |
Point cloud color interval | Window โ Point cloud color interval... | Intensity gradient only separates markings from road once tuned. |
Point cloud highlight โ Full view | View โ Point cloud highlight | Lights the whole cloud, not just the current field of view. |
See your own lines
Setting | Where | Why |
|---|---|---|
3D node mode โ All nodes | View โ 3D node mode | Shows every line's nodes, not only the selected line's. |
Show node ground alignment | View | Colours nodes by distance to the ground. |
Show node indices | View | Numbers each line's nodes from 1, so a node can be named. Follows your 3D node mode. |
Direction indicator โ All lines/lanes | View โ Direction indicator | Shows which way every line runs. |
Geometry settings | Window โ Geometry settings... | On-screen size of lines and nodes โ easier to see and click. |
Check your lines against the cameras
Setting | Where | Why |
|---|---|---|
Projections โ Selected object (2D), All objects (2D) | View โ Projections | Projects your lines into the images, to check against what the cameras saw. |
Projections โ Search light | View โ Projections | Shows where in 3D an area of the image is. |
Object camera ruler | View | Adds a scale to the object cameras, so you can judge how far off a node is. |
The cameras can also follow your work, from the The camera drawerexpanded camera drawer:
- Auto-switch: object camera and frame visibility โ jumps to the camera and frame where the selection is best visible. Best for reviewing. Aggregated scenes only.
- Auto-switch: cursor position โ follows your mouse. Best for classes you read from the images rather than the point cloud.
๏ปฟViewView๏ปฟ
๏ปฟPoint slicingPoint slicing๏ปฟ
๏ปฟProjectionsProjections๏ปฟ
๏ปฟObject camerasObject cameras๏ปฟ
๏ปฟPoint cloud aggregationPoint cloud aggregation๏ปฟ
A minute here is the cheapest minute in the task.
- Look through the scene. Step through a few frames in 2D: which markings and edges you will annotate, which belong together, how far the work reaches.
- Use the ego trajectory to navigate, not to place lines. Clicking it jumps to that frame. Where the vehicle drove is not where a line belongs โ on a narrow road it may drive down the middle while the scene still needs a line each side.
- Wait for the ground. Nodes snap to the ground only after Detecting ground finishes.
- Know what you are looking at. Your nodes are only as accurate as the ground under them:
- Smearing โ a stationary object that looks smeared means the cloud drifts, so the ground is not where it appears.
- Ghost shells โ vehicles and pedestrians look hollow in an Point cloud aggregationaggregated point cloud. Expected, not a fault.
What to do about these is a project question: some projects want the task flagged, others want it annotated as it is.
Which classes a scene needs is decided for you. The order you create them in usually is not โ and it changes how much each class costs you.
Finish one class before starting the next. Fewer class switches, properties paste across a whole run, and the Property overlayProperty overlay shows whether a run is complete.
Then order the classes so each supports the next:
- Reference lines โ the longest, clearest lines, usually painted markings. Easiest to place accurately, and they orient you in 3D for everything else.
- Physical boundaries โ curbs, road edges, barriers. Later lines are judged against these, so draw them before.
- Closing lines โ where the area ends without a physical edge, such as the far end of the road. Hold alt to attach their end nodes to the boundaries and close the area.
- Surfaces and connections derived from those lines โ build with Derived classesCenterline, Lane connection or Combined line rather than freehand. Only cheap once steps 2 and 3 are right: a derived shape inherits its sources.
- Exclusions inside a surface โ islands and obstacles. If they need links to the shapes they sit inside, set those now, while both shapes are fresh.
- Classes you judge from the images โ surface conditions, ground deviations. Place the first nodes with Auto-switch: cursor position on.
- The extent of the annotation โ a shape that says how much of the scene is annotated, if the task has one, comes last: only then can you see how far the cloud stays dense and what has to fit inside.
Not every scene has all seven. With no painted markings, step 1 falls away and the physical boundaries become your reference lines.
Two kinds of boundary. A physical boundary is visible in the cloud, so it comes early and everything is measured against it. An extent boundary is a decision about how much to annotate, so it comes last. Treating the second like the first is what makes people redraw it.
Plan where each line starts and stops
- Break lines where they need to connect. Derived tools work from line ends, so a stretch that connects to something must end there โ one object per stretch, not per road.
- Run lines past the shape that bounds them where they are meant to cross it, rather than stopping exactly on the boundary.
- Start a line only where the feature is real. Too narrow for what it describes means it has not started yet.
Node density and placement
- Few nodes on straights, more through curves. Extra nodes on a straight add review time, not accuracy.
- Keep nodes on the ground, not on what stands above it. A node on a tree, pole or parked vehicle leaves the line floating.
- Skip adjustments below your project's tolerance.
Work in Bird's Eye View (b) whenever you can: each node lands at the lowest point in the cloud where you place it.
- Hold alt while drawing to Attach nodesattach the node to another line, lane or point.
- Select the Pen tool again to continue the selected line.
- Extend a finished line with 0 at the end, shift+0 at the start.
๏ปฟAction assist: 3D linesAction assist for 3D lines steps the view sideways as you place nodes, so the drawing motion is shorter and your hands stay in one place. If it stops stepping, press esc, b, select the class again and place the first node.
Building on lines that already exist
๏ปฟDerived classesDerived classes make a new shape from shapes you already drew:
Derived class | What it gives you | Options |
|---|---|---|
Centerline | A line midway between two lines or lanes, e.g. between left and right lane edges. | Length: same as selected, or selected plus connected lines. |
Lane connection | A smooth line connecting two lines or lanes. | Curve type Soft or Sharp and curve strength. A type is suggested, and the choice appears only for lines that cross. |
Combined line | One line through two or more existing lines, with a node at every selected node. For U-shaped and closed shapes. | Offset in cm; positive pushes nodes outward. |
- Selection order matters โ it sets a lane connection's direction and a combined line's shape. If the result doubles back, check both sources run the same way.
- Keep lane connection curves gradual unless the real geometry is sharp.
- A derived line is only as good as its sources. Expect to check length, direction, overlap, ground position and node count before you move on. On complex stretches, drawing the line yourself beats repairing a derived one.
Drag to duplicate creates the opposite edge in one motion, usually needing edits after. See Drag to duplicateDrag to duplicate.
๏ปฟ3D lines3D lines๏ปฟ
๏ปฟAdd/ remove nodesAdd/remove nodes๏ปฟ
Node tools โ add, remove and adjust one or many nodes. Most are in the Action barAction bar; Transformation controlstransformation controls work on a single node.
๏ปฟAdd/ remove nodesAdd/remove nodes ยท Align 3D nodes to groundAlign nodes to ground ยท Multi-edit nodesMulti-edit nodes ยท Attach nodesAttach nodes ยท Detach nodesDetach nodes๏ปฟ
Shape tools โ modify or combine whole shapes; Scissors works on several lines at once. For position, scale or rotation, activate Node and shape edit modesShape edit.
๏ปฟAlign 3D nodes to groundAlign 3D nodes to ground ยท Simplify 3D line/ lanesSimplify 3D line/lanes ยท ScissorsScissors ยท Join lines/ lanesJoin lines/lanes๏ปฟ
- Wrong direction? Right-click the line โ Reverse direction.
- Splitting gives you two objects. Anything that referenced the original โ a link, or a shape derived from it โ may now point at the wrong half.
- Joining merges two lines into one object and ID. Pick the ends; the preview arrow shows the resulting direction. If a join will not commit, detach the lines and leave a gap between the ends.
Set them however you normally do โ Quick-propertiesQuick-properties, the Edit tab, or copy and Propertiespaste from another shape of the same class.
What is worth doing differently on lines: set one line correctly, then paste its properties down the whole run before moving to the next class. The Property overlayProperty overlay colours shapes by their properties, so a run you have not finished is easy to spot.
Reviewing
Run these checks before a task leaves your hands. They are the same whether you are finishing your own annotation or reviewing someone else's โ the difference is what you do with what you find: correct it, or record it as Add feedbackfeedback for whoever annotated it. Which of the two your project expects is a project question.
When you add feedback to a line or lane, a pin is placed automatically โ at the point you clicked, or at the node you had selected when you opened the form โ and Go to pin on the feedback card takes the annotator straight there. The pin follows one object, so it disappears if you select a second.
Go through the scene with Bird's Eye View both on and off โ each exposes different mistakes.
With Show node ground alignment and 3D node mode โ All nodes on, look for orange and red:
Colour | Meaning |
|---|---|
Green | On the ground โ within 10 cm. |
Orange | Slightly off โ within 25 cm. |
Red | More than 25 cm off. |
White | Ground could not be determined there. |
Turn on Show node indices as well if you are writing feedback: it numbers the nodes from 1, so a comment can name the node it is about instead of describing where it is.
Then check from a second angle: turn Bird's Eye View off and travel the scene at ground level, or step through frames in 2D. A line that looked fine from above is obviously floating from the side. Auto-switch: object camera and frame visibility (aggregated scenes) or Auto-switch: object camera visibility does this as you step node to node, with the line projected into the 2D miniature image2D miniature image.
Turn on Direction indicatordirection indicators for all lines and check them in one pass. What a direction means is defined per task, and can differ between datasets in one project โ right-hand versus left-hand traffic, for instance โ so check which the task is from rather than assuming.
Where two shapes are meant to be related, check the link is actually set. Turn on object links in the Edit tabEdit tab to see the connections in the scene, and View โ Show object link area to shade the stretch each link covers, with one colour per area on a shape that has several โ useful when the question is not whether a link exists but whether it covers the right stretch.
Re-check links near anything that was cut, joined or redrawn: a shape that referenced the original line may now point at the wrong object.
Use the Property overlayProperty overlay to confirm every class carries the properties it needs.
When the objects in your way are defined by a value rather than a class, hover the value in an expanded property and click the hide icon: every object with that value disappears, including objects with no value set for that property. Hide several at once, and save the combination as a favourite filter if you use it in every task.
Resolve the validation warnings, then Submit & reset a tasksubmit.
๏ปฟFeedback overviewFeedback overview๏ปฟ
๏ปฟObject feedbackObject feedback๏ปฟ
๏ปฟFocused ReviewFocused review๏ปฟ
Reference
Applies to both halves.
Too many nodes. Simplify 3D line/ lanesSimplify 3D line/lanes removes redundant points, or reduces the line to a node count you choose.
Nodes are not on the ground. Try Align 3D nodes to groundAlign all nodes to ground first; where it fails โ sparse cloud, steep elevation โ align manually. On curbs and raised edges, check the result: alignment can settle nodes on top of the structure instead of at its base.
To fix a whole line's height: select it, activate Node and shape edit modesShape edit, view it in the side cameras, and use the scale transform to "squish" all nodes to the same z-position.
Trees, poles or buildings block the view from above. Hold Ctrl and scroll to slice the cloud, or set the range in Window โ Point cloud slicing... See Point slicingPoint slicing. Slicing keeps a flat band of heights, so on sloping ground the band that clears the trees at one end can cut away the road at the other โ slice for the stretch you are on, then widen again.
I can see the error in the image but not in 3D. Turn on Search light under View โ ProjectionsProjections.
The point cloud barely shows the feature. Turn on Auto-switch: cursor position in The camera drawerthe expanded camera drawer so a camera follows your mouse.
Nodes will not move, or drawing stops responding. Switch to 2D and back to 3D.
Only the line and node ones โ the general shortcuts are in The keybindings windowthe keybindings window, where you can also change these or add your own.
Shortcut | Action |
|---|---|
b | Bird's eye view mode |
alt (hold while drawing or editing) | Attach node to another 3D line, lane or point |
alt+n / alt+p | Step to next / previous node |
+ / - | Add node / remove node |
0 / shift+0 | Extend the selected line at the end / at the start |
shift+z | Switch between shape edit and node edit |