| import os |
| import csv |
| import numpy as np |
|
|
| |
| IMAGE_LIST_TXT = "olivia_luna_image_paths.txt" |
| BBOX_DIR = "/scratch/ds5725/linefinder/LineFinder/bbox_orient" |
| OUTPUT_CSV = "OL_number_of_people.csv" |
|
|
|
|
| def read_image_list(txt_path): |
| with open(txt_path, "r") as f: |
| return [line.strip() for line in f if line.strip()] |
|
|
|
|
| def main(): |
| image_paths = read_image_list(IMAGE_LIST_TXT) |
| print(f"Loaded {len(image_paths)} images from txt") |
|
|
| rows = [] |
|
|
| for img_path in image_paths: |
| image_id = os.path.splitext(os.path.basename(img_path))[0] |
| bbox_path = os.path.join(BBOX_DIR, f"{image_id}_bboxes.npy") |
|
|
| if not os.path.isfile(bbox_path): |
| rows.append({ |
| "image_id": image_id, |
| "image_path": img_path, |
| "estimated_number_of_persons": "", |
| "status": "missing_bbox" |
| }) |
| continue |
|
|
| try: |
| bboxes = np.load(bbox_path) |
| num_persons = int(bboxes.shape[0]) |
| status = "ok" |
| except Exception as e: |
| num_persons = "" |
| status = f"fail:{e}" |
|
|
| rows.append({ |
| "image_id": image_id, |
| "image_path": img_path, |
| "estimated_number_of_persons": num_persons, |
| "status": status |
| }) |
|
|
| |
| cols = ["image_id", "image_path", "estimated_number_of_persons", "status"] |
|
|
| with open(OUTPUT_CSV, "w", newline="", encoding="utf-8") as f: |
| writer = csv.DictWriter(f, fieldnames=cols) |
| writer.writeheader() |
| for r in rows: |
| writer.writerow(r) |
|
|
| print(f"\nSaved results to {OUTPUT_CSV}") |
|
|
|
|
| if __name__ == "__main__": |
| main() |