pip install perceive_semantix_libperceive_semantix_lib is distributed under the terms of the MIT license.
class Scene:
Attributes:
Config
ObjectDetector
ObjectTracker
|- dict[UUID, SceneObjects]
|- active_objects: list[UUID]
|- inactive_objects: list[UUID]
...
Methods:
step(self, posed_rgbd: InputDataStamped)
...The Scene class represents the core world model, maintaining and updating object hypotheses as new frames are processed.
Processes a new input frame (posed_rgbd) and updates the scene accordingly.
The main steps are:
-
Detection
Detect visible objects in the current frame using
ObjectDetector, producingdetections. -
Projection
Project existing scene objects onto the camera plane to determine which ones are expected to be visible (
SceneObject.project_onto_camera). -
Matching
Establish correspondences between detections and existing objects:
- Initialize adjacency structures (
ObjectDetectionAdjacency). - Match detections to objects assuming static positions (
_match_detections_to_objects). - Match remaining detections allowing object movement (
match_detections_to_objects_semantically_greedy_icp). - Match existing objects to each other (
match_objects_to_objects). - Attempt re-identification of inactive or missing objects (
match_objects_to_objects).
- Initialize adjacency structures (
-
Merging & Creation
Merge matched objects and instantiate new ones as needed, based on the populated adjacency structure (
merge_from_adjacency). -
Post-processing
Log the outcome and, if necessary, filter the scene to reduce noise and maintain consistency.
Takes in a Scene to compute a 2D occupancy grid.
Implements the exploration priority map as described in https://arxiv.org/abs/2509.19851 based on a list of active objects provided by Scene.get_objects().