> on this page http://wiki.panotools.org/Cpfind#Feature_matching it
> says "If you want to use this multi-row matching inside
> hugin<http://wiki.panotools.org/Hugin>set the control point
> detector type to All images at once
> <http://wiki.panotools.org/Hugin_Parameters_for_Control_Point_Detectors_dialog#All_images_at_once>
> ."
>
> Why wouldn't you set it to "multi row" ??
The 'multi-row' option in the Hugin preferences predates cpfind. It
was created to use generatekeys/autopano from autopano-sift-C to do
the multi-row matching as a series of processes that are controlled
by Hugin and linked by temporary keyfiles.
The `cpfind --multirow` parameter now does all this internally
without creating temporary files, which is presumably a lot faster,
and it means that it can be used as a 'normal' control point
generator by Hugin.
cpfind can also do caching of keyfiles on disk when asked, so you
could still use the 'multi-row' option but with cpfind, this would
potentially consume less memory but I haven't done any tests.
--
Bruno
Am 17.01.2011 17:52, schrieb bloody tomatoes:
> Hello,
>
> I'm reading this http://wiki.panotools.org/Cpfind and i have a few
> questions:
>
> 1) The default settings of cpfind - this is the best setting for normal
> (non-fisheye) images? or it's "probably good enough" but as cpfind is
> very new, it could use more testing?
I did test the default setting (cpfind as in
hugin-mac-2010.5.0-4854_d29b1d6da0e0 by Harry) mainly on different
fisheye images Jeffrey send me, and they worked fine.
In general, I think the settings are fine for most panos. If you have
examples where the default settings fail, please let me know.
> 2) What does --ransaciter and --ransacdist do (in plain english) ?
Part of the ransac based outlier removal, see
http://en.wikipedia.org/wiki/RANSAC
Basically it tries to optimize an image pair and keeps only matches
which have an error smaller than ransacdist. Setting this too strict
will remove more matches than nessecary. Values between 10 and 50 are
probably good. The current implementation in cpfind is a bit crude and
works best for "normal" images. Wide angle and fisheye images are
currently not handled well, and the ransacdist is currently increased if
that happens. I'm working on a proper solution though.
> 3) "To achieve good control points images with a high horizontal field
> of view (e.g. ultra wide rectilinear or fisheye) are therefor remapped
> into a conformal space (cpfind is using the stereographic projection
> <http://wiki.panotools.org/Projection#Stereographic_projection>) and the
> feature matching occurs in this space."
> how does cpfind decide what to remap to conformal space, or not? or is
> it depending on the lens type? (rectilinear no, fisheye yes) ?
All images with a hfov > 65 are remapped into stereographic (unless they
are already stereographic, as the Samyang 8mm fisheye is, so choose
stereographic as input projection if you have a Samyang 8mm fisheye.)
> 4) When doing "linear" and "multirow" matching, does it try to join the
> images in a 360? or only the first/last image? or not at all?
I'm not sure on the linear matching, but the multirow matching will try
to connect all overlapping images. However, it might not work if the
roll angles of the images change a lot, as overlap is only computed on a
pano where yaw and pitch have been optimized. That is probably fine for
large multirow projects shot from a panohead, but maybe not so great for
hand held sphericals with wide angle lenses...
> 5) Changing --kdtreesteps and --kdtreeseconddist affect the final number
> of keypoints found. is there anything more specific that should be
> known? or should these numbers stay as they are (i'm guessing they
> should be played with, since the parameters are there to be played with!)
Larger kdtreesteps tell cpfind to look harder for matches. I think 200
is probably good enough, but it could be improved. Not so important.
kdtreeseconddist determines how "similar" corresponding matches need to
be. Smaller values force cpfind to accept only unique matches, larger
values accept more, but potentially bad matches. If no points can be
found, increasing this to 0.4 or so might be worth a try, but there will
be more errors.
> 6) Is there any good reason to have --sieve1size at 30 and not 3000
> (more is better) ?
More is also slower... Sievesize 3000 basically means take all features
found.
ciao
Pablo
Thanks Pablo for the detailed explanations.
By the way, with these photos, I am still getting CP's outside the cropping circle. does anyone have any idea why that would be the case?
www.vrlog.net/temp/cpfind-pablo/bad-cp-shaved-nikkor.zip
It uses the full information (including a/b/c), crop circle and masks.
> 2) is cpfind supposed to use the crop in hugin (so that there should not
> be CP's outside the crop)?
Yes, it should. I have seen that the circle in your example was a bit
offset. This might be related to the "center on d/e" in the crop panel.
This means that the circle is always centered on the d/e parameters,
which worked nicely with my peleng. If bad d/e parameters are used, the
circle will be shifted. You could try without the "center on d/e".
I haven't added any safety margin for the crop in cpfind, so the the
crop circle should never be outside the image.
So far I used the following procedure for fisheye panos:
0. (Do only once:) Enter Preferences/control point creator. Create a new
cpfind detector entry change the default cpfind entry to use only the
"-o %o %s" arguments and make it the default. (multirow might or might
not be suitable for this purpose..)
1. Load images into hugin
2. Select fisheye and enter focal length and crop factor
3. Set crop on all images.
4. Press "align" button
5. (straighten + look for bad control points), optimize with a,b,c, d,e
if required.
6. save lens settings for later usage.
Once you have saved your lens, you can load the parameters and crop with
the "Load lens" button, and skip step 2 and 3.
ciao
Pablo
> 2) is cpfind supposed to use the crop in hugin (so that there should not
> be CP's outside the crop)?Yes, it should. I have seen that the circle in your example was a bit
offset. This might be related to the "center on d/e" in the crop panel.
This means that the circle is always centered on the d/e parameters,
which worked nicely with my peleng. If bad d/e parameters are used, the
circle will be shifted. You could try without the "center on d/e".
You can savely untick the "center on d/e", then you move the crop circle
freely.
> I filed a bug report about this
> yesterday.
> https://bugs.launchpad.net/hugin/+bug/704884
I can confirm that.
I tried searching for the right spot in the code, but I'm not very
familiar with the refactoring that James had done on SrcPanoImage class.
Where can I insert a "hook" for intercepting changes to the d/e
parameters? Maybe some other Developers (Thomas, James?) can give me a
small hint.
> i am using the command line
> to do this stuff, is this maybe where my problem is?
Can you give a summary what you have done (in hugin and on the command
line?)
ciao
Pablo