-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsmoke_multimodal_fixture.sh
More file actions
48 lines (41 loc) · 1.57 KB
/
Copy pathsmoke_multimodal_fixture.sh
File metadata and controls
48 lines (41 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env bash
# Fast multimodal regression for GitHub CI: 3-frame MCD slice plus committed visual CSVs.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
BIN="${ROOT}/build/evaluation/multimodal_dogfooding"
SEQ="${ROOT}/evaluation/fixtures/mcd_kth_smoke"
GT="${ROOT}/evaluation/fixtures/mcd_kth_smoke_gt.csv"
NFR=3
OUT="${ROOT}/experiments/results/runs/ci_multimodal_fixture_smoke"
SUMMARY="${OUT}/summary.json"
mkdir -p "${OUT}"
if [[ ! -x "${BIN}" ]]; then
echo "error: build multimodal_dogfooding first" >&2
exit 1
fi
"${BIN}" "${SEQ}" "${GT}" "${NFR}" \
--methods okvis,fast_livo2 \
--summary-json "${SUMMARY}" \
--okvis-fast-profile \
--fast-livo2-fast-profile \
>"${OUT}/run.log" 2>&1
python3 - "${SUMMARY}" <<'PY'
import json
import sys
summary_path = sys.argv[1]
with open(summary_path) as handle:
summary = json.load(handle)
if summary["num_frames"] != 3:
raise SystemExit(f"expected 3 frames, got {summary['num_frames']}")
methods = {item["name"]: item for item in summary["methods"]}
for method_name in ("OKVIS", "FAST-LIVO2"):
if method_name not in methods:
raise SystemExit(f"missing method in summary: {method_name}")
item = methods[method_name]
# multimodal_dogfooding emits the lower-case status taxonomy ("ok"/"skipped").
if item["status"].lower() != "ok":
raise SystemExit(f"{method_name} status={item['status']} note={item['note']}")
if item["frames"] != 3:
raise SystemExit(f"{method_name} expected 3 frames, got {item['frames']}")
print(f"ci_multimodal_fixture_smoke: OK -> {summary_path}")
PY