You are on page 1of 26

DBAT — The Damped Bundle Adjustment

Toolbox for Matlab


v0.7.0.4

Niclas Börlin1 and Pierre Grussenmeyer2


1
Department of Computing Science, Umeå University, Sweden,
niclas.borlin@cs.umu.se
2
ICube Laboratory UMR 7357, Photogrammetry and Geomatics Group,
INSA Strasbourg, France,
pierre.grussenmeyer@insa-strasbourg.fr

Dec 28, 2017

With contributions from:

• Arnaud Durand, ICube-SERTIT, University of Strasbourg, France.


• Jan Hieronymus, TU Berlin, Germany.
• Jean-François Hullo, EDF, France.

• Fabio Menna, Fondazione Bruno Kessler, Trento, Italy.


• Arnadi Murtiyoso, ICube, INSA Strasbourg, France.
• Kostas Naskou, University of Nottingham, UK.

1
Contents
1 Introduction 3
1.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Legal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Installation 5

3 Usage 7
3.1 Demos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.1 Plotting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.2 Camera calibration . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 Bundle adjustment . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Using your own data . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.1 Photoscan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.2 PhotoModeler . . . . . . . . . . . . . . . . . . . . . . . . . . 14

A Appendices 17
A.1 Enabling text export from PhotoModeler . . . . . . . . . . . . . . . . 17
A.2 Camera model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
A.3 Result file example . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2
1 Introduction
1.1 Purpose
This purpose of the Damped Bundle Adjustment toolbox is to be a high-level tool-
box for photogrammetry in general and bundle adjustment in particular. It is the hope
of the authors that the high-level nature of the code will inspire algorithm develop-
ment. The code is written in Matlab and is verified to work with Matlab version 8.6
(release R2015b). The intention is that at least the computation routines will be Octave-
compatible. This has however not been tested yet.

1.2 Contents
1.2.1 Code
The toolbox currently includes routines for (Matlab function names within parenthe-
ses):

• File handling:
– Reading PhotoModeler-style text export files (loadpm), and 2D/3D point
table exports files (loadpm2dtbl and loadpm3dtbl, respectively).
– Reading PhotoScan native (.psz) files (loadpsz).
– Writing PhotoModeler-style text result files (bundle_result_file).
• Post-processing:
– Post-processing of PhotoScan projects (ps_postproc). Includes object
point filtering on low ray count and low intersection angles. For self-
calibration post-processing, see the help text for ps_postproc.
– As of version 0.7.0.0, DBAT supports both lens distortion models used by
Photomodeler and Photoscan.
• Photogrammetric calculations, including:
– Spatial resection (resect).
– Forward intersection (forwintersect).
– Absolute orientation (rigidbody).
– Relative orientation based on the Nistér 5-point algorithm (Stewénius et al.,
2006) will be added in the future.

• Bundle adjustment
– Bundle adjustment proper (bundle), with or without self-calibration, us-
ing either Classical Gauss-Markov, Gauss-Newton-Armijo, Levenberg-Marquardt,
or Levenberg-Marquardt-Powell damping schemes (Börlin and Grussen-
meyer, 2013a, 2014, 2016).

3
– Covariance calculations (bundle_cov) from the bundle result.
• Various plotting functions, including:
– Plot image covered by measurements (plotcoverage).
– Plot camera network (plotnetwork), either static (as-loaded) or as an
illustration of the bundle iterations.
– Plot .psz project (loadplotpsz).
– Plot of the iteration trace of parameters estimated by bundle (plotparams).
– Plots of quality statistics from the bundle result (plotimagestats,
plotopstats).
• Demo functions using the above functions. The demo functions are detailed in
Section 3.1. The available demos are listed by executing the command help
dbatdemos.
This manual does not contain detailed information about how to use each function.
More information may be found by typing help <function name> at the Matlab
prompt, studying the source code of the demo functions, and reading the source code
of each file directly.

1.2.2 Data
The toolbox contains several datasets, including datasets for the Börlin and Grussen-
meyer (2016); Murtiyoso et al. (2017) papers.
• PhotoModeler export files or PhotoScan projects.
• Images. To reduce the size of the distribution package, only low resolution im-
ages are included in the package1 . The corresponding high resolution images can
be downloaded from http://www.cs.umu.se/~niclas/dbat_images.
Further instructions are found in README.txt files in the respective image di-
rectories.
The simplest way to access the data sets is through the demos, described in Section 3.1.

1.3 Legal
The licence detail are described in the LICENSE.txt file included in the distribution.
In summary:
• You use the code at your own risk.
• You may use the code for any purpose, including commercial, as long as you
give due credit. Specifically, if you use the code, or derivatives thereof, for
scientific publications, you should refer to on or more of the papers Börlin and
Grussenmeyer (2013a,b, 2014, 2016) that the code is based on.
• You may modify and redistribute the code as long as the licensing details are also
redistributed.
1 No images are included in the StPierre data set.

