Github 项目推荐 | 真实全景图像强化学习 AI 平台 —— Matterport3DSimulator
请访问官网(https://bringmeaspoon.org/)获取最近的更新和 Demo。
这是早期发布的开发代码,官方可能会做一些重大的改变,尤其是考虑与 ParlAI 和 OpenAI Gym 整合之后。
特征
- 数据集由 90 个不同的室内环境组成(包括住宅、办公室、酒店、教堂)
- 所有的图像都是真实的,不是合成的(提供更多的视觉复杂度)
- 用于 C++ 和 Python 的 API
- 可定制的图像分辨率、相机参数等
- 支持使用 OpenGL 的 GPU 渲染,以及使用 OSMESA 的离屏(off-screen)CPU 渲染。
参考
Matterport3DSimulator 和 Room-to-Room (R2R) 导航数据集在下述的论文中有详细描述:
https://arxiv.org/abs/1711.07280
如果你要使用模拟器或者数据集,请引用以下论文:
@article{mattersim,
title={{Vision-and-Language Navigation}: Interpreting visually-grounded navigation instructions in real environments},
author={Peter Anderson and Qi Wu and Damien Teney and Jake Bruce and Mark Johnson and Niko S{"u}nderhauf and Ian Reid and Stephen Gould and Anton van den Hengel},
journal={arXiv preprint arXiv:1711.07280},
year={2017}
}
安装
前提
有 C++11 支持的 C++ 编译器是必要的,另外,Matterport3DSimulator 有以下的依赖关系:
- OpenCV >= 2.4 including 3.x
- OpenGL
- OSMesa
- GLM
- Numpy
- pybind11 for Python bindings
- Doxygen for building documentation
举个例子,在 Ubuntu 上安装依赖关系:
sudo apt-get install libopencv-dev python-opencv freeglut3 freeglut3-dev libglm-dev libjsoncpp-dev doxygen libosmesa6-dev libosmesa6
Clone Repo
Clone Matterport3DSimulator 库:
# Make sure to clone with --recursive
git clone --recursive https://github.com/peteanderson80/Matterport3DSimulator.git
cd Matterport3DSimulator
如果你没有使用 --recursive 标志进行克隆,则需要从顶级目录手动克隆 pybind 子模块:
git submodule update --init --recursive
目录结构:
- connectivity: Json navigation graphs.
- webgl_imgs: Contains dataset views rendered with javascript (for test comparisons).
- sim_imgs: Will contain simulator rendered images after running tests.
- models: Caffe models for precomputing ResNet image features.
- img_features: Storage for precomputed image features.
- data: You create a symlink to the Matterport3D dataset.
- tasks: Currently just the Room-to-Room (R2R) navigation task.
下载数据集
要使用 Matterport3DSimulator,必须先下载 Matterport3D 数据集(https://niessner.github.io/Matterport/),或者下载预先计算的 ResNet 图像特征并使用离散化的视点。
编译
用 Cmake 来构建 OpenGL
mkdir build && cd build
cmake ..
make
cd ../
用 Cmake 构建 OSMESA
mkdir build && cd build
cmake -DOSMESA_RENDERING=ON ..
make
cd ../
要为doxygen目录中的 C ++ 类构建 html 文档,请运行以下命令并导航到 doxygen / html / index.html:
doxygen
Demo
这些是非常简单的 Demo 演示,旨在说明模拟器如何在 Python 和 C++ 中使用
Python demo:
python src/driver/driver.py
C++ demo:
build/mattersim_main
运行测试
build/tests
如果你没有安装 Matterport3D 数据集,则需要跳过渲染测试:
build/tests exclude:[Rendering]
其他的配置和用法,请参考 Catch 文档:https://github.com/philsquared/Catch
任务
目前模拟器只支持一项任务:Room-to-Room (R2R) 导航任务
请参阅具体的指导来设置和运行此任务:
https://github.com/peteanderson80/Matterport3DSimulator/blob/master/tasks/R2R/README.md
详细信息请访问 Matterport3DSimulator 官方 Github 页面:
https://github.com/peteanderson80/Matterport3DSimulator。
- Java常用工具类之自定义访问对象
- quartz定时任务,已过期的内容自动下线
- http请求,HttpClient,调用短信接口
- Java常用工具类之压缩解压
- Java常用工具类之MD5加密
- Java常用工具类之发送邮件
- Spring Boot入门
- IDEA使用
- JFinal极速开发框架使用笔记(二) 两个问题,一个发现
- JFinal极速开发框架使用笔记(三) 分析Model和ActiveRecord
- JFinal极速开发框架使用笔记(四) _JFinalDemoGenerator实体类生成及映射自动化
- Python语言做数据探索教程
- Java常用工具类之时间转换(注释乱码,全)
- Java常用工具类之RegexpUtils,正则表达式工具类
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Gradle初体验
- hexo初始化
- 容器部署Spring Cloud项目
- Python 爬虫篇-爬取网页中的图片,图片爬取实例演示。
- Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片,深入剖析
- Python+selenium 自动化-基本环境搭建
- Java多线程与并发笔记
- Python 技术篇-pygame库实现播放音乐,带漂亮小界面!
- Java底层:GC相关
- Python 技术篇-pygame界面添加图片不显示,原因及解决办法
- SpringBoot集成Graylog
- Python 技术篇-pygame播放音乐没有声音,原因及解决办法
- Docker安装Graylog
- Spring Batch快速入门
- Python 技术篇-用PIL库修改图片尺寸