(less than one meter) to long distances (more than 50
meters) with low requirements to working well on
all Android phones. The methods used should de-
termine measurements solely based on an image and
return a unit of length. In the App-Stores for Android
different measurement applications are already avail-
able. In many cases, the measurement method used
depends on the use case of the application. Google,
for example, uses the Simultaneous Localization and
Mapping (SLAM) method in the application Measure
with ARCore(Google Developers, nda) to determine
the position of the smartphone in its environment. The
ARCore detects feature points in the camera images
and uses these points to calculate its change of position
over time. By fusing these feature points with the val-
ues measured by the Inertial Measurement Unit (IMU),
the position and orientation of the device relative to
the world can be determined(Google Developers, ndb).
At the same time, the distances of the device to the
feature points can be determined. However, in order to
use the application, the device has to meet some condi-
tions: The device must be supported
2
. This requires at
least Android 7 to be running on the device, OpenGL
ES 3.0 must be supported and the Playstore must be
installed. The application covers the entire range of the
distances mentioned above. Nevertheless, due to the
requirements of the application, it may not work well
on all Android devices. Another approach is to deter-
mine measurements based on cartographic data((Esri,
nd), (Farmis, 2013), and (Christensen, 2010)). In this
approach, the starting or endpoints are chosen by the
user or GPS is used to determine them. This approach
works on long distances but cannot be used on short
distances. Ruler applications (NixGame, 2016; Smart
Tools co., 2010) scale the display width as a ruler
which makes them suitable for short distances only.
Away from the App-Stores some methods exist to de-
termine the depth information of an image. For Exam-
ple, in (Saxena et al., 2006) the authors used machine
learning to create a depth image from textures in an
image. However, the illustrations are only estimates
and depth can only be described by the proximity to
the observer. Furthermore, the correlation to a unit of
length is not given. This depth information can also
be determined by using stereoscopy. For this purpose,
an object is captured from two locations that are a
short distance apart. By superimposing the two im-
ages, the illusion of a three-dimensional image can be
created. Moreover, by triangulating and focusing a
point in both shots, depth information can be obtained.
The authors of (Mrovlje and Vran, 2008) used two
cameras and a circular marker. Using Matlab, they
2
List of supported devices https://developers.google.com/
ar/discover/supported-devices
determined the distances between the camera and the
marker at distances up to 60 meters. They report an
average deviation of 1.32 meters with a standard de-
viation of 2.84 meters over a distance of 50 meters
with camera distances between 0.2 and 0.7 meters. In
(Cao et al., 2013) the authors propose a marker-based
measurement approach based on the pinhole imaging
theory (PIT) with a single camera. They applied this
approach to distances up to 1.40 meters and achieved
a deviation of 0.23 cm.
3 METHODOLOGY
In order to eventually measure a bridge in the field
only using a smartphone, we decided to adapt both
the stereoscopic and the PIT approach. For this pur-
pose, we tried to reduce the stereoscopic approach
to one camera. The parallelism of the two images
had to be guaranteed with the sensors built into the
smartphone. With the PIT approach, the measuring
range was extended from 1.40 meters (in (Cao et al.,
2013)) to approximately 50 meters. Finally, these two
approaches will be evaluated in terms of accuracy.
3.1 Basic Workflow
Figure 1 shows the basic workflow of a measure-
ment with NAND-Measure. The first step is to ac-
tivate the fullscreen, which is followed by enabling
OpenCV(OpenCV Contributors, 2018). OpenCV pro-
vides the interface between the camera and our app as
well as various methods for image processing. After
Activate fullscreen
Inizialize OpenCV
Activate camera
Fix Focus
MEASUREMENT
Deactivate camera
Deactivate Fullscreen
Figure 1: Basic workflow of spatial measurement.
NAND-measure: An Android App for Marker-based Spatial Measurement
647