4
2 Installation (from INSTALL.txt)
# == INSTALLATION ==
#
# You can either install DBAT by downloading the source code or (if
# you use a git client) by cloning the repository.
#
# === Download ===
#
# 1) Download the package file dbat-x.y.z.zip or dbat-x.y.z.tar.gz
# from https://github.com/niclasborlin/dbat/
#
# 2) Unpack the file into a directory, e.g. c:\dbat or ~/dbat.
#
# === Clone ===
#
# At the unix/windows command line, write:
#
# git clone https://github.com/niclasborlin/dbat.git
#
# to clone the repository into the directory ’dbat’. Use
#
# git clone https://github.com/niclasborlin/dbat.git <dir-name>
#
# to clone the repository to another directory.
#
# If you use a graphical git client, e.g., tortoisegit
# (https://tortoisegit.org), select Git Clone... and enter
# https://github.com/niclasborlin/dbat.git or
# git@github.com:niclasborlin/dbat.git as the URL.
#
#
# ==== Download high-resolution images ====
#
# To reduce the size of the repository and hence download times, only
# low-resolution images are included in the repository. High-resolution
# images can be downloaded from http://www.cs.umu.se/~niclas/dbat_images/.
# For further details, consult the README.txt files in the respective
# image directories.
#
#
# == TESTING THE INSTALLATION ==
#
# 1) Start Matlab. Inside Matlab, do the following initialization:
# 1.1) cd c:\dbat % (change to where you unpacked the files)
# 1.2) dbatSetup % will set the necessary paths, etc.
#
# 2) To test the demos, do ’help dbatdemos’ or consult the manual.
#
#
# == UPDATING THE INSTALLATION==
#
# === Git ===
#
# If you cloned the archive, updating to the latest release is a
# simple as (replace ~/dbat and c:\dbat with where you cloned the
# repository):

5
#
# cd ~/dbat
# git pull
#
# at the command line. In TortoiseGit, right-click on the folder
# c:\dbat, select Git Sync... followed by Pull.
#
# === Download ===
#
# If you downloaded the code, repeat the download process under
# INSTALLATION. Most of the time it should be ok to unzip the new
# version on top of the old. However, we suggest you unzip the new
# version into a new directory, e.g. dbat-x-y-z-w, where x-y-z-w is
# the version number.
#
#

6
Roma data (computed by Photomodeler)

−5

−10

30 20
25 10
20
15 0
10 −10
5
0 −20

Figure 1: The figure generated by the loadplotdemo demo.

3 Usage
3.1 Demos
Hint: You may wish to use the command close all between the demos to close
all windows.

3.1.1 Plotting
The loadplotdemo function load and plots the content of a PhotoModeler text ex-
port file. Two examples are included in the toolbox: ROMA and C AM.

ROMA loadplotdemo(’roma’) loads a modified PhotoModeler text export file


of the 60-camera, 26000-point project used in Börlin and Grussenmeyer (2013a). The
camera network, as computed by PhotoModeler, is plotted with camera 1 aligned to the
cardinal axes. The result should look like Figure 1. The figure is a standard Matlab 3D
figure and may e.g. be rotated or zoomed using the camera toolbar.

C AM loadplotdemo(’cam’) demo loads a modified PhotoModeler text export


file of a 21-camera, 100-point camera calibration project. The camera network, as
computed by PhotoModeler, is plotted and should look like Figure 2. The figure is a
standard Matlab 3D figure and may e.g. be rotated or zoomed using the camera toolbar.

3.1.2 Camera calibration


The camcaldemo demo loads the camera calibration export file from Section 3.1.1
and runs a camera calibration. The EXIF focal length is used as the initial value. The
other values are set to “default” values, e.g. the principal point at the center of the
sensor and all lens distortion parameters equal to zero. The initial value for the EO
parameters are computed by spatial resection (Haralick et al., 1994; McGlone et al.,

7
Camera calibration data set (computed by Photomodeler)

1.5

0.5

0
2
1.5 2
1 1.5
1
0.5
0.5
0 0
−0.5 −0.5

Figure 2: The figure generated by the loadplotdemo2 demo.

2004, Chap. 11.1.3.4) using the control points defined for the PhotoModeler calibration
sheet. The initial OP coordinates are subsequently computed by forward intersection.
The bundle adjustment is run with Gauss-Newton-Armijo damping (Börlin and
Grussenmeyer, 2013a). The result is given in a number of plot windows and a Photo-
modeler-style result text file. The result plots are of two kinds: Plots that show the
evolution of the iterations and plots that show the quality of the input or output data.
The former plots may be useful to understand how the bundle adjustment works but
also to “debug” a difficult network that has convergence difficulties. The latter plots
give information about the quality of the result and may also provide clues on how to
improve a network when the bundle did converge.

