Update backend/evaluation.py

#18
by munals - opened
Files changed (1) hide show
  1. backend/evaluation.py +8 -3
backend/evaluation.py CHANGED
@@ -1346,11 +1346,14 @@ def evaluate_architecture_fixes(perc_results: dict, risk_results: dict) -> dict:
1346
  risk = RiskAgent()
1347
 
1348
  # Build frames with known densities
 
1349
  def _make_fr(density: float, count: int, spacing: float = 200.0) -> FrameResult:
 
1350
  return FrameResult(
1351
- frame_id=0, timestamp=time.time(),
1352
  person_count=count, density_score=density,
1353
  avg_spacing=spacing, boxes=[], annotated=None, guardrail_flags=[],
 
1354
  )
1355
 
1356
  density_cases = [
@@ -1361,9 +1364,11 @@ def evaluate_architecture_fixes(perc_results: dict, risk_results: dict) -> dict:
1361
 
1362
  fix4_pass = 0
1363
  for density, count, label, expected_trend in density_cases:
1364
- # Fill the window with identical frames to stabilise score
1365
  risk2 = RiskAgent()
1366
- for _ in range(risk2.WINDOW_SIZE):
 
 
1367
  rr = risk2.process_frame(_make_fr(density, count))
1368
  got_level = rr.risk_level
1369
  # For density=1.0 → d_score=1.0, t_score=0.4 → raw≥0.50 → MEDIUM or HIGH
 
1346
  risk = RiskAgent()
1347
 
1348
  # Build frames with known densities
1349
+ _fr_seq = [0]
1350
  def _make_fr(density: float, count: int, spacing: float = 200.0) -> FrameResult:
1351
+ _fr_seq[0] += 1
1352
  return FrameResult(
1353
+ frame_id=_fr_seq[0], timestamp=time.time(),
1354
  person_count=count, density_score=density,
1355
  avg_spacing=spacing, boxes=[], annotated=None, guardrail_flags=[],
1356
+ track_ids=list(range(count)), # unique IDs 0..count-1 for K-window density
1357
  )
1358
 
1359
  density_cases = [
 
1364
 
1365
  fix4_pass = 0
1366
  for density, count, label, expected_trend in density_cases:
1367
+ # Fill window (K_WINDOW warmup) + stabilization (STABLE_FRAMES) to confirm level
1368
  risk2 = RiskAgent()
1369
+ _fr_seq[0] = 0
1370
+ n_iters = risk2.K_WINDOW + risk2.STABLE_FRAMES
1371
+ for _ in range(n_iters):
1372
  rr = risk2.process_frame(_make_fr(density, count))
1373
  got_level = rr.risk_level
1374
  # For density=1.0 → d_score=1.0, t_score=0.4 → raw≥0.50 → MEDIUM or HIGH