Add comma2k19 dataset support#19
Merged
Merged
Conversation
comma2k19 is a single forward-camera highway dataset: a 20 Hz comma EON road camera plus a fused GNSS/IMU ego pose and CAN telemetry, in ~2000 one-minute segments. The new processor/converter: - discover segments from extracted directories or read the distributed Chunk_*.zip archives in place (video.hevc staged to scratch, cleaned up); - decode the HEVC stream forward-only with a per-worker, per-segment cache (HEVC random seek is unreliable); - emit the single FRONT camera (EON pinhole intrinsics, identity extrinsics), the ego pose + speed in a per-segment local FLU frame, and the past/future ego trajectories via FuturePastStatesFromMatricesAggregator. Registers the dataset in the process_source_dataset CLI, with a config, a prepare script, tests (synthetic coordinate-convention checks plus real-frame checks gated on COMMA2K19_ROOT), and a README support-matrix row.
Add a comma2k19 row and footnote to docs/datasets.rst, matching the existing per-dataset format: a single forward comma EON camera, the ego pose and speed in a per-segment local FLU frame, zip-direct / forward-only HEVC decoding, and no lidar, HD map, 3D detections, or driving command.
Switch comma2k19 to extracted-directories only: the distributed Chunk_*.zip archives must be unzipped first (as with WayveScenes101). Drop the in-archive discovery, in-memory zip reads, per-segment scratch video extraction, and the associated cleanup, leaving a single directory-based path; SegmentRef collapses to (path, segment_id, route, segment). The prepare script now extracts the archives before processing. Add a --image_max_size converter knob that downscales each frame so its longest side is at most N px, scaling the camera intrinsics to match so projection still holds. Combined with --frame_stride it bounds the otherwise large output (~2 TB at native 20 Hz / 1164x874). README, docs, and tests updated.
Resizing belongs in the adapter (transform) layer, not the SourceDatasetProcessor.
The comma2k19 processor again emits raw, full-resolution frames; CamerasIdentityAdapter
gains an optional `max_size` param that downscales each camera image (longest
side <= max_size) and scales its intrinsics to match. Downscaling is configured
per dataset via the adapter's `params: {max_size: N}`, replacing the comma2k19
`--image_max_size` CLI flag. Docs, config, script, and tests updated.
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds support for the comma2k19 dataset — ~2000 one-minute highway segments, each a single forward-facing 20 Hz comma EON camera (1164×874) plus a fused GNSS/IMU ego pose and CAN telemetry.
Mapping to the unified format
FRONTimage (EON pinhole intrinsics; identity extrinsics, since the dataset pose is the camera pose).TrajectoryComponent.SPEED) from the ECEF velocity.FuturePastStatesFromMatricesAggregator.Notes
Chunk_*.ziparchives before processing (same convention as WayveScenes101); the prepare script does the extraction.wxyz) was verified empirically against gravity and trajectory shape; a regression test guards it.--frame_stride N(every Nth frame) and thecameras_identity_adaptermax_sizeparam (downscale image + scale intrinsics) bound the otherwise ~2 TB-at-20 Hz output.Validation
pytest+mypy+black+isort+flake8all green.Changes
standard_e2e/caching/src_datasets/comma2k19/(processor, converter, geometry + IO helpers); registered in theprocess_source_datasetCLI.CamerasIdentityAdaptergains an optionalmax_size(config-driven downscaling, intrinsics-aware).configs/comma2k19.yaml,scripts/prepare_dataset_comma2k19.sh, tests, README support-matrix row, anddocs/datasets.rstentry.