Improved Optimizer pano12.dll
Available here is a pano12.dll that has numerous improvements
to the optimizer.
This is built from the sourceforge cvs as a starting point.
Modified sources are posted here (see below for downloads).
Major improvements/changes include:
Very briefly, faster convergence is achieved by using a hybrid approach
that makes more information available to the optimizer. The old
optimizer only knew about control point error distance, not
direction. That was stable but could be painfully slow near
convergence. The new optimizer uses the old strategy as long as
that is effective, then switches to a new strategy that breaks the
error into longitude/latitude components and optimizes those
simultaneously but separately. This greatly speeds the process
near convergence. In addition I have tuned the convergence
criterion so that the
optimizer does not waste time playing with the noise in an already
converged solution. (Well, at
least it doesn't do that nearly as often -- there are still cases where
you have to push the Cancel button to make it give up.)
- Faster convergence (often much faster convergence)
- FOV optimization is stabilized to work better with partial panos
- Normal control point errors are consistently reported as angular
distance, scaled to pixels at the center of the panorama.
was off for partial panos in the old version.)
- Error distance is reported correctly for line
controls. (The old version incorrectly reported large errors.)
- Added the query feature capability suggested by Joost
- Modified dll function distSquared to return control point error
as described above, instead of distance squared in image
coordinates. (This change was required to work with existing
PTOptimizer.exe's. If anyone needs the old behavior, we can
re-export it under a different name.)
FOV stabilization is done by scaling errors by changes in the FOV,
consistent with the model that if the lens FOV changes, the user
will adjust the pano FOV to match. If the FOV is changed a great
deal, you may have to invoke the optimizer a couple of times to get a
fully converged solution.
I have also fixed a few minor bugs.
Huge thanks are due to Rollo Ross and Jim Watters for extensive
testing, analysis, and discussions. Thanks also to other
participants in the mailing groups for discussions and sample cases.
In case of problems with this version, please contact me by email.
Reports of successful use will also be greatly appreciated ;-)
PS. This version is built with MAX_FISHEYE_FOV 200.0 only for your
convenience in testing. Usual legal disclaimers apply.
As of July 24, 2004, I recommend that you download the current
SourceForge version of pano12.dll, which includes a final build of the
optimizer plus other recent improvements. See http://www.janrik.net/ptools for more
information and links.
Downloads for just the improved optimizer are:
May 17, 2004. Version "PTools 2.7 RLbeta2" fixed possible
bug in interface with GUI's, for horizontal/vertical/line controls
May 16, 2004. Version "PTools 2.7 RLbeta1" initial beta
This page last
modified July 24, 2004.