Release date: 25.07.2022
Release info: Feature Release
This is a minor feature release for VisionLib which adds:
AdvancedModelTracking
example scene, which has therefore been renamed to ModelTrackingSetup
.Special thanks to all our users for your valuable feedback!
staticScene
support by decoupling SLAM from ModelTracking."staticScene": true
formerly estimated the scale of the SLAM coordinate system. This is now achieved by setting estimateWorldScale
to true.extendibleTracking
is activated. Previously, the model tracking would remain stuck in the "critical" state as long as SLAM pose predictions were still available. This prevented reinitialization. Two new parameters are now available to manage the influence of SLAM on the tracking state:allowedNumberOfFramesSLAMPrediction
: Limits the number of frames for which purely SLAM pose predictions may keep tracking alive, i.e. prevent the transition from state "critical" to "lost".allowedNumberOfFramesSLAMPredictionObjectVisible
: This has the same effect as allowedNumberOfFramesSLAMPrediction
. However, the frame counter only increases while the SLAM predicted object location is inside the camera's field ov view.extendibleTracking
is used. Previously, while in state "critical", the tracked object was only searched for at the location predicted by SLAM. This search is now additionally performed using every available form of initialization data (e.g. AutoInit, InitPose, learned poses). This significantly increases the likelihood of tracking recovery despite SLAM pose prediction drift or possible object movements.TrackingConfiguration
component. There is now an option to start the tracking using an image sequence (located at a specific URI). Testing VisionLib scenes with image sequences no longer requires manual changes to the input section of the tracking configuration file.ModelTrackerParameters
component to the VLModelTracker
prefab. Set an URI and call SaveCurrentConfiguration
on this component to save the current model tracker parameter configuration to a file. This allows you to permanently save volatile configuration parameter changes made at runtime.ModelTrackingSetup
example scene.VisionLib.SDK.MRTK.Examples
including the new HoloLens2ModelTrackingSetup
scene. This scene serves two purposes:VLImageSourceParameters
prefab variant for HoloLens scenes that contains the FieldOfView
parameter.ImageSequence
when using negative step size.ImageRecorder
where the frameIndex
would increase despite no frame having been recorded.ModelTrackerMultiView
have been expanded to match the one of ModelTracker
in most cases.extendibleTracking
is active. Timestamps are read and used when replaying such image sequences.staticScene
is enabled, pose smoothing is much faster due to the decoupling of SLAM and ModelTracking.VisionLib.SDK.Examples-Unity
) into new assembly VisionLib.SDK.Examples
.ShowLineModel
in the TrackingSetupScene
.MonoBehaviour
s after they have been destroyed.AR Foundation
example scene.NullReferenceException
s.AR Foundation
.TrackingModel
which prevented some meshes from being sent to VisionLib.minInlierRatioInit
to minInitQuality
and minInlierRatioTracking
to minTrackingQuality
.minFeatureDistance
minCornerness
minTriangulationAngle
lineSearchLengthTrackingRelative
and lineSearchLengthInitRelative
to 0 in order to accommodate higher image resolutions.ModelTracker
as a Json string. Available as:getNonDefaultAttributes
in VisionLib.SDK.NativeModelTrackerCommands.GetNonDefaultAttributesAsync
in VisionLib.SDK.UnityTransform
will result in an error now.TrackingManager
: Split TrackingManager
into base TrackingManager
and AsynchronousTrackingManager
. SynchronousTrackingManager
now extends the new abstract base class TrackingManager
.AdvancedModelTracking
example scene to ModelTrackingSetup
. This better reflects its purpose, namely: Setting up, debugging and saving a custom tracking configuration.ModelTransform.operator ==
with more explicitly named function ModelTransform.IsSimilarTo
in order to avoid misuse.TrackingManagerReference
class. The need to inherit from TrackingManagerReference
for access to the TrackingManager
has been removed. To access the TrackingManager
please use the new static property TrackingManager.Instance
.TrackingManagerReference
will be removed in the next major release.SynchronousTrackingManagerReference
class. The need to inherit from SynchronousTrackingManagerReference
for access to the SynchronousTrackingManager
has been removed. To access the SynchronousTrackingManager
please use the new static property SynchronousTrackingManager.Instance
.SynchronousTrackingManager
will be removed in the next major release.TrackingAnchor
s in combination with AR Foundation
.useAllChildNodes
in TrackingModel.UpdateModelProperties
and TrackingModel.UpdateModelPropertiesAsync
. ModelTrackerMultiView
will no longer accept any setter via its node:vlWorker_SetNodeImageSync
will no longer work with indexed key "image"
for ModelTrackerMultiView
. Please use the InjectMultiView
device instead.vlWorker_SetNodeIntrinsicDataSync
will no longer work with indexed key "intrinsic"
for ModelTrackerMultiView
. Please use the InjectMultiView
device instead.vlWorker_SetNodeExtrinsicDataSync
will no longer work with indexed key "relativeExtrinsic"
for ModelTrackerMultiView
. Please use the InjectMultiView
device instead.vlWorker_SetNodeExtrinsicDataSync
will no longer work with key "initPose"
. Please use jsonCommand with setInitPose
instead."multiViewFrame"
instead.ModelTrackerMultiView
used the same indices for accessing the camera images as specified for the device. Due to internal refactoring, the indices of the internally used data will now be sequential starting from 0
: E.g. if trackingCameras
is set to [1, 5]
, ModelTrackerMultiView
previously provided the debug image keys debugImage_1
and debugImage_5
. Now the tracker will provide the keys debugImage_0
and debugImage_1
instead.schema.json
file.CameraCalibration
tracker in the schema.json
.ModelTrackingSetup
example scene