fix: record and require the walk identity backend
This commit is contained in:
parent
ac315eb48e
commit
6cad638c26
4 changed files with 75 additions and 18 deletions
|
|
@ -15,7 +15,8 @@ Layout:
|
|||
|
||||
DIR/<session>/000123.jpg the frame, exactly as the client sent it
|
||||
DIR/<session>/index.jsonl one line per frame:
|
||||
{"frame": 123, "path": "...", "at": 1699..., "summary": {...},
|
||||
{"frame": 123, "path": "...", "at": 1699..., "identity_backend": "gallery",
|
||||
"summary": {...},
|
||||
"tracks": [{"box": [...], "identity": {...}, "tag": {...}}]}
|
||||
|
||||
Frames are written at most every `every` processed frames (default 3) so a long
|
||||
|
|
@ -35,10 +36,17 @@ from typing import Any, Dict, List, Optional
|
|||
class FrameRecorder:
|
||||
"""Write frames and their results to disk, for labelling later."""
|
||||
|
||||
def __init__(self, root: str, every: int = 3, max_frames_per_session: int = 4000) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
root: str,
|
||||
every: int = 3,
|
||||
max_frames_per_session: int = 4000,
|
||||
identity_backend: Optional[str] = None,
|
||||
) -> None:
|
||||
self.root = root
|
||||
self.every = max(1, int(every))
|
||||
self.max_frames_per_session = int(max_frames_per_session)
|
||||
self.identity_backend = (identity_backend or "").strip().lower() or None
|
||||
self._lock = threading.Lock()
|
||||
self._counts: Dict[str, int] = {}
|
||||
self._written: Dict[str, int] = {}
|
||||
|
|
@ -86,6 +94,8 @@ class FrameRecorder:
|
|||
"summary": result.get("summary"),
|
||||
"tracks": tracks,
|
||||
}
|
||||
if self.identity_backend:
|
||||
line["identity_backend"] = self.identity_backend
|
||||
try:
|
||||
with open(os.path.join(directory, "index.jsonl"), "a", encoding="utf-8") as handle:
|
||||
handle.write(json.dumps(line, ensure_ascii=False) + "\n")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue