Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
pmoulon committed Jul 19, 2014
2 parents aae11f2 + 4ff7a22 commit c4ffda0
Show file tree
Hide file tree
Showing 477 changed files with 34,753 additions and 30,506 deletions.
1 change: 1 addition & 0 deletions .coveralls.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
service_name: travis-ci
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
[submodule "src/dependencies/glfw"]
path = src/dependencies/glfw
url = https://github.com/elmindreda/glfw.git
[submodule "src/dependencies/OpenExif"]
path = src/dependencies/OpenExif
url = https://github.com/openMVG-thirdparty/OpenExif.git
[submodule "src/dependencies/osi_clp"]
path = src/dependencies/osi_clp
url = https://github.com/openMVG-thirdparty/osi_clp.git
21 changes: 20 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,21 @@ compiler:
- clang

before_install:
- sudo apt-get update -qq
- export NUM_CPU="`grep processor /proc/cpuinfo | wc -l`"; echo $NUM_CPU
- sudo apt-get install lcov
- gem install coveralls-lcov

install: sudo apt-get install cmake libpng-dev libjpeg8-dev libxxf86vm1 libxxf86vm1 libxxf86vm-dev x11proto-xf86vidmode-dev libxrandr-dev

before_script:
- cd ..
- mkdir build
- cd build
- cmake -DCMAKE_BUILD_TYPE=release -DOpenMVG_BUILD_TESTS=ON -DOpenMVG_BUILD_EXAMPLES=ON . ../openMVG/src
# Classic release build
#- cmake -DCMAKE_BUILD_TYPE=release -DOpenMVG_BUILD_TESTS=ON -DOpenMVG_BUILD_EXAMPLES=ON . ../openMVG/src
# Build for code coverage evaluation
- cmake -DOpenMVG_BUILD_COVERAGE=ON -DOpenMVG_BUILD_TESTS=ON -DOpenMVG_BUILD_EXAMPLES=ON . ../openMVG/src

script:
- make -j 4
Expand All @@ -28,3 +34,16 @@ branches:
only:
- develop

after_success:
- cd ../openMVG
# If GCC: compute code coverage and export it to coveralls
- if [ "$CC" = "gcc" ];
then
lcov --directory ../build/openMVG --base-directory=./src --capture --output-file=coverage.info;
lcov --remove coverage.info '/usr*' -o coverage.info;
lcov --remove coverage.info '*_test.cpp*' -o coverage.info;
lcov --remove coverage.info '*/third_party/*' -o coverage.info;
lcov --remove coverage.info '*/src/dependencies/*' -o coverage.info;
coveralls-lcov coverage.info;
fi

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Building

See [BUILD](https://github.com/openMVG/openMVG/raw/master/BUILD) text file

Continuous integration [![Build Status](https://travis-ci.org/openMVG/openMVG.png?branch=develop)](https://travis-ci.org/openMVG/openMVG):
Continuous integration [![Build Status](https://travis-ci.org/openMVG/openMVG.png?branch=develop)](https://travis-ci.org/openMVG/openMVG) [![Coverage Status](https://coveralls.io/repos/openMVG/openMVG/badge.png?branch=develop)](https://coveralls.io/r/openMVG/openMVG?branch=develop):
- develop branch: BUILD + UNIT TESTING
- linux 64 bits (GCC + clang).

Expand Down
13 changes: 13 additions & 0 deletions docs/sphinx/rst/_themes/layout.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{% extends "!layout.html" %}

{% block footer %}
{{ super() }}
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-49769510-1', 'ceres-solver.org');
ga('send', 'pageview');
</script>
{% endblock %}
98 changes: 98 additions & 0 deletions docs/sphinx/rst/bibliography.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
.. _sec-bibliography:

============
Bibliography
============

.. [Kneip] **A Novel Parametrization of the P3P-Problem for a Direct Computation of Absolute Camera Position and Orientation.**
Kneip, L.; Scaramuzza, D. ; Siegwart, R.
CVPR 2011
.. [EPnP] **EPnP: An Accurate O(n) Solution to the PnP Problem.**
V. Lepetit and F. Moreno-Noguer and P. Fua, IJCV 2009. vol. 81, no. 2.
.. [HZ] **Multiple view geometry in computer vision.**
Hartley, Richard, and Andrew Zisserman.
Vol. 2. Cambridge, 2000.
.. [Stewenius] **Recent Developments on Direct Relative Orientation.**
H. Stewenius, C. Engels and D. Nister.
ISPRS 2006
.. [Nister] **An Efficient Solution to the Five-Point Relative Pose.**
D. Nister
PAMI 2004
.. [Longuet] **A computer algorithm for reconstructing a scene from two projections.**
Longuet-Higgins, H. C.
Readings in Computer Vision: Issues, Problems, Principles, and Paradigms, MA Fischler and O. Firschein, eds (1987): 61-62.
.. [Chatterjee] **Efficient and Robust Large-Scale Rotation Averaging.**
Avishek Chatterjee and Venu Madhav Govindu, ICCV 2013.
.. [Martinec] **Robust Multiview Reconstruction.**
Daniel Martinec, 2008.
.. [ACSfM] **Adaptive structure from motion with a contrario model estimation.**
Pierre Moulon, Pascal Monasse, and Renaud Marlet.
In ACCV, 2012.
.. [GlobalACSfM] **Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion.**
Pierre Moulon, Pascal Monasse and Renaud Marlet.
In ICCV, 2013.
.. [TracksCVMP12] **Unordered feature tracking made fast and easy**
Pierre Moulon and Pascal Monasse, CVMP 2012.
.. [KVLD12] **Virtual Line Descriptor and Semi-Local Graph Matching Method for Reliable Feature Correspondence.**
Zhe LIU and Renaud MARLET, BMVC 2012.
.. [Moulon13] **Global Multiple-View Color Consistency.**
Pierre Moulon, Bruno Duisit and Pascal Monasse, CVMP 2013.
.. [PMVS] **Accurate, dense, and robust multi-view stereopsis.**
Yasutaka Furukawa and Jean Ponce.
IEEE Trans. on Pattern Analysis and Machine Intelligence, 32(8):1362-1376, 2010.
.. [CMPMVS] **Multi-View Reconstruction Preserving Weakly-Supported Surfaces.**
M. Jancosek, T. Pajdla, CVPR 2011.
.. [FLANN] **Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration.**
Muja, Marius, and David G. Lowe. VISAPP (1). 2009.
.. [LinfNorm] **L infinity Minimization in Geometric Reconstruction Problems.**
Richard I. Hartley, Frederik Schaffalitzky. CVPR 2004.
.. [LinfNormGeneric] **Multiple-View Geometry under the L infty Norm; Multiple View Geometry and the L infty -norm.**
Fredrik Kahl, Richard Hartley, 2008; and Fredrik Kahl, ICCV 2005.
.. [Arnak] **Robust estimation for an inverse problem arising in multiview geometry.**
Arnak S. Dalalyan, Renaud Keriven. In J. Math. Imaging Vision, 2012.
.. [RANSAC] **Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography.**
Fischler, Martin A., and Robert C. Bolles.
Communications of the ACM 24.6 (1981): 381-395.
.. [ACRANSAC] **Automatic homographic registration of a pair of images, with a contrario elimination of outliers.**
Moisan, Lionel, Pierre Moulon, and Pascal Monasse.
Image Processing On Line 10 (2012)
.. [VLFEAT] **VLFeat: An Open and Portable Library of Computer Vision Algorithms**
A. Vedaldi and B. Fulkerson, 2008. http://www.vlfeat.org/, http://www.vlfeat.org/overview/sift.html.
.. [OlssonDuality] **Outlier Removal Using Duality.**
Carl Olsson, Anders Eriksson and Richard Hartley, Richard. CVPR 2010.
.. [Ceres] **Ceres Solver**
Sameer Agarwal and Keir Mierle and Others, http://ceres-solver.org
.. [CppUnitLite] **CppUnitLite** http://c2.com/cgi/wiki?CppUnitLite
.. [Eigen] **Eigen** http://eigen.tuxfamily.org/index.php?title=Main_Page
.. [LEMON] **Lemon** http://lemon.cs.elte.hu/trac/lemon
.. [STLplus] **STLplus** http://stlplus.sourceforge.net/
.. [LP] **Linear Programming** http://en.wikipedia.org/wiki/Linear_programming
25 changes: 16 additions & 9 deletions docs/sphinx/rst/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
import sys
import os

# on_rtd is whether we are on readthedocs.org
import os
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
Expand Down Expand Up @@ -59,9 +63,9 @@
# built documents.
#
# The short X.Y version.
version = '0.5'
version = '0.7'
# The full version, including alpha/beta/rc tags.
release = '0.5'
release = '0.7'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down Expand Up @@ -107,7 +111,7 @@

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'armstrong'
html_theme = 'sphinx_rtd_theme'

# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
Expand All @@ -116,10 +120,13 @@

# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ["_themes",]
if not on_rtd: # only import and set the theme if we're building docs locally
html_theme = 'armstrong'


# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
html_title = "openMVG library"

# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
Expand Down Expand Up @@ -159,19 +166,19 @@
#html_additional_pages = {}

# If false, no module index is generated.
#html_domain_indices = True
html_domain_indices = True

# If false, no index is generated.
#html_use_index = True
html_use_index = True

# If true, the index is split into individual pages for each letter.
#html_split_index = False
html_split_index = False

# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
html_show_sourcelink = True

# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
html_show_sphinx = True

# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
Expand Down
57 changes: 29 additions & 28 deletions docs/sphinx/rst/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,44 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
======================
openMVG documentation!
===================================
======================

.. toctree::
:maxdepth: 1
:hidden:

openMVG/openMVG.rst
openMVG_Samples/openMVG_Samples.rst
software/softwares.rst
patented/patented.rst
dependencies/external_libs.rst
third_party/third_party.rst
FAQ/FAQ.rst
bibliography


Introduction
==================
--------------

OpenMVG (Multiple View Geometry) is a library for computer-vision scientists and especially
targeted to the Multiple View Geometry community. It is designed to provide an easy access to the
classical problem solvers in Multiple View Geometry and solve them accurately.

############################

Why another library
############################
The openMVG credo is: "Keep it simple, keep it maintainable". OpenMVG targets readable code
that is easy to use and modify by the community.
--------------

The openMVG credo is **"Keep it simple, keep it maintainable".**
OpenMVG targets readable code that is easy to use and modify by the community.

All the features and modules are unit tested. This test driven development ensures that the code
works as it should and enables more consistent repeatability. Furthermore, it makes it easier for the
user to understand and learn the given features.

############################
openMVG library overview
############################
-------------------------

The openMVG library is cut in various modules:

Expand All @@ -44,44 +60,29 @@ The openMVG library is cut in various modules:
* SfM: Structure from Motion,
* color harmonization of photo collection.

Contents:

.. toctree::
:maxdepth: 1

openMVG/openMVG.rst
openMVG_Samples/openMVG_Samples.rst
software/softwares.rst
patented/patented.rst
dependencies/external_libs.rst
third_party/third_party.rst
FAQ/FAQ.rst


############################
Acknowledgements
############################
-----------------
openMVG authors would like to thank:

- libmv authors for providing an inspiring base to design the openMVG library.
- Mikros Image and LIGM-Imagine laboratory for support and authorization to make this library as an open-source project.

############################
License
############################
--------------
openMVG library is release under the MPL2 (Mozilla Public License 2.0). It integrates some sub-part
under the MIT (Massachusetts Institute of Technology) and the BSD (Berkeley Software Distribution) license.
Please refer to the license file contained in the source for complete license description.

############################

Dependencies
############################
--------------
OpenMVG come as a standalone distribution, you don't need to install libraries to make it compiles
and run.
On Linux the library will use if available the local png, zlib and jpeg libraries.

Indices and tables
==================
----------------------

* :ref:`genindex`
* :ref:`modindex`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ When subtle changes are observed on the cost function or on the norm of the para
openMVG bundle_adjustment framework
=====================================

OpenMVG relies on the [Ceres-solver]_ Google library to perform the Bundle Adjustment.
OpenMVG relies on the [Ceres]_ Google library to perform the Bundle Adjustment.
In order to ease its usage openMVG provides:

* data container to setup the problem,
Expand Down Expand Up @@ -57,4 +57,3 @@ Two containers are defined in order to refine :
* The number intrinsic parameters ``NIntrinsicParam`` (i.e. 1): [focal]
* ``template<unsigned char NExternalParam = 6,unsigned char NIntrinsicParam = 1> class BA_Problem_data_camMotionAndIntrinsic``

.. [Ceres-solver] Sameer Agarwal and Keir Mierle. Ceres Solver: Tutorial & Reference. Google Inc.
15 changes: 1 addition & 14 deletions docs/sphinx/rst/openMVG/linear_programming/linfinityCV.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,7 @@ Rather than considering quadratic constraints that require SOCP (Second Orde Con
- the simple one [LinfNorm]_,
- the robust based on slack variables [OlssonDuality]_.

- Registration of relative translations to compute global translations [ICCV13]_,
- Registration of relative translations to compute global translations [GlobalACSfM]_,

- using triplets of translations.



.. [LinfNorm] L infinity Minimization in Geometric Reconstruction Problems. Richard I. Hartley, Frederik Schaffalitzky. CVPR 2004.
.. [LinfNormGeneric] "Multiple-View Geometry under the L infty Norm." Authors: Fredrik Kahl, Richard Hartley. 2008. and "Multiple View Geometry and the L infty -norm". Fredrik Kahl. ICCV 2005.
.. [Arnak] Robust estimation for an inverse problem arising in multiview geometry. Arnak S. Dalalyan, Renaud Keriven. In J. Math. Imaging Vision, 2012.
.. [OlssonDuality] Outlier Removal Using Duality. Carl Olsson, Anders Eriksson and Richard Hartley, Richard. CVPR 2010.
.. [ICCV13] Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion. Pierre Moulon, Pascal Monasse and Renaud Marlet. ICCV 2013.
3 changes: 0 additions & 3 deletions docs/sphinx/rst/openMVG/linear_programming/lp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,3 @@ Optimization of this upper bound parameter can be done by iterating over all the
} while (k < maxIteration && gammaUp - gammaLow > eps);
}



.. [LP] http://en.wikipedia.org/wiki/Linear_programming
Binary file added docs/sphinx/rst/openMVG/matching/KVLD_matches.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit c4ffda0

Please sign in to comment.