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:
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.
(Scaling
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
Nieuwenhuijse
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.)
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.)
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.
Reports of successful use will also be greatly appreciated ;-)
Thanks much,
--Rik Littlefield
PS. This version is built with MAX_FISHEYE_FOV 200.0 only for your
convenience in testing. Usual legal disclaimers apply.
Downloads
As of July 24, 2004, I recommend that you download the current
SourceForge version of pano12.dll, which includes a final build of the
improved
optimizer plus other recent improvements. See http://www.janrik.net/ptools for more
information and links.
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
release