Create a viewer for semantically annotated three-dimensional point clouds.
Semantic visualization consists of displaying the elements contained within an ontology. This ontology can be written using an .owl
file or a triple store. The ontology is susceptible of containing a large number of individuals, so a SPARQL interpretor needs to be implemented in order to allow the user to reduce the number of individuals on display through filtering. By default, the displayed individuals will be those of class Object
in the ontology. When one or more individual are selected, their information as well as their representation in the framework will be displayed in the 3D section of the interface.
The display of 3D objects must be done in three ways:
- Low resolution display in cubic form (octree)
- Polygon display (convex hull)
- High resolution (base point cloud)
You can download the Semviz all-in-one .jar
at this link. There is no installation process, just make sure you have Java 8 installed on your marchine and then you should be able to run the file.
A Semviz directory is a folder that contains a number of point cloud files (for now only .txt
holding X Y Z R G B Normal0 Normal1 Normal2
information for each point is supported), as well as an ontology file gathering all ontological information about those clouds.
NOTE: For now, this program is developed to work with Knowdip, an internal project of the i3Mainz photogrammetry lab, so you cannot use Semviz as of now; I will ask for permission to provide a valid sample directory for demonstration purposes.
Once you have a valid Semviz directory, from the application's window you can open it by navigating to File > Open
or hitting Ctrl + O
. This process validates the structure of the directory and loads the ontology, so an error will be displayed if something went wrong loading.
With the Semviz directory loaded (the red dot in the upper left side of the application turned green), the console bar at the bottom of the window should now be enabled. This bar is where the SPARQL queries for retrieving clouds are typed in. Here is an example of a SPARQL:
select ?cloud ?size { ?cloud knowdip:hasSize ?size }
The query above gets all clouds as well as their size information. The solutions given by the ?cloud
variable are listed within the Cloud List view; below that, the Queried Info table shows all the other variables under the key-value format. The query does not have to contain a variable named ?cloud
as the detection is done automatically.
Selecting a cloud within the Cloud List view will display it by default in its high resolution original colors form in the OpenGL canvas to the right. The View drop-down list offers more cloud display options:
- High Resolution (Normals): this replaces the original values of the cloud with the values of its normals in each point;
- Convex Hull: displays the convex hull of the points in the cloud.