Files
Aislo/utils/run_sample_pipeline.py
T
2026-07-05 14:05:22 +09:00

37 lines
1.3 KiB
Python

import os
import shutil
from pathlib import Path
import numpy as np
# 루트 및 instance/sample 경로
root_dir = Path(__file__).resolve().parents[1]
instance_sample = root_dir / "instance" / "sample"
# 1. 기존 오염된 마스크들 강제 삭제 (새 연산 강제)
print("1. Cleaning old mask files...")
for fn in ["mask_csf.npy", "mask_grid_min_z.npy", "mask_pmf.npy", "mask_ransac.npy", "structured.npz"]:
p = instance_sample / fn
if p.exists():
try:
os.remove(p)
print(f" Removed: {fn}")
except PermissionError:
print(f" Skipped (locked): {fn}")
# 2. main.py에 탑재된 파이프라인 수동 호출
print("\n2. Triggering process_pipeline manually with corrected codes...")
import sys
sys.path.append(str(root_dir))
from main import process_pipeline
las_path = root_dir / "samples" / "step1_scan" / "cloud_merged.las"
process_pipeline("sample", las_path)
print("\n3. Finished execution. verifying masks again:")
# 최종 카운트 검사
for fn in ["mask_grid_min_z.npy", "mask_csf.npy", "mask_pmf.npy", "mask_ransac.npy"]:
p = instance_sample / fn
if p.exists():
mask = np.load(p)
print(f" {fn:<22} : Total {len(mask):,} pts | Ground {np.sum(mask):,} pts ({np.sum(mask)/len(mask)*100:.2f}%)")