Skip to main content

按相机型号(DESAYSV/PONY)解析内参,返回统一 dict,支持保存为与 D02 一致的 YAML 格式。

Project description

mini-camera-intrinsic

按相机型号解析内参,返回统一字典;支持保存为与 D02(pb_calibration)一致的本地 YAML 格式。

安装

pip install mini-camera-intrinsic

功能

  • **parse_intrinsics(camera_model, kwargs):按相机型号解析,返回 List[dict],每项与 D02 单组内参 YAML 同构。
  • **parse_intrinsics_from_dir(camera_model, root_dir, kwargs):按相机型号 + 根目录自动遍历子目录,发现对应格式的 log / camera_id 后调用上层解析逻辑,返回 List[dict]
  • save_intrinsics_to_dir(intrinsics_list, output_dir):将上述列表写入 output_dir/intrinsics/*.yaml

支持的相机型号(硬编码):DESAYSVPONY

快速开始

DESAYSV(按精细参数传入)

需提供 log 来源(目录或文件列表)与 camera_id 映射(camera_id 文件路径或 dict,不能传文件夹路径):

from mini_camera_intrinsic import parse_intrinsics, save_intrinsics_to_dir, CAMERA_MODEL_DESAYSV

# 方式一:log 目录 + camera_id 文件
items = parse_intrinsics(
    CAMERA_MODEL_DESAYSV,
    log_dir="/path/to/log_dir",
    camera_id_path="/path/to/camera_id",
)

# 方式二:log 文件列表 + camera_id 映射
items = parse_intrinsics(
    CAMERA_MODEL_DESAYSV,
    log_paths=["/path/to/camera_30.log", "/path/to/camera_100.log"],
    camera_id_mapping={1: "front_30", 2: "front_120"},
)

# 返回 List[dict],可保存到本地
save_intrinsics_to_dir(items, "/path/to/output_dir")

PONY(按精细参数传入)

需提供 log 文件路径:

from mini_camera_intrinsic import parse_intrinsics, CAMERA_MODEL_PONY

items = parse_intrinsics(
    CAMERA_MODEL_PONY,
    log_path="/path/to/drivers_camera_pony.log.INFO.xxx",
)
# 或 file_path=...

按目录自动解析(推荐方式)

当你已经有一整个相机日志目录(例如本仓库的 tests/fixtures),可以仅传入根目录,由库内部自动遍历子文件夹并发现需要的 log / camera_id 文件:

from mini_camera_intrinsic import (
    CAMERA_MODEL_DESAYSV,
    CAMERA_MODEL_PONY,
    parse_intrinsics_from_dir,
    save_intrinsics_to_dir,
)

# DESAYSV:传入包含 .log 和 camera_id 的根目录
items_desay = parse_intrinsics_from_dir(
    CAMERA_MODEL_DESAYSV,
    root_dir="./tests/fixtures/DESAYSV",  # 相对路径或绝对路径均可
)

# PONY:传入包含 pony log 的根目录
items_pony = parse_intrinsics_from_dir(
    CAMERA_MODEL_PONY,
    root_dir="./tests/fixtures/PONY",
)

# 统一保存为 D02 风格的 YAML
save_intrinsics_to_dir(items_desay, "./output_desay")
save_intrinsics_to_dir(items_pony, "./output_pony")

典型工程用法:只要日志目录结构与 tests/fixtures 类似(DESAYSV 目录下有若干 *.log 和一个 camera_id 文件,PONY 目录下有 *.INFO**.log*),即可直接将该目录路径作为 root_dir 传入。

返回格式(dict)

每条内参与 D02 单组 intrinsic YAML 一致,例如:

  • frame_id: str
  • model_type: "PINHOLE" | "FISHEYE"
  • pinhole(或 fisheye): width, height, intrinsic(9 个数), distortion(4 或 8 个数)

便于 API 调用与 save_intrinsics_to_dir 入参。

依赖

  • Python >= 3.10
  • PyYAML >= 6.0

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mini_camera_intrinsic-0.0.3.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mini_camera_intrinsic-0.0.3-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file mini_camera_intrinsic-0.0.3.tar.gz.

File metadata

  • Download URL: mini_camera_intrinsic-0.0.3.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for mini_camera_intrinsic-0.0.3.tar.gz
Algorithm Hash digest
SHA256 ce330dd9694c88d64fcedbab1b556c6793d8459e2dad607e5a9d3cc3b006277b
MD5 5b807bc569e7763bf03067b44761b9cd
BLAKE2b-256 f110a64e8b9347791c65dd05975c944abc78a352793b6e86a5d259728c5771e2

See more details on using hashes here.

File details

Details for the file mini_camera_intrinsic-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for mini_camera_intrinsic-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 efe09863878a6fdbb1bc128a7b9fb2cd5b6c8faf2ddb99681f3f3cb265cde09f
MD5 1ce0efeb01ffb96302e0ef92acfff9b4
BLAKE2b-256 8abed78d0e2f0a5e74a4008a8ed3ba837e45fa46dbe52e9af600437a996da29a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page