TeleSculptor v1.1.0
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.