How can I make a bigger synth?

  • 1
  • Question
  • Updated 10 years ago
I've been doing huge synths for awhile (coming close to 2000 pictures) but recently i've hit a wall. Photosynth tells me that the program itself ran out of memory. I assumed it was a problem with not having enough RAM, but when i used my buddy's computer with 8gigs of ddr3 memory, it gave me the same message. My only guess is that the OS itself is allocating a certain amount of memory to any particular progam and my supersynths are exceeding this. I was wondering if this is the problem and if it is possible to fix.

I understand that photosynth isn't designed to work over 300 synths, but I've been getting 1500 to 2000 before.
Photo of ashinms

ashinms

  • 14 Posts
  • 1 Reply Like
  • frustrated.

Posted 10 years ago

  • 1
Photo of n8craig

n8craig

  • 1 Post
  • 0 Reply Likes
I searched Photosynth for your user name and I only found one synth. I would be very interested to see some of these large synths you describe. Using Bundler, I've been able to process collections of as many as 1200 images at 4megapixels. Processing took nearly a week. I've never built a synth that had more than probably 600 images or so, and the largest I've seen run about 900 images. I would be curious to see and know more about these large synths you describe.

Regards,
Nathan
Photo of ashinms

ashinms

  • 14 Posts
  • 1 Reply Like
Look for amn.hodge ashinms is from over a year ago. I never use that username in photosynth anymore.
Photo of ashinms

ashinms

  • 14 Posts
  • 1 Reply Like
PS. More specifically, look under "outdoor Musem attempt." I have two up, but neither is very synthy... Something else I need to improve on.
Photo of Nathanael Lawrence

Nathanael Lawrence

  • 795 Posts
  • 55 Reply Likes
Hello, all,

Ashinms, I feel your pain. I suppose that your friend is running 64-bit Windows?

I have read that for 32-bit editions of Windows (any 32 bit software can use a maximum of 4GB of physical RAM), each application has its own “virtual” 4GB memory space. Apparently, within this 4GB space, 2GB is dedicated for kernel usage, and 2GB is left for application usage. Each application gets its own 2GB, but all applications have to share the same 2GB kernel space.

I've also read about a so-called /3GB switch, which allows you to change a setting in Windows' boot.ini file so that the OS only allocates 1 Gig for itself and offers 3GB to any given application, but have also heard warnings of instability in that direction.

I am unclear how much RAM 64 bit versions of Windows allocate to themselves vs. the applications that are running, but that amount of RAM per application would be higher.

This still has the complication that the synther is a 32 bit application, so even with large amounts of RAM installed on a 64 bit OS, there is a very finite number of integers that the 32 bit synther can address - no more than 4 Gigs of RAM can be utilised by the synther (even if 64-bit Windows allocates more RAM than that to 64-bit applications), until we have a 64 bit synther in our hands.

Further reading on this subject can be found in these links:

Comments by Photosynth team member, Matt (madeeds), in the comments of Praça do Comércio, Lisboa, Portugal by Photosynth user jpamado

Reports of what worked and what didn't from Photosynth users lostinthetriangle, Fred_Oxford, and Pierrot21 in the comments of "Unfinished" Church St. George's Bermuda by lostinthetriangle

Photosynth Forum Discussion: Too many photos? by Photosynth user lostinthetriangle
Note comments from Photosynth team member Joshua Podolak (Marvin)

Photosynth Forum Discussion: Running out of memory! by Photosynth user lostinthetriangle
Note comments from Photosynth team member Dan Hou (houdan)

Photosynth Forum Discussion: Biggest Synth Possible by Photosynth user gavindjharper
Photo of Nathanael Lawrence

Nathanael Lawrence

  • 795 Posts
  • 55 Reply Likes
Now, onto Nathan's request,

I can't claim to have made many synths as large as ashinms is talking about (I'd love to see them too, ashinms), but here are a few which are roundabout 1400 or more photos.

45th Place NE As It Once Was
by Nathanael.Lawrence containing 1735 Photos which were 95% Synthy

Santa Barbara Courthouse // Inside and Out [9]
by EdLee containing 1473 Photos which were 100% Synthy

Huge House (with highlights)
by K containing 1713 Photos which were 98% Synthy

Regis University Main Hall and Chapel Combined
by Schn828 containing 1440 Photos which were 98% Synthy

Regis University Carroll Hall and Mary Statue
by Schn828 containing 1648 Photos which were 98% Synthy

Camp Tadmor: The Forum (Passage of Time Test)
by Nathanael.Lawrence containing 1600 Photos which were 97% Synthy

Cathedral of the Most Holy Trinity (Bermuda)
by lostinthetriangle containing 1396 Photos which were 100% Synthy

Ely 1462
by Jonathan containing 1462 Photos which were 93% Synthy

The Walking Bridge
by Nathanael.Lawrence containing 1478 Photos which were 99% Synthy

With apologies to the self bias here (regrettably one's own large synths are more easily found than others' for the time being), I've included some of my failures along with successes with the only criteria being that they had upwards of 1400 photos.

