update_labels.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import os
  2. import pandas as pd
  3. from glob import glob
  4. # 定义路径
  5. targets_dir = r"D:\PythonProject\Model\output_20250329_140816_results\targets_all_True"
  6. csv_file = r"D:\PythonProject\Model\output_20250329_140816_results\detection_report.csv"
  7. output_csv = r"D:\PythonProject\Model\output_20250329_140816_results\detection_report_updated.csv"
  8. # 获取所有确认的阳性目标文件名
  9. target_files = os.listdir(targets_dir)
  10. # 从目标文件名中提取原始图像名称
  11. confirmed_positives = set()
  12. for target_file in target_files:
  13. # 提取原始图像名称(去掉时间戳和索引部分)
  14. parts = target_file.split('_')
  15. original_name = '_'.join(parts[:-2]) + '.jpg' # 移除最后的时间戳和索引
  16. confirmed_positives.add(original_name)
  17. # 读取CSV文件
  18. df = pd.read_csv(csv_file)
  19. # 添加新的标记列
  20. df['Confirmed Positive'] = df['Image File'].apply(lambda x: os.path.basename(x) in confirmed_positives)
  21. # 保存更新后的CSV文件
  22. df.to_csv(output_csv, index=False)
  23. print(f"处理完成!已更新 {len(confirmed_positives)} 个确认的阳性样本。")
  24. print(f"更新后的CSV文件已保存至:{output_csv}")
  25. # 显示统计信息
  26. total_images = len(df)
  27. confirmed_positive_count = df['Confirmed Positive'].sum()
  28. print(f"\n统计信息:")
  29. print(f"总图像数:{total_images}")
  30. print(f"确认阳性数:{confirmed_positive_count}")
  31. print(f"确认阳性比例:{confirmed_positive_count/total_images*100:.2f}%")