Skip to content

Latest commit

 

History

History
289 lines (222 loc) · 9.33 KB

File metadata and controls

289 lines (222 loc) · 9.33 KB

/data 目录详细说明

目录结构概览

/data/
├── indoor6/                    # Indoor-6 数据集(预准备)
│   ├── scene1/                 # 场景1数据
│   ├── scene2a/                # 场景2a数据
│   ├── scene3/                 # 场景3数据
│   ├── scene4a/                # 场景4a数据
│   ├── scene5/                 # 场景5数据
│   └── scene6/                 # 场景6数据
├── checkpoints/                # 预训练模型(预准备)
│   ├── scene1_1000-125_v10/    # 场景1的SLD-star模型
│   ├── scene2a_1000-125_v10/   # 场景2a的SLD-star模型
│   ├── scene3_1000-125_v10/    # 场景3的SLD-star模型
│   ├── scene4a_1000-125_v10/   # 场景4a的SLD-star模型
│   ├── scene5_1000-125_v10/    # 场景5的SLD-star模型
│   ├── scene6_1000-125_v10/    # 场景6的SLD-star模型
│   └── RESULTS-1000-125_v10.txt # 推理结果汇总(生成)
└── outputs/                    # 训练输出(生成)
    ├── scene6_1000-125_v10/    # 场景6训练输出
    │   ├── scene6-000-125/     # 地标0-124的模型
    │   ├── scene6-125-250/     # 地标125-249的模型
    │   ├── scene6-250-375/     # 地标250-374的模型
    │   ├── scene6-375-500/     # 地标375-499的模型
    │   ├── scene6-500-625/     # 地标500-624的模型
    │   ├── scene6-625-750/     # 地标625-749的模型
    │   ├── scene6-750-875/     # 地标750-874的模型
    │   ├── scene6-875-1000/    # 地标875-999的模型
    │   └── scene6_1000-125_v10.txt # 实验配置文件
    └── landmarks.txt           # 训练使用的地标坐标

1. /data/indoor6/ - Indoor-6 数据集(预准备)

1.1 数据来源

  • 下载地址Indoor-6 Dataset
  • 数据状态:预准备,需要手动下载
  • 数据大小:约 20GB

1.2 每个场景的目录结构

scene1/
├── images/                     # 彩色图像文件
│   ├── 000000.color.jpg       # 图像文件
│   ├── 000001.color.jpg
│   └── ...
├── poses/                      # 相机姿态文件
│   ├── 000000.txt             # 3x4 姿态矩阵
│   ├── 000001.txt
│   └── ...
├── train_test_val.pkl         # 训练/测试/验证集划分
├── landmarks-1000v10.txt      # 1000个地标的3D坐标
├── landmarks-300v9.txt        # 300个地标的3D坐标
├── landmarks-500v9.txt        # 500个地标的3D坐标
├── visibility-1000v10_depth_normal.txt  # 地标可见性矩阵
├── visibility-300v9.txt       # 地标可见性矩阵
└── visibility-500v9.txt       # 地标可见性矩阵

1.3 数据文件说明

1.3.1 图像文件

  • 格式:JPEG 彩色图像
  • 分辨率:原始分辨率(约 1920x1080)
  • 数量:每个场景数千张图像
  • 用途:训练和测试的输入图像

1.3.2 姿态文件

  • 格式:文本文件,每行一个 3x4 矩阵
  • 内容:相机在世界坐标系中的位置和姿态
  • 用途:训练时的真实标签,测试时的评估基准

1.3.3 地标文件

  • 格式:文本文件
  • 第一行:地标总数
  • 后续行:每个地标的 ID 和 3D 坐标 [id, x, y, z]
  • 示例
    1000
    0 1.234 2.345 3.456
    1 4.567 5.678 6.789
    ...
    

1.3.4 可见性文件

  • 格式:文本文件,矩阵格式
  • 维度[地标数量] × [图像数量]
  • 内容:布尔值,表示每个地标在每张图像中是否可见
  • 用途:训练时只使用可见的地标

1.3.5 数据集划分文件

  • 格式:Pickle 文件
  • 内容:训练、测试、验证集的图像索引
  • 用途:确定每张图像属于哪个数据集

2. /data/checkpoints/ - 预训练模型(预准备)

2.1 模型来源

  • 下载地址预训练模型
  • 模型状态:预准备,需要手动下载
  • 模型大小:约 2GB

2.2 模型结构

每个场景的模型目录包含:

