feat(scenegraph): add ImageHashPipeline protocol and update query API

- Introduce ImageHashPipeline Protocol for extensible hash computation
- Rename query_crop_index to query_index for clarity
- Make query_crop nullable to handle missing crop edge case
- Add keyword-only arguments for better API clarity
- Handle empty scene graph objects gracefully
- Add comprehensive test coverage for query_image_against_scene_graph
This commit is contained in:
2026-05-21 15:03:39 +08:00
parent ba96cec406
commit 101a675ece
4 changed files with 371 additions and 30 deletions

View File

@@ -2,7 +2,7 @@
This module exports the main scenegraph objects for easy import:
from mini_nav.scenegraph import SimpleSceneGraph, RoomNode, ObjectNode
from scenegraph import SimpleSceneGraph, RoomNode, ObjectNode
"""
from .hash_codec import (
@@ -13,13 +13,18 @@ from .hash_codec import (
hash_bytes_to_cam_row,
)
from .objectnode import ObjectNode
from .query import ImageSceneGraphQueryResult, query_image_against_scene_graph
from .query import (
ImageHashPipeline,
ImageSceneGraphQueryResult,
query_image_against_scene_graph,
)
from .roomnode import RoomNode
from .scenegraph import SceneGraphMatch, SimpleSceneGraph
from .software_cam import CamMatch, SoftwareCamIndex, xnor_popcount_score
__all__ = [
"CamMatch",
"ImageHashPipeline",
"ImageSceneGraphQueryResult",
"ObjectNode",
"RoomNode",