界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

pykitti

pykitti

【数据与研究】Guide Python workflows for loading, validating, and interpreting KITTI raw, odometry, and tracking data with pykitti.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: pykitti description: "Guide Python workflows for loading, validating, and interpreting KITTI raw, odometry, and tracking data with pykitti." disable-model-invocation: true metadata: disco-role: operating license: MIT

pykitti

Use this skill when a task names pykitti, KITTI raw drives, odometry benchmark sequences, Velodyne .bin scans, OXTS packets, KITTI calibration, stereo camera streams, or KITTI tracking labels. It teaches the public pykitti==0.3.1 Python surface and safe validation patterns; it does not fetch large datasets or run GUI demos.

Install and inspect

Install the public package in the Python environment that will run the workflow:

python -m pip install pykitti
# Required by this release's eager tracking import:
python -m pip install opencv-python-headless
python -c "import pykitti; print(pykitti.raw, pykitti.odometry, pykitti.tracking)"

The declared runtime dependencies are NumPy, matplotlib, Pillow, and pandas. OpenCV is not declared by the package metadata, but pykitti.__init__ imports tracking.py, which imports cv2 eagerly. Read troubleshooting when top-level import fails. Use the install diagnostic for a read-only import, version, dependency, and signature check from an arbitrary working directory.

Choose the route

User request or data layoutRead next
Date/drive tree such as 2011_09_26/<date>_drive_<drive>_sync, OXTS, raw cameras, raw Velodyneraw-data
sequences/<sequence>/calib.txt, times.txt, optional poses/<sequence>.txtodometry
label_02, detection/label rows, object IDs, DontCare, per-frame boxestracking
Shared rotations, calibration parsing, image or Velodyne primitivesAPI overview, then the owning route
Installation, missing files, dependency, alignment, or compatibility failuretroubleshooting

Shared operating rules

  1. Identify the KITTI distribution and exact root layout before constructing a loader. A raw drive tree is not an odometry sequence tree.
  2. Validate metadata and compare sensor counts before synchronized processing. pykitti discovers files with sorted globs but does not reconcile stream lengths or numeric frame IDs.
  3. Use frames as positional indices into sorted lists. Validate indices and list lengths yourself; do not assume a filename filter or alignment repair.
  4. Use generator properties for sequential access and get_* methods for indexed access. Materialize one-pass generators when they must be reused.
  5. Keep frame names explicit: T_destination_origin is a homogeneous 4x4 transform, K_camN is a 3x3 intrinsic matrix, and Velodyne rows are [x, y, z, reflectance].
  6. Keep dataset acquisition, archive extraction, plotting, and GUI operations outside this runtime route. Prefer a trusted external data process and the bundled local fixture smokes for deterministic checks.

Verification

Run the safe fixture smoke belonging to the selected route before using a real archive. These scripts create temporary tiny fixtures and make no network or GUI calls:

  • Raw: python sub-skills/raw-data/scripts/raw_fixture_smoke.py
  • Odometry: python sub-skills/odometry/scripts/odometry_fixture_smoke.py
  • Labels: python sub-skills/tracking/scripts/labels_fixture_smoke.py

Read repository provenance before deciding whether this skill matches a later checkout or needs refreshing. The source snapshot is intentionally separate from the review artifacts and local inspection environment.

我的收藏