原文地址:  https://github.com/amir32002/3D_Street_View

说明:个人学习笔记,翻译整理自github/airsim.


  • 简介

该存储库共享包含6DOF相机姿态,8个城市的3D模型和扩展元数据的街景图像(2500万张图像和118万张匹配图像对)的大型数据集。 数据来自一系列匹配的图像; 匹配对的内容显示相同的物理点,而相机视点显示较大的基线(通常> 120度)。 该数据集可用于学习6DOF相机姿态估计/视觉测距,图像匹配以及各种3D估计。 您可以从下面的数据集中看到一些示例图像包以及更多示例。

通过开发一个系统,通过谷歌街景图像及其地理元数据来整合城市的地理参考三维模型,数据集自动收集,无需人工注释。 有关如何收集数据集的更多信息,请参阅[论文]。

论文连接:http://3drepresentation.stanford.edu/

  • 3D模型城市:

该数据集覆盖纽约,芝加哥,华盛顿,拉斯维加斯,佛罗伦萨,阿姆斯特丹,旧金山和巴黎市中心及周边地区。 我们将发布这些城市的3D模型以及街景图像和元数据。 这些模型是地理注册和手动生成的。 您可以在下面看到3D模型的示例快照。 你可以在这里看到更多的快照。

  • Paper

该数据用于以下文章以学习通用/通用3D表示法:

通过姿势估计和匹配的通用3D表示,Amir R Zamir,Tilman Wekel,Pulkit Agrawal,Jitendra Malik,Silvio Savarese,ECCV16。

Paper1:    Generic 3D Representation via Pose Estimation and Matching

http://cvgl.stanford.edu/papers/zamir_eccv16.pdf

Paper2:  Generic 3D Representation via Pose Estimation and Matching supplementary material

http://cs.stanford.edu/%7Eamirz/index_files/0633_supp.pdf

有关数据收集和方法的更多详细信息,请访问 http://3drepresentation.stanford.edu/

  • 数据概述Data Overview:

  • 该数据集包含2500万个谷歌街景图像,形成1.18亿个相应的对。我们在上述城市的密集网格中收集图像。根据城市的三维模型,我们在立面上密集采样点并执行射线追踪,以查找所有街景视图全景图,无需遮挡即可看到相同的目标点。对于每个图像,我们知道街景摄像头的地理位置以及聚焦目标点的位置。由于谷歌街景提供了360个全景图,我们计算标题和俯仰角,以便我们可以捕获640x640图像(全景图)部分,显示其中心的相应目标点。如果两个图像显示相同的物理目标点,则它们会形成一对。通常通过2-7个对应的街景图像观察每个目标点。图像由一个640x640 jpg以及一个包含元数据的相同名称的文本文件给出,例如相机和目标点的地理位置,到目标的距离或相机的姿态。图像的文件名将为街道视图位置和目标点编码唯一的ID。这允许轻松识别相应的图像。这些图像被压缩成多个zip文件,这样生成的文件大小不会超过最大值。
  • 测试集:

为了确保测试集的质量并保持评估不受自动数据收集引入的潜在错误的影响,测试集中的每个数据点都至少由三台亚马逊机械突击队进行验证,并删除了嘈杂的实例。程序和统计资料在补充材料中加以说明。测试对保证:

在两个补丁中显示相同的确切物理点(由Turkers重新验证)
    两个补丁中心之间的平移矢量的大小(由Turker点击位置重新测量)为<25像素(即图像宽度的〜4%),
    平移矢量中两个补丁中心之间的不确定性(通过Turker单击位置之间的差异测量)为<15像素(图像宽度的〜2%),

您可以下载几千个随机挑选的测试数据点[此处https://storage.googleapis.com/amirs/3Drep_dataset/testset_pairs_visualization_v1.zip]的可视化和准确性分析。下面您可以看到一些示例测试对,其中两个图像/补丁的中心应该匹配,三个Turker通过点击验证。详见[补充材料http://cs.stanford.edu/%7Eamirz/index_files/0633_supp.pdf]。

  • 噪音统计:

通过Amazon Mechanical Turk进行用户研究,分析最终数据集中的噪音特征并量化其数量。 研究和讨论的结果可以在[补充材料http://cs.stanford.edu/%7Eamirz/index_files/0633_supp.pdf]的第3.2节中找到。 这对有兴趣开发和评估方法的研究人员非常有用,这些方法能够自动大量使用,因此几乎无需收集数据,但代价是噪音适度。

  • 下载

请注意,通过下载此数据集,您同意非商业用途和许可证。
https://goo.gl/ERPCsa
数据集很大(800GB)。 为了使它更方便,它包含了多个包含图像和元数据的tar文件。 测试集和3D模型作为单独的文件夹提供。

  • 数据集结构

街景数据以包含元数据的图像和相应的文本文件的形式给出。数据存储在多个tar文件中,其中每个tar文件包含一个数据集的图像和元数据文件。数据集对应于地图上的矩形子区域。

对于每个街景点 - 目标点对应关系,都有一个图像和一个具有相同名称的文本文件。数据结构如下:

README.md
README.txt
\<DatasetID.tar>
<DatasetID>_<ImageID>_<ViewID>_<TargetID>.jpg
<DatasetID>_<ImageID>_<ViewID>_<TargetID>.txt
  • 编码ID的含义如下所述:

DatasetID <int>数据集的标识。数据集对应于地图上的矩形区域。

TargetID <int>数据集中唯一的目标点的ID。在名称中具有相同目标标识的图像在其中心显示相同的物理点。

PatchID <int>补丁本身的ID。一个补丁在一个数据集中有一个唯一的ID。

StreetViewID <int>街景视图位置的ID。街景位置在一个数据集内具有唯一的ID。该ID与地理位置唯一关联。

所有ID(数据集ID除外)在一个数据集中唯一唯一。整个文件名始终是唯一的。

图像被采集,使得3D目标点应该被投影到中心像素(直到可能的对准误差)。

该文本文件包含两行(谷歌元数据和对齐信息)。第一行以d开头,第二行以a开头。这些行包含空格分隔的数字。

数字的含义在下面解释,与文件中的顺序相同:

  • Google元数据(d)

DatasetID <int>数据集的标识。数据集对应于地图上的矩形区域。

TargetID <int>数据集中唯一的目标点的ID。在名称中具有相同目标标识的图像在其中心显示相同的物理点。

PatchID <int>补丁本身的ID。一个补丁在一个数据集中有一个唯一的ID。

StreetViewID <int>街景视图位置的ID。街景位置在一个数据集内具有唯一的ID。该ID与地理位置唯一关联。

Target Point<3x1 double>目标点在全球地理参照系(纬度,经度,高度)中定义,其中经度和纬度以十进制度给出,高度以米为单位给出。

Target Surface Normal<3x1 double>底层几何图形的法向矢量(例如建筑物的正面)。类似于曲面法线,矢量被标准化为1。法线也是在全球坐标系统(WebMercator)中定义的,

Street View Location<3x1 double>相应街景全景的位置。经度和纬度以十进制度数给出。高度以米为单位给出。

Distance to Target<double>街景位置和目标点之间的距离(以米为单位)。

Heading<double>以度为单位的街景摄像头的标题

Pitch<double>街景相机的间距,以度为单位

Roll <double>以度为单位的街景摄像机滚动(始终为零)

标题,俯仰和滚动Heading, pitch, and roll描述(虚拟)街景摄像机的绝对方向,以使目标点聚焦在图像的中心。方向以绝对角度给出。

给定街景位置的整个图像是球形的。我们使用的图像只是该球体的一个矩形区域。

Heading: 0 means north, 180 means south
Pitch:0表示看起来平行于地面,-90表示向地面看,90看向天空。

  • 对齐数据(a)

这些图像有两个版本发布:原始(没有内容对齐)和对齐(与内容对齐,以减少元数据缺陷造成的问题)。 第二行包含有关对齐后处理的信息。 如果文本文件不包含该行,则不应用后处理。

我们应用后期处理步骤来补偿由于谷歌街景中的注册错误或导致遮挡的未报告结构导致的图像对齐不准确。 该算法估计并对图像应用线性变换以消除未对准。 粗略地说,对于给定的目标点,算法选取一个对应的街景作为参考,并尝试对齐所有其他视图,以使目标点投影到所有视图的相同图像位置。 请注意,并非所有图像都可以被处理。

Corrected Patch Center <2x1 double>
New (aligned) location of the target point in the given street view image

Warp Matrix <3x3 double>
Matrix that rectifies the street view image such that the target normal is orthogonal to the viewing plane

Bounding Box Coordinates <4x2 double>
coordinates of the virtual, unaligned bounding box in the image. The
bounding box represents a region on the infinite plane in space that is
defined by target point and normal. The bounding box has the same size
(in meters) for one target id.

Registration Matrix <3x3 double>
matrix that transforms the given street view image, such that the target
point is projected to the image center. (in order to align the image,
we could either move the projection of the target point or transform the
image)

The following quantities are heuristically used to say something
about the quality and the reliability of the registration process:

Total Sift Flow Energy <int>
Total energy of the sift flow algorithm that registers the warped street view images. The lower the better.

Transformation Inlier Ratio <double>
Inlier ratio of the RANSAC algorithm that founds the best fitting
projective transformation matrix for the flow field computed by SIFT
flow. The higher the better.

Similarity Measure <double>
Standard similarity measure (ssi) of the warped and registered image and the warped reference image. The higher the better.

Distortion <double>
Lets assume that we define a square-shaped bounding box in the reference
view and transform it by the resulting registration matrix R. B' = R *
B. Distortion is the ratio of the area of B' and B. Defined to be
between 0 and 1. The higher the better.

Corrected Bounding Box <4x2 double>
Aligned version of <bounding box coordinates 4x2 double>.

  • Citations

If you use this dataset please cite:

@inproceedings{zamir2016generic,
title={Generic {3D} representation via pose estimation and matching},
author={Zamir, Amir R and Wekel, Tilman and Agrawal, Pulkit and Wei, Colin and Malik, Jitendra and Savarese, Silvio},
booktitle={European Conference on Computer Vision},
pages={535--553},
year={2016},
organization={Springer}
}

<airsim文档学习> Street View Image, Pose, and 3D Cities Dataset的更多相关文章

  1. EasyUI文档学习心得

    概述 jQuery EasyUI 是一组基于jQuery 的UI 插件集合,它可以让开发者在几乎完全不需要CSS以及复杂的JS代码情况下完成美观且功能强大的Web界面. 本文主要说明一些如何利用Eas ...

  2. Spring文档学习

    Spring文档学习 参考Spring Framework Documentation学习 1. IoC 容器 1.1 容器实例化 <beans> <import resource= ...

  3. <文档学习>AirSim/using_car.md Choosing Your Vehicle: Car or Multirotor

    如何在AirSim中使用汽车 默认情况下,AirSim中使用的车型为多转子multirotor. 如果你想使用汽车,那么只需在你的settings.json(https://github.com/Mi ...

  4. 这可能是最详细的 iOS 学习入门指南(含书目/文档/学习资料)

    1 零基础小白如何进行 iOS 系统学习 首先,学习目标要明确: 其次,有了目标,要培养兴趣,经常给自己一些正面的反馈,比如对自己的进步进行鼓励,在前期小步快走: 再次,学技术最重要的一点就是多动手. ...

  5. Cassandra1.2文档学习解读计划——为自己鼓劲

    最近想深入研究一下Cassandra,而Cassandra没有中文文档,仅有的一些参考书都是0.7/0.6版本的.因此有个计划,一边学习文档(地址:http://www.datastax.com/do ...

  6. 《MATLAB从入门到放弃》二维曲线和图形绘制基础(二):使用Help文档学习line、plot、plotyy、subplot、hold绘图函数

    目录: »  plot 最常用的二维曲线绘图函数 >  帮助文档 >  基本使用语法 >  线条的样式.符号和颜色调整 >  图形属性调整 >  使用图形句柄进行设置 » ...

  7. 通过程序校验xml文档学习笔记

    校验xml文档,可以通过程序来校验,利用一段js代码即可. 各行代码的含义已经写出,运行这个html文件,检验如下xml代码: 结果如下: 如果xml文档出现错误: 结果如下: 其中,obj.asyn ...

  8. Nodejs v4.x.0API文档学习(2)Assert断言测试模块

    文档参考地址:https://nodejs.org/dist/latest-v4.x/docs/api/ Assert(断言) assert模块提供了一组简单的断言测试方法,可以拥有测试不变量.该模块 ...

  9. Nodejs v4.x.0API文档学习(1)简介

    文档参考地址:https://nodejs.org/dist/latest-v4.x/docs/api/ 简介 下面是用nodejs编写的一个web服务的例子,返回"Hello World& ...

随机推荐

  1. torch随机数 manual_seed

    import torch seed = 2018 torch.manual_seed(seed) torch.cuda.manual_seed(seed) a=torch.rand([1,5]) # ...

  2. 安装archlinux的linux命令记录

    磁盘的分区:cfdisk 格式化分区:mkfs.ext4,mkswap,swapon 查看所有分区:lsblk /dev/sda 先挂载 / 分区:mount /dev/sda1 /mnt archl ...

  3. 第五篇——Struts2的默认Action

    默认Action 1.当访问action不存在时,可以通过制定默认action的方式避免出现错误代码页面: 2.使用default-action-ref 指定默认 action. 项目实例 1.项目结 ...

  4. vue mand-mobile ui Stepper步进器默认值传字符串进去不起作用

    vue mand-mobile ui Stepper步进器默认值传字符串进去不起作用 Stepper 步进器 的默认值有没有弄过的,看了组件只能默认数字的,传字符串进去不起作用<div slot ...

  5. ili9325--LCD寄存器配置研究

    2011-06-22 22:18:12 自己根据ili9325的规格书编写驱动.发现LCD屏没显示.于是怀疑是某些寄存器设置错误.要调试的话最好还是先熟悉寄存器的作用,调试的时候只要看到现象就能分析了 ...

  6. springMVC学习之路4-最后的征程:整合hibernate

    今天小编很开心,因为学习springMVC基础的路终于走到了尽头,也成功搭建了一个SSH框架,暗自在心里默默地开心了1秒钟. 好了,回归正题:整合Hibernate.上一节,我为大家分享我整合spri ...

  7. 处理centos6或者7依赖关系(Nginx、MySQL、PHP)的方法

     yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel  ...

  8. Java正则表达式草稿程序*2

    1.成绩统计. 输入文件input.txt: 张三 语文12 数学31 英语11 李四 语文22 数学22 英语22 王五 语文33 数学33 英语33 期待输出output.txt: 张三 语文12 ...

  9. Linux 系统TCP连接内存大小限制 调优

    系统TCP连接内存大小限制 TCP的每一个连接请求,读写都需要占用系统内存资源,可根据系统配置,对TCP连接数,内存大小,限制调优. 查看系统内存资源 记录内存 详情:cat /proc/meminf ...

  10. Uncaught SyntaxError: Unexpected token <解决方法

    最近剥离基础框架的公共部分,早上有个页面部分流程未加载出来,报了Uncaught SyntaxError: Unexpected token <,网上搜了下 错误原因:js脚本中非正常引用外部的 ...