- create depth maps from stereo pairs (stereo matching),
- generate intermediate synthetic views (lenticular),
- create depth maps from multiple views (multi-view stereo matching),
- create dense 3D reconstruction (point cloud) from multiple views (structure from motion and multi-view stereo),
- perform 2D to 3D image conversion (stereo conversion),
- perform edge-preserving smoothing,
- rectify/align stereo pairs, and
- much more
is available on dropbox in rar archive form, totally free of any charge.
The executables are for the pc windows operating system in 32 bit or 64 bit flavor. It is highly recommended to use 64 bit execs because 32 bit execs can only address 4 gigabytes of memory and are not updated anymore. So, if your machine is 64 bit, please use the 64 bit archives, not the 32 bit archives. The programs were developed on a linux machine using Qt for the graphical interface. The port to windows was done rather painlessly thanks to the MinGW compiling environment.
Given an executable (for example, DMAG5), the number (5 for DMAG5) used after the acronym (DMAG for DMAG5) is not a version number. For example, in the DMAG line of software, DMAG, DMAG2, DMAG3, DMAG4, DMAG5, DMAG6, and DMAG7 have very little to do with each other. In particular, DMAG7 is certainly not better than the rest.
The executables without GUI (Graphical User Interface) are run via a .bat file (batch file). When you unzip any of the archives containing GUI-less executables, there will be a manual for the program of interest called *_manual.pdf (where * is the name of the program) which explains how to use the program. There will also be a directory called *_test (where * is the name of the program) that contains a sample test case which can be run directly by double-clicking on the batch file after having made sure the path to the .exe executable in the batch file is correct. Typically, to run any of the GUI-less executables, one would create a directory which contains the input images, copy the batch file (*.bat) and the input file (*_input.txt) from the *_test directory, edit the batch file so that the path to the .exe executable is correct, possibly edit the input file to modify the parameters, and then double-click on the batch file to launch the program of interest. Personally, to edit a file, I use a program called Notepad++ but any other text editor can be used. If you are experiencing problems running the GUI-less executables, please send me you batch file (*.bat file) and input file (*_input.txt) where * is the name of the program you want to use.
For some executables, the image size doesn't matter too much, in other words, you can use pixel heavy stuff but, in general, it's better to take it easy on the image size and start with images that are relatively small (under two mega pixels for instance). If it looks like the executable is not completely hogging the machine, then you can try using larger images. If you really don't want to reduce the size of the images, you can make use of the downsampling factor that's available in some of the executables.
Recommendations on what to use depending on what you are looking for:
Two-view epipolar rectification:
- Use ER9b to rectify the images. Note that the input two views may be completely misaligned. The quality of the rectification process is given by the mean vertical disparity error (it's usually close to perfect if below 0.5 pixels) written out to the output. If ER9b appears to be too aggressive (large zooming effect and/or large white framing areas), please use ER9c. I strongly recommend using ER9b or ER9c prior to generating depth maps. ER9b and ER9c give the min and max disparities in the output (please, use the 2nd line) which are used in the input of most automatic depth map generators on offer here.
Generation of depth map from two views:
- To get the depth map or the depth maps (left and right), I have implemented (in chronological order): DMAG, DMAG2 (please, use downsampling if images are large), DMAG3 (please, use downsampling if images are large), DMAG5, DMAG6 (please, use downsampling if images are large), and DMAG7. In most cases, I recommend using DMAG5 or DMAG5b followed by DMAG9b. If the stereo baseline (distance between the lenses) is small, I would actually recommend using DMAG5b over DMAG5. Check A Qualitative Comparison of Selected Automatic Depth Map Generators for a link to an academic looking paper that attempts to compare DMAG2, DMAG5, DMAG6, and DMAG7. Check Depth Map Generation using Optical Flow for an in-depth look at DMAG. Check Depth Map Generation using Graph Cuts for an in-depth look at DMAG3. To improve depth map quality (whatever the origin), I (highly) recommend using DMAG9b.
Generation of intermediate synthetic views (tweeners) between the left and right images:
- Use FSG6 to get the intermediate frames. Input is the left image, left depth map, right image, and right depth map. Make sure that the right depth map is such that foreground is white and background is black (just like the left depth map). If the right depth map comes from a depth map generator that produces two depth maps (left and right), it will need to be color inverted before using FSG6. If you have only have one reference image and one depth map or if you want to increase the stereo effect of a stereo pair, you can use FSG11 to get synthetic frames on either side of the reference image.
Generation of depth map from multiple views:
- Use SfM10 (Structure from Motion) to get the nvm file and then DMAG8b to get the depth map. I don't recommend using DMAG8 which is based on DMAG7. Make sure the viewpoints are not too different, in other words, make sure the camera is not moved too much between shots. I think it's better to get the 3D scene (with MVS10) than to get a depth map from multiple views.
3D scene reconstruction from multiple views:
- Use SfM10 (Structure from Motion) to get the nvm file and then MVS10 (Multi-View Stereo) to get the dense 3D reconstruction. The main output is a point cloud representing the 3D scene in ply format. This process is referred to as photogrammetry.
2D to 3D image conversion:
- Use DMAG4 to get the depth map in a semi-automatic manner. If you give DMAG4 a so-called "edge image", the depths will not bleed across object boundaries (use a low beta, like beta= 10, to get very smooth depths within the edges defined by the "edge image"). To know more about DMAG4, check 2D to 3D Image Conversion using DMAG4. If you like to experiment, DMAG11 may be used as an alternative with very similar results (you can't use an "edge image" though, at present). If you are well versed in gimp (in particular, gimp paths), you can use the3dconverter for the ultimate experience in 2d to 3d image conversion. It's actually much easier to use than DMAG4 or DMAG11 because it relies more on gimp paths than depth scribbles to drive the depth map densification process. If you like DMAG4 but think it is a bit slow, you can use the3dconverter instead using the same input files as for DMAG4 (simply ignore the gimp paths stuff).
- Not sure it's needed since the depth map generators on offer here all have some kind of edge-preserving safeguards built in. If you have depth maps with outliers (tiny specks at the wrong depths), EPS9 is good at removing them. To smooth depth maps while preserving object boundaries, you can use EPS2, EPS5, or EPS7. You can see them in action in 3D Photos - Reindeer. I personally tend to prefer EPS2 which is a "true" (as opposed to approximated) bilateral filter. Personally, I do not use any of them as I prefer to use DMAG9b for all my depth map improvement needs.
Depth map improvement:
- To improve the quality of any depth map, DMAG9b is what you want to use. It is a very powerful tool, much more potent than a mere edge preserving smoother. DMAG9b is more a depth map "improver" than a depth map generator. To see DMAG9b in action against EPS2, EPS5, and EPS7, check 3D Photos - Reindeer. For more info about DMAG9b, consult Depth Map Improvement Using The Fast Bilateral Solver. If you want to improve a depth map semi-manually, I would recommend using either DMAG4 or DMAG11. For more info on how to improve depth maps with DMAG4, check Case Study - How to improve depth map quality with DMAG9b and DMAG4.
Generation of an animated 3d gif (smooth wiggle/wobble not to be confused with the migraine inducing two-view wiggle) from a reference image and depth map:
- Use Wiggle Maker to get the animated gif. As an alternative, you can also use depthy.me but the depth map will need to be inverted (in depthy.me, black is foreground and white is background).
Depth map visualization:
- Use Depth Player to display the 3d scene given a reference image and a depth map. As an alternative, you can also use Depth Map Viewer to visualize depth maps in 3d.
What follows is the complete list of all the executables that you can download. The executables which are grouped into archives (in the rar format) are hosted on dropbox. I strongly recommend not to use the 32-bit archives as they are not updated.
The executables contained in the 32-bit archive ugosoft3d.rar and 64-bit archive ugosoft3d-x64.rar are described in the following posts:
- Depth Map Automatic Generator (DMAG), and
- Frame Sequence Generator (FSG).
The executables contained in the 32-bit archive ugosoft3d-2.rar and 64-bit archive ugosoft3d-2-x64.rar are described in the following posts:
- Depth Map Automatic Generator 2 (DMAG2),
- Disparity Finder 2 (DF2),
- Frame Sequence Generator 2 (FSG2), and
- Edge Preserving Smoothing 2 (EPS2).
If you would prefer executables with no Graphical User Interface (GUI), download the 64-bit archive ugosoft3d-2-nogui-x64.rar (contains DMAG2).
The executables contained in the 32-bit archive ugosoft3d-3.rar and 64-bit archive ugosoft3d-3-x64.rar are described in the following posts:
- Depth Map Automatic Generator 3 (DMAG3), and
- Frame Sequence Generator 3 (FSG3).
The executables contained in the 32-bit archive ugosoft3d-4.rar and 64-bit archive ugosoft3d-4-x64.rar are described in the following posts:
- Depth Map Automatic Generator 4 (DMAG4), and
- Frame Sequence Generator 4 (FSG4).
The executables contained in the 32-bit archive ugosoft3d-5.rar and 64-bit archive ugosoft3d-5-x64.rar are described in the following posts:
- Depth Map Automatic Generator 5 (DMAG5),
- Depth Map Automatic Generator 5b (DMAG5b),
- Depth Map Automatic Generator 5c (DMAG5c),
- Edge Preserving Smoothing 5 (EPS5), and
- Frame Sequence Generator 5 (FSG5).
If you would prefer executables with no Graphical User Interface (GUI), download the 64-bit archive ugosoft3d-5-nogui-x64.rar (contains DMAG5 and DMAG5b).
The executables contained in the 32-bit archive ugosoft3d-6.rar and 64-bit archive ugosoft3d-6-x64.rar are described in the following posts:
- Depth Map Automatic Generator 6 (DMAG6) and
- Frame Sequence Generator 6 (FSG6).
If you would prefer executables with no Graphical User Interface (GUI), download the 64-bit archive ugosoft3d-6-nogui-x64.rar (contains DMAG6 and FSG6).
From now on, I will not support 32 bit any longer as it is safe to say that nobody uses (or should use) Windows xp anymore. Everything is going to be 64 bit. Also, I will not bother with a graphical interface any longer. There is no point having a graphical interface when any parameter that is needed can be read from a file. Also, it is plain easier for me not to have to worry about Qt on Linux (where I develop everything) and Windows. Within each archive and for each piece of software, there is a manual (for example, dmag7_manual.pdf for dmag7) which I strongly recommend you read and a test directory (for example, dmag7_test for dmag7) where you can check that the piece of software you are interesting in runs correctly on your machine. If you are having any problems, send me an email and I will help you.
The executables contained in the 64-bit archive ugosoft3d-7-x64.rar are described in the following posts:
- Depth Map Automatic Generator 7 (DMAG7) and
- Edge Preserving Smoothing 7 (EPS7).
The executables contained in the 64-bit archive ugosoft3d-8-x64.rar are described in the following posts:
- Depth Map Automatic Generator 8 (DMAG8),
- Depth Map Automatic Generator 8b (DMAG8b),
- Depth Finder 8 (DF8), and
- Camera Remover 8 (CR8).
The executables contained in the 64-bit archive ugosoft3d-9-x64.rar are described in the following posts:
- Depth Map Automatic Generator 9 (DMAG9),
- Depth Map Automatic Generator 9b (DMAG9b),
- Edge Preserving Smoothing 9 (EPS9),
- Epipolar Rectification 9 (ER9),
- Epipolar Rectification 9b (ER9b), and
- Epipolar Rectification 9c (ER9c).
The executables contained in the 64-bit archive ugosoft3d-10-x64.rar are described in the following posts:
- Structure from Motion 10 (SfM10), and
- Multi View Stereo 10 (MVS10).
The executables contained in the 64-bit archive ugosoft3d-11-x64.rar are described in the following posts:
- Shallow Depth-of-Field Generator 11 (SDOFG11),
- Point Cloud Maker 11 (PCM11),
- Depth Map Automatic Generator 11 (DMAG11),
- Depth Map Automatic Generator 11b (DMAG11b), and
- Frame Sequence Generator 11 (FSG11).
The executables contained in the 64-bit archive the3dconverter-x64.rar are described in the following posts:
- 2d to 3d Image Conversion - The 3d Converter.
But wait! There's more ...
Websites (web apps) related to automatic depth map creation:
- Wiggle Maker. For more info, visit Wiggle Maker blog post. As an alternative, you can also use depthy.me but the depth map will need to be inverted (in depthy.me, black is foreground and white is background).
- Depth Map Viewer. For more info, visit Depth Map Viewer blog post.
- Depth Player. For more info, visit Depth Player blog post.
If you have any questions, want to give me some feedback/suggestions, or just want to let me know that you are using my software (successfully I hope), send me an email (ugocapetodifrancia3d
When the manual says to put the correct path to the executable in the .bat file, the way to get the proper path is as follows:
- using the file explorer, go to the directory where you have extracted the archive (where the executables are),
- click on the folder symbol to the left of the current "symbolic" path,
- copy/paste that path (should already be selected) into the .bat file.