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.MonoBehaviours after they have been destroyed.AR Foundation example scene.NullReferenceExceptions.AR Foundation.TrackingModel which prevented some meshes from being sent to VisionLib.minInlierRatioInit to minInitQuality and minInlierRatioTracking to minTrackingQuality.minFeatureDistanceminCornernessminTriangulationAnglelineSearchLengthTrackingRelative 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.TrackingAnchors 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