-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
2019.2 release notes
Changes compared to 2019.1
100+ models added, some corrections
Sort keypoints by size to guarantee best points are kept. Reordering keypoints also helps preventing grid-filtering from creating a non-uniform distribution within cells when input keypoints are sorted by spatial coordinates. Improve AKAZE grid filtering
Introduce an automatic prefix system for matches files when using "range" command-line parameters. The goal of this PR is to ensure a file created for one iteration does not get overwritten in another one.
When generating matches files per image, we rely on minimal viewId of each image pair to create the filename (minViewId.txt). By iterating over sorted viewIds which only match with greater viewIds, this guarantees that files are written only once. However, the latter condition can be broken in the current pipeline when the file generated by the ImageMatching step declares for one view [B] a match with a view [A] that has an inferior viewId. This occurs when [A] has reached max view matches; the [A,B] view match is moved to [B]. If [A] and [B] are handled in two distinct iterations (1) and (2), "A.txt" will be first written in (1) and overwritten in (2). All matches from (1) are then lost.
By automatically prefixing matches files based on "range" parameters and generating only one matches file per execution by default, this guarantees uniqueness of generated files. This also changes the loading of matches files, which will now consider all "*matches.txt" files in the given folder. This behavior is retro-compatible with previously generated files. Features list
FeatureMatching: Generate a prefix for matches files based on range parameter FeatureMatching: Generate only one matches file per execution by default IO: Load all '*.matches.txt" file in given folder and accumulate matches IO: Update IndMatch_IO test IO: Remove duplicated input folders when loading matches/features
SfmData: manage features/matches folders internally (relative paths, duplicates removal...)
Implementation remarks
Prefix is created by dividing rangeStart/rangeSize which reflects the iteration number when working by chunks. This is preferred to random naming for debug purposes.
Based on QtAliceVision plugin, provide a viewer for extracted feature points within the 2D Image Viewer. Provides 3 visualization modes: Points, (scaled) Squares, Orientated Squares FeatureExtraction nodes can be double clicked to drive which node is used for the FeaturesViewer Component is loaded dynamically to evaluate QtAliceVision plugin availability - an error is displayed if the plugin fails to load. A picker with a predefined palette is available to select feature points colors
This PR adds the possibility to export a dense point cloud as a SfMData file (.abc, .json, ...). Features list
Use dense point cloud instead of visibilities / mesh binary files in Meshing software Add an option to export the raw (before cut and filtering) dense point cloud in Meshing software Improve SfM colorization performances Rename ComputeSfMColor to exportColoredPointCloud
3 similarity volumes are now exported with debug option exportIntermediateResults:
similarity volume before reduction
similarity volume after reduction
similarity volume after filtering
Fix alicevision/meshroom#409 A bug on depth map computation has been introduced in AliceVision-2.1.0 release (corresponding to Meshroom-2019.1). This problem only happens when badly connected cameras have been reconstructed in the SfM. Implementation remarks
The function "refinerc" do not deal with files anymore. The file manipulation has been moved to a more high-level function. Unfortunately, one early-exit condition has not been updated during this refactoring. This PR fixes this mistake.
[X] Contribution to multiple textures per image. It limits the number of images reloads from files. Around 3x speedup on a dataset of 250 images. [X] Texture padding speedup: Create the padding with only 2 loops over the texture instead of 2*padding loops. So the performance cost does not depend on the size of the padding anymore. 28% speedup on a small dataset of 12 images. Of course, the speedup be smaller on large datasets as the largest part of the processing will be the image contributions.
Largely improve the texturing quality by using multi-band blending technique.
Split each input camera into frequency bands, by calculating its laplacian pyramid. For each output texture file, it computes the texture fusion per frequency bands with different number of contributions. The color averaging is now weighted by a score defined by the triangle reprojection area. The textures per frequency bands are then combined to create the final output texture files. Features list
Split an image in frequency bands and reconstitute the image from its frequency bands Add triangles contributions to a specific frequency band
Improve padding performance (2 image visit instead of 2*paddingSize)
Implementation remarks
Add colorspace option to ImageCache Improve colorspace option of writeImage (allow change of input colorspace)
Fix infinite loop when charts are larger than final texture size. Fix #395 Features list
downscale charts to fit in texture
add sanity checks to avoid infinite loop and detect wrong configurations
Implementation remarks
Apply downscale factor to fit larger charts into the texture, and use it when filling atlases and computing final UV textures
Advanced parameter : boolean to choose whether or not to correct images exposure values (EV) during the Texturing. See alicevision/AliceVision#656.
Add an option to choose the internal colorspace used in texturing for color fusion: sRGB (default), LAB or XYZ. This has no impact on the colorspace used in the output texture files. Features list
Convert images from/to sRGB, LAB and XYZ colorspaces New class to handle image processing, based on OpenImageIO
Compute texture colors in a chosen colorspace
Implementation remarks
Reorganization of image processing classes. Thus, the imageIO class handle only the reading and writing part, and the new class imageAlgo handle the image processing part. Both are based on OpenImageIO for efficiency.
resolves compilation error
Read / Write EXR and TIFF with Linear colorspace Convert JPEG and PNG to Linear colorspace in memory Write JPEG and PNG with sRGB colorspace
This PR fixes management of intrinsics related connections in the local bundle adjustment graph which could lead to removal of wrong edges and potential corruption of the graph. This could end up with the SfM going in an infinite loop and/or undefined behavior. Features list
Update internal map _intrinsicEdgesId when a view is removed from the graph Don't duplicate connections between new poses when adding them to the graph
Add LocalBundleAdjustmentGraph::countEdges/countNodes methods
Implementation details
Internal data structure containing edge IDs by intrinsic (_intrinsicEdgesId) is now properly updated to match changes in the underlying lemon graph when a view is removed from it. This avoids removing wrong edges (leading to potential corruption of the graph) when locking an intrinsics.
Add Robertson HDR algorithm Add HDR command line Add Debevec HDR algorithm Add Grossberg HDR algorithm Add parameters to control target exposure and extreme radiance values in HDR image
Related to alicevision/AliceVision#661 Enables the display of vertex-colored meshes in the 3D Viewer, by using a PerVertexColorMaterial if vertex color data is available on a mesh without textures.
Minor bugfixes related to status file monitoring and log display.
Graph: update ChunkMonitor after "saveAs" to monitor correct filepaths when cache folder changes TextFileViewer: wait for previous request to finish before sending a new one to prevent freezes on slow filesystems
This PR contains small bugfixes regarding ChunkMonitor + updates issues in the 3D viewer. ChunksMonitor
Simplify NodeChunk status monitoring by storing status file last modification time on the NodeChunk itself and avoid stopping/restarting the thread each time the list of NodeChunks in the graph changes. Also add "Refresh Node Status" menu item to force the update of nodes status manually. Viewer3D
Switch to RenderSettings.Always to avoid update issues since Qt 5.13 when resizing the window or toggling visibilities of 3D objects.
This PR fixes a problem when using a custom pipeline in meshroom_photogrammetry: the views and the intrinsics that might have been read before from the a json/sfm file were not added to the graph, thus leading to failure when calling cameraInit in AliceVision.
[11:25:25.780397][error] Program need -i or --imageFolder option