Pix4D Labs: Meet OPF - the PDF of photogrammetry
What is OPF
We are launching a brand new standard for photogrammetry file formats called Open Photogrammetry Format, or OPF. OPF is a fully open and free specification, which means that it is now possible to store, exchange, and collaborate on photogrammetric data between different parties and software products - even if the software is developed by different companies.
OPF at its core is a specification for a flexible and extensible format that stores all of the data related to a reconstructed 3D model made with photogrammetry. This data includes information on both inputs and outputs of the photogrammetry process:
- The input data includes information about the cameras used, their parameters, coordinate reference system, control points, the scale, and more.
- The output data includes information about the camera calibration and the dense reconstructed point cloud.
Why did we make it?
We developed the OPF to address the need for a standardized and open format for storing and sharing photogrammetric data. Currently, there is no widely accepted format for sharing this information, which can make it hard to collaborate between organizations or differing software tools.
OPF is intended to be an open, non-proprietary format that anyone in the photogrammetry community can use. With this standardized format, it will be easier to share and collaborate on projects which will in turn help boost efficiency and the outcomes of photogrammetry projects.
The data from photogrammetry projects will be more freely accessible with OPF, which is part of how it is compatible with multiple software tools but also will mean individuals can access project data. This can then be plugged into algorithms, used for research, and more - all enhancing data transparency and experimentation.
Who will use OPF?
OPF is primarily designed for use in the fields of photogrammetry and remote sensing. It can be used by researchers, academics, and professionals who work with digital images and require a standardized and efficient way to manage and share photogrammetry projects.
As we have mentioned, a key benefit of the OPF is that it facilitates better sharing options for photogrammetry data. This is incredibly useful for research efforts. The non-proprietary structure means that researchers can easily access and work with the same data without worrying about compatibility issues. This empowers work across not only teams but facilities, connecting photogrammetrists worldwide. They can save time and effort previously spent on converting data and instead focus on their research.
In addition, the OPF can encourage open science practices by promoting data sharing and reuse. Researchers can deposit their photogrammetric data in OPF-compliant repositories, making it available for other people to use and build upon. This can lead to greater scientific transparency, reproducibility, and collaboration within the academic community.
Example uses of OPF include:
- In an academic context, it can be used to showcase the in-depth structure of modern photogrammetric projects and enable tweaking of the various assets generated.
- For researchers, it enables them to build new technology based on photogrammetry outputs, or even develop new photogrammetry algorithms that can easily be used by others.
- Third-party users can develop their own techniques for tailoring OPF to add new shareability functions.
How does it work? What resources are available?
OPF consists first and foremost of an open specification, primarily based on simple JSON file structures. The full documentation is available online on GitHub and a specialized Pix4D GitHub space. It is currently compatible with PIX4Dmatic (as of May 2023), which allows for the import and export of OPF projects. It's also compatible with PIX4Dengine SDK and we will be extending this capability to other Pix4D products in the future.
This new file format can be used by anyone. It is licensed under permissive terms and thus free to implement. If used in research work, it should be cited via the documentation.
In order to facilitate easy adoption, we are also developing an open-source Python library to read, write, and manipulate OPF projects with just a few lines of code. This means that individual users can “play” with OPF and tailor it to their needs. They can also find tools and use cases in the library to get inspiration and learn more. To ensure we receive feedback and can talk to OPF users, there will be a GitHub space to report issues. There is support for vendor-specific extensions that can be proposed to the extension repository, and contributions to the Python tooling are welcome! With this being something that people can freely contribute to, we hope to see people make it their own and come up with new ideas for their own work!
Examples of what can be achieved
Use case 1, adding value to photogrammetry projects:
Creating a calibrated photogrammetry project, for example with PIX4Dmatic, and exporting results as OPF. You could then apply machine learning techniques to detect objects in images and use the OPF data to get a 3D understanding of this object.
Use case 2, using experimental approaches to scene rendering (a NeRF-like approach):
After creating a calibrated photogrammetry project and exporting as an OPF from PIX4Dmatic, you could convert the file to a NERF input. By doing this, you could use Nvidia Instant NeRFs to render the project from unseen view points.
What to expect
Based on feedback we will continuously make improvements to the OPF file format, for example by adding more extensions to the specification. Keep watching this space as we will give more detailed use cases in follow-up posts! If you want to get involved in discussing OPF with our team, you can reach out on our Pix4D GitHub space dedicated to this. Alternatively, you can talk to the Pix4D Support team.
Got questions, or want to get involved? Join the conversation on LinkedIn and follow our hashtag #Pix4DLabs.