[ptx] beta version available for pano12.dll with improved optimizer

Rik Littlefield rj.littlefield at computer.org
Sun May 16 23:15:15 BST 2004


A beta version of pano12.dll with an improved optimizer is now available 
at http://www.janrik.net/ptools .

This is built from the sourceforge cvs as a starting point.

Major improvements/changes include:

    * Faster convergence (often *much* faster convergence)
    * FOV optimization is stabilized to work better with partial panos
    * 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 horizontal/vertical/line 
controls
    * 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.)

I have also fixed a few minor bugs.

This version does *not* include the option to optimize by rectangular 
coordinates, as discussed recently in this group.  More work is still 
needed to get that solid.

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.

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.

Let me know if there are any problems.  Reports of successes will also 
be greatly appreciated, of course ;-)

Thanks much,
--Rik Littlefield




More information about the ptX mailing list