Evolution plots The evolution plots are collected in figures 3–7. Figure 3 shows a
snapshot of the 3D trace figure at the beginning and end of the iterations. As default,
the evolution is presented iteration by iteration with intervening presses of the return
key. The figure window is interactive and may be rotated, zoomed, etc. In this example,
it is clear in Figure 3b that one camera station had poorer initial values than the rest.
Figures 4–6 contain three plots showing the evolution of the internal orientation
(IO), external orientation (EO), and object point (OP), respectively, during the itera-
tions. The IO plot is split into a focal/principal point panel and a radial and tangential
distortion panel, where the radial distortion parameters are scaled to provide more in-
formation. The EO plot contains a camera center panel and an ω-φ-κ Euler angle panel.
The EO and OP plots are interactive. Lines in the plots or legends may be selected and
all corresponding lines will be highlighted. In the top panel of Figure 5, the motion of
one camera stands out. Clicking that line reveals that it belongs to camera station 21,
which can be further investigated to decide if it should be excluded from the calibration.
The final evolution plot, shown in Figure 7, illustrates the evolution of the norm of
the total residual and the damping behaviour, if any, during the bundle iterations. In this
example, the Gauss-Newton-Armijo linesearch damping is active during the first two
iterations. For further details on the damping, see Börlin and Grussenmeyer (2013a).

8
Initial network

1.5

0.5

0
2
1.5
1 1.5
1
0.5
0.5
0 0
−0.5 −0.5

(a) Initial network configuration.


Damping: gna. Iteration 7 of 7

1.5

0.5

0
2
1.5
1 1.5
1
0.5
0.5
0
0
−0.5 −0.5

(b) Network configuration after convergence, with camera center


trace lines.

Figure 3: 3D network evolution during the iterations. Only the EO and OP parameters
are illustrated. In this example, the variation of the OP coordinates is barely visible.

9
Focal length, principal point (gna)
10
f
8 px
py
6

2
0 1 2 3 4 5 6 7
Radial distortion
0.05
K1
102K2
4
10 K3
0

−0.05
0 1 2 3 4 5 6 7
−3 Tangential distortion
x 10
2
P1
P2
0

−2

−4
0 1 2 3 4 5 6 7
Iteration count

Figure 4: Evolution of IO parameters during the iteration sequence.

Camera center (gna)


2.5
C1
2 C2
C3
1.5 C4
C5
1
C6
0.5 C7
C8
0 C9
C10
−0.5 C11
C12
−1
0 1 2 3 4 5 6 7 C13
C14
C15
Euler angles [degrees] C16
200 C17
C18
C19
100 C20
C21

−100

−200
0 1 2 3 4 5 6 7
Iteration count

Figure 5: Evolution of EO parameters during the iteration sequence.

10
Object points (gna)
1.2
P1
P2
P3
P4
1
P5
P6
P7
P8
0.8 P9
P10
P11
P12
0.6 P13
P14
P15
P16
0.4 P17
P18
P19
P20
0.2 P21
P22
P23
P24
0 P25
P26
P27
P28
−0.2 P29
0 1 2 3 4 5 6 7 P30
Iteration count P31
P32
P33

Figure 6: Evolution of OP coordinates during the iteration sequence.

Residual norm (gna)


1
10

0
10

−1
10

−2
10
0 1 2 3 4 5 6 7

Step length (alpha)

0.8

0.6

0.4

0.2

0
1 2 3 4 5 6 7
Iteration count

Figure 7: Residual evolution and damping behaviour during the iterations.

11
Coverage for all images
Image 1
1600 Image 2
Image 3
1400 Image 4
Image 5
Image 6
1200 Image 7
Image 8
1000 Image 9
Image 10
Image 11
800
Image 12
Image 13
600 Image 14
Image 15
Image 16
400
Image 17
Image 18
200 Image 19
Image 20
Image 21
200 400 600 800 1000 1200 1400 1600 1800 2000 2200 Rect hull
Rectangular/convex hull/radial coverage = 92% / 87% / 92%. Convex hull
Radial hull

Figure 8: Plots of input/output statistics: Image coverage.

Quality plots The quality plots a gathered in figures 8–10. Per-image quality statis-
tics is shown in Figure 9. The statistics presented for each image are the image coverage
(rectangular coverage, convex hull coverage, and radial coverage); the number of mea-
sured points; the average (RMS) point residual; and the standard deviations for the EO
parameters for the camera stations. In this example, the data does not give any obvious
support to exclude the suspected image 21 from the calibration.
The image coverage is detailed in a separate Figure 8. The plotted data is selectable.
All observations from a specific image, including their convex hull, will be highlighted
when a point or line is selected.
Finally, the per-OP quality statistics in Figure 10 show the number of observations
per OP; the maximum ray intersection angle; the average (RMS) point residual; and
the OP coordinate standard deviation. The presentation may be zoomed to show only
a subset of the OPs by activating the “zoom” function of the figure window.

Result file The result file is modelled after the PhotoModeler result file. The result
file is listed in Appendix A.3.

3.1.3 Bundle adjustment


ROMA The romabundledemo function loads the project from Section 3.1.1 and
present essentially the same plots and the camcaldemo. This demo uses the Photo-
Modeler file as input to the bundle adjustment that runs a few iterations until conver-
gence. The same result file and result plots as camcaldemo are essentially gener-
ated. Since the project is larger (60 cams/26 000 points) than the previous example (20
cams/100 points), the computation will take a bit longer. Computation time was around
one minute running on a HP compaq dc7800 with an Intel Core2 Quad CPU Q9300 @
2.50GHz under 64-bit Ubuntu 12.04 (kernel 3.5.0-45).

