Three-dimensional imaging systems (such as laser scanners) are used in a variety of domains for purposes ranging from automotive-part inspection to surveying complex pipe assemblies on oil platforms. These devices produce large data sets of 3D point measurements that are often referred to as point clouds (see Figure 1). There is currently no general-purpose, open standard for storing point-cloud data, yet there is a critical need in the 3D-imaging industry for open standards that promote data interoperability among hardware and software systems.
For the past three years, a group of volunteers within the global standards organization ASTM International (formerly known as the American Society for Testing and Materials) has been working on developing such an open standard.1 The volunteers are members of the E57.04 subcommittee on data interoperability, which is part of the E57 committee on 3D-imaging systems.2 The E57 committee as a whole is tasked to define standard terminology, testing methods, and best practices. The E57.04 subcommittee includes representatives from many of the major 3D-imaging-system manufacturers, software vendors, and service providers, as well as industry consultants and academic researchers.
Figure 1.Example data set that can be encoded in an E57 file. The data contains laser scans obtained from different locations. (Image courtesy of Intelisum Inc.)
The ‘E57 file format for 3D-imaging-data exchange,’ more commonly known as the E57 format, is designed as a general-purpose, open standard for storing 3D-imaging data. It can store point-cloud data from laser scanners but also encode data from flash light-detection and ranging (better known as lidar) systems, structured-light 3D scanners, stereovision systems, and other devices that produce 3D measurements. It can also store associated 2D imagery, such as that produced by digital cameras, as well as core metadata associated with the 2D images and 3D points. As a proof of concept of the E57 file format, an open-source reference library has been developed that is capable of reading, writing, and validating files in this format.
Development of the standard has passed through three phases, including requirements specification, design, and reference implementation. A formal requirement-definition process enabled the committee to set the ground rules and scope. The requirements were organized around a number of guiding principles. The standard should provide reliable interoperability between software packages, be openly available, vendor neutral, and as simple as possible, have a low barrier for adoption, and be extendable to adapt to unforeseen needs in the future.
In the design phase, these concepts were fleshed out and clearly defined. An E57 file consists of a combination of text-based and compressed binary data. The text-based data is stored in a hierarchical tree structure based on the extensible-markup-language (XML) format (see Figure 2). Since it would be inefficient to store massive point clouds in XML format, this information (as well as imagery) is stored in compressed binary form. The E57 format thus supports flexibility and extensibility using text-based XML, while enabling efficient input/output and storage using compressed streams of binary data. It has a number of unique features, including support for unorganized point clouds as well as gridded data (i.e., data aligned in regular arrays), multiple coordinate systems (including Cartesian and spherical), embedded images from cameras, built-in error detection, and groupings of points into rows, columns, or user-defined subsets. The standard's format also defines an extension mechanism that allows users to develop custom capabilities that were not envisioned in the initial design. Finally, it has an essentially unlimited file size and number of records (18 exabytes or 1.8×1019 bytes in length). Once the design was complete, it was formalized as a standard.
Figure 2.The data within an E57 file is stored in a hierarchical tree structure that is based on the extensible markup language (XML).
Finally, we have created a cross-platform, open-source implementation that is intended to lower the barriers to the standard's adoption and provides a reference to compare other implementations against.3 The software, known as libE57, consists of a library, supporting utilities and example programs, and documentation. It includes two separate application-programming interfaces for reading, writing, and manipulating E57 files, including a full-featured and a simplified interface (the latter supports the most common-use cases). The software is currently undergoing beta testing, and we are looking for people interested in joining the beta-test program.
One of the goals of the E57-format specifications was to design and implement its core functionality as quickly as feasible, while leaving some of the more challenging design aspects for future versions. In ongoing work, we are developing advanced features and extensions that we expect to release separately or incorporate into the standard's next version. These include advanced compression algorithms, representation of uncertainty, and support for mobile scanning platforms.
Carnegie Mellon University
Daniel Huber is a faculty member of the Robotics Institute. His research focuses on using image-based computer vision and 3D-imaging sensors to solve fundamental problems in automated perception, modeling, and visualization.