From 4864c57d4c78dc8ae59bba4648ed7c3de1b0f1c8 Mon Sep 17 00:00:00 2001 From: Accusys Date: Thu, 14 May 2026 14:02:49 +0800 Subject: [PATCH] fix: executor scene/object trace time range for GDINO --- scripts/qa/executor.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/scripts/qa/executor.py b/scripts/qa/executor.py index 30718cc..0cdb890 100644 --- a/scripts/qa/executor.py +++ b/scripts/qa/executor.py @@ -39,7 +39,8 @@ def find_trace_in_frame_range(start_frame, end_frame, file_uuid): conn = psycopg2.connect("postgresql://accusys@localhost:5432/momentry") cur = conn.cursor() cur.execute(""" - SELECT trace_id, COUNT(*) as faces + SELECT trace_id, COUNT(*) as faces, + MIN(frame_number) as start_f, MAX(frame_number) as end_f FROM dev.face_detections WHERE file_uuid = %s AND trace_id IS NOT NULL AND frame_number BETWEEN %s AND %s @@ -49,7 +50,9 @@ def find_trace_in_frame_range(start_frame, end_frame, file_uuid): row = cur.fetchone() cur.close() conn.close() - return row[0] if row else None + if row: + return {"trace_id": row[0], "faces": row[1], "start_frame": row[2], "end_frame": row[3]} + return None def find_trace_by_object(object_name, file_uuid): @@ -126,14 +129,10 @@ def execute(query, file_uuid): elif qtype == "scene": start = query.get("cut_start", 0) end = query.get("cut_end", 1000000) - trace_id = find_trace_in_frame_range(start, end, file_uuid) - if trace_id: - trace_info = {"trace_id": trace_id} + trace_info = find_trace_in_frame_range(start, end, file_uuid) elif qtype == "object": - obj = query.get("expected_object", "") - trace_id = find_trace_by_object(obj, file_uuid) - if trace_id: - trace_info = {"trace_id": trace_id} + obj_name = query.get("expected_object", "") + trace_info = find_trace_by_object(obj_name, file_uuid) if trace_info is None: print(" ❌ no trace found")