Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
:sectnums: :sectnumlevels: 1 :toc: macro :toclevels: 2
image::assets/kapture_banner.png["KAPTURE", width=800px]
toc::[]
image::https://github.com/naver/kapture/workflows/kapture-main/badge.svg[Continuous Integration Status]
== Overview
Kapture is a pivot file format, based on text and binary files, used to describe SfM (Structure From Motion) and more generally sensor-acquired data.
It can be used to store sensor parameters and raw sensor data:
As well as computed data:
Finally, many popular datasets can directly be downloaded using the convenient https://github.com/naver/kapture/blob/main/doc/tutorial.adoc#download-a-dataset[downloader]!
== Specifications The format specification is detailed in the link:kapture_format.adoc[kapture format specifications document].
== Example File Structure
This is an example file structure of a dataset in the kapture format.
== Software
The kapture format is provided with a Python library, as well as several conversion tools.
=== Install
[source,bash] pip install kapture
or see link:doc/installation.adoc[installation] for more detailed instructions.
=== Using docker
Build the docker image:
docker build . -t kapture/kapture
docker build git://github.com/naver/kapture -t kapture/kapture
If you want to process your own data, you can bind directories between the host and the container using
--volume
or --mount
option (See the https://docs.docker.com/storage/bind-mounts/[docker documentation]).
The following example mounts /path/to/dataset/
from the host to /dataset
inside the docker.
=== kapture Python library
See the https://github.com/naver/kapture/blob/main/doc/tutorial.adoc#using-kapture-in-your-code[tutorial] for some examples using the kapture Python library.
=== kapture tools
In this repository, you will find a set of conversion tools to or from kapture format.
Import results to kapture format, and conversely, export converts kapture data to other formats.
Depending of the format, some data might not be converted, either because the other format does not support it (—
)
or because its was not implemented (⨉
). Here is a table summarizing the conversion capabilities:
.conversion capabilities |=== | Format | <- -> | cam | rig | img | trj | gps | kpt | dsc | gft | p3D | obs | mch
.2+| colmap | import | ✓ | ✓ | ✓ | ✓ | ⨉ | ✓ | ✓ | — | ✓ | ✓ | (✓) | export | ✓ | ✓ | ✓ | ✓ | ⨉ | ✓ | ✓ | — | ✓ | ✓ | (✓) .2+| openmvg | import | ✓ | — | ✓ | ✓ | ⨉ | ✓ | ✓ | — | ✓ | ✓ | (✓) | export | ✓ | — | ✓ | ✓ | ⨉ | (✓) | (✓) | — | ✓ | ✓ | (✓) .2+| OpenSfM | import | ✓ | ⨉ | ✓ | ✓ | ✓ | ✓ | ✓ | — | ✓ | ⨉ | ✓ | export | ✓ | ⨉ | ✓ | ✓ | ⨉ | ✓ | — | ✓ | — | ⨉ | ✓ | bundler | import | ✓ | — | ✓ | ✓ | — | ✓ | — | — | ✓ | ✓ | — | image_folder | import | — | — | ✓ | — | — | — | — | — | — | — | — | image_list | import | ✓ | — | ✓ | — | — | — | — | — | — | — | — | nvm | import | ✓ | — | ✓ | ✓ | — | ✓ | — | — | ✓ | ✓ | — | IDL_dataset_cvpr17 | import | ✓ | — | ✓ | ✓ | — | — | — | — | — | — | — | RobotCar_Seasons | import | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | — | ✓ | ✓ | — | ROSbag cameras+trajectory | import | (✓) | (✓) | ✓ | ✓ | ⨉ | — | — | — | — | — | — | SILDa | import | ✓ | ✓ | ✓ | ✓ | — | — | — | — | — | — | — | virtual_gallery | import | ✓ | ✓ | ✓ | ✓ | — | — | — | — | — | — | — | stereolabs zed2 | import | ✓ | ✓ | ✓ | ✓ | — | — | — | — | — | — | — |===
:Notes:
✓
: supported, (✓)
partially supported, ⨉
: not implemented, —
: not supported by format.cam
: handle camera parameters, eg. intrisicsrig
: handle rig structure.img
: handle the path to images.trj
: handle trajectories, eg. poses.kpt
: handle image keypoints locations.dsc
: handle image keypoints descriptors.gft
: handle global image feature descriptors.p3D
: handle 3D point clouds.obs
: handle observations, ie. 3D-points / 2D keypoints correspondences.mch
: handle keypoints matches.link:https://gist.github.com/jo-chemla/258e6e40d3d6c2220b29518ff3c17c40[Here], you can also find an utility tool for cropping input images of a kapture dataset. Thanks Jonathan Chemla for the contribution.
== kapture support in other packages
=== Local Features
=== Global Features
== Datasets
The kapture package provides conversion tools for several data formats and datasets used in the domain. But it also provides a tool to download datasets already converted to kapture. See the link:doc/tutorial.adoc[kapture tutorial] for instructions to use the dataset downloader.
Here is a list of datasets you can directly download in kapture format with the downloader tool:
== kapture-localization
Checkout https://github.com/naver/kapture-localization[kapture-localization], our toolbox which contains implementations for various localization related algorithms.
== Tutorial
See the link:doc/tutorial.adoc[kapture tutorial] for a short introduction to:
== Contributing
There are many ways to contribute to the kapture project:
If you wish to contribute, please refer to the link:CONTRIBUTING.adoc[CONTRIBUTING] page.
== License Software license is detailed in the link:LICENSE[LICENSE] file.
== Contact Us You can contact us through https://github.com/naver/kapture[GitHub], or at kapture at naverlabs + com
FAQs
kapture: file format for SfM
We found that kapture demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.