一个iOS应用程序,使用ARKit为NeRF收集/流式传输摆姿势的图像

新射频捕获

收集NeRF数据集很困难。NeRF Capture是一款iOS应用程序,允许任何iPhone或iPad快速收集或流式传输摆姿势的图像到InstantNGP。如果您的设备具有激光雷达,则深度图像也将保存/流式传输。该应用程序有两种模式:离线和在线。在离线模式下,数据集将保存到设备中,并且可以在 NeRFCapture 文件夹中的文件应用程序中访问。在线模式使用CycloneDDS在网络上发布摆出的图片。然后,Python脚本收集图像并将其提供给InstantNGP。

我们正在努力将该应用程序放在App Store上,并使数据收集更加方便。在此之前,您需要在带有XCode的Mac上克隆此存储库,并将其手动加载到iOS设备中。

在线模式

使用重置按钮将坐标系重置为照相机的当前位置。这需要一段时间;等到跟踪初始化后再离开。

将应用切换到联机模式。在运行 InstantNGP 的计算机上,请确保 CycloneDDS 安装在运行 pyngp 的同一 python 环境中。需要OpenCV和Pillow来保存和调整图像大小。

pip install cyclonedds
pip install opencv-python
pip install Pillow

通过在终端中运行,检查计算机是否可以看到网络上的设备:

cyclonedds ps

Lastly increase the receive buffer size to get the messages across faster:

sudo sysctl -w net.core.rmem_max=2147483647

See here for details.

To get started, copy one of the scripts in nerfcapture/scripts to instant_ngp/scripts where pyngp can be imported. Run the script in the same way you would run the run.py that comes with InstantNGP. Wait until NeRFCapture displays that a connection has been established (This can take a few seconds). You can press the Send button to publish the current frame to InstantNGP. You have to press the send button everytime you want to capture another frame. Automatic streaming is not yet enabled. Note that it may take up to half a second for your image to transfer depending on your network.

There are two scripts made available. The first nerfcapture_stream, will build the NeRF with new images while your session is running. The second will simply capture your frames and save them to a dataset. You can then drag that dataset into InstantNGP.

Offline Mode

In Offline mode, clicking start initializes the dataset. Take a few images then click End when you’re done. The dataset can be found as a zip file in your Files App in the format that InstantNGP expects. Unzip the dataset and drag and drop it into InstantNGP. We have found it farely difficult to get files transferred from an iOS device to another computer so we recommend running the app in Online mode and collecting the dataset with the nerfcapture_dataset.py script.

GitHub

点击跳转