HorizonNet 项目介绍
项目背景
HorizonNet是一个用于学习房间布局的创新项目。它的独特之处在于使用了一维表示法和全景拉伸数据增强技术。最初提出于2019年的CVPR会议上,HorizonNet通过对房间全景图像的分析,能够识别出房间的布局结构,为家居设计、3D建模等领域提供技术支持。
项目特点
HorizonNet项目的实现完全基于Python编写,其功能包括:
- 图像推断:可以从用户上传的图像中提取立方体或泛形状的房间布局。
- 3D布局查看器:用户可以通过3D视角查看识别出的房间布局。
- 校正旋转姿态:确保房间与Manhattan坐标系对齐。
- 全景图像拉伸增强:可以将此方法应用到用户自己的任务中。
- 量化评估:能够对2D和3D交并比、角误差和像素误差进行量化评估。
- 自定义数据集准备和训练:用户可以自行准备数据集,并对模型进行训练。
方法概述
HorizonNet采用了一种创新的处理管线,通过将房间布局转化为一维信号进行处理,并结合深度学习模型,实现对房间全景图像的精确布局识别。
安装及依赖
用户需要根据自己的机器环境安装Pytorch,项目测试的版本为Pytorch 1.8.1,Python版本为3.7.6。此外,项目依赖多个Python库,如numpy、scipy、opencv-python等,用户需根据项目说明进行安装配置。
数据集下载和准备
HorizonNet支持多个数据集用于训练和验证,包括PanoContext/Stanford2D3D、Structured3D和Zillow Indoor等。项目文档中详细提供了如何下载和准备这些数据集的教程。
预训练模型
项目为用户提供多个预训练模型,这些模型在不同的数据集上进行过训练,并可用于快速推断和测试。这些模型包括:
- PanoContext/Stanford2D3D数据集的模型
- Structured3D数据集的模型
- Zillow Indoor数据集的模型
如何在自己的图像上进行推断
用户可以使用项目提供的推断脚本对自己的全景图像进行预处理和布局预测。具体步骤包括图像预处理、布局估计和3D可视化。用户需按项目中的指令运行相应的Python脚本,以获得图像的房间布局结果。
自定义数据集和训练
项目允许用户导入自定义的数据集,并通过提供的训练脚本对模型进行训练。这样可以根据特定应用需求调整模型性能。
量化评估
对于立方体布局和一般布局,项目提供了详细的量化评估方法,用户可以计算3D交并比及其他误差指标,以评估模型的准确性。
开发计划与致谢
项目团队计划提升预处理脚本的速度,并感谢贡献者的帮助和建议。特别感谢ChiWeiHsiao对项目的贡献。
引用格式
如果在研究中使用了HorizonNet,请参照项目提供的引用格式对其进行引用。