def update(self, features: dict[FeatureType, torch.Tensor], group: str | None = None) -> None:
        """Update the density estimators for the different feature types.

        Args:
            features (dict[FeatureType, torch.Tensor]): Dictionary containing
                extracted features for a single frame. Keys are feature types and
                values are the corresponding feature tensors.
            group (str | None, optional): Identifier of the video from which the
                frame was sampled. Used for grouped density estimation. Defaults to
                ``None``.
        """
        if self.use_velocity_features:
            self.velocity_estimator.update(features[FeatureType.VELOCITY])
        if self.use_deep_features:
            self.appearance_estimator.update(features[FeatureType.DEEP], group=group)
        if self.use_pose_features:
            self.pose_estimator.update(features[FeatureType.POSE], group=group)
Update the density estimators for the different feature types.

        Args:
            features (dict[FeatureType, torch.Tensor]): Dictionary containing
                extracted features for a single frame. Keys are feature types and
                values are the corresponding feature tensors.
            group (str | None, optional): Identifier of the video from which the
                frame was sampled. Used for grouped density estimation. Defaults to
                ``None``.
        
src/anomalib/models/video/ai_vad/density.py