辅导ENGO 531、讲解MATLAB程序语言、讲解MATLAB、辅导data
- 首页 >> Matlab编程 ENGO 531 Lab 1 Fall 2020 Page 1 of 3
ENGO 531
Advanced Photogrammetric and Ranging Techniques
Laboratory Assignment 1
Bundle Adjustment Software Construction
Date given: 16 September 2020
Date due: 6 October 2020 at 23.59.59
Late submissions lose 20% per business day
Marks: This assignment constitutes 15% of your final grade.
Objective
The objective of this lab is to build and test your own photogrammetric bundle adjustment program for
frame camera imagery. You will add to and use this program for all subsequent laboratory assignments in
this course.
Thisis an individual assignment. Collaboration between studentsis anticipated and encouraged. However,
each student is to submit their own, original work. We will check for plagiarism.
Programming language
The focus of this laboratory assignment to understand bundle adjustment program organization and
methodology. The programming language you choose for the implementation is not important. Thus, the
use of interpreted languages such as MATLAB scripts and Python is permitted and encouraged.
Basic program functionality
Your program should be able to read the following inputs from text files:
Interior orientation parameters (IOPs). Only the basic set of IOPs (principal point and principal
distance) are required. For now, these will be treated as constants, but they will be estimated in
a future lab assignment.
Exterior orientation parameters (EOPs). For now, these will be treated approximate values rather
than observed values, but this will change in another future lab assignment.
Ground control points (GCPs). For now, these will be treated as constants, but they will be
considered as observations in a future lab assignment.
Tie points. These are approximate values.
Check points. These are treated as constants but NOT used directly in the bundle adjustment.
They will be used for post‐adjustment accuracy assessment.
Image point coordinates. These are observed values.
ENGO 531 Lab 1 Fall 2020 Page 2 of 3
Other important adjustment data:
o The standard deviations for observation groups: there is only one group now, the image
point coordinates, but this will change in a later lab assignment
o Convergence tolerances. For now, only tolerancesfor object point coordinates and angles
are required but, again, this will change later.
o Operation mode options of the program. For now, these comprise the following, but at
least one more will be required for a later lab assignment:
1. Observed or unknown EOPs
2. Observed or unknown GCPs
Your program must correlate all the input data. That is, it must identify all the required point matches
(e.g. homologies) as described in the lecture notes. Moreover, your program must not only perform the
bundle adjustment computations (specified below), but also provide formatted, text‐file output to
facilitate the analyses of results. Some examples of this have been provided in the lecture notes, but the
exact formatting is left to your own creativity—you certainly don’t need to follow the example in the
output file. The main principle you might consider is that the data should be easy to plot from the output
file(s).
Numerical program functionality
Your program must perform the least‐squares bundle adjustment solution once all the input data have
been read. This entails the following general steps:
Determination of the dimensions of the relevant matrices n, u, r. Note that these, like any other
adjustment quantities, should be derived from the input data and not hard coded.
Computation of the partial derivatives and misclosures
Formation of the normal equations by the optimized summation of normal method—this is
mandatory
Iterative solution of the normal equations
Computation of all parameters, residuals, covariance matrices and other relevant quantities.
Test dataset description
A small aerial dataset is provided for testing your program. The test dataset was derived from imagery of
the University of Calgary campus. The imagery was captured with a Leica RC 30 metric camera (6 focal
length and 9 9 image format) at a nominal scale of 1:5000 and scanned with a resolution of 12 m. All
image point coordinates were measured manually in the Irfanview software. Control points and tie points
were post‐identified features. The standard deviation of the image point observations was 5 m.
All input data are provided in ASCII text files having the same prefix (engo531_lab1). The format and suffix
of each file is given below:
Suffix Description Format Units
PHO Image (photo) point observations point_id image_id x y mm
INT Interior orientation parameters camera_id xp yp c mm
EXT Exterior orientation parameters image_id camera_id Xc
ENGO 531 Lab 1 Fall 2020 Page 3 of 3
A file of “configuration” data (convergence tolerances, observation group standard deviations,
adjustment modes, etc.—the “other important adjustment data” mentioned above) is NOT provided. The
format of this file is left to your creativity.
Adjustment results are also provided in a text file (OUT suffix). These were generated with fixed control
points and unknown (i.e., not observed) EOPs.
Submissions
Your bundle adjustment program will be validated and verified. Validation is performed to confirm that
the program meets the user needs. That is, does it generate the required outputs? In this regard, both the
completeness of the output file and the formatting will be assessed. Verification is performed to confirm
that you have built the program correctly. You must make statements, justified with numerical results,
that your program has correctly computed the bundle adjustment quantities. The choice of which
quantities to analyze and the quality of the presentation are your responsibility. Note that detailed
analyses of the results in terms of network quality are NOT required. Your code will be assessed in terms
its modularity, documentation and overall design. Modularity is particularly important since you will add
functionality to your program for future lab assignments.
In summary, you are required to submit
Formatted bundle adjustment output file
Adjustment configuration input file
Source code
Verification report
Submissions are to be uploaded as a single PDF file to the D2L Dropbox by the specified date and time.
As a final note, writing a bundle adjustment program is a big job, but it can be done in the three weeks
allocated to this assignment. The following benchmarks are suggested as a guide to help you monitor
progress:
End of week 1: demonstration of basic program functionality—read all input data and correlate
all data.
End of week 2: demonstration of program functionality—least‐squares computations
implemented
End of week 3: lab completed.
END OF LAB 1
ENGO 531
Advanced Photogrammetric and Ranging Techniques
Laboratory Assignment 1
Bundle Adjustment Software Construction
Date given: 16 September 2020
Date due: 6 October 2020 at 23.59.59
Late submissions lose 20% per business day
Marks: This assignment constitutes 15% of your final grade.
Objective
The objective of this lab is to build and test your own photogrammetric bundle adjustment program for
frame camera imagery. You will add to and use this program for all subsequent laboratory assignments in
this course.
Thisis an individual assignment. Collaboration between studentsis anticipated and encouraged. However,
each student is to submit their own, original work. We will check for plagiarism.
Programming language
The focus of this laboratory assignment to understand bundle adjustment program organization and
methodology. The programming language you choose for the implementation is not important. Thus, the
use of interpreted languages such as MATLAB scripts and Python is permitted and encouraged.
Basic program functionality
Your program should be able to read the following inputs from text files:
Interior orientation parameters (IOPs). Only the basic set of IOPs (principal point and principal
distance) are required. For now, these will be treated as constants, but they will be estimated in
a future lab assignment.
Exterior orientation parameters (EOPs). For now, these will be treated approximate values rather
than observed values, but this will change in another future lab assignment.
Ground control points (GCPs). For now, these will be treated as constants, but they will be
considered as observations in a future lab assignment.
Tie points. These are approximate values.
Check points. These are treated as constants but NOT used directly in the bundle adjustment.
They will be used for post‐adjustment accuracy assessment.
Image point coordinates. These are observed values.
ENGO 531 Lab 1 Fall 2020 Page 2 of 3
Other important adjustment data:
o The standard deviations for observation groups: there is only one group now, the image
point coordinates, but this will change in a later lab assignment
o Convergence tolerances. For now, only tolerancesfor object point coordinates and angles
are required but, again, this will change later.
o Operation mode options of the program. For now, these comprise the following, but at
least one more will be required for a later lab assignment:
1. Observed or unknown EOPs
2. Observed or unknown GCPs
Your program must correlate all the input data. That is, it must identify all the required point matches
(e.g. homologies) as described in the lecture notes. Moreover, your program must not only perform the
bundle adjustment computations (specified below), but also provide formatted, text‐file output to
facilitate the analyses of results. Some examples of this have been provided in the lecture notes, but the
exact formatting is left to your own creativity—you certainly don’t need to follow the example in the
output file. The main principle you might consider is that the data should be easy to plot from the output
file(s).
Numerical program functionality
Your program must perform the least‐squares bundle adjustment solution once all the input data have
been read. This entails the following general steps:
Determination of the dimensions of the relevant matrices n, u, r. Note that these, like any other
adjustment quantities, should be derived from the input data and not hard coded.
Computation of the partial derivatives and misclosures
Formation of the normal equations by the optimized summation of normal method—this is
mandatory
Iterative solution of the normal equations
Computation of all parameters, residuals, covariance matrices and other relevant quantities.
Test dataset description
A small aerial dataset is provided for testing your program. The test dataset was derived from imagery of
the University of Calgary campus. The imagery was captured with a Leica RC 30 metric camera (6 focal
length and 9 9 image format) at a nominal scale of 1:5000 and scanned with a resolution of 12 m. All
image point coordinates were measured manually in the Irfanview software. Control points and tie points
were post‐identified features. The standard deviation of the image point observations was 5 m.
All input data are provided in ASCII text files having the same prefix (engo531_lab1). The format and suffix
of each file is given below:
Suffix Description Format Units
PHO Image (photo) point observations point_id image_id x y mm
INT Interior orientation parameters camera_id xp yp c mm
EXT Exterior orientation parameters image_id camera_id Xc
ENGO 531 Lab 1 Fall 2020 Page 3 of 3
A file of “configuration” data (convergence tolerances, observation group standard deviations,
adjustment modes, etc.—the “other important adjustment data” mentioned above) is NOT provided. The
format of this file is left to your creativity.
Adjustment results are also provided in a text file (OUT suffix). These were generated with fixed control
points and unknown (i.e., not observed) EOPs.
Submissions
Your bundle adjustment program will be validated and verified. Validation is performed to confirm that
the program meets the user needs. That is, does it generate the required outputs? In this regard, both the
completeness of the output file and the formatting will be assessed. Verification is performed to confirm
that you have built the program correctly. You must make statements, justified with numerical results,
that your program has correctly computed the bundle adjustment quantities. The choice of which
quantities to analyze and the quality of the presentation are your responsibility. Note that detailed
analyses of the results in terms of network quality are NOT required. Your code will be assessed in terms
its modularity, documentation and overall design. Modularity is particularly important since you will add
functionality to your program for future lab assignments.
In summary, you are required to submit
Formatted bundle adjustment output file
Adjustment configuration input file
Source code
Verification report
Submissions are to be uploaded as a single PDF file to the D2L Dropbox by the specified date and time.
As a final note, writing a bundle adjustment program is a big job, but it can be done in the three weeks
allocated to this assignment. The following benchmarks are suggested as a guide to help you monitor
progress:
End of week 1: demonstration of basic program functionality—read all input data and correlate
all data.
End of week 2: demonstration of program functionality—least‐squares computations
implemented
End of week 3: lab completed.
END OF LAB 1