Skip to content

TeleSculptor v1.1.0

Compare
Choose a tag to compare
@mleotta mleotta released this 17 Jun 15:12
· 413 commits to release since this release
4b6489c

TeleSculptor v1.1.0 Release Notes

This is a minor release of TeleSculptor that provides both new functionality
and fixes over the previous v1.0.0 release. The most prominant features of
this new release are improved robustness in struture from motion, an option
to use ground control points to georegister a solution, a logger panel to
show log messages from the algorithms, improved spatial distribution of
tracked features, improved video loading, and a "Run End-to-End" compute
option. Many more improvements have also been made, and these are documented
in detail below.

TeleSculptor v1.1.0 builds against KWIVER v1.5.0 and Fletch v1.4.0.

Updates since v1.0.0

Configuration

  • Default configuration files for algorithms have been moved into KWIVER.
    TeleSculptor GUI-specific configuration files remain here. TeleSculptor
    will now search for configuration files in both TeleSculptor and KWIVER
    configuration directories.

TeleSculptor Application

  • Updated the code to work with API changes to kwiver::vital::geo_point.

  • Added a logger panel to show log messages.

  • Added logging to a text file in the project folder.

  • Added an option to the Ground Control Points panel to apply the GCP
    constraints to correct for georegistration. The apply button estimates
    a 3D similarity transform that best aligns the GCPs with their specified
    geodetic locations (latitude, longitude, elevation). The estimated
    transform is then applied to all the data to georegister.

  • When selecting a subset of video frames in the track features tool the
    algorithm now considers modifying each selection slightly to give
    priority to picking nearby frames which have camera metadata.

  • Changed feature tracking configuration to use non-maximum suppression to
    achieve a better spatial distribution of features when contrast is unevenly
    distributed across the image.

  • Switched from homography to fundamental matrix as the default geometric
    filter in feature matching. The fundamental matrix supports more general
    scenes and does not require a planar scene or small motion assumption.

  • Improved speed of metadata access and loading.

  • Estimate focal length during structure from motion. This option was
    previously disabled by default.

  • TeleSculptor now loads all video frames and metadata by default instead
    of sampling every 10th frame as in the past. This is feasible because
    the feature tracking now down samples frames to a reasonable amount instead.

  • Added support for bundle adjustment callbacks that do not update the GUI
    state. This allows the initializer tool to support early termination
    without making it run slower.

  • Added new option "ignore_metadata" to force the camera estimation
    algorithms to ignore the KLV metadata. This is useful if the metadata is
    known to be incorrect.

  • Added a new option to keep the origin of the geospatial coordinate system
    fixed, rather than re-estimate it when the data changes.

  • Added an option to write out the fused mesh as OBJ. Currently this option
    supports only the mesh and does not write color per vertex.

  • The ruler tool now supports constrained measurements on the vertical (Z)
    axis by holding the "z" key or in the horizontal (X-Y) plane by holding
    either the "x" or "y" keys.

  • The ruler tool now behaves like a ruler with a fixed tick unit distance.
    Dragging the ruler progressively increases the number of ruler ticks.

  • The user can set the ruler tick distance and color via a popup menu next to
    the ruler measurement button.

  • Improve responsiveness and information in progress bar for Compute Depth
    tool.

  • Improved the information in the progress bar for Initialize Cameras and
    Landmarks tool.

  • TeleSculptor now uses image masks in the depth estimation tools if image
    masks have been loaded. Masks indicate which pixels to ignore in depth
    estimation.

  • TeleSculptor now uses image masks in the depth fusion tool if image masks
    have been loaded.

  • The tool to batch compute depth maps now provides more frequent status
    updates and intermediate results. The cancel option is also more
    responsive.

  • The auxiliary data fields provided along with depth maps and shown in the
    depth map viewer have been renamed. "Best Cost" and "UniquenessRatio" have
    been replaced with "Weight" and "Uncertainty". The previous names were
    specific to an older algorithm that is no longer used. Weight is an image
    of zero to one values indicating how much each pixel contributes to the
    final fused model. One use case for weight is the use of masks to disable
    contribution for some pixels. Uncertainty is not used yet but is a place
    holder for measurements of how uncertain the depth estimate is each pixel.

  • Added a menu for compute options including the option to specify whether
    or not to use metadata as constraints in computations and an option to
    specify whether or not to allow variable (e.g. zooming, swapping) lens.

  • Added a special "Run End-to-End" tool to the compute menu that runs a
    pipeline of all main tools in order to start from a video and end with
    a fused 3D surface mesh without any user interaction.

  • Improved video loading to not require an entire scan of the video upon each
    open. The scan is still needed to collect metadata, but this can now be
    canceled if metadata is not required.

Fixes since v1.0.0

Build System

  • Fixed broken PDAL support. PDAL was disabled regardless of the CMake
    setting due to a mis-named variable.

TeleSculptor Application

  • Fixed a divide-by-zero bug caused by computing the mean landmark location
    when there are zero landmarks. This happened when recomputing the local
    coordinate system without landmarks.

  • Improved placement of ground control points and ruler tool based on picking
    the closest cell or point in the scene along the camera direction.

  • Fixed a crash that occurred when applying a color gradient to data with all
    the same value. This occurred when selecting to visualize Uncertainty of
    depth maps which is currently unused and all zeros. Likewise with Weights
    of depth maps when no mask is used.

  • Fixed a rendering issue in which cameras were invisible on some platforms.
    This bug was caused by setting the line width to 2. Reverting this change
    fixed the issue.

  • Improved video playback speed by avoiding excessive seeking.

  • Updated "About" dialog github URL from maptk to TeleSculptor.

  • Fixed a bug in translating the ROI when shifting the geo-origin point.
    Previously the ROI was collapsing because both the min and max point were
    set to the translated min point.

  • Fixed a bug in which GCPs or ruler end points would render in random
    locations in the camera view if the world location was behind the
    camera. The GCPs or ruler for invalid projections are no longer drawn.

  • Fixed a bug in which GCPs imported from a file after a camera was loaded
    were imported twice.

  • Fixed an issue with location precision of landmarks in the Camera View that
    occurred when some points project very far from the image. These points are
    now filtered out.

Packaging

  • The packaging for Linux has been corrected so that setting LD_LIBRARY_PATH
    is no longer needed to run executables after unpacking. Libraries in the
    package now have RPATH set relative to $ORIGIN.