Add deduplication: keep image closest to camera within 2s window
Build & Deploy / build-and-deploy (push) Has been cancelled
Build & Deploy / build-and-deploy (push) Has been cancelled
Within a burst sequence from the same station, the image where the athlete is physically closest to the camera gives the most accurate passage timestamp. Proximity is measured by bib bounding box area (larger = closer). When a duplicate is detected: - New image closer: update timestamp + image path, delete old image - Existing image closer: discard new image Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+15
-14
@@ -24,20 +24,21 @@ async def init_db(db: aiosqlite.Connection) -> None:
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS passages (
|
||||
passage_id TEXT PRIMARY KEY,
|
||||
profile_id TEXT REFERENCES athletes(profile_id),
|
||||
bib_number TEXT,
|
||||
station TEXT NOT NULL,
|
||||
timestamp_utc TEXT NOT NULL,
|
||||
gps_lat REAL,
|
||||
gps_lon REAL,
|
||||
gps_alt REAL,
|
||||
confidence REAL,
|
||||
id_method TEXT,
|
||||
source_image TEXT,
|
||||
needs_review INTEGER NOT NULL DEFAULT 0,
|
||||
review_note TEXT,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
passage_id TEXT PRIMARY KEY,
|
||||
profile_id TEXT REFERENCES athletes(profile_id),
|
||||
bib_number TEXT,
|
||||
station TEXT NOT NULL,
|
||||
timestamp_utc TEXT NOT NULL,
|
||||
gps_lat REAL,
|
||||
gps_lon REAL,
|
||||
gps_alt REAL,
|
||||
confidence REAL,
|
||||
proximity_score REAL NOT NULL DEFAULT 0,
|
||||
id_method TEXT,
|
||||
source_image TEXT,
|
||||
needs_review INTEGER NOT NULL DEFAULT 0,
|
||||
review_note TEXT,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_passages_profile ON passages(profile_id);
|
||||
|
||||
Reference in New Issue
Block a user