Already did.
This is one of the other details I found weird.

36 * 15mpx images will blow up after 30-32 images, regardless of the value
of maxdim. I've used the default of 1600, and tried many values, even down
to 100. Still an out of memory.

nick

Timothy Leary<http://www.brainyquote.com/quotes/authors/t/timothy_leary.html>
- "Women who seek to be equal with men lack ambition."

On Wed, Jul 15, 2009 at 8:14 AM, Andrew Chanler <achan...@gmail.com> wrote:

> By default all the images are down-sized so that the largest dimension is
> 1600 pixels.  There is a command line option called -maxdim which you can
> set this setting with.  Try setting this to something like 1200 or 800.
>
>
> On Wed, Jul 15, 2009 at 7:54 AM, Nicolas Pelletier <
> nicolas.pellet...@gmail.com> wrote:
>
>> Thanks Andrew, I appreciate.
>> In my case, the out of memory happens in the first phase, i.e. when
>> searching for keypoints for each individual images.
>>
>> I did not write down the exact numbers, but it did "keep" much memory
>> between images. (For example, before processing image X, process at 200
>> megs. While processing, peak at 800. As it's starting the next image, down
>> to 315. 200 and 315 seems far apart, even if we consider that the task
>> manager might not update fast enough).
>>
>> I'll also add that the more I use it, the more I think that much memory
>> is\will be used by the software and it will reach a pix limit quickly.
>>
>> But what is boggling me a little is that, if that was the end of this
>> (i.e. I'm just hitting the software\memory limit), then there would be more
>> reports of this. At least I'd think there would. Specially since I saw
>> people mentioning making giga pans with this.
>>
>> I appreciate the work Andrew. When I have a moment, I'll try to setup the
>> computer for dev.
>>
>> nick
>>
>>
>>
>> On Wed, Jul 15, 2009 at 7:05 AM, Andrew Chanler <achan...@gmail.com>wrote:
>>
>>> I found the largest leak.  And now my build only leaks a few KB, however
>>> I think the main problem is the amount of memory the application uses Let me
>>> summarize the memory usage with 2 images.
>>>
>>> 1) During GenerateKeyspp an enormousness amount of memory is allocated
>>> for image processing.  For a single 1536x1024 image I saw 217MB get
>>> allocated and freed during this function.  Then at the end of the function
>>> 7.4MB was allocated for the keypoints that were found in that image
>>> (1092Bytes per keypoint and it found 7000+ keypoints).
>>>
>>> 2) This repeated for each image.  So another large chunk was allocated to
>>> find keypoints in it. But it was also freed.  And another roughly 7.5MB were
>>> allocated for keypoints.  So roughly 15.5MB are now allocated for keypoints.
>>>
>>> 3) Next MultiMatch_ANN will run to find keypoints that match in different
>>> images.  This is where the largest abuse of memory was.  It for each
>>> Keypoint it allocates a KeypointN.  This doubles the memory used by
>>> keypoints to 31MB.  Then when it finds a match it creates a Match which
>>> points to two KeypointN's.  In my case it found 40 matches between the two
>>> images.Then at the end of the function it frees all the Keypoint's.  However
>>> out of the 13755 KeypointN's that were allocated we only need 80 that are
>>> used in each Match. These extra KeypointN's represent the largest leak in
>>> the program.
>>>
>>> Now taking a look at your case, if you have 36 images that each found
>>> 7000 points. that would be 263MB for keypoints.  Then when you call
>>> MultiMatch_ANN that would double when you allocate KeypointN's to 526MB.
>>>
>>> When you go to the larger image sets does it fail before it finishes
>>> processing all the images?  Or does it fail while it searches for matches?
>>>
>>> I'll have to clean up my workspace and submit my patch that only
>>> allocates KeypointN's when they are needed.  I have some other ideas to
>>> reduce the memory usage by during the image processing but I need to
>>> investigate it more.
>>>
>>> Andrew
>>>
>>>
>>> On Tue, Jul 14, 2009 at 11:38 PM, Nicolas Pelletier <
>>> nicolas.pellet...@gmail.com> wrote:
>>>
>>>> Tried some more cases to try and find something weird.
>>>> Unfortunately, nothing.
>>>>
>>>> I consistently run out of memory, whenever I take big images (threeshold
>>>> seems to be 36 images of 10 mpix).
>>>>
>>>> Bigger pictures and out of memory.
>>>>
>>>> I have not tried more smaller pictures.
>>>>
>>>> Of the people who stitch many pictures anybody has a 15+ mpix camera?
>>>>
>>>> nick
>>>>
>>>>
>>>> On Mon, Jul 13, 2009 at 5:34 PM, Andrew Chanler <achan...@gmail.com>wrote:
>>>>
>>>>> I have only found 1 small memory leak so far... 16bytes * number of
>>>>> images I believe.  Here is the fix.
>>>>>
>>>>> Index: APSCpp/APSCpp.c
>>>>> ===================================================================
>>>>> --- APSCpp/APSCpp.c     (revision 4038)
>>>>> +++ APSCpp/APSCpp.c     (working copy)
>>>>> @@ -415,6 +415,8 @@
>>>>>         kpp->imageFile = strdup(imgname);
>>>>>         kpp->xDim = pW;
>>>>>         kpp->yDim = pH;
>>>>> +       // free preallocated array before over-writing pointer...
>>>>> +       ArrayList_delete(kpp->array);
>>>>>         if( mode == 0 ){
>>>>>         // return the KeypointN list
>>>>>                 kpp->array = globalNaturalKeypoints;
>>>>>
>>>>> Hopefully I'll find something more fruitful than this...
>>>>>
>>>>> Andrew
>>>>>
>>>>>
>>>>> On Sun, Jul 12, 2009 at 2:13 PM, Tom Sharpless 
>>>>> <tksharpl...@gmail.com>wrote:
>>>>>
>>>>>>
>>>>>> Hi, I'm starting a new thread on this as the old one has gotten too
>>>>>> long.
>>>>>>
>>>>>> First some background.  Hugin's autopano-sift-C project builds 3
>>>>>> programs:
>>>>>>  generatekeys finds SIFT keypoints in one image and puts them in an
>>>>>> XML file;
>>>>>>  autopano reads those files and constructs control points linking
>>>>>> pairs of images;
>>>>>>  autopano-sift-c combines both function, plus several enhancements,
>>>>>> in one program.
>>>>>> The combined program shares a great deal of code with the separate
>>>>>> ones.  The main differences are that it processes all the images; does
>>>>>> not write keypoint data to, or read them from, XML files;  can convert
>>>>>> images to stereographic projection before finding keypoints; and can
>>>>>> read source image information  from a Hugin project file.  Although it
>>>>>> ships as "autopano-sift-c", that name has always designated the two-
>>>>>> program package as well, so to avoid confusion let us call the
>>>>>> combined program by its name in the source code tree, "APSCpp".
>>>>>>
>>>>>> There have been several reports of out-of-memory errors while running
>>>>>> "autopano-sift-c". It is possible that some might refer to
>>>>>> generatekeys/autopano, however nowadays people mostly run APSCpp, as a
>>>>>> Hugin plugin.  Moreover, the combined program would be more likely to
>>>>>> fail due to problems in the image processing stages, because it
>>>>>> processes a series of images while generatekeys handles only one.
>>>>>> However it is not clear whether these failures happened at the image
>>>>>> processing or the control point processing stage.  I am guessing it
>>>>>> was the first stage, because that normally has a far higher peak
>>>>>> memory demand than the second.
>>>>>>
>>>>>> I know of no case in which such a failure has been replicated by a
>>>>>> second observer.  I have not yet been able to get APSCpp to exhaust
>>>>>> memory on either Windows or Linux.   And when I run it under a leak-
>>>>>> checking debugger (MSVC on Windows, valgrind on Linux) I see no sign
>>>>>> of memory leaks during the image processing phase.  Both tools report
>>>>>> a fairly large leak in the control point phase, which I will fix.
>>>>>> That is a one-time thing and could not cause a crash during image
>>>>>> processing.  But under some conditions (that I have not found) it
>>>>>> might conceivably build up to the point of exhausting all memory.
>>>>>>
>>>>>> In short, the reported failures remain undiagnosed.  So I am appealing
>>>>>> to all interested parties to try to create a repeatable case where
>>>>>> APSCpp runs out of memory.
>>>>>>
>>>>>> Meanwhile I propose to do the following:
>>>>>> -- fix the leaks that valgrind detects, in both the split and combined
>>>>>> programs;
>>>>>> -- enable APSCpp to read PTAssembler and PTGui project files;
>>>>>> -- read image alignments from project files, in preparation for
>>>>>> layout-
>>>>>> guided CP placement;
>>>>>> -- remove the alignment options, as they don't work and are not likely
>>>>>> to be fixed;
>>>>>>
>>>>>> And start thinking about how to use a preliminary alignment to guide
>>>>>> better placement of control points -- maybe even close that loop,
>>>>>> refining the alignment and CP selection iteratively.  This would be in
>>>>>> the spirit of autopano (which is apparently based on an early version
>>>>>> of Janney's excellent aligner).  I fully agree with Bruno that the
>>>>>> goal should just be to select better control points, not to determine
>>>>>> optimum image placement.  But I think we all agree that a decent trial
>>>>>> alignment would let us come up with better CPs (if only by throwing
>>>>>> out the completely bogus ones that APSC now produces fairly often) and
>>>>>> that some consistency checks on such a trial alignment would be
>>>>>> useful.
>>>>>>
>>>>>> Best, Tom
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> At some point it might be nice to give APSCpp options to dump
>>>>>> keypoints to and read them from files (binary or plain text, not XML).
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to hugin-ptx@googlegroups.com
To unsubscribe from this group, send email to 
hugin-ptx-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/hugin-ptx
-~----------~----~----~----~------~----~------~--~---

Reply via email to