9.4 Detector Calibration
9.4.4 Implementation Details
The gradient of the inequality constraint 9.41 with respect to the optimization vector wq is
−m2 M2∇wqc
5
nq.
The boundary constraints are not necessary for phantom pose estimation, because the mag- nification constraints will enforce them automatically.
9.4.4
Implementation Details
The pose estimation algorithm was implemented in MATLAB [83] using “fmincon”, a func- tion in the Optimization Toolbox. For each estimation problem, two algorithms were used: interior-points and sequential quadratic programming (sqp) methods, and the results ob- tained from the algorithm with the smaller objective value was used.
The tunnel we considered has 10∩ columns. Each ∩ has 12 rows. The bottom three rows on each side of the∩ are nearly vertically oriented, parallel to the z-axis. The 4th and 9th rows are oriented nearly at 45 degrees to the vertical line, while the 5th, 6th, 7th and 8th rows are nearly horizontally oriented, parallel to the y-axis. Each ∩ lies almost completely on a
yz-plane (fixed x-coordinate). The ∩s are almost evenly laid out along the x-axis, except for
the first two, whose separation is almost twice that of the other consecutive ∩s.
The detector boards’ poses were estimated in multiple waves. First, assuming the phan- tom grid point locations are known, the detector poses are estimated. We call this “run 1.”Next, the detector pose estimates are used to estimate the pose of the phantom place- ments. Following this, the detector boards’ poses were re-estimated using the estimated phantom poses. This is called “run 2.”The process of alternating between the estimation of the pose of the phantom placements and those of the detector boards can be repeated multiple times resulting in further runs, “run r,”where r = 1,· · · , R.
The optimization problem is a nonlinear optimization and needs an initial parameter esti- mate. To initialize the first wave of detector pose estimation, we assumed the boards were aligned perfectly along the sides of the tunnel. To be specific, for a board d, its row rd and
column (∩) indexes cd are
rd= mod (d− 1, boards per column) + 1, and cd=
⌊
d− 1
boards per column ⌋
+ 1.
The initial position (the location of the first pixel on the board) of detector board d is given as P(:, rd) + xoffset(cd) 0 0 ,
where P is the initial position matrix for the first∩ and P(:, rd) uses MATLAB’s [83] notation
for the rd-th column of the matrix P. xoffset gives the offset of each ∩ from the first ∩. One
of our collaborators at Duke University, Andrew Holmgren, measured the first and last∩s to be at approximately x = 714mm and x = 1859mm, respectively. Using these measurements, the matrix P is given as (in mm)
714 714 714 714 714 714 714 714 714 714 714 714 −278 −278 −278 −278 −205 −103 0 103 205 278 278 278 500 603 705 808 880 880 880 880 880 808 705 603 .
The offset vector in the x-direction is approximately given as (in mm)
[0, 200, 318, 436, 554, 673, 791, 909, 1027, 1145] .
The initial orientation of board d is given as O(:, rd), where O is given as
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 √1 2 1 1 1 1 1 √ 2 0 0 0 1 1 1 √1 2 0 0 0 0 − 1 √ 2 −1 −1 −1 .
To initialize the phantom pose estimation, we used the originally measured position and orientation of the phantom. For the second wave of detector pose estimation, the parameters that were estimated from the first wave were used to initialize the optimization algorithms. For the optimization constraints, we chose a different set of magnification constants and tun- nel bounds for each detector board. The tunnel bounds were based on the initial position of each detector board, with a window of 50 mm in each direction. The magnification constants m and M were based on the current estimate of the detector position and orientation, with a tolerance of 1% above and below the maximum and minimum magnifications, respectively. The minimum magnification was never less than 1, to prevent the detector board’s position from lying between the source and the phantom. For each run (wave), the tethering direction was chosen to match the initial orientation of the detector boards, with tether angle θt = 2◦.
For the phantom placement parameter estimation, the magnification constraints can either be enforced directly or indirectly. If the constraints are included in the optimization problem, then they are directly enforced. We have found that including them increases the estima- tion times significantly, since the constraint is checked for every measured phantom point. Moreover, because a lot of detector boards surrounding the phantom are used in estimating its parameters, the magnification constraints are indirectly enforced, due to the different perspectives.
If the location of the phantom grid points are accurately measured, then the estimation of the phantom parameters can be omitted. Moreover, if the number of detector boards surrounding each phantom placement is not sufficient to estimate the phantom parameters, then re-estimating the phantom parameters in each run could lead to incorrect estimates of the detector pose. Indeed, this is the case for our calibration setup.
9.4.5
Results
In the remainder of this section, we consider the results of using the dot product objective to estimate the pose of the detector boards, with the location of the phantom grid points fixed at their measured values. Dr. Kenneth MacCabe performed the calibration experiments, measuring the location of the phantom grid points and estimating the centroids of the images of the grid points. The initial positions and orientations of the detector boards are given in Figure 9.2 while the results from the 1st and 20th waves of detector pose estimation, using
the dot product objective function are given in Figures 9.3 and 9.4. Figure 9.5 shows the average value of the normalized dot product (averaged over all the phantom-detector pixel pairs across all detector boards) for each run of the detector pose estimation. From the figure, we see that the objective function increases with each run, suggesting that the source to phantom grid point vectors and the source to detector pixel vectors are better aligned with each run. The reason for the change in the objective with each run in this setting is the magnification parameters m and M , which vary with the current estimate of the detector pose. The objective function effectively saturates after about 20 runs.