scene6_1000-125_v10/
├── scene6-000-125/            # 地标0-124的模型
│   └── model-best_median.ckpt # 最佳模型检查点
├── scene6-125-250/            # 地标125-249的模型
│   └── model-best_median.ckpt
├── scene6-250-375/            # 地标250-374的模型
│   └── model-best_median.ckpt
├── scene6-375-500/            # 地标375-499的模型
│   └── model-best_median.ckpt
├── scene6-500-625/            # 地标500-624的模型
│   └── model-best_median.ckpt
├── scene6-625-750/            # 地标625-749的模型
│   └── model-best_median.ckpt
├── scene6-750-875/            # 地标750-874的模型
│   └── model-best_median.ckpt
├── scene6-875-1000/           # 地标875-999的模型
│   └── model-best_median.ckpt
└── scene6_1000-125_v10.txt    # 实验配置文件

2.3 实验配置文件

每个场景的实验配置文件包含模型参数信息:

# 示例:scene6_1000-125_v10.txt
scene6-000-125 1000 125 0 1000-125_v10
scene6-125-250 1000 125 1 1000-125_v10
scene6-250-375 1000 125 2 1000-125_v10
scene6-375-500 1000 125 3 1000-125_v10
scene6-500-625 1000 125 4 1000-125_v10
scene6-625-750 1000 125 5 1000-125_v10
scene6-750-875 1000 125 6 1000-125_v10
scene6-875-1000 1000 125 7 1000-125_v10

2.4 模型检查点文件

  • 格式:PyTorch 检查点文件 (.ckpt)
  • 内容:模型权重、优化器状态、训练统计
  • 大小:每个模型约 50-100MB

3. /data/outputs/ - 训练输出(生成)

3.1 训练输出结构

训练过程中自动生成的输出目录:

outputs/
├── scene6_1000-125_v10/       # 场景6的训练输出
│   ├── scene6-000-125/        # 地标0-124的模型输出
│   │   ├── model-best_median.ckpt  # 最佳模型
│   │   ├── model-last.ckpt         # 最新模型
│   │   ├── stats.pkl               # 训练统计
│   │   └── curve_train_test.png    # 训练曲线图
│   ├── scene6-125-250/        # 地标125-249的模型输出
│   │   └── ...
│   ├── scene6-250-375/        # 地标250-374的模型输出
│   │   └── ...
│   ├── scene6-375-500/        # 地标375-499的模型输出
│   │   └── ...
│   ├── scene6-500-625/        # 地标500-624的模型输出
│   │   └── ...
│   ├── scene6-625-750/        # 地标625-749的模型输出
│   │   └── ...
│   ├── scene6-750-875/        # 地标750-874的模型输出
│   │   └── ...
│   ├── scene6-875-1000/       # 地标875-999的模型输出
│   │   └── ...
│   └── scene6_1000-125_v10.txt # 实验配置文件
└── landmarks.txt              # 训练使用的地标坐标

3.2 训练统计文件

  • stats.pkl:包含训练过程中的损失、评估指标等统计信息
  • curve_train_test.png:训练曲线图,显示损失和评估指标的变化

3.3 模型文件

  • model-best_median.ckpt:在验证集上表现最佳的模型
  • model-last.ckpt:最后一个训练轮次的模型

4. 数据准备流程

4.1 下载数据集

  1. 访问 Indoor-6 Dataset
  2. 下载所有场景的数据文件
  3. 解压到 /data/indoor6/ 目录

4.2 下载预训练模型

  1. 访问 预训练模型
  2. 下载模型文件
  3. 解压到 /data/checkpoints/ 目录

4.3 创建输出目录

mkdir -p /data/outputs

5. 数据验证

5.1 检查数据集完整性

# 检查每个场景的图像数量
ls /data/indoor6/scene1/images/ | wc -l
ls /data/indoor6/scene2a/images/ | wc -l
# ... 其他场景

# 检查姿态文件数量
ls /data/indoor6/scene1/poses/ | wc -l
ls /data/indoor6/scene2a/poses/ | wc -l
# ... 其他场景

5.2 检查模型文件完整性

# 检查每个场景的模型文件
ls /data/checkpoints/scene1_1000-125_v10/
ls /data/checkpoints/scene2a_1000-125_v10/
# ... 其他场景

# 检查模型检查点文件
find /data/checkpoints/ -name "*.ckpt" | wc -l

6. 常见问题

6.1 数据下载问题

  • 问题:Google Drive 下载速度慢
  • 解决:使用下载管理器或分时段下载

6.2 文件权限问题

  • 问题:文件权限不足
  • 解决chmod -R 755 /data/

6.3 磁盘空间不足

  • 问题:磁盘空间不足
  • 解决:确保有至少 25GB 可用空间

6.4 文件损坏

  • 问题:下载的文件损坏
  • 解决:重新下载并验证文件完整性

7. 数据备份建议

7.1 重要文件

  • 原始数据集文件
  • 预训练模型文件
  • 训练输出和检查点

7.2 备份策略

  • 定期备份训练输出
  • 保存多个版本的模型检查点
  • 使用版本控制系统管理配置文件

注意:本目录结构是项目运行的基础,请确保所有必需的文件都已正确下载和放置。