We extracted affine covariant features from all images using the VLFeat library [1]} using tools from COLMAP [2]}, [3]}. We also create a dense mesh for each scene by first creating a dense point cloud using PatchMatch [4]} and then estimating a mesh surface for the point cloud [5]}. We used the OpenMVS software package for these steps [6]}. To assign a 3D point to each feature point in the training images, we projected the feature point onto the mesh using the ground truth camera pose. The normal vector for the point was then estimated by fitting a plane to the 100 nearest neighbor vertices on the mesh.
