Algorithm to texture 3D reconstructions from multi-view stereo images

Overview

MVS-Texturing

Welcome to our project that textures 3D reconstructions from images. This project focuses on 3D reconstructions generated using structure from motion and multi-view stereo techniques, however, it is not limited to this setting.

The algorithm was published in Sept. 2014 on the European Conference on Computer Vision. Please refer to our project website (http://www.gcc.tu-darmstadt.de/home/proj/texrecon/) for the paper and further information.

Please be aware that while the interface of the texrecon application is relatively stable the interface of the tex library is currently subject to frequent changes.

Dependencies

The code and the build system have the following prerequisites:

  • cmake (>= 3.1)
  • git
  • make
  • gcc (>= 5.0.0) or a compatible compiler
  • libpng, libjpg, libtiff, libtbb

Furthermore the build system automatically downloads and compiles the following dependencies (so there is nothing you need to do here):

Compilation Build Status

  1. git clone https://github.com/nmoehrle/mvs-texturing.git
  2. cd mvs-texturing
  3. mkdir build && cd build && cmake ..
  4. make (or make -j for parallel compilation)

If something goes wrong during compilation you should check the output of the cmake step. CMake checks all dependencies and reports if anything is missing.

If you think that there is some problem with the build process on our side please tell us.

If you are trying to compile this under windows (which should be possible but we haven't checked it) and you feel like we should make minor fixes to support this better, you can also tell us.

Execution

As input our algorithm requires a triangulated 3D model and images that are registered against this model. One way to obtain this is to:

A quick guide on how to use these applications can be found on our project website.

By starting the application without any parameters and you will get a description of the expected file formats and optional parameters.

Troubleshooting

When you encounter errors or unexpected behavior please make sure to switch the build type to debug e.g. cmake -DCMAKE_BUILD_TYPE=DEBUG .., recompile and rerun the application. Because of the computational complexity the default build type is RELWITHDEBINFO which enables optimization but also ignores assertions. However, these assertions could give valuable insight in failure cases.

License, Patents and Citing

Our software is licensed under the BSD 3-Clause license, for more details see the LICENSE.txt file.

If you use our texturing code for research purposes, please cite our paper:

@inproceedings{Waechter2014Texturing,
  title    = {Let There Be Color! --- {L}arge-Scale Texturing of {3D} Reconstructions},
  author   = {Waechter, Michael and Moehrle, Nils and Goesele, Michael},
  booktitle= {Proceedings of the European Conference on Computer Vision},
  year     = {2014},
  publisher= {Springer},
}

Contact

If you have trouble compiling or using this software, if you found a bug or if you have an important feature request, please use the issue tracker of github: https://github.com/nmoehrle/mvs-texturing

For further questions you may contact us at mvs-texturing(at)gris.informatik.tu-darmstadt.de

Comments
  • Does MVS support the multi-tiff files

    Does MVS support the multi-tiff files

    Hi, I used MVS to texture my mesh and it really impressed me. Now, I have some multi-tiff files (it means several bands in one tif file) which need to be textured, but I am failed to use the current version MVS to do that. I am wonder whether there are some ways to achieve that, or is it a heavy work to revise the code?

    opened by xialang2012 27
  • How to set camera parameters?

    How to set camera parameters?

    Hi, I have reconstructed mesh models with another application. Now, when I set camera parameters and apply textures on models, a strange shift is visible in all models! I have used the following configuration: 1- Using Lens Distortions K1 and K2 2- Principal pointX=0.5-(my principal pointX / X dimension of sensor) 3- Principal pointY=0.5-(my principal pointY / Y dimension of sensor) 4- Aspect Ratio ~1 5- Focal lenght=Focal length/largest dimension of sensor Moreover, I used tex::image_undistort_bundler and text::image_undistort_vsfm for making undistorted images. I am sure that camera parameters and point clouds have been created with high accuracy, but I cannot find the causes of this problem. Is there any assumption in setting camera parameters that I have missed?

    opened by parvizimosaed 24
  • problem of compiling this code under windows platform

    problem of compiling this code under windows platform

    Hi Nils, These days I compile your code of mvs-texturing on windows platform,but there is little problems.Since msvc support openmp2.0, but your code, there are details about openmp3.0 or higher.The code is as follows: void generate_texture_atlases(std::vectorTexturePatch::Ptr * orig_texture_patches, std::vectorTextureAtlas::Ptr * texture_atlases) {

    std::list<TexturePatch::ConstPtr> texture_patches;
    while (!orig_texture_patches->empty()) {
        //TODO avoid copying
        texture_patches.push_back(orig_texture_patches->back());
        orig_texture_patches->pop_back();
    }
    
    std::cout << "\tSorting texture patches... " << std::flush;
    /* Improve the bin-packing algorithm efficiency by sorting texture patches
     * in descending order of size. */
    texture_patches.sort(comp);
    std::cout << "done." << std::endl;
    
    std::size_t const total_num_patches = texture_patches.size();
    std::size_t remaining_patches = texture_patches.size();
    std::ofstream tty("/dev/tty", std::ios_base::out);
    
    #pragma omp parallel
    {
    #pragma omp single
    {
    
    while (!texture_patches.empty()) {
        unsigned int texture_size = calculate_texture_size(texture_patches);
    
        texture_atlases->push_back(TextureAtlas::create(texture_size));
        TextureAtlas::Ptr texture_atlas = texture_atlases->back();
    
        /* Try to insert each of the texture patches into the texture atlas. */
        std::list<TexturePatch::ConstPtr>::iterator it = texture_patches.begin();
        for (; it != texture_patches.end();) {
            std::size_t done_patches = total_num_patches - remaining_patches;
            int precent = static_cast<float>(done_patches)
                / total_num_patches * 100.0f;
            if (total_num_patches > 100
                && done_patches % (total_num_patches / 100) == 0) {
    
                tty << "\r\tWorking on atlas " << texture_atlases->size() << " "
                 << precent << "%... " << std::flush;
            }
    
            if (texture_atlas->insert(*it)) {
                it = texture_patches.erase(it);
                remaining_patches -= 1;
            } else {
                ++it;
            }
        }
    
        #pragma omp task
        texture_atlas->finalize();
    }
    
    std::cout << "\r\tWorking on atlas " << texture_atlases->size()
        << " 100%... done." << std::endl;
    util::WallTimer timer;
    std::cout << "\tFinalizing texture atlases... " << std::flush;
    #pragma omp taskwait
    std::cout << "done. (Took: " << timer.get_elapsed_sec() << "s)" << std::endl;
    
    /* End of single region */
    }
    /* End of parallel region. */
    }
    

    } It shows "task" should openmp directives name when I compile this code.So I ask this code (on task and taskwait) could use other instructions (openmp2.0) replace it?

    opened by hushanming 15
  • Color mapping

    Color mapping

    In newer versions of texrecon, the color mapping is worse than before. As an example, I made a textured 3d reconstruction of the kermit scene (from bundler) with an old texrecon (github of around April 2015) and the current one (github of 23.09.2015). I have seen the same behaviour also with other scenes, however less drastic. Is there a way to have the new features (MVS2 compatibility, reduced memory consumption) and the old color mapping?

    Old texrecon: kermit_oldtexrecon

    New texrecon: kermit_newtexrecon

    Both reconstructions were made with Regard3D (www.regard3d.org, I am the author).

    Thanks in advance!

    opened by rhiestan 14
  • How to run mvs texturing with cam,mesh and image files?

    How to run mvs texturing with cam,mesh and image files?

    I have a mesh.ply file and .cam and .jpg files in cam folder. I am running this command "./texrecon cam mesh.ply textured " I got this error "Load and prepare mesh: Reading PLY: 478986 verts... 956298 faces... done. Generating texture views: Loading 0%...Could not load image header of /home/indshine-2/Downloads/openMVG_Build/Linux-x86_64-RELEASE/cam/cam/DJI_0001.JPG /home/indshine-2/Downloads/openMVG_Build/Linux-x86_64-RELEASE/cam/cam/DJI_0001.JPG: No such file or directory" Then I included cam/cam folder and moved my .cam and .jpg data in it and again ran. Generating texture views: No proper input scene descriptor given. A input descriptor can be: BUNDLE_FILE - a bundle file (currently onle .nvm files are supported) SCENE_FOLDER - a folder containing images and .cam files MVE_SCENE::EMBEDDING - a mve scene and embedding

    Can you tell me what am I missing here? Thank You.

    opened by ManishSahu53 13
  • texrecon crashes

    texrecon crashes

    Thanks for sharing your code!

    The last version of texrecon (compiled yesterday) crashes for the following dataset: https://www.dropbox.com/s/fvh6wbzgq9zs9ms/texrecon_test_now_complete.zip?dl=0 (Update: one image was missing in the first version of the zip archive. Now it's complete.)

    The command I used is: 2016_02_02_08_40_28

    Do you have any idea what may be the problem?

    Regards, Philipp

    opened by pglira 13
  • Is MVE's PLY file the only input that dictates a textured model's color?

    Is MVE's PLY file the only input that dictates a textured model's color?

    This is more of a conceptual question that I was hoping to get answered before I embark on it.

    I have successfully ran a set of images through a fairly-long SfM pipeline involving OpenMVG, MVE and finally mvs-texturing. The result is a textured OBJ file that I can import into Blender and view. Very cool!

    I would now like to manipulate that model programmatically by changing the RGB-color values for a subset of 3D points inside of it. The outcome would be that certain objects or sections inside the final textured model might appear, say, bright red, whereas they are not bright red in the original input images, etc.

    I see that MVE's final output is a PLY file (OUTPUT_MESH_CLEAN.ply). I believe this is the main input for mvs-texturing, for example:

    /path/to/texrecon MVE::undistorted MVE/OUTPUT_MESH_CLEAN.ply /path/to/output/mymodel
    

    My theory is that I could:

    1. Use a PLY reader (in a language of my choosing), combined with my own software to select the 3D points/vertices that I want to color/modify and set their new color values; then
    2. Save the modified PLY file as, say, OUT_MESH_CLEAN_MODIFIED.ply; then
    3. Load the modified PLY into mvs-texturing like I have already done with the non-modified one produced directly by MVE

    Is this the correct course of action, or are there other inputs (for mvs-texturing) besides the PLY file that would also need to be changed in order to have the desired effect?

    Thanks in advance!

    opened by zharvey-welltok 12
  • /tmp fills up causing libpng write error

    /tmp fills up causing libpng write error

    When processing a large dataset, I will often set up a remote machine with a large mounted drive where the dataset is stored. / is only about 20GB. There are temporary files that are stored to /tmp so when it fills up the volume mvs-texturing will crash. Two questions:

    1. Can these files be stored in a temporary folder local to the dataset?
    2. Why are these temporary files so much bigger than the actual images? My images are 3-7MB but those in /tmp are 22-25MB.

    For reference I think the code in question is here: https://github.com/nmoehrle/mvs-texturing/blob/4fb24145a0201f7d18a1e3eb9ac2eecef624065c/libs/tex/generate_texture_views.cpp#L161

    and https://github.com/nmoehrle/mvs-texturing/blob/master/libs/tex/generate_texture_views.cpp#L193

    opened by dakotabenjamin 9
  • permission problem when same imageset is processed by different users (OpenDroneMap)

    permission problem when same imageset is processed by different users (OpenDroneMap)

    Hi,

    im currently working with OpenDroneMap and i ran into an issue (i can work around it but its annoying) stemming from this library

    the concrete point of failure is https://github.com/nmoehrle/mvs-texturing/blob/733ff76734c2eff09850b223d16b005203ed2383/libs/tex/generate_texture_views.cpp#L194

    this lead to a permission problem.

    example: user "a" runs ODM with pictureset "pic_a". at some point the above mentioned piece of code is invoked, and images are copied to /tmp. these images are now owned by "a", and do not get deleted after completion

    now user "b" also runs ODM with pictureset "pic_a", and your library tries to overwrite the images that were left in /tmp. this leads to a thrown util::FileException and ODM crashes.

    i would propose using a seperate random directory in tmp each time the program is run (seperate directory so several users could process the same imageset at the same time, if necessary), and also deleting it after the program is done, so the tmp directory doesnt fill up

    i would do it myself, but i am not proficient enough in c++.

    if the thing with the directory is too much effort, it would be enough (for my purposes) if the images got deleted after the program is done

    opened by fredlllll 9
  • n-channel verison result

    n-channel verison result

    I have test the n-channel branch with a 10 channels file, and the results are showed below.

    First, the textured result with the single band file as input images, it is very pretty.

    normal-single-band

    Below is the textured result with 10 channels tif file as input images.

    1. the result of the first band, it looks ok.

    10band-1

    but, the textured result for other channels seems not very good, 2. the result for the second band

    Uploading 10band-2.png…

    The result for the fourth band

    10band-4

    The result for the tenth band

    10band-6

    opened by xialang2012 9
  • Build for Windows with Visual Studio 2015 fails

    Build for Windows with Visual Studio 2015 fails

    I've been struggling to make a build for Windows and been experiencing same issues described here earlier. I did try Andres fork with no success. Here's example of few errors I'm getting:

    'vertex_idx': index variable in OpenMP 'for' statement must have signed integral type
    
    'edge_idx': index variable in OpenMP 'for' statement must have signed integral type 
    
    'capture': unexpected token encountered on OpenMP 'atomic' directive
    
    Expression following '#pragma omp atomic' has improper form
    
    'i': index variable in OpenMP 'for' statement must have signed integral type
    

    and so on...

    Any ideas on what may cause these errors?

    opened by igorti 9
  • failed to generate a texture reconstruction

    failed to generate a texture reconstruction

    Hi, I am new to mvs-texturing and What I want to do is generate a texture for my .ply mesh file which generated from colmap

    As the website http://www.gcc.tu-darmstadt.de/home/proj/texrecon/ is not available now, so all the information I have is the prompt from executing ./texrecon that tells me how to set the arguments:

    ./texrecon (built on Sep  7 2022, 10:55:32)
    
    Textures a mesh given images in form of a 3D scene.
    
    Usage: ./texrecon [options] IN_SCENE IN_MESH OUT_PREFIX
    
    IN_SCENE := (SCENE_FOLDER | BUNDLE_FILE | MVE_SCENE::EMBEDDING)
    
    ....
    

    As I understood, IN_SCENE can be either a SCENE_FOLDER or a BUNDLE_FILE or MVE_SCENE::EMBEDDING, I used a .nvm file (exported from colmap) as IN_SCENE;

    As for IN_MESH , I used fused.ply generated from colmap, thus I put the command as ./texrecon ~/mvs-texturing/test/tutorial3.nvm ~/mvs-texturing/test/fused.ply recon, however it gave following errors:

    ./texrecon (built on Sep  7 2022, 10:55:32)
    Load and prepare mesh:
    Reading PLY: 101042 verts... done.
    Generating texture views:
    NVM: Loading file...
    NVM: Number of views: 0
    NVM: Number of features: 101042
    NVM: 101042 strange points not seem by any camera!
    No proper input scene descriptor given.
    A input descriptor can be:
    BUNDLE_FILE - a bundle file (currently onle .nvm files are supported)
    SCENE_FOLDER - a folder containing images and .cam files
    MVE_SCENE::EMBEDDING - a mve scene and embedding
    
    opened by citystrawman 0
  • Textured .obj generated from texrecon is not able to be viewed in Xcode Swift

    Textured .obj generated from texrecon is not able to be viewed in Xcode Swift

    Hello, has anyone else had a use case like this?

    I have an issue with the .obj file that I generate using the texrecon function call. When I am trying to view the textured model in Swift, using the following code:

    let scene = SCNScene(named: "HeadModel3D.obj") self.sceneView.scene = scene

    The issue is nothing ends up being displayed in the preview window. There is no indication the model is present. This doesn't happen with other textured .obj files I try to use online; those ones work just fine and display with the color textures successfully. I was wondering if there was a specific setting about the .objs generated with MVS Texturing that makes it not work.

    Below are the parameters I passed to texrecon.

    '--outlier_removal=gauss_damping' '--tone_mapping=none' '--data_term=gmi' '--no_intermediate_results' '-Seye_mask' '-Veye_mask/views_per_segment.json' 'extracted_highres_kfs/normalized_calibration.json' 'fused_point_cloud_normals_meshed_smoothed.ply' 'dense_reconstructions/HeadModel3D'

    opened by higurekon 0
  • error:ambiguous tbb

    error:ambiguous tbb

    when I was building the project, I met: 1:

    /home/will/soft/mvs-texturing/elibs/mapmap/mapmap/header/color.h:13:42: fatal error: oneapi/tbb/concurrent_vector.h: No such file or directory
     #include <oneapi/tbb/concurrent_vector.h>
    
    

    I have checked the directory:/usr/include and /usr/local/include, but never find "oneapi" library, even using $:locate oneapi. but I have tbb in /usr/include (It maybe come from "sudo apt-get install libtbb-dev libtbb2"). And I found there is no difference between my tbb files' name and oneapi/tbb files' name. so I tried to delete all "oneapi/" in error files.But here is new error: error:" tbb::feader" has not been declared. Then I compared and exactly found there are some difference between them. 2: So I installed the oneTBB from [https://github.com/oneapi-src/oneTBB]. And now there are three tbb in my environment:/usr/include/tbb(from libtbb),and /usr/local/include/tbb /usr/local/include/oneapi/tbb And then the lateset error appears:

    /home/will/soft/mvs-texturing/elibs/mapmap/mapmap/source/graph.impl.h:58:9 error:reference to 'tbb' is ambigous
    tbb::concurrent_vector<complet> * complet_out)
    

    this error also appears after I remove the libtbb(delete /usr/include/tbb). How can I resolve it? Thanks for a lot.

    opened by will-zzy 3
  • error: template specialization with C linkage

    error: template specialization with C linkage

    When I was building the project, I met such a mistake: /usr/include/c++/9/tuple:875:3: error: template specialization with C linkage 875 | template<> | ^~~~~~~~ In file included from /usr/include/features.h:461, from /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h:528, from /usr/include/c++/9/iostream:38, from file_system.cc:10: /usr/include/string.h:28:1: note: ‘extern "C"’ linkage started here 28 | __BEGIN_DECLS | ^~~~~~~~~~~~~ In file included from /usr/include/c++/9/bits/unique_ptr.h:37, from /usr/include/c++/9/bits/locale_conv.h:41, from /usr/include/c++/9/locale:43, from /usr/include/c++/9/iomanip:43, from ./strings.h:15, from /usr/include/string.h:432, from /usr/include/c++/9/cstring:42, from file_system.cc:15: /usr/include/c++/9/tuple:892:3: error: template with C linkage 892 | template<typename _T1, typename _T2> | ^~~~~~~~ In file included from /usr/include/features.h:461, from /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h:528, from /usr/include/c++/9/iostream:38, from file_system.cc:10: /usr/include/string.h:28:1: note: ‘extern "C"’ linkage started here 28 | __BEGIN_DECLS | ^~~~~~~~~~~~~ In file included from /usr/include/c++/9/bits/unique_ptr.h:37, from /usr/include/c++/9/bits/locale_conv.h:41, from /usr/include/c++/9/locale:43, from /usr/include/c++/9/iomanip:43, from ./strings.h:15, from /usr/include/string.h:432, from /usr/include/c++/9/cstring:42, from file_system.cc:15: /usr/include/c++/9/tuple:1271:3: error: template with C linkage 1271 | template<typename... _Elements> | ^~~~~~~~ In file included from /usr/include/features.h:461, from /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h:528, from /usr/include/c++/9/iostream:38, from file_system.cc:10: /usr/include/string.h:28:1: note: ‘extern "C"’ linkage started here 28 | __BEGIN_DECLS | ^~~~~~~~~~~~~ In file included from /usr/include/c++/9/bits/unique_ptr.h:37, from /usr/include/c++/9/bits/locale_conv.h:41, from /usr/include/c++/9/locale:43, from /usr/include/c++/9/iomanip:43, from ./strings.h:15, from /usr/include/string.h:432, from /usr/include/c++/9/cstring:42, from file_system.cc:15: /usr/include/c++/9/tuple:1284:3: error: template with C linkage 1284 | template<std::size_t __i, typename _Head, typename... _Tail> | ^~~~~~~~ In file included from /usr/include/features.h:461, from /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h:528, from /usr/include/c++/9/iostream:38, from file_system.cc:10: /usr/include/string.h:28:1: note: ‘extern "C"’ linkage started here 28 | __BEGIN_DECLS | ^~~~~~~~~~~~~ In file included from /usr/include/c++/9/bits/unique_ptr.h:37, from /usr/include/c++/9/bits/locale_conv.h:41, from /usr/include/c++/9/locale:43, from /usr/include/c++/9/iomanip:43, from ./strings.h:15, from /usr/include/string.h:432, from /usr/include/c++/9/cstring:42, from file_system.cc:15: /usr/include/c++/9/tuple:1291:3: error: template with C linkage 1291 | template<typename _Head, typename... _Tail> | ^~~~~~~~ In file included from /usr/include/features.h:461, from /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h:528, from /usr/include/c++/9/iostream:38, from file_system.cc:10: /usr/include/string.h:28:1: note: ‘extern "C"’ linkage started here 28 | __BEGIN_DECLS | ^~~~~~~~~~~~~ In file included from /usr/include/c++/9/bits/unique_ptr.h:37, from /usr/include/c++/9/bits/locale_conv.h:41, from /usr/include/c++/9/locale:43, from /usr/include/c++/9/iomanip:43, from ./strings.h:15, from /usr/include/string.h:432, from /usr/include/c++/9/cstring:42, from file_system.cc:15: /usr/include/c++/9/tuple:1300:3: error: template with C linkage 1300 | template<size_t __i> | ^~~~~~~~ In file included from /usr/include/features.h:461, from /usr/include/x86_64-linux-gnu/c++/9/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/c++config.h:528, from /usr/include/c++/9/iostream:38, from file_system.cc:10:

    opened by HuberyQ 0
Owner
Nils Moehrle
Nils Moehrle
Code for "Multi-View Multi-Person 3D Pose Estimation with Plane Sweep Stereo"

Multi-View Multi-Person 3D Pose Estimation with Plane Sweep Stereo This repository includes the source code for our CVPR 2021 paper on multi-view mult

Jiahao Lin 66 Jan 4, 2023
Python scripts form performing stereo depth estimation using the high res stereo model in PyTorch .

PyTorch-High-Res-Stereo-Depth-Estimation Python scripts form performing stereo depth estimation using the high res stereo model in PyTorch. Stereo dep

Ibai Gorordo 26 Nov 24, 2022
RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching

RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching This repository contains the source code for our paper: RAFT-Stereo: Multilevel

Princeton Vision & Learning Lab 328 Jan 9, 2023
Planar Prior Assisted PatchMatch Multi-View Stereo

ACMP [News] The code for ACMH is released!!! [News] The code for ACMM is released!!! About This repository contains the code for the paper Planar Prio

Qingshan Xu 127 Dec 31, 2022
Pytorch codes for "Self-supervised Multi-view Stereo via Effective Co-Segmentation and Data-Augmentation"

Self-Supervised-MVS This repository is the official PyTorch implementation of our AAAI 2021 paper: "Self-supervised Multi-view Stereo via Effective Co

hongbin_xu 127 Jan 4, 2023
Code release of paper "Deep Multi-View Stereo gone wild"

Deep MVS gone wild Pytorch implementation of "Deep MVS gone wild" (Paper | website) This repository provides the code to reproduce the experiments of

François Darmon 53 Dec 24, 2022
[ICCV 2021 Oral] NerfingMVS: Guided Optimization of Neural Radiance Fields for Indoor Multi-view Stereo

NerfingMVS Project Page | Paper | Video | Data NerfingMVS: Guided Optimization of Neural Radiance Fields for Indoor Multi-view Stereo Yi Wei, Shaohui

Yi Wei 369 Dec 24, 2022
COLMAP - Structure-from-Motion and Multi-View Stereo

COLMAP About COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface.

null 4.7k Jan 7, 2023
Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Optimization Algorithm,Immune Algorithm, Artificial Fish Swarm Algorithm, Differential Evolution and TSP(Traveling salesman)

scikit-opt Swarm Intelligence in Python (Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Algorithm, Immune Algorithm,A

郭飞 3.7k Jan 3, 2023
Blender add-on: Add to Cameras menu: View → Camera, View → Add Camera, Camera → View, Previous Camera, Next Camera

Blender add-on: Camera additions In 3D view, it adds these actions to the View|Cameras menu: View → Camera : set the current camera to the 3D view Vie

German Bauer 11 Feb 8, 2022
PanopticBEV - Bird's-Eye-View Panoptic Segmentation Using Monocular Frontal View Images

Bird's-Eye-View Panoptic Segmentation Using Monocular Frontal View Images This r

null 63 Dec 16, 2022
An image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testingAn image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testing

SVM Données Une base d’images contient 490 images pour l’apprentissage (400 voitures et 90 bateaux), et encore 21 images pour fait des tests. Prétrait

Achraf Rahouti 3 Nov 30, 2021
Stereo Radiance Fields (SRF): Learning View Synthesis for Sparse Views of Novel Scenes

Stereo Radiance Fields (SRF): Learning View Synthesis for Sparse Views of Novel Scenes

null 111 Dec 29, 2022
CLEAR algorithm for multi-view data association

CLEAR: Consistent Lifting, Embedding, and Alignment Rectification Algorithm The Matlab, Python, and C++ implementation of the CLEAR algorithm, as desc

MIT Aerospace Controls Laboratory 30 Jan 2, 2023
Honours project, on creating a depth estimation map from two stereo images of featureless regions

image-processing This module generates depth maps for shape-blocked-out images Install If working with anaconda, then from the root directory: conda e

null 2 Oct 17, 2022
MatryODShka: Real-time 6DoF Video View Synthesis using Multi-Sphere Images

Main repo for ECCV 2020 paper MatryODShka: Real-time 6DoF Video View Synthesis using Multi-Sphere Images. visual.cs.brown.edu/matryodshka

Brown University Visual Computing Group 75 Dec 13, 2022
An implementation of "Optimal Textures: Fast and Robust Texture Synthesis and Style Transfer through Optimal Transport"

Optex An implementation of Optimal Textures: Fast and Robust Texture Synthesis and Style Transfer through Optimal Transport for TU Delft CS4240. You c

Hans Brouwer 33 Jan 5, 2023
"3D Human Texture Estimation from a Single Image with Transformers", ICCV 2021

Texformer: 3D Human Texture Estimation from a Single Image with Transformers This is the official implementation of "3D Human Texture Estimation from

XiangyuXu 193 Dec 5, 2022
[ICCV'2021] Image Inpainting via Conditional Texture and Structure Dual Generation

[ICCV'2021] Image Inpainting via Conditional Texture and Structure Dual Generation

Xiefan Guo 122 Dec 11, 2022