Skip to content

ParisLille3D

The Paris-Lille-3D (NPM3D) dataset.

First page of Paris-Lille-3D: a large and high-quality ground truth urban point cloud dataset for automatic segmentation and classification

1712.00032 · November 2017

Paris-Lille-3D: A Point Cloud Dataset for Urban Scene Segmentation and Classification by Roynard, Deschaud and Goulette (2018).

The 10-class benchmark splits the data into:

  • train: Lille1_1.ply, Lille1_2.ply, Paris.ply
  • val / held-out: Lille2.ply

There is also a 50-class research split with three large .ply files plus per-class XML annotations; this loader targets the standard 10-class benchmark used by published RandLA-Net checkpoints.

Classes:

  • ParisLille3D –

    The Paris-Lille-3D 10-class benchmark.

Functions:

ParisLille3D

ParisLille3D(
    root: PathLike,
    *,
    split: ParisLille3DSplit = "val",
    files: Optional[Sequence[str]] = None,
    transform: Optional[
        Callable[[Dict[str, Any]], Dict[str, Any]]
    ] = None,
)

Bases: PointCloudDataset

The Paris-Lille-3D 10-class benchmark.

Each sample is a single PLY scan, returned as a dictionary:

Key Shape Dtype Meaning
pos \((N, 3)\) float32 XYZ
reflectance \((N, 1)\) uint8 LiDAR reflectance
segment \((N,)\) int64 Raw class id, 0-9 (0 = unclassified, ignored)
name str Source file name without extension

Parameters:

  • root (PathLike) –

    Dataset root. Files are read from <root>/ParisLille3D/raw/<file>.ply.

  • split (ParisLille3DSplit, default: 'val' ) –

    One of "train" / "val" / "trainval" / "all". The 10-class benchmark holds out Lille2.ply as the val split; the public test files (test_10_classes/) have no labels and are not loaded here.

  • files (Optional[Sequence[str]], default: None ) –

    Optional explicit list of file names. Overrides split.

  • transform (Optional[Callable[[Dict[str, Any]], Dict[str, Any]]], default: None ) –

    Callable applied to each loaded sample dict at __getitem__ time.

Note

The raw dataset must be downloaded manually from npm3d.fr/paris-lille-3d. The expected layout is <root>/ParisLille3D/raw/<Lille1_1, Lille1_2, Lille2, Paris>.ply.

Methods:

  • download –

    Paris-Lille-3D must be downloaded manually (a license must be accepted).

Attributes:

  • name (str) –

    Name of the dataset directory.

  • data_dir (str) –

    Path to the dataset directory <root>/<name>.

  • raw_dir (str) –

    Path to the raw download directory.

  • processed_dir (str) –

    Path to the processed cache directory.

name property

name: str

Name of the dataset directory.

data_dir property

data_dir: str

Path to the dataset directory <root>/<name>.

raw_dir property

raw_dir: str

Path to the raw download directory.

processed_dir property

processed_dir: str

Path to the processed cache directory.

download

download(force: bool = False) -> None

Paris-Lille-3D must be downloaded manually (a license must be accepted).

Parameters:

  • force (bool, default: False ) –

    Unused; present to mirror the other datasets' download signature.

Raises: RuntimeError: Always; automatic download is not supported.

load_parislille3d_data

load_parislille3d_data(
    ply_path: PathLike,
) -> Dict[str, Tensor]

Parse a Paris-Lille-3D 10-class PLY file.

The training files store per-vertex x, y, z (float32), reflectance (uchar) and class (int32). The class column is omitted in test files; callers receive only pos and reflectance in that case.

Key Shape Dtype
pos \((N, 3)\) float32
reflectance \((N, 1)\) uint8
segment \((N,)\) int64