﻿# 使用 RealityScan 完成相机对齐

### 步骤 0｜下载并安装 RealityScan

本教程使用 RealityScan 桌面版。官方通过 Epic Games Launcher 提供安装和版本管理，因此需要先安装 Launcher，并准备一个可登录的 Epic Games 账户。

官方下载与说明： [RealityScan 官方下载页](https://www.realityscan.com/download?lang=en-US) | [官方安装说明](https://dev.epicgames.com/documentation/realityscan/getting-realityscan?lang=en-US)

下载 Epic Games Launcher：打开 RealityScan 官方下载页，点击 Download Launcher，下载完成后运行安装程序并按照向导完成安装。如果电脑已经安装 Launcher，可直接进入下一项。

登录 Epic Games 账户：启动 Epic Games Launcher，使用现有 Epic Games 账户登录，或按提示创建新账户。未登录账户时无法安装 RealityScan。

在 Launcher 中找到 RealityScan：点击左侧导航栏的 Unreal Engine，再打开 RealityScan 标签页。选择要安装的版本；初次使用建议保留默认选择的最新稳定版本。

安装软件：点击 Install，阅读并接受界面显示的价格方案和最终用户许可协议；需要时点击 Browse 选择安装位置，然后再次点击 Install 开始下载与安装。

启动 RealityScan：安装完成后，在 RealityScan 标签页点击 Launch。成功进入软件主界面后，即可继续步骤 1 创建项目并导入素材。

## 准备数据

拍摄覆盖：相邻画面保持足够重叠；围绕主体连续移动，避免大跨度跳转。

画面质量：尽量减少运动模糊、反光、纯色区域和剧烈曝光变化；视频拍摄过程中不要频繁变焦。

文件管理：提前确定项目目录，导出后不要随意移动图片；JSON 中的图像路径必须仍能正确指向帧文件。

视频抽帧：截图示例使用 Jumps' length(s) = 0.500000，即每 0.5 秒提取一帧。间隔越小，帧越多、计算越慢；场景移动快时可适当缩短。

### 步骤 1｜打开 RealityScan，进入空白项目

启动 RealityScan 后进入 WORKFLOW 页面。左侧 Inputs 为空，中央是 3D 视图，顶部工具栏包含 Images、Folder、Align Images 和 Export 等入口。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1787198067604/fb1b3575" alt="图 1 RealityScan 新建项目的初始界面" />
  <figcaption>图 1 RealityScan 新建项目的初始界面</figcaption>
</figure>

检查点：确认当前项目没有残留输入或旧组件；建议先保存项目文件，便于中途恢复。

### 步骤 2｜导入视频或图片文件夹

可以把视频文件或图片文件夹直接拖入 RealityScan；也可以使用顶部 Images / Folder 按钮。拖入视频后会弹出 Import Video Sequence 对话框。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1787198067409/0426dd64" alt="图 2 视频导入与抽帧参数" />
  <figcaption>图 2 视频导入与抽帧参数</figcaption>
</figure>

建议设置：

  * 保存位置选择“在视频旁创建帧文件夹”后，RealityScan 会在原视频旁边创建一个抽帧图片文件夹，里面保存 frame000001.png 等帧图片。
  * 这个文件夹在步骤 10 上传 3DGS 训练资料时还会用到，请保留完整，不要删除、改名或随意移动。Jumps' length(s) 可先使用 0.5 秒；
  * 若导入的是已经整理好的照片文件夹，则直接保留该照片文件夹。

操作：确认参数后点击 OK。不要在导入过程中重命名或移动源视频、帧目录。

### 步骤 3｜等待视频拆分为图片

界面出现 Importing Video 进度条。处理时间取决于视频时长、分辨率、抽帧间隔和磁盘速度。可最小化进度面板，但不要中止程序。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1787198067351/4f8ff085" alt="图 3 RealityScan 正在导入视频并生成帧" />
  <figcaption>图 3 RealityScan 正在导入视频并生成帧</figcaption>
</figure>

检查点：进度完成后，左侧 Inputs 应出现连续命名的帧图像；若数量异常少，检查视频是否损坏或抽帧间隔是否过大。

### 步骤 4｜检查抽帧结果和图像质量

截图中共导入 121 images，文件名为 frame000001.png、frame000002.png 等。选中任意帧，在 2D 视图检查清晰度、曝光和主体覆盖。此时 Registered 通常仍为 No，因为尚未执行对齐。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1787198067503/2758b04e" alt="图 4 121 张视频帧已导入，等待相机对齐" />
  <figcaption>图 4 121 张视频帧已导入，等待相机对齐</figcaption>
</figure>

### 步骤 5｜点击 Align Images 开始相机对齐

在顶部 WORKFLOW 区域找到 Align Images。该步骤会检测特征、匹配图像并估计相机姿态，同时生成稀疏场景点。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1787198067810/d93b8b97" alt="图 5 点击顶部 Align Images" />
  <figcaption>图 5 点击顶部 Align Images</figcaption>
</figure>

### 步骤 6｜等待对齐完成并检查组件

界面显示 Aligning Images 时等待处理结束。图像越多、分辨率越高，耗时越长。对齐完成后，3D 视图应出现相机轨迹与稀疏点云。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1787198067725/c7ddd4cc" alt="图 6 RealityScan 正在执行图像对齐" />
  <figcaption>图 6 RealityScan 正在执行图像对齐</figcaption>
</figure>

成功标准：大多数图像显示 Registered，3D 视图中的相机分布连续，稀疏点能勾勒出目标场景。

多组件处理：若左侧出现多个 Component，说明图像组之间没有被完整连通。优先选择注册相机数最多且点云正确的组件；

### 步骤 7｜选中有效组件并打开 Export

截图中生成了多个组件：Component 0 为 12/121 cams，Component 1 为 107/121 cams，Component 2 为 2/121 cams。通常应选中最大且几何正确的 Component 1，然后点击顶部 \[3\] Output 区域的 Export。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1788428848562/image.png" alt="图 7 选择有效组件并点击 Export" />
  <figcaption>图 7 选择有效组件并点击 Export</figcaption>
</figure>

**不要忽略组件选择**

JSON 和 PLY 必须来自同一个有效组件。若分别从不同组件导出，两者的坐标系、相机数量和点云位置可能不一致。

### 步骤 8｜导出相机变换 JSON

在 Export Your Creation 窗口的 Camera Alignment 区域选择 Radiance Fields Transformation File（格式为json）。选择一个文件夹保存要导出的json&图片文件。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1788428908604/image.png" alt="图 8 选择 Radiance Fields Transformation File" />
  <figcaption>图 8 选择 Radiance Fields Transformation File</figcaption>
</figure>

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1788428924080/image.png" alt="图 8.1 确认导出时要同时导出图片文件" />
  <figcaption>图 8.1 确认导出时要同时导出图片文件</figcaption>
</figure>

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1788428940634/image.png" alt="图 8.2 导出成功后图片和json文件会在同一文件夹中" />
  <figcaption>图 8.2 导出成功后图片和json文件会在同一文件夹中</figcaption>
</figure>

在导出 Radiance Fields Transformation File 时，一定要选择导出图片，可将将导出的图片另存在在一个文件夹中。所有导出的图片名称与 Radiance Fields Transformation File文件中对应的图片名称一致，因此不可以修改这些图片的名称。

### 步骤 9｜导出稀疏点云 PLY

再次点击 Export，滚动到 Sparse Scene Structure 区域，选择 Sparse point cloud as Polygon File Format (*.ply)。保存为 sparse_points.ply 或下游工具要求的文件名。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1787198067555/bb4127a6" alt="图 9 选择 Sparse point cloud as Polygon File Format (*.ply)" />
  <figcaption>图 9 选择 Sparse point cloud as Polygon File Format (*.ply)</figcaption>
</figure>

### 步骤 10｜上传图片、JSON 和 PLY，提交 3DGS 训练

打开 Create 3DGS from images/video 窗口，填写 Project name，并在 Source Type 中选择 Photos。随后上传前面步骤得到、且来自同一个 RealityScan 对齐组件的三项训练资料。

  * **图片文件夹：** 在 Photos 区域点击 Select folder，选择步骤 8 中导出的图片文件。
  * **JSON 文件：** 展开 Advanced Training Files，在 Camera poses 一栏点击 Select .json，上传步骤 8 导出的 transforms.json。
  * **PLY 文件：** 在 Initial sparse point cloud 一栏点击 Select .ply，上传步骤 9 导出的 sparse_points.ply。

<figure class="doc-image doc-image--stack">
  <img src="https://docs-static.d5render.cn/t/18217684-957c-4109-9021-5866cc58cc60/u/7531f9aa-9f13-43a5-858c-19dac517bbc6/1787198067640/0fce9724" alt="图 10 在 3DGS 创建界面上传图片文件夹、相机位姿 JSON 和初始稀疏点云 PLY" />
  <figcaption>图 10 在 3DGS 创建界面上传图片文件夹、相机位姿 JSON 和初始稀疏点云 PLY</figcaption>
</figure>

**提交训练：** 确认三项文件均已显示为已选择，并检查项目名称无误，然后点击右下角 Start reconstruction，即可提交 3DGS 重建与训练任务。
