The SolAR framework has been designed to simplify the design of vision pipelines adressing augmented reality applications. A SolAR vision pipeline is a chain of connected vision processing components generally executed in parallel. For instance, a SolAR vision pipeline may take as input images captured by one or more cameras as well as data from an inertial sensor. These data will be processed in series by a set of SolAR components to estimate the pose of an AR device.
The SolAR framework has been designed from the beginning to clearly separate tasks and roles and offer modularity. Indeed, a vision pipeline assembler will be able to focus on the pipeline design without worrying about the implementation of components, the intergation of existing computer vision libraries or the integration of the pipeline in an AR service.
A vision pipeline assembler can easily:
download existing SolAR vision components created and published by the SolAR component creators,
assemble the vision components to create a vision pipeline,
update the vision pipeline architecture,
swap components by other ones,
configure components,
test the vision pipeline,
publish it for AR pipeline users who will develop AR services.
The SolAR framework handles everything that will allow a modular assembling of a vision pipeline:
SolAR Data Structures define the information that flows in a pipeline and are exchanged between components.
SolAR Component Interfaces define for now more than 50 standardized abstract interfaces for the different categories of vision processing components required to implement vision pipelines (e.g. keypoint detector, descriptor extractor, features matching, PnP and optimization). This unified interface is required to ensure interoperability between components allowing to easily swap one with another to improve the final vision pipeline.
SolAR Components are concrete implementations of vision processing components compliant with SolAR components interfaces. Several components can implement the same SolAR component interface. In general, these components are created by wrapping computer vision libraries that could be either open-source (OpenCV, PCL, ROS, etc.) or proprietary. Each component can define its own parameters that will be used to fine tune the vision pipeline.
SolAR Modules are shared libraries embedding a set of SolAR components to ease their management and publication.
Component Manager based on XPCF, a lightweight cross platform component framework similar to the well known COM model. it manages the introspection of SolAR modules and components, it provides an "in-code" dependency injection factory to create concrete component instance and bind them to a abstract SolAR component interface, it handles the loading of modules and components at runtime, it provides interfaces for load of pipeline and used modules and components at run-time, etc. XPCF is a third party developped by b<>com under Apache licencse 2.0 (more information about XPCF is available on GitHub).