37 lines
1.3 KiB
Python
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}%)")
|