12
Image coverage (percent)
100
Rectangular
Convex
50
Radial

0
Point count
100

50

0
RMS point residuals (−− = global RMS)
0.4

0.2

0
−4 Spatial standard deviations (camera station)
x 10
5
Project units

X
Y
Z
Total
0
−3 Rotational standard deviations (camera station)
x 10
2
omega
Degrees

phi
1
kappa
Total
0
5 10 15 20
Image number

Figure 9: Plots of input/output statistics: Image statistics.

Point count
20

10

0
Maximum intersection angles
80
60
40
20
0
RMS point residuals (−− = global RMS)
0.4

0.2

0
−4 OP standard deviations
x 10
3
X
Project units

2 Y
Z
1 Total

0
2

1001
1004
35

68

OP id

Figure 10: Plots of input/output statistics: Object point statistics.

13
P RAGUE ’16 The prague2016_pm function displays six projects that compare the
result of the bundle adjustment procedure in DBAT and the results of PhotoModeler
(Börlin and Grussenmeyer, 2016). Similarily, the prague2016_ps function displays
the results of a comparison between DBAT and PhotoScan.
The v0.5.1.6 release includes a fix to a bug the distributed the image observation
weights incorrectly. The result is slightly different estimation results than in Börlin and
Grussenmeyer (2016). However, the conclusions remain valid.

H AMBURG ’17 The stpierrebundledemo_ps function runs a self-calibration


bundle on a Photoscan project included in the StPierre data set.

3.2 Using your own data


3.2.1 Photoscan
DBAT can read native Photoscan Archive (.psz) files. DBAT cannot read Photoscan
Project (.psx) files. If you have a .psx project, use the Save as... menu in
Photoscan and save the project as a Photoscan Archive (.psz).
The ps_postproc function can be used to post-process a Photoscan project.
loadplotpsz may be useful to visualize the project, as computed by Photoscan.

Known limitations DBAT cannot handle all Photoscan coordinate systems. If you
get strange results, you may have to convert to Local Coordinates. loadplotpsz
may be useful for debugging the input.

3.2.2 PhotoModeler
This section describes how to import you own data using PhotoModeler text export
files. If you have another type of input file, you may be able to write your own loader.
Otherwise, if you have a text file you wish to import, feel free to mail the file to the
the toolbox authors and request an import function. Althought we cannot guarantee
anything, we may adhere to the request, time permitting.

Export from PhotoModeler To import a PhotoModeler project into the toolbox, the
following steps are valid in PhotoModeler Scanner 2012:

1. Export the project using the Export Text File menu command. If the command is
not available, follow the instructions in Appendix A.1.

2. After export, open the Project/Cameras... dialog and select the camera that was
used in your project.
3. Open the generated text file in a text editor.
(a) On the 2nd line (usually reading 0.00005 20), append the width and
height in pixels of your images, e.g. to 0.000500 20 5616 3744.

14
(b) Inspect the 4th line. For instance, the original data in roma.txt was
(some trailing zeros removed):
24.3581 18.1143 12.0 35.96404 24.0 0.00022 -0.0 0.0
0.0 0.0
The values correspond to the following camera parameters:
focal pp_x pp_y format_w format_h K1 K2 K3 P1 P2.
Notice that most of the significant digits of K1–K3 were lost in the text
export.
(c) Update the parameter values on the 4th line with values from the cam-
era dialog for each parameter with a larger number of significant digits in
the dialog. This usually means all parameters except format_w. In the
roma.txt test case, the 4th line was modified to:
24.3581 18.1143 12 35.96404 24 2.174e-4 -1.518e-7 0
0 0.

Loading into Matlab


1. In Matlab, run step 2 from Section 2 if not already done.

2. Call loadplotdemo with the name of your text export file as first parameter.
A figure with your camera network, aligned with the first camera and rotated to
have +Z ’up’, should now have been generated.

Using the bundle adjustment of DBAT Modify either of the demo functions to
match what you want to do. If you run into any problems, send us an email. The
interesting results may either be in the plots or in the result file.

15
References
N. Börlin and P. Grussenmeyer. Bundle adjustment with and without damping. Pho-
togrammetric Record, 28(144):396–415, Dec. 2013a. doi: 10.1111/phor.12037.

N. Börlin and P. Grussenmeyer. Experiments with metadata-derived initial values and