Also, here is a sample web query to look for synths with between 700 and 2400 photos. The results are not all that I had remembered, but I'll try a few other twists if time permits and post more fruitful queries if I find them.

If you know better than I do how to search photosynth.net for a number range of, say, 1000 to 3000 (excluding 2008, 2009, and 2010, which will be found on fairly much every page on the site) inside of the phrase "x photos" where x is the range, please let me know. Using wildcards within phrases is not something I know how to do, if search engines are capable of it at all.

I wish that search engines had more of a GUI, where I could draw a box around the appropriate part of an example page on a given site and ask the search engine to query only that portion of all of the pages for the number range or whatever other query I was throwing at it.
Photo of Nathanael Lawrence

Nathanael Lawrence

  • 795 Posts
  • 55 Reply Likes
Here are a few other largish synths of mine that I hadn't included when I compiled the above list, in the first case because I hadn't yet created it and in the latter two because they contain fewer than 1400 photos.

Salem Capitol Lobby (Very Rough Draft)
by Nathanael containing 1751 Photos which were 89% Synthy

Memorials at Oregon's Capitol
by Nathanael.Lawrence containing 1214 Photos which were 100% Synthy

DWH: SL (Last 1200)
by Nathanael.Lawrence containing 1200 Photos which were 100% Synthy

EDIT: This synth deserves to be at the top of the above list:
Waverly Historical Photo Gallery
by dragonscythe_zw containing 1835 Photos which were 99% Synthy
Photo of Nathanael Lawrence

Nathanael Lawrence

  • 795 Posts
  • 55 Reply Likes
Nathan, here are some of amn.hodge's larger synths

Outdoor Musem Attempt 6
by amn.hodge containing 1988 Photos which were 65% synthy

Outdoor Musem Attempt 5
by amn.hodge containing 1256 Photos which were 78% synthy

Miller Cave 2.0
by amn.hodge containing 990 Photos which were 79% synthy

Det 7 inside the dorms
by amn.hodge containing 986 Photos which were 77% synthy

Inside of My Dorm Room
by amn.hodge containing 979 Photos which were 86% synthy

WWII Outdoor Musem
by amn.hodge containing 896 Photos which were 98% synthy

Joint Forces Memorial Musem 2.0
by amn.hodge containing 889 Photos which were 94% synthy
Photo of Nathanael Lawrence

Nathanael Lawrence

  • 795 Posts
  • 55 Reply Likes
ashinms | amn.hodge,

Some questions: Which stage of synthing are you running out of memory on?

Generating tiles?
Extracting image features?
Matching images?
Reconstructing Scene?
Generating synth files?

My assumption is that you are running out of memory during scene reconstruction. If that is the case, it is a RAM issue and I would say to try the 4-gigabyte tuning ( /3GB switch ) to give the synther as much physical RAM as possible. You should also give the system as much virtual memory as you can.

I'm still not sure whether running 64bit Windows has any effect on how much RAM is allocated to 32bit applications. Update: If I understand this table on MSDN correctly, I was right earlier in thinking that 64bit Windows can allocate up to 4GB per 32-bit application.

Edit: After some more reading, it appears that this is out of the control of the end user. The developer of the 32-bit application (in our case, the synther), must have added the IMAGE_FILE_LARGE_ADDRESS_AWARE value inside of their own application's source code. I do have some reason to think that the synther does have support for this as one of the first things in the Photosynth log files that are generated during the creation of each synth is a check whether the processor is 64-bit or not (Wow64: yes). Another indication that this is in place is that on my computer (which has only 4GB of RAM installed) the following line is generated in the log file: Memory available: physical 3815 MB virtual 4095 MB. If the synther is able to take advantage of 3815 MB of my physical RAM, that is over 3GB (3072 MB), so basically if you have 64-bit Windows and more than 4GB of RAM (enough that 4GB is left for Photosynth after Windows etc. takes their share), then you should be getting all that is possible to get from a 32-bit synther.

In short, on both 32-bit and 64-bit versions of Windows, the default amount of RAM that any 32-bit application actually gets to itself is 2 gigabytes.

On 32-bit Windows, you can switch Windows settings to allow the synther (or any 32-bit program) to actually use a maximum of 3 gigabytes of RAM (out of a maximum of 4 gigabytes of installable RAM on a 32-bit operating system).

On 64-bit Windows, it is possible for the synther (or any other 32-bit program) to use a maximum of 4 gigabytes of RAM (out of a maximum of 192 installable gigabytes of RAM on a 64-bit operating system) but this is determined by the user's own amount of installed RAM and the Photosynth team having added the IMAGE_FILE_LARGE_ADDRESS_AWARE value inside the program.


For me, it also goes without saying that you should close as many other processes and Windows services as possible when trying to create the largest synths to conserve system resources.

If you are running out of memory during the earliest stage, then your problem would be as simple as running out of hard drive space. The synther is converting each JPG image to a DZI (Deep Zoom Image) image pyramid (Seadragon's multi-resolution tiled format). Each DZI will occupy roughly 1.3 times the hard drive space that the original JPG did, so if the input JPGs took up 10GB on the hard drive, then be sure to have plenty of free space for the DZIs to be stored - twice the size - just to be on the safe side so, for that example, 20 GB of additional free space on your Windows drive (or wherever you have configured your Windows TEMP variable to reside, if you have customised things) would be the recommended amount of free space even though the DZIs will probably only take up 13 or 14 GB.

It seems pretty unlikely that you would run out of memory after scene reconstruction (during the saving of the data to the synth files (the DZC [Deep Zoom Collection] file, the point cloud binary chunks, and the JSON file describing the image properties and camera parameters and positions within the point cloud coordinate system).

You can access your synth creation log files by typing %temp%/photosynther into any command line (Windows Explorer|My Computer address bar, the 'Run' command, etc.). If you could report exact error message numbers and the last several lines of the log file so that we can see what it was doing when it died, that would help troubleshoot considerably.

I saw your report on the Photosynth Bugs Forum about Photosynth not being able to synth a quarter of the images that you used to be able to with it. In all honesty, the number of images has very little to do with the limits of a synth. It has far more to do with how many keypoints are detected and more importantly matched across images that is going to inhibit you. For example, it is possible to make an 1800 image synth where you simply walk forward in a straight line, taking several steps between each shot. This should all synth together fine, but because the foreground scenery is never in view for that long, not many of the image features match each other. By contrast if you have simply chosen a single moderately sized stone sculpture with pebbled texture and you shoot it from as many angles as possible from a very limited number of close distances, then not only will you be generating far more image features per image, but far more of them will correspond to each other, which could run you out of RAM before you had transgressed 1000 images.

Photosynth only uses 1.5 megapixel versions of your photos to examine for keypoints|image features, to then match, and position, but the logic in the last paragraph still holds true, regardless of resolution.

My real question for you is whether your current problems in getting your large clusters of newer photos to all synth in one group is due to some change on your system (such as less hard drive space) or whether it is simply due to different image content (some subjects simply have more image features to be detected, (even at 1.5 megapixels) than others. In other words, if you try to resynth some of your earlier larger sets of photos (assuming you still have the original photos), is Photosynth unable to process them now as well, or does it still complete them and only have problems with your newer sets?

(As long as you haven't edited the images from previous synths between when you last uploaded them and now, they won't be uploaded to your account a second time if you resynth, so the photo upload part of the synth process won't need to happen, although the conversion to DZI will still occur and the upload of the DZC and BIN files will still need to happen (the point cloud, 2D view layout, and camera position metadata), but these are relatively small.)

Completely stepping away from getting Photosynth to process more data and make bigger synths, you could try to get in the good graces of PhotoCity and start a seed. They use Bundler on their end (and CMVS as well as PMVS to perform dense reconstruction).

If a seed gets approved, you'll be able to add more and more photos to the model (even after the initial reconstruction is complete), so that is another option for getting very large reconstructions to work. What is perhaps more interesting is that other people can join the site and use their account to upload their photos to any seed that has already been approved, so either you or someone else could add more photos to your reconstruction at any time after your seed is approved.

I should note, though, that any photos added after those used to start the seed will be matched against the seed's point cloud, rather than the other photos, so it can be less accurate than Photosynth at times. For example, it has the left wing of the center of the Oregon Capitol Building mapped onto the right hand side of the same, at the moment, due to some symmetrical architecture, whereas the same photos in Photosynth had no such problem.
Photo of ashinms

ashinms

  • 14 Posts
  • 1 Reply Like
After reading what you just said, I think I understand. It is an issue of how i'm shooting my synths... The ones I got over 1000 on were being shot in a more linear motion. The ones i was failing to make were made trying to create a 3d Model of my barraks on fort leonard wood (A place I have thankfully graduated from!)
Photo of ashinms

ashinms

  • 14 Posts
  • 1 Reply Like
Also, I was running out on the reconstructing scene phase of the synth.
Photo of Nathanael Lawrence

Nathanael Lawrence

  • 795 Posts
  • 55 Reply Likes
For your existing photo sets, you could always try just breaking them up into smaller chunks, so that when synth linking is released, you'll be ready to go.

Another way to deal with a big photo set if you've shot really dense coverage is just to select every other photo or every three photos. It's pretty easy to select this if you view the folder of images as thumbnails, make the Windows Explorer|My Computer window narrow enough so that it only has two or three columns, and then click and drag your mouse to select one of the columns. Once selected, just drag into the synther and cross your fingers. It's perhaps not ideal, but it's better than not using the photos at all.

I don't know if you ever looked into it, but seriously give PhotoCity a try. If you have problems getting in, they respond to the forum and their email pretty quickly in my experience. I don't recommend giving up Photosynth, but it's good to be able to compare what the two can do.
Photo of ashinms

ashinms

  • 14 Posts
  • 1 Reply Like
By the way... when is synth linking supposed to be released anyways...