Geo-referencing is a process of assigning real-world coordinates to a virtual 3D scene so that all vertices in the 3D model match the real-world values w.r.t. a coordinate system. Real-world coordinates have to be provided from an external source using, e.g. a GPS device. The typical workflow uses a few easily identifiable features in an image or a map where the user measures real-world coordinates with a GPS device. Besides GPS data, ground control points and flight logs can be used, as well.
Ground control points (GCPs) allow assigning 3D coordinates in an arbitrary coordinate system to any 2D image point. With a single GCP you can define the scene origin, with two GCPs you can define origin and scale, and with three or more points you can define full scene orientation. RealityCapture integrates advanced solvers which can solve the scene scale and orientation just by creating any 5 measurements between 2D and 3D space, e.g. 5 images observed from 3-5 different sticks with known GPS coordinates. Adding more points, however, leads to more precise results.
It is recommended to add control points and ground control points before alignment, before placing control points, even though having alignment is helpful in finding corresponding points in images, e.g. when using the Find Points and Find Images tools.
Ground control points become visible in the 3D view once camera poses are available, i.e. after alignment. Also orange lines connecting the given ground control points and calculated 3D positions become visible - residual errors. The smaller the line, the better it fits a scene to the given coordinates. Please note that a zero error is unlikely to happen, as the real measurement always suffers from some systematic deviation. Similarly, residual errors appear in 2D views where lines connect projections of the given 3D and 2D coordinates. You can enable or disable visibility of residual errors in the 2D and 3D views by un/checking the check box in the view context ribbon.
It is possible to place ground control points in map view. Make sure that control points in images are set as Tie points. Activate the Control Points tool, select a control point you want to use as a ground control point. In map view, click on a location where that point should be placed. Control point will instantly change into Ground control point. Coordinates will be taken from a map, however all heights will be set to a default value, which is 1. If you want to change the placement of a ground control point on a map, change it to Tie point and repeat the process.
Nowadays many cameras, smart phones or drone cameras are equipped with a GPS unit which stores GPS coordinates with the image data. This information can be used to geo-reference a scene, too. Of course, there are limitations arising from the GPS unit precision. RealityCapture can use this data and you can provide them as follows:
RealityCapture defines a series of XML tags which naturally extend the Extended metadata format (XMP) with information like camera pose, orientation, calibration information, priors and more. Vice versa, providing these data, the application can read them and use them as constraints for geo-referencing - or more precisely - fixing the coordinate system.
XMPs allow setting a camera pose directly and thus define the coordinate system:
This opens a way for industrial business cases where the same camera setup is used over and over again and you want to ensure that the resulting scan will stay in the same coordinates.
How to tell whether a model is geo-referenced? The information can be found in the panel which appears after clicking on a component in the 1Ds view:
How to add ground control points into your project
How to export and import camera poses' template