linesearch bundle adjustment in architectural photogrammetry. ISPRS Annals of the
Photogrammetry, Remote Sensing, and Spatial Information Sciences, II-5/W1:43–
48, Sept. 2013b.
N. Börlin and P. Grussenmeyer. Camera calibration using the damped bundle adjust-
ment toolbox. ISPRS Annals of the Photogrammetry, Remote Sensing, and Spatial
Information Sciences, II(5):89–96, June 2014.
N. Börlin and P. Grussenmeyer. External verification of the bundle adjustment in pho-
togrammetric software using the damped bundle adjustment toolbox. International
Archives of Photogrammetry, Remote Sensing, and Spatial Information Sciences,
XLI-B5:7–14, July 2016.
R. M. Haralick, C.-N. Lee, K. Ottenberg, and M. Nölle. Review and analysis of solu-
tions of the three point perspective pose estimation problem. Int J Comp Vis, 13(3):
331–356, 1994.
C. McGlone, E. Mikhail, and J. Bethel, editors. Manual of Photogrammetry. ASPRS,
5th edition, July 2004. ISBN 1-57083-071-1.
A. Murtiyoso, P. Grussenmeyer, and N. Börlin. Reprocessing close range terrestrial
and UAV photogrammetric projects with the DBAT toolbox for independent
verification and quality control. ISPRS - International Archives of the Pho-
togrammetry, Remote Sensing and Spatial Information Sciences, XLII-2/W8:
171–177, 2017. doi: 10.5194/isprs-archives-XLII-2-W8-171-2017. URL https:
//www.int-arch-photogramm-remote-sens-spatial-inf-sci.
net/XLII-2-W8/171/2017/.
H. Stewénius, C. Engels, and D. Nistér. Recent developments on direct relative orien-
tation. ISPRS J Photogramm, 60(4):284–294, June 2006.

16
A Appendices
A.1 Enabling text export from PhotoModeler
.
Some versions of PhotoModeler do not have the text file export option enabled by
default. In that case, the following steps worked in PhotoModeler Scanner 2012:
1. Right-click on the main window toolbar, select Customize toolbar....
2. In the Commands tab, select the File category.
3. Drag the Export Text File... command to a toolbar of your choice.
4. Now you should be able to export your project as a text file by clicking on the
Export Text File button.

A.2 Camera model


Currently, the only supported camera model is the omega-phi-kappa Euler angle cam-
era model (McGlone et al., 2004, Ch. 2.1.2.3).

A.3 Result file example


Damped Bundle Adjustment Toolbox result file
Project Name: Bundle Soln PhotoModeler Calibration Project
Problems and suggestions:
Project Problems: Not evaluated
Problems related to the processing: (1)
One or more of the camera parameter has a high correlation (see below).
Information from last bundle
Last Bundle Run: 28-Dec-2017 22:54:49
DBAT version: 0.7.0.4 (2017-12-28)
MATLAB version: 8.6.0.267246 (R2015b)
Host system: GLNXA64
Host name: slartibartfast
Status: OK (0)
Sigma0: 1.68901
Sigma0 (pixels): 0.168901
Processing options:
Orientation: on
Global optimization: on
Calibration: on
Constraints: off
Maximum # of iterations: 20
Convergence tolerance: 1e-06
Singular test: off
Chirality veto: off
Damping: gna
Camera unit (cu): mm
Object space unit (ou): m
Initial value comment: Camera calibration from EXIF value
Total error:
Number of stages: 1
Number of iterations: 9
First error: 30884.2
Last error: 103.099
Execution time (s): 0.71
Lens distortion models:
Backward (Photogrammetry)

17
Cameras:
Calibration: yes (Xp Yp f K1 K2 K3 P1 P2)
Camera1
Lens distortion model:
Backward (Photogrammetry)
Focal Length:
Value: 7.45894 mm
Deviation: 0.00109 mm
Xp - principal point x:
Value: 3.61664 mm
Deviation: 0.000858 mm
Yp - principal point y:
Value: 2.60896 mm
Deviation: 0.000988 mm
Fw - format width:
Value: 7.25319 mm
Fh - format height:
Value: 5.43764 mm
K1 - radial distortion 1:
Value: 0.00457026 mm^(-3)
Deviation: 2.31e-05 mm^(-3)
Significance: p=1.00
K2 - radial distortion 2:
Value: -4.25869e-05 mm^(-5)
Deviation: 2.76e-06 mm^(-5)
Significance: p=1.00
Correlations over 95%: K3:-97.9%.
K3 - radial distortion 3:
Value: -2.15843e-06 mm^(-7)
Deviation: 1.05e-07 mm^(-7)
Significance: p=1.00
Correlations over 95%: K2:-97.9%.
P1 - decentering distortion 1:
Value: -6.5657e-05 mm^(-3)
Deviation: 3.67e-06 mm^(-3)
Significance: p=1.00
P2 - decentering distortion 2:
Value: -2.9636e-05 mm^(-3)
Deviation: 4.05e-06 mm^(-3)
Significance: p=1.00
Iw - image width:
Value: 2272 px
Ih - image height:
Value: 1704 px
Xr - X resolution:
Value: 313.306 px/mm
Yr - Y resolution:
Value: 313.306 px/mm
Pw - pixel width:
Value: 0.00319176 mm
Ph - pixel height:
Value: 0.00319176 mm
Rated angle of view (h,v,d): (52, 40, 63) deg
Largest distortion: 0.37 mm (116.4 px, 8.2% of half-diagonal)
Precisions / Standard Deviations:
Photograph Standard Deviations:
Photo 1: P8250021.JPG
Omega:
Value: -39.425743 deg
Deviation: 0.00886 deg
Phi:
Value: -1.180839 deg
Deviation: 0.00796 deg
Kappa:
Value: -179.839283 deg
Deviation: 0.00287 deg
Xc:
Value: 0.454890 ou

18
Deviation: 0.000162 ou
Yc:
Value: 1.793760 ou
Deviation: 0.000187 ou
Zc:
Value: 1.469288 ou
Deviation: 0.000205 ou
Photo 2: P8250022.JPG
Omega:
Value: -39.761249 deg
Deviation: 0.00841 deg
Phi:
Value: -1.846758 deg
Deviation: 0.00908 deg
Kappa:
Value: -90.121383 deg
Deviation: 0.00303 deg
Xc:
Value: 0.470426 ou
Deviation: 0.000195 ou
Yc:
Value: 2.027243 ou
Deviation: 0.000224 ou
Zc:
Value: 1.638797 ou
Deviation: 0.000242 ou
Photo 3: P8250023.JPG
Omega:
Value: -27.239490 deg
Deviation: 0.011 deg
Phi:
Value: -28.565343 deg
Deviation: 0.00788 deg
Kappa:
Value: -141.846585 deg
Deviation: 0.00561 deg
Xc:
Value: -0.644455 ou
Deviation: 0.000197 ou
Yc:
Value: 1.466418 ou
Deviation: 0.000187 ou
Zc:
Value: 1.581499 ou
Deviation: 0.000243 ou
Photo 4: P8250024.JPG
Omega:
Value: -28.558189 deg
Deviation: 0.00921 deg
Phi:
Value: -30.331722 deg
Deviation: 0.00937 deg
Kappa:
Value: -49.784451 deg
Deviation: 0.00488 deg
Xc:
Value: -0.643655 ou
Deviation: 0.000205 ou
Yc:
Value: 1.491033 ou
Deviation: 0.000207 ou
Zc:
Value: 1.637067 ou
Deviation: 0.000256 ou
Photo 5: P8250025.JPG
Omega:
Value: 4.382511 deg
Deviation: 0.00986 deg

19
Phi:
Value: -34.669427 deg
Deviation: 0.00902 deg
Kappa:
Value: -87.136940 deg
Deviation: 0.00542 deg
Xc:
Value: -0.670768 ou
Deviation: 0.000165 ou
Yc:
Value: 0.417346 ou
Deviation: 0.000151 ou
Zc:
Value: 1.410399 ou
Deviation: 0.000191 ou
Photo 6: P8250026.JPG
Omega:
Value: 2.097544 deg
Deviation: 0.0106 deg
Phi:
Value: -34.017520 deg
Deviation: 0.00846 deg
Kappa:
Value: 1.509425 deg
Deviation: 0.00601 deg
Xc:
Value: -0.713593 ou
Deviation: 0.00018 ou
Yc:
Value: 0.476373 ou
Deviation: 0.000162 ou
Zc:
Value: 1.464831 ou
Deviation: 0.000211 ou
Photo 7: P8250027.JPG
Omega:
Value: 27.348261 deg
Deviation: 0.00893 deg
Phi:
Value: -28.302938 deg
Deviation: 0.00914 deg
Kappa:
Value: -44.207908 deg
Deviation: 0.00466 deg
Xc:
Value: -0.534726 ou
Deviation: 0.000162 ou
Yc:
Value: -0.349536 ou
Deviation: 0.000164 ou
Zc:
Value: 1.403703 ou
Deviation: 0.000211 ou
Photo 8: P8250028.JPG
Omega:
Value: 26.923258 deg
Deviation: 0.0109 deg
Phi:
Value: -28.127953 deg
Deviation: 0.00792 deg
Kappa:
Value: 44.866655 deg
Deviation: 0.00561 deg
Xc:
Value: -0.718941 ou
Deviation: 0.000222 ou
Yc:
Value: -0.466477 ou

20
Deviation: 0.000213 ou
Zc:
Value: 1.715075 ou
Deviation: 0.000275 ou
Photo 9: P8250029.JPG
Omega:
Value: 30.389264 deg
Deviation: 0.00895 deg
Phi:
Value: 0.190661 deg
Deviation: 0.00812 deg
Kappa:
Value: 0.084680 deg
Deviation: 0.0026 deg
Xc:
Value: 0.524910 ou
Deviation: 0.000169 ou
Yc:
Value: -0.543280 ou
Deviation: 0.000173 ou
Zc:
Value: 1.534216 ou
Deviation: 0.000207 ou
Photo 10: P8250030.JPG
Omega:
Value: 31.007630 deg
Deviation: 0.0087 deg
Phi:
Value: 1.729844 deg
Deviation: 0.00907 deg
Kappa:
Value: 89.539855 deg
Deviation: 0.00276 deg
Xc:
Value: 0.554111 ou
Deviation: 0.000184 ou
Yc:
Value: -0.593287 ou
Deviation: 0.000196 ou
Zc:
Value: 1.617125 ou
Deviation: 0.000225 ou
Photo 11: P8250031.JPG
Omega:
Value: 27.634202 deg
Deviation: 0.0111 deg
Phi:
Value: 30.750219 deg
Deviation: 0.0079 deg
Kappa:
Value: 42.335735 deg
Deviation: 0.0061 deg
Xc:
Value: 1.770071 ou
Deviation: 0.0002 ou
Yc:
Value: -0.425193 ou
Deviation: 0.000188 ou
Zc:
Value: 1.552593 ou
Deviation: 0.000242 ou
Photo 12: P8250032.JPG
Omega:
Value: 24.650146 deg
Deviation: 0.00943 deg
Phi:
Value: 30.239455 deg
Deviation: 0.00984 deg

21
Kappa:
Value: 133.204238 deg
Deviation: 0.00516 deg
Xc:
Value: 1.864899 ou
Deviation: 0.000209 ou
Yc:
Value: -0.480971 ou
Deviation: 0.000207 ou
Zc:
Value: 1.614058 ou
Deviation: 0.000265 ou
Photo 13: P8250033.JPG
Omega:
Value: 0.525524 deg
Deviation: 0.00984 deg
Phi:
Value: 33.149801 deg
Deviation: 0.00904 deg
Kappa:
Value: 88.705121 deg
Deviation: 0.00522 deg
Xc:
Value: 1.630631 ou
Deviation: 0.000171 ou
Yc:
Value: 0.497602 ou
Deviation: 0.000158 ou
Zc:
Value: 1.471594 ou
Deviation: 0.000197 ou
Photo 14: P8250034.JPG
Omega:
Value: -1.739655 deg
Deviation: 0.0108 deg
Phi:
Value: 33.635645 deg
Deviation: 0.00857 deg
Kappa:
Value: 180.202091 deg
Deviation: 0.006 deg
Xc:
Value: 1.796837 ou
Deviation: 0.000199 ou
Yc:
Value: 0.525347 ou
Deviation: 0.000184 ou
Zc:
Value: 1.598322 ou
Deviation: 0.000227 ou
Photo 15: P8250035.JPG
Omega:
Value: -30.765484 deg
Deviation: 0.00909 deg
Phi:
Value: 28.173051 deg
Deviation: 0.00932 deg
Kappa:
Value: 138.430041 deg
Deviation: 0.00483 deg
Xc:
Value: 1.671657 ou
Deviation: 0.000185 ou
Yc:
Value: 1.554521 ou
Deviation: 0.000187 ou
Zc:
Value: 1.501365 ou

22
Deviation: 0.000239 ou
Photo 16: P8250036.JPG
Omega:
Value: -29.885916 deg
Deviation: 0.0107 deg
Phi:
Value: 26.975370 deg
Deviation: 0.00791 deg
Kappa:
Value: -134.632252 deg
Deviation: 0.0055 deg
Xc:
Value: 1.694045 ou
Deviation: 0.000209 ou
Yc:
Value: 1.619402 ou
Deviation: 0.000198 ou
Zc:
Value: 1.590016 ou
Deviation: 0.000263 ou
Photo 17: P8250037.JPG
Omega:
Value: -8.524924 deg
Deviation: 0.0102 deg
Phi:
Value: -0.516031 deg
Deviation: 0.01 deg
Kappa:
Value: 179.396299 deg
Deviation: 0.00207 deg
Xc:
Value: 0.424528 ou
Deviation: 0.0003 ou
Yc:
Value: 0.823028 ou
Deviation: 0.000288 ou
Zc:
Value: 1.972157 ou
Deviation: 0.000252 ou
Photo 18: P8250038.JPG
Omega:
Value: -4.780087 deg
Deviation: 0.00998 deg
Phi:
Value: 0.666315 deg
Deviation: 0.00962 deg
Kappa:
Value: 88.786576 deg
Deviation: 0.00198 deg
Xc:
Value: 0.481967 ou
Deviation: 0.000274 ou
Yc:
Value: 0.926766 ou
Deviation: 0.000293 ou
Zc:
Value: 1.885335 ou
Deviation: 0.000239 ou
Photo 19: P8250039.JPG
Omega:
Value: -4.413731 deg
Deviation: 0.00965 deg
Phi:
Value: -0.411919 deg
Deviation: 0.00969 deg
Kappa:
Value: 88.244389 deg
Deviation: 0.00195 deg

23
Xc:
Value: 0.461866 ou
Deviation: 0.000281 ou
Yc:
Value: 0.578854 ou
Deviation: 0.000284 ou
Zc:
Value: 1.875378 ou
Deviation: 0.000218 ou
Photo 20: P8250040.JPG
Omega:
Value: -7.605652 deg
Deviation: 0.00976 deg
Phi:
Value: -1.556339 deg
Deviation: 0.0107 deg
Kappa:
Value: -180.050876 deg
Deviation: 0.00208 deg
Xc:
Value: 0.701782 ou
Deviation: 0.000334 ou
Yc:
Value: 0.782358 ou
Deviation: 0.000276 ou
Zc:
Value: 1.926167 ou
Deviation: 0.000247 ou
Photo 21: P8250041.JPG
Omega:
Value: -8.697217 deg
Deviation: 0.00966 deg
Phi:
Value: 1.049899 deg
Deviation: 0.0107 deg
Kappa:
Value: -182.614499 deg
Deviation: 0.00213 deg
Xc:
Value: 0.268718 ou
Deviation: 0.000328 ou
Yc:
Value: 0.821199 ou
Deviation: 0.000265 ou
Zc:
Value: 1.905690 ou
Deviation: 0.00025 ou
Quality
Photographs
Total number: 21
Numbers used: 21
Cameras
Total number: 1
Camera1:
Calibration: yes
Number of photos using camera: 21
Photo point coverage:
Rectangular: 41%-83% (61% average, 92% union)
Convex hull: 31%-62% (46% average, 87% union)
Radial: 60%-92% (73% average, 92% union)
Photo Coverage
References points outside calibrated region:
none
Point Measurements
Number of control pts: 4
Number of check pts: 0
Number of object pts: 96
CP ray count: 21-21 (21.0 avg)

24
4 points with 21 rays.
CCP ray count: -
OP ray count: 16-21 (20.7 avg)
1 points with 16 rays.
1 points with 17 rays.
2 points with 18 rays.
3 points with 19 rays.
5 points with 20 rays.
84 points with 21 rays.
Point Marking Residuals
Overall point RMS: 0.226 pixels
Mark point residuals:
Maximum: 0.952 pixels (OP 1003 on photo 5)
Object point residuals (RMS over all images of a point):
Minimum: 0.101 pixels (OP 67 over 21 images)
Maximum: 0.569 pixels (OP 1004 over 21 images)
Photo residuals (RMS over all points in an image):
Minimum: 0.178 pixels (photo 4 over 97 points)
Maximum: 0.318 pixels (photo 6 over 93 points)
Point Precision
Total standard deviation (RMS of X/Y/Z std):
Minimum: 8.6e-05 (OP 49)
Maximum: 0.00012 (OP 90)
Maximum X standard deviation: 5.2e-05 (OP 90)
Maximum Y standard deviation: 5.5e-05 (OP 90)
Maximum Z standard deviation: 8.9e-05 (OP 90)
Points with high correlations
Points with correlation above 95%: 0
Points with correlation above 99%: 0
Point Angles
CP
Minimum: 83.4 degrees (CP 1003)
Maximum: 85.8 degrees (CP 1002)
Average: 84.7 degrees
CCP
Minimum: -
Maximum: -
Average: -
OP
Minimum: 79.6 degrees (OP 90)
Maximum: 90.0 degrees (OP 47)
Average: 86.5 degrees
Smallest angles (ID, angle [deg], vis in cameras)
90: 79.57 ( 1 2 3 5 8 9 11 13 14 15 16 17 18 19 20 21)
8: 80.96 ( 1 2 3 4 5 7 9 10 11 12 13 14 15 17 18 19 20
92: 81.12 ( 1 2 3 4 5 7 8 9 10 11 13 14 15 16 17 18 19
Ctrl measurements
Prior
id, x, y, z, stdx, stdy, stdz, label
1001, 0.000, 1.000, 0.000, 0, 0, 0,
1002, 1.000, 1.000, 0.000, 0, 0, 0,
1003, 0.000, 0.000, 0.000, 0, 0, 0,
1004, 1.000, 0.000, 0.000, 0, 0, 0,
Posterior
id, x, y, z, stdx, stdy, stdz, rays, label
1001, 0.000, 1.000, 0.000, 0, 0, 0, 21,
1002, 1.000, 1.000, 0.000, 0, 0, 0, 21,
1003, 0.000, 0.000, 0.000, 0, 0, 0, 21,
1004, 1.000, 0.000, 0.000, 0, 0, 0, 21,
Diff (pos=abs diff, std=rel diff)
id, x, y, z, xy, xyz, stdx, stdy, stdz, rays, label
1001, 0.000, 0.000, 0.000, 0.000, 0.000, 0.0%, 0.0%, 0.0%, 21,
1002, 0.000, 0.000, 0.000, 0.000, 0.000, 0.0%, 0.0%, 0.0%, 21,
1003, 0.000, 0.000, 0.000, 0.000, 0.000, 0.0%, 0.0%, 0.0%, 21,
1004, 0.000, 0.000, 0.000, 0.000, 0.000, 0.0%, 0.0%, 0.0%, 21,
Ctrl point delta
Max: 0.000 ou (, pt 1001)
Max X,Y,Z

25
X: 0.000 ou (, pt 1001)
Y: 0.000 ou (, pt 1001)
Z: 0.000 ou (, pt 1001)
RMS: 0.000 ou (from 4 items)
Check measurements

26

You might also like