Skip to content

feat(v1.0): T4Dataset v1.0 Release - #320

Draft
jacoblambert wants to merge 24 commits into
mainfrom
v1-dev
Draft

jacoblambert wants to merge 24 commits into
mainfrom
v1-dev

Conversation

@jacoblambert

Copy link
Copy Markdown
Collaborator

No description provided.

* docs(schema): add T4Dataset 1.0 specification

* docs(schema): list input_bag in assets, store panoptic point labels in the LiDAR file

* docs(schema): remove under-development warning (markdownlint MD046)

* docs(schema): every frame is a sample, has_key_frame marks annotated ones

* docs(schema): reserve 0 in point labels, null only for frames without labels

* docs(schema): scenario confidence, per-frame LiDAR only for unmigrated 0.x

* docs(schema): instance column int16, -1 for no object, index from 0
* docs(schema): add T4Dataset 1.0 specification

* docs(schema): list input_bag in assets, store panoptic point labels in the LiDAR file

* docs(schema): remove under-development warning (markdownlint MD046)

* docs(schema): every frame is a sample, has_key_frame marks annotated ones

* docs(schema): reserve 0 in point labels, null only for frames without labels

* docs(schema): scenario confidence, per-frame LiDAR only for unmigrated 0.x

* docs(schema): instance column int16, -1 for no object, index from 0

* test(sample): add T4Dataset 1.0 sample dataset test fixture

* test(sample): every frame is a sample, add a non-key LiDAR-only frame
* docs(schema): add T4Dataset 1.0 specification

* docs(schema): list input_bag in assets, store panoptic point labels in the LiDAR file

* docs(schema): remove under-development warning (markdownlint MD046)

* docs(schema): every frame is a sample, has_key_frame marks annotated ones

* docs(schema): reserve 0 in point labels, null only for frames without labels

* docs(schema): scenario confidence, per-frame LiDAR only for unmigrated 0.x

* docs(schema): instance column int16, -1 for no object, index from 0

* test(sample): add T4Dataset 1.0 sample dataset test fixture

* test(sample): every frame is a sample, add a non-key LiDAR-only frame

* feat(schema): add T4Dataset 1.0 manifest and version detection
* fix sensor docstring

* feat(schema): add T4Dataset 1.0 core tables

* feat(schema): sample.has_key_frame, every sample_data belongs to a sample

* fix(schema): map ids, map filename and ego_pose.frame can't be empty
…object_ann (#299)

* fix(schema): remove surface_ann

* fix(docs): describe AnnotationType

* fix(schema, tests): make num_lidar/radar_pts nullable if the modality is not available

* feat(schema): add T4Dataset 1.0 label tables, merge surface_ann into object_ann

* docs(schema): fix typo

* feat(schema): instance index fits int16 (0 to 32767)

* fix(schema): category.name can't be empty
…light tables (#300)

* fix(docs): move route Pose to RoutePose for clarity as Pose is not used in other classes

* feat(schema): add T4Dataset 1.0 vehicle, route, scenario and traffic light tables
…ields (#304)

* feat(schema): add T4Dataset 1.0 dataset minimal loader with lookup shortcut fields.

* feat(loader): every frame of a sample in sample.data
… layout (#305)

* docs(schema): add T4Dataset 1.0 specification

* docs(schema): list input_bag in assets, store panoptic point labels in the LiDAR file

* docs(schema): remove under-development warning (markdownlint MD046)

* docs(schema): every frame is a sample, has_key_frame marks annotated ones

* docs(schema): reserve 0 in point labels, null only for frames without labels

* docs(schema): scenario confidence, per-frame LiDAR only for unmigrated 0.x

* docs(schema): instance column int16, -1 for no object, index from 0

* test(sample): add T4Dataset 1.0 sample dataset test fixture

* test(sample): every frame is a sample, add a non-key LiDAR-only frame

* feat(schema): add T4Dataset 1.0 manifest and version detection

* feat(schema): add T4Dataset 1.0 sensor table

* fix sensor docstring

* feat(schema): add T4Dataset 1.0 core tables

* feat(schema): sample.has_key_frame, every sample_data belongs to a sample

* fix(schema): map ids, map filename and ego_pose.frame can't be empty

* fix(schema): remove surface_ann

* fix(docs): describe AnnotationType

* fix(schema, tests): make num_lidar/radar_pts nullable if the modality is not available

* feat(schema): add T4Dataset 1.0 label tables, merge surface_ann into object_ann

* docs(schema): fix typo

* feat(schema): instance index fits int16 (0 to 32767)

* fix(schema): category.name can't be empty

* fix(docs): move route Pose to RoutePose for clarity as Pose is not used in other classes

* feat(schema): add T4Dataset 1.0 vehicle, route, scenario and traffic light tables

* feat(schema): add T4Dataset 1.0 caption table

* feat(schema): add T4Dataset 1.0 table names and registry

* feat(schema): consistent name/index fields, add sensor index and LiDAR source columns

* feat(schema): add T4Dataset 1.0 dataset minimal loader with lookup shortcut fields.

* feat(loader): every frame of a sample in sample.data

* feat(common): load LiDAR frames from Parquet, PCD or bin by their own layout

* fix(formatting): lint

* feat(common): leave out point columns null for the whole frame
…s) (#307)

* feat(schema): load 0.x datasets as 1.0 records (core tables)

* feat(convert_v0): estimate DistortionModel from_num_coefficients

* feat(convert_v0): allow visibility to be null

* feat(convert_v0): loader, converter and fallbacks for v0->v1 migration

* fix(docs): update documentation

* docs(schema): reword visibility note (prettier)

* feat(schema): one 1.0 sample per 0.x frame, grouped by frame number

* fix(schema): count 0.x instance labels over 3D boxes and 2D labels

* docs(schema): 0.x tools count instance labels differently

* fix(schema): a 0.x frame with only a semantic mask is a key frame
…ll source LiDARs and capture time (#308)

* feat(schema): load 0.x vehicle states and traffic light links as 1.0 records

* feat(schema): fill 0.x category index by list position
* feat(loader): load datasets through load_dataset()

* feat(tier4): label confidence and time series on 1.0 records

* fix(sample): store a real RLE road mask in the 1.0 sample

* feat(helper): render 1.0 records and data files

* feat(tier4): boxes and rendering on non-key samples
* docs(sanity): add T4Dataset 1.0 requirements

* docs(sanity): non-key frames have no sample, opt-in checksums

* docs(sanity): sample-frames and labels-on-key-frames rules for every-frame samples

* docs(sanity): REC029 reserved zero in point labels, REF306 allows instance 0

* docs(sanity): REC029 point-labels-reserved, REF306 allows instance -1
* feat(sanity): pick rules by schema version, add 1.0 structure and format rules

* feat(sanity): add 1.0 record rules

* feat(sanity): add 1.0 reference rules + style fixes + TLR samples

* feat(sanity): REC029 reserved zero in point labels, REF306 allows instance 0

* feat(sanity): REC029 point-labels-reserved, REF306 allows instance -1
* feat(common): write LiDAR frames to Parquet and camera frames to AV1

* feat(schema): DatasetWriter writes 1.0 tables, data files and manifest.json

* feat(tests): sample generation through write()

* feat(common): save_pointcloud writes a missing field as a null column

* perf(common): save_pointcloud encodings by dtype, zstd level 1

* fix(schema): DatasetWriter refuses to overwrite a channel file
* feat(schema): V0Migrator writes 0.x LiDAR frames to one Parquet file per channel

* feat(schema): V0Migrator encodes 0.x camera images as one AV1 video per channel

* feat(cli): t4migrate migrates a 0.x dataset to 1.0

* docs(schema): 0.x tools count instance labels differently

* fix(schema): index instances for migrated lidarseg, t4migrate help, migration tests

* feat(schema): migrated lidarseg writes instance as int16 -1, indices from 0
* chore: fix stale notes and remove dead code

* refactor: one implementation for file hashes, instance label counts and asset folders

* style: local constants, match on Maybe, helper methods

* docs: Return-form docstrings, with Args/Returns on the 0.x converter

* style: no ** dict spreading in tests and the sample generator

* test: shared SampleCopy helper, merge round-trip and invalid-record tests, drop redundant tests

* fix(cli): create the version console at call time, so captured output has no colors

* test(schema): instance index above int16 is rejected

* fix(schema): sample_data.filename is required, as in the master sheet

* test(schema): SampleCopy in the mask-only key frame test
@jacoblambert jacoblambert changed the title T4Dataset v1.0 Release feat(v1.0): T4Dataset v1.0 Release Oct 22, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant