一种自动化管道,用于从等距矩形图像创建 3D 体验
https://medium.com/@prateekchhikara?source=post_page---byline--b0a6d2f7d638--------------------------------https://towardsdatascience.com/?source=post_page---byline--b0a6d2f7d638-------------------------------- Prateek Chhikara
·发表于Towards Data Science ·阅读时间 11 分钟·2024 年 3 月 18 日
–
1. 引言
由于互联网的便利性,尤其是在印度等国家,在线房地产工具的需求急剧增加。许多在线房地产平台供房主、开发商和房地产经纪人发布买卖和租赁目的的房产信息。每天,这些平台都会收到 8,000 到 9,000 个新的房源信息。直到现在,用户在这些平台上查看的是图像、快照或视频,这可能无法建立足够的信心来做出决策并最终完成交易。为了解决这一挑战并提升用户体验,虚拟导览是一个潜在的解决方案。
虚拟导览是将图像连接在一起,让观众能够远程体验特定地点(一个常见的例子是 Google 街景)[1]。近年来,虚拟导览的需求不断增加,因为它们能提供更好的用户/客户互动,尤其是在房地产、酒店、餐厅、大学、学校等商业领域[2]。大致而言,虚拟导览可以分为三类:
-
2D 视频导览,
-
360°视频基础虚拟导览,以及
-
基于 360°静态图像的虚拟导览。
与 2D 视频导览和基于 360°视频的导览相比,静态的等距矩形图像基础虚拟导览提供了更多的沉浸感和互动性,从而有助于更好的决策并避免不必要的访问。
🚀 在深入探讨提议的工作之前,我想提到的是,本项工作已经发表,并可以在数据科学与数据管理国际会议(CODS-COMAD)——2023上查阅。✨✨✨
图 1: 在房屋入口处拍摄的等距矩形图像示例,显示了客厅。(来源:作者提供的图像)
通常,创建虚拟旅游的流程包括以下组件:
-
等距矩形图像捕捉: 等距矩形图像将球形物体表示为二维图像(如图 1*所示)。它是一个包含 180°垂直和 360°水平视角的球形全景。一个简单的例子可以是将地球(一个球形物体)投影到二维地图上。这些图像是通过使用 360◦相机拍摄的,例如Ricoh-Theta、Insta3602等。
-
连接等距矩形图像: 对于任何位置,我们都会有多个等距矩形图像。以房地产为例,我们通常有卧室、客厅、厨房、餐厅等的等距矩形图像。必须在图像之间建立导航,以提供完整的“虚拟漫游”体验。此外,从一个位置到其他位置可能有多条路线。例如,我们可以从客厅走到厨房、卧室、阳台等。因此,连接所有等距矩形图像至关重要(请参见 图 2 以了解示例)。通常,这一过程是手动完成的,既昂贵又耗时[3]。
-
发布虚拟旅游: 一旦我们完成了等距矩形图像之间的连接,就可以将最终的虚拟旅游发布到云端或应用程序中。
图 2: 示例房产平面图(a)及其连接(b)以创建数字旅游。数字代表标签和等距矩形图像的位置。(来源:作者提供的图像)
在自动化上述流程时,面临的一个重大挑战是手动注释以连接等距矩形图像。通常,创建一个虚拟旅游需要超过 20 分钟。我们提出了一种端到端的流程,用于房地产等距矩形图像(称为 DIGITOUR)以克服创建自动化数字旅游的挑战。DIGITOUR流程包含以下组件:
-
彩色标签放置与点击 360°图像: 我们提出了一种新型的双色标签,带有编号,便于更好地学习下游计算机视觉任务(即标签识别和数字识别)以及等距矩形图像的自动拼接。
-
将等距矩形图像映射到立方体映射投影: 我们使用公开的 Python 库vrProjector3将等距矩形图像映射到它们的立方体映射投影(对应六个立方体面)。
-
标签检测: 对于每个立方体面,我们提出了在图像中使用 YOLOv5 [4]架构进行彩色标签检测。
-
数字识别: 我们建议使用轻量级的定制 MobileNet [5] 模型进行数字识别。
最后,我们使用检测到的标签将所有等距矩形图像连接起来。
图 3: 提议方法 DIGITOUR 的端到端流程。(来源:作者提供的图片)
2. 提议的流程:DIGITOUR
生成数字化旅游的完整流程(称为 DIGITOUR ,如图 3*所示)如下。
2.1 标签放置和图像捕捉
在为任何房地产物业创建数字化旅游时,必须从不同的物业位置(如卧室、客厅、厨房等)拍摄 360◦图像,然后自动将它们拼接在一起,以便在不亲自到场的情况下获得“虚拟游览”体验。因此,为了连接多个等距矩形图像,我们建议在地面上放置纸质标签,覆盖物业的每个位置,并将相机(在我们的案例中,我们使用了 Ricoh-Theta)放置在场景的中央,以捕捉整个场景(前、后、左、右和底部)。
图 4: 提出了每个数字的双色标签格式和颜色方案及其对应的 HSV 值。(来源:作者提供的图片)
此外,我们确保场景中没有任何噪音元素,例如昏暗的灯光和‘不需要的’伪影,以便更好地进行模型训练和推理。如图 4所示,我们将标签标准化为 6” × 6”的尺寸,并具有两个属性:
-
它们被编号,这将帮助摄影师按顺序放置标签并
-
它们是双色的,旨在将数字识别问题表述为分类任务,并促进下游计算机视觉任务(即标签检测和数字识别)的更好学习。
请注意,使用 HSV 颜色方案为每个数字(从 0 到 9)分配了不同的颜色,并且标签的前导数字有一个黑色圆圈,以将其与后续数字区分开,如图 4所示。标准化纸质标签的直觉是,它可以用来训练标签检测和数字识别模型,这些模型对失真、标签放置角度、光源反射、模糊条件和相机质量不变。
2.2 将等距矩形图像映射到立方体图投影
等距矩形图像由一张图像组成,其宽度与高度的比例为 2:1(如图 1所示)。在我们的案例中,图像是使用 Ricoh-Theta 相机拍摄的,尺寸为 4096 × 2048 × 3。通常,等距矩形图像中的每个点对应于球面上的一个点,图像在‘纬度’方向上被拉伸。由于等距矩形图像的内容被扭曲,因此直接从图像中检测标签和识别数字变得困难。例如,在图 1*中,标签在图像的中下部被拉伸。因此,有必要将图像映射到一个失真较小的投影上,并返回到原始的等距矩形图像中以构建数字化旅行。
在本研究中,我们提出使用立方体映射投影,这是一个由六张图像组成的集合,表示立方体的六个面。在这里,球面坐标空间中的每个点对应于立方体某个面的一个点。如图 5所示,我们将等距矩形图像映射到一个具有 1024 × 1024 × 3 尺寸的立方体的六个面(左、右、前、后、上、下),并使用 Python 库 vrProjector 完成此操作。
图 5: 将等距矩形图像转换为其对应的六面立方体投影。 (来源:作者提供的图像)
2.3 标签检测
一旦我们获得了对应立方体六个面的六张图像,我们就可以检测每个图像中放置的标签的位置。对于标签检测,我们使用了最先进的 YOLOv5 模型。我们首先使用 COCO 权重初始化网络,然后在我们的数据集上进行训练。如图 6所示,模型将图像作为输入,并返回检测到的标签以及边界框的坐标和预测的置信度。该模型在我们的数据集上进行了 100 轮的训练,批次大小为 32。
图 6: 使用 Yolov5 进行标签检测。 (来源:作者提供的图像)
2.4 数字识别
对于检测到的标签,我们需要识别标签上的数字。在现实环境中,检测到的标签可能具有不正确的方向、较差的亮度、房间内灯泡的反射等。由于这些原因,使用光学字符识别(OCR)引擎进行数字识别可能无法获得良好的性能。因此,我们使用了一个自定义的 MobileNet 模型,该模型在 Imagenet 权重上进行了初始化,并利用标签中的颜色信息来进行数字识别。在所提出的架构中,我们将原始 MobileNet 的最终分类块替换为包含 20 个节点的 Dropout 层和 Dense 层,代表我们从 1 到 20 的标签。图 7展示了所提出的架构。为了训练模型,我们使用 Adam 作为优化器,学习率为 0.001,折扣因子(𝜌)为 0.1。我们使用了类别交叉熵作为损失函数,批次大小设置为 64,训练轮数为 50。
图 7: 使用自定义 MobileNet 模型进行数字识别。(来源:作者提供的图像)
2.5 标签坐标映射到原始 360°图像并创建虚拟导览
一旦我们检测到标签并识别了数字,我们使用 Python 库 vrProjector 将立方体映射坐标映射回原始的等距矩形图像。一个示例输出如图 8所示。对于每个等距矩形图像,检测到的标签形成一个图的节点,节点之间有边连接。在同一物业的后续等距矩形图像中,随着更多标签的检测,图中会加入更多的节点。最后,我们根据识别出的数字将多个等距矩形图像按顺序连接起来,得到的图就是
如**图 2(b)**所示的虚拟导览。
图 8: 标签映射到原始等距矩形图像。(来源:作者提供的图像)
4. 数据集
我们通过在印度古尔冈(Tier 1 城市)的几处住宅物业中放置标签并使用 Ricoh-Theta 相机拍摄等距矩形图像来收集数据。在收集图像时,我们确保满足一定的条件,如所有门都打开,灯光开启,‘不需要’的物品已移除,标签被放置在覆盖物业各个区域的位置。遵循这些指示,每处住宅物业拍摄的等距矩形图像平均为 7 到 8 张。最后,我们在以下生成的数据集上验证了我们的方法(基于标签的背景颜色)。
-
绿色标签: 我们将这些标签的背景颜色(编号 1 至 20)设置为绿色。我们从 212 个物业中收集了 1572 张等距矩形图像。一旦我们将这些等距矩形图像转换为立方体投影,就得到了 9432 张图像(对应立方体面)。由于并非所有立方体面都有标签(例如顶部面),我们得到了 1503 张至少包含一个标签的图像。
-
建议的双色标签(见图 4): 对于这些标签,我们从 350 个物业中收集了 2654 张等距矩形图像。最终,我们得到了 2896 张图像(对应立方体面),每张图像至少包含一个标签。
最后,我们使用LabelImg为立方体投影图像中的标签进行标注,它是一个开源工具,支持对 Pascal VOC 和 YOLO 等多种格式的图像进行标注。在所有实验中,我们将 20%的数据用于测试,其余用于训练。
5. 端到端评估
对于任何输入图像,我们首先检测标签,然后识别标签上的数字。通过这个过程,我们能够识别真正的正例(标签正确检测并读取)、假正例(标签检测到但读取错误)和假负例(标签未检测到)。在 0.5 IoU 阈值下,获得的 mAP、精确度、召回率和 f1-score 分别为 88.12、93.83、97.89 和 95.81。请注意,所有指标都是在所有 20 个类别上进行平均(加权)的。如果一个物业的所有等矩形图像中的标签都能正确检测和读取,我们将得到 100%准确的虚拟游览,因为图的所有节点都被检测到,并与它们的适当边连接。在我们的实验中,我们能够为 94.55%的物业准确生成 100%准确的虚拟游览。不准确的原因是彩色伪影被误检测为标签,以及糟糕的光照条件。
图 9 展示了 Yolov5 模型在基于绿色和双色标签的标签检测上的性能。此外,关于数字识别的实验和模型比较见于图 10。
图 9: 标签检测性能(%)。 (来源:作者提供的图片)
图 10: 在双色标签数据集上,针对数字识别任务的不同最先进模型的比较。(来源:作者提供的图片)
5. 结论
我们提出了一个端到端的流水线(DIGITOUR),用于自动生成房地产物业的数字化导览。对于任何这样的物业,我们首先在物业的每个区域放置我们提议的双色纸质标签。然后,我们拍摄等矩形图像,并将这些图像映射到失真较小的立方体图像上。一旦我们得到与立方体面相对应的六张图像,我们使用 YOLOv5 模型检测标签的位置,随后使用 MobileNet 模型进行数字识别。下一步是将检测到的坐标及识别的数字映射回原始的等矩形图像。最后,我们将所有等矩形图像拼接起来,构建虚拟导览。我们已经在一个真实世界的数据集上验证了我们的流水线,并展示了端到端流水线在所有类别上,基于 0.5 IoU 阈值下的 mAP 和 f1-score 分别为 88.12 和 95.81 的表现。
如果您觉得我们的工作有帮助并在您的项目中使用它,我们恳请您引用我们的工作。😊
@inproceedings{chhikara2023digitour,
title={Digitour: Automatic digital tours for real-estate properties},
author={Chhikara, Prateek and Kuhar, Harshul and Goyal, Anil and Sharma, Chirag},
booktitle={Proceedings of the 6th Joint International Conference on Data Science \& Management of Data (10th ACM IKDD CODS and 28th COMAD)},
pages={223--227},
year={2023}
}
参考文献
[1] Dragomir Anguelov, Carole Dulong, Daniel Filip, Christian Frueh, Stéphane Lafon, Richard Lyon, Abhijit Ogale, Luc Vincent, and Josh Weaver. 2010. Google 街景:捕捉街道层面的世界。计算机 43, 6 (2010), 32–38.
[2] Mohamad Zaidi Sulaiman, Mohd Nasiruddin Abdul Aziz, Mohd Haidar Abu Bakar, Nur Akma Halili, 和 Muhammad Asri Azuddin. 2020. Matterport:虚拟旅游作为疫情期间房地产行业的新营销方法。在 2020 年国际媒体与视觉设计创新会议(IMDES 2020)上发表。Atlantis Press, 221–226。
[3] Chinu Subudhi. 2021. 尖端的 360 度虚拟旅游。www.mindtree.com/insights/resources/cutting-edge-360-degree-virtual-tours
[4] Glenn Jocher, Ayush Chaurasia, Alex Stoken, Jirka Borovec, NanoCode012, Yonghye Kwon, TaoXie, Jiacong Fang, imyhxy, Kalen Michael, Lorna, Abhiram V, Diego Montes, Jebastin Nadar, Laughing, tkianai, yxNONG, Piotr Skalski, Zhiqiang Wang, Adam Hogan, Cristi Fati, Lorenzo Mammana, AlexWang1900, Deep Patel, Ding Yiwei, Felix You, Jan Hajek, Laurentiu Diaconu, 和 Mai Thanh Minh. 2022. ultralytics/yolov5: v6.1 — TensorRT, TensorFlow Edge TPU 和 OpenVINO 导出与推理。
[5] Mark Sandler, Andrew Howard, Menglong Zhu, Andrey Zhmoginov, 和 LiangChieh Chen. 2018. Mobilenetv2: 反向残差与线性瓶颈。发表于 IEEE 计算机视觉与模式识别会议论文集。4510–4520。
534

被折叠的 条评论
为什么被折叠?



