mirror of
https://github.com/SikongJueluo/Mini-Nav.git
synced 2026-07-12 20:15:31 +08:00
feat(scenegraph): add SceneGraphBuilder for pipeline-driven graph construction
Introduce SceneGraphBuilder + SceneGraphBuildConfig to decouple scene graph construction from the verification notebook. The builder handles batch inference, hash encoding, and object node creation internally. - Add SceneGraphBuilder.build_from_room_views() as the main entry point - Add SceneGraphBuildConfig for inference_batch_size and position strategy - Add SceneGraphBuildArtifacts to carry cropped images and debug metadata - Extend ObjectNode with optional detection metadata (label, confidence, bbox_xyxy, source_view_id, position_confidence) - Add RoomView frozen dataclass as a structured view container - Add flatten_room_views() utility to replace inline list comprehensions - Refactor notebooks/verification.py to use the new builder API BREAKING CHANGE: ObjectNode now accepts additional optional fields; direct scene_graph.objects[obj_id] = ObjectNode(...) construction in the notebook is replaced by builder.build_from_room_views(...).
This commit is contained in:
@@ -16,5 +16,18 @@ def test_verification_notebook_uses_scenegraph_query_api():
|
||||
def test_verification_notebook_uses_hash_codec_for_object_hashes():
|
||||
source = NOTEBOOK.read_text()
|
||||
|
||||
assert "bits_tensor_to_hash_bytes" in source
|
||||
# Notebook should no longer do hash conversion directly;
|
||||
# the builder handles it internally.
|
||||
assert "bits_tensor_to_hash_bytes" not in source
|
||||
assert "np.packbits" not in source
|
||||
assert "scene_graph.objects[_obj_id] = ObjectNode" not in source
|
||||
|
||||
|
||||
def test_verification_notebook_uses_scene_graph_builder():
|
||||
source = NOTEBOOK.read_text()
|
||||
|
||||
assert "SceneGraphBuilder" in source
|
||||
assert "SceneGraphBuildConfig" in source
|
||||
assert "flatten_room_views" in source
|
||||
assert "scene_graph, build_artifacts = builder.build_from_room_views" in source
|
||||
assert "scene_graph.objects[_obj_id] = ObjectNode" not in source
|
||||
|
||||
Reference in New Issue
Block a user