mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-07-22 17:52:07 +08:00
New Raybig Homescreen
This commit is contained in:
@@ -53,6 +53,8 @@ export NOBOARD=1
|
||||
export SIMULATION=1
|
||||
export SKIP_FW_QUERY=1
|
||||
export USE_WEBCAM=1
|
||||
export PRIME_TYPE="${PRIME_TYPE:-0}"
|
||||
export SP_RAYBIG_FAKE_DRIVE_STATS="${SP_RAYBIG_FAKE_DRIVE_STATS:-1}"
|
||||
|
||||
backup_dir="$(mktemp -d /tmp/starpilot_raybig_ui_backup.XXXXXX)"
|
||||
backup_manifest="${backup_dir}/.artifact_manifest"
|
||||
|
||||
@@ -48,6 +48,11 @@ def parse_args() -> argparse.Namespace:
|
||||
parser.add_argument("--window-before", type=float, default=4.0, help="Seconds replayed before the reviewed frame.")
|
||||
parser.add_argument("--window-after", type=float, default=3.0, help="Seconds replayed after the reviewed frame.")
|
||||
parser.add_argument("--dedupe-seconds", type=float, default=3.0, help="Collapse nearby reviewed rows with the same expected value.")
|
||||
parser.add_argument(
|
||||
"--review-timebase-fps",
|
||||
type=float,
|
||||
help="FPS used when review timestamps were generated. Use 25 for legacy raw-HEVC queues created before comma's 20 FPS timebase fix.",
|
||||
)
|
||||
parser.add_argument("--measured-base-inference-seconds", type=float, default=0.44, help="Measured no-proposal comma inference cost.")
|
||||
parser.add_argument("--measured-classifier-forward-seconds", type=float, default=0.066, help="Measured comma cost per classifier forward.")
|
||||
parser.add_argument("--measured-tracking-base-seconds", type=float, default=0.012, help="Measured optical-flow and crop preparation cost.")
|
||||
@@ -169,12 +174,13 @@ def replay_video_cases(cases: list[ReviewedCase], args: argparse.Namespace) -> d
|
||||
daemon.last_published_support_at = 0.0
|
||||
capture = cv2.VideoCapture(str(cases[0].source_video_path))
|
||||
fps = source_video_fps(cases[0].source_video_path, capture.get(cv2.CAP_PROP_FPS))
|
||||
review_timebase_fps = args.review_timebase_fps or fps
|
||||
frame_count = int(capture.get(cv2.CAP_PROP_FRAME_COUNT) or 0)
|
||||
duration_s = frame_count / fps if frame_count > 0 else 60.0
|
||||
windows = {
|
||||
case.record_key: (
|
||||
max(case.frame_time_s - args.window_before, 0.0),
|
||||
min(case.frame_time_s + args.window_after, duration_s),
|
||||
max(case.frame_time_s * review_timebase_fps / fps - args.window_before, 0.0),
|
||||
min(case.frame_time_s * review_timebase_fps / fps + args.window_after, duration_s),
|
||||
)
|
||||
for case in cases
|
||||
}
|
||||
@@ -216,6 +222,8 @@ def replay_video_cases(cases: list[ReviewedCase], args: argparse.Namespace) -> d
|
||||
|
||||
def main() -> int:
|
||||
args = parse_args()
|
||||
if args.review_timebase_fps is not None and args.review_timebase_fps <= 0.0:
|
||||
raise ValueError("--review-timebase-fps must be greater than zero")
|
||||
queue_path = args.queue.expanduser().resolve()
|
||||
labels_path = args.labels.expanduser().resolve() if args.labels else queue_path.with_name("manual_review_labels.csv")
|
||||
configure_models(args.models_dir)
|
||||
@@ -392,6 +400,7 @@ def main() -> int:
|
||||
))
|
||||
summary = {
|
||||
"models_dir": str(args.models_dir.expanduser().resolve()),
|
||||
"review_timebase_fps": args.review_timebase_fps,
|
||||
"crop_ocr": args.crop_ocr,
|
||||
"classifier_min_confidence": slv.US_CLASSIFIER_MIN_CONFIDENCE,
|
||||
"measured_base_inference_seconds": args.measured_base_inference_seconds,
|
||||
|
||||
Reference in New Issue
Block a user