diff --git a/CHANGES.md b/CHANGES.md index 2e7cb3a958..280838f9c5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,7 +3,59 @@ For algorithmic changes related to the photogrammetric pipeline, please refer to [AliceVision changelog](https://github.com/alicevision/AliceVision/blob/develop/CHANGES.md). -## Release 2018.1.0 - +## Release 2019.1.0 (2019.02.27) + +Based on [AliceVision 2.1.0](https://github.com/alicevision/AliceVision/tree/v2.1.0). + +Release Notes Summary: + - 3D Viewer: Load and compare multiple assets with cache mechanism and improved navigation + - Display camera intrinsic information extracted from metadata analysis + - Easier access to a more complete sensor database with a more reliable camera model matching algorithm. + - Attribute Editor: Hide advanced/experimental parameters by default to improve readability and simplify access to the most useful, high-level settings. Advanced users can still enable them to have full access to internal thresholds. + - Graph Editor: Improved set of contextual tools with `duplicate`/`remove`/`delete data` actions with `From Here` option. + - Nodes: Homogenization of inputs / outputs parameters + - Meshing: Better, faster and configurable estimation of the space to reconstruct based on the sparse point cloud (new option `estimateSpaceFromSfM`). Favors high-density areas and helps removing badly defined ones. + - Draft Meshing (no CUDA required): the result of the sparse reconstruction can now be directly meshed to get a 3D model preview without computing the depth maps. + - MeshFiltering: Now keeps all reconstructed parts by default. + - StructureFromMotion: Add support for rig of cameras + - Support for reconstruction with projected light patterns and texturing with another set of images + +Full Release Notes: + - Viewer3D: New Trackball camera manipulator for improved navigation in the scene + - Viewer3D: New library system to load multiple 3D objects of the same type simultaneously, simplifying results comparisons + - Viewer3D: Add media loading overlay with BusyIndicator + - Viewer3D: Points and cameras size are now configurable via dedicated sliders. + - CameraInit: Add option to lock specific cameras intrinsics (if you have high-quality internal calibration information) + - StructureFromMotion: Triangulate points if the input scene contains valid camera poses and intrinsics without landmarks + - PrepareDenseScene: New `imagesFolders` option to override input images. This enables to use images with light patterns projected for SfM and MVS parts and do the Texturing with another set of images. + - NodeLog: Cross-platform monospace display + - Remove `CameraConnection` and `ExportUndistortedImages` nodes + - Multi-machine parallelization of `PrepareDenseScene` + - Meshing: Add option `estimateSpaceFromSfM` and observation angles check to better estimate the bounding box of the reconstruction and avoid useless reconstruction of the environment + - Console: Filter non silenced, inoffensive warnings from QML + log Qt messages via Python logging + - Command line (meshroom_photogrammetry): Add --pipeline parameter to use a pre-configured pipeline graph + - Command line (meshroom_photogrammetry): Add possibility to provide pre-calibrated intrinsics. + - Command line (meshroom_compute): Provide `meshroom_compute` executable in packaged release. + - Image Gallery: Display Camera Intrinsics initialization status with detailed explanation, edit Sensor Database dialog, advanced menu to display view UIDs + - StructureFromMotion: Expose advanced estimator parameters + - FeatureMatching: Expose advanced estimator parameters + - DepthMap: New option `exportIntermediateResults` disabled by default, so less data storage by default than before. + - DepthMap: Use multiple GPUs by default if available and add `nbGPUs` param to limit it + - Meshing: Add option `addLandmarksToTheDensePointCloud` + - SfMTransform: New option to align on one specific camera + - Graph Editor: Consistent read-only mode when computing, that can be unlocked in advanced settings + - Graph Editor: Improved Node Menu: "duplicate"/"remove"/"delete data" with "From Here" accessible on the same entry via an additional button + - Graph Editor: Confirmation popup before deleting node data + - Graph Editor: Add "Clear Pending Status" action at Graph level + - Graph Editor: Solo media in 3D viewer with Ctrl + double click on node/attribute + - Param Editor: Fix several bugs related to attributes edition + - Scene Compatibility: Improves detection of deeper compatibility issues, by adding an additional recursive (taking List/GroupAttributes children into account) exact description matching test when de-serializing a Node. + +See [AliceVision 2.1.0 Release Notes](https://github.com/alicevision/AliceVision/blob/v2.1.0/CHANGES.md) +for more details about algorithmic changes. + + +## Release 2018.1.0 (2018.08.09) + First release of Meshroom. - Based on [AliceVision 2.0.0](https://github.com/alicevision/AliceVision/tree/v2.0.0). \ No newline at end of file + Based on [AliceVision 2.0.0](https://github.com/alicevision/AliceVision/tree/v2.0.0). diff --git a/Dockerfile b/Dockerfile index 093b51580a..93fb664b4b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ LABEL maintainer="AliceVision Team alicevision-team@googlegroups.com" ENV MESHROOM_DEV=/opt/Meshroom \ MESHROOM_BUILD=/tmp/Meshroom_build \ MESHROOM_BUNDLE=/opt/Meshroom_bundle \ - QT_DIR=/opt/qt/5.11.0/gcc_64 \ + QT_DIR=/opt/qt/5.11.1/gcc_64 \ PATH="${PATH}:${MESHROOM_BUNDLE}" COPY . "${MESHROOM_DEV}" @@ -40,13 +40,22 @@ RUN yum install -y centos-release-scl RUN yum install -y rh-python36 # Install Meshroom requirements and freeze bundle -RUN source scl_source enable rh-python36 && cd "${MESHROOM_DEV}" && pip install -r dev_requirements.txt -r requirements.txt && python setup.py install_exe -d "${MESHROOM_BUNDLE}" +RUN source scl_source enable rh-python36 && cd "${MESHROOM_DEV}" && pip install -r dev_requirements.txt -r requirements.txt && python setup.py install_exe -d "${MESHROOM_BUNDLE}" && \ + find ${MESHROOM_BUNDLE} -name "*Qt5Web*" -delete && \ + find ${MESHROOM_BUNDLE} -name "*Qt5Designer*" -delete && \ + rm ${MESHROOM_BUNDLE}/lib/PySide2/libclang.so* && \ + rm -rf ${MESHROOM_BUNDLE}/lib/PySide2/typesystems/ ${MESHROOM_BUNDLE}/lib/PySide2/examples/ ${MESHROOM_BUNDLE}/lib/PySide2/include/ ${MESHROOM_BUNDLE}/lib/PySide2/Qt/translations/ ${MESHROOM_BUNDLE}/lib/PySide2/Qt/resources/ && \ + rm ${MESHROOM_BUNDLE}/lib/PySide2/libQt5* && \ + rm ${MESHROOM_BUNDLE}/lib/PySide2/QtWeb* && \ + rm ${MESHROOM_BUNDLE}/lib/PySide2/libicu* && \ + rm ${MESHROOM_BUNDLE}/lib/PySide2/pyside2-lupdate ${MESHROOM_BUNDLE}/lib/PySide2/pyside2-rcc ${MESHROOM_BUNDLE}/lib/PySide2/shiboken2 # Install Qt (to build plugins) WORKDIR /tmp/qt -RUN curl -LO http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run -RUN chmod u+x qt-unified-linux-x64-online.run -RUN ./qt-unified-linux-x64-online.run --verbose --platform minimal --script "${MESHROOM_DEV}/docker/qt-installer-noninteractive.qs" +RUN curl -LO http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run && \ + chmod u+x qt-unified-linux-x64-online.run && \ + ./qt-unified-linux-x64-online.run --verbose --platform minimal --script "${MESHROOM_DEV}/docker/qt-installer-noninteractive.qs" && \ + rm ./qt-unified-linux-x64-online.run WORKDIR ${MESHROOM_BUILD} # Temporary workaround for qmlAlembic build @@ -54,7 +63,9 @@ RUN rm -rf "${AV_INSTALL}/lib" && ln -s "${AV_INSTALL}/lib64" "${AV_INSTALL}/lib # Build Meshroom plugins RUN cmake "${MESHROOM_DEV}" -DALICEVISION_ROOT="${AV_INSTALL}" -DQT_DIR="${QT_DIR}" -DCMAKE_INSTALL_PREFIX="${MESHROOM_BUNDLE}/qtPlugins" -RUN make -j8 +RUN make -j8 && cd /tmp && rm -rf ${MESHROOM_BUILD} RUN mv "${AV_BUNDLE}" "${MESHROOM_BUNDLE}/aliceVision" +RUN rm -rf ${MESHROOM_BUNDLE}/aliceVision/share/doc ${MESHROOM_BUNDLE}/aliceVision/share/eigen3 ${MESHROOM_BUNDLE}/aliceVision/share/fonts ${MESHROOM_BUNDLE}/aliceVision/share/lemon ${MESHROOM_BUNDLE}/aliceVision/share/libraw ${MESHROOM_BUNDLE}/aliceVision/share/man/ aliceVision/share/pkgconfig + diff --git a/docker/qt-installer-noninteractive.qs b/docker/qt-installer-noninteractive.qs index 169631d4df..18224cd17a 100644 --- a/docker/qt-installer-noninteractive.qs +++ b/docker/qt-installer-noninteractive.qs @@ -46,14 +46,14 @@ Controller.prototype.ComponentSelectionPageCallback = function() { widget.deselectAll(); // widget.selectComponent("qt"); - // widget.selectComponent("qt.qt5.5110"); - widget.selectComponent("qt.qt5.5110.gcc_64"); - // widget.selectComponent("qt.qt5.5110.qtscript"); - // widget.selectComponent("qt.qt5.5110.qtscript.gcc_64"); - // widget.selectComponent("qt.qt5.5110.qtwebengine"); - // widget.selectComponent("qt.qt5.5110.qtwebengine.gcc_64"); - // widget.selectComponent("qt.qt5.5110.qtwebglplugin"); - // widget.selectComponent("qt.qt5.5110.qtwebglplugin.gcc_64"); + // widget.selectComponent("qt.qt5.5111"); + widget.selectComponent("qt.qt5.5111.gcc_64"); + // widget.selectComponent("qt.qt5.5111.qtscript"); + // widget.selectComponent("qt.qt5.5111.qtscript.gcc_64"); + // widget.selectComponent("qt.qt5.5111.qtwebengine"); + // widget.selectComponent("qt.qt5.5111.qtwebengine.gcc_64"); + // widget.selectComponent("qt.qt5.5111.qtwebglplugin"); + // widget.selectComponent("qt.qt5.5111.qtwebglplugin.gcc_64"); // widget.selectComponent("qt.tools"); gui.clickButton(buttons.NextButton); diff --git a/meshroom/__init__.py b/meshroom/__init__.py index 0c00415dbe..8ee42b3cf4 100644 --- a/meshroom/__init__.py +++ b/meshroom/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2018.1.0" +__version__ = "2019.1.0" import os # Allow override from env variable diff --git a/meshroom/multiview.py b/meshroom/multiview.py index 307a4f1af1..8bb7646f38 100644 --- a/meshroom/multiview.py +++ b/meshroom/multiview.py @@ -1,5 +1,5 @@ # Multiview pipeline version -__version__ = "1.0" +__version__ = "2.1" import os