原文链接:武大+CMU最新开源!全面支持平面/鱼眼/球面相机的实时统一线段检测算法
大家好,今天给大家介绍一篇武汉大学和卡内基梅隆大学联合发布的论文,论文名称:Li, Hao and Yu, Huai and Wang, Jinwang and Yang, Wen and Yu, Lei and Scherer, Sebastian. ULSD: Unified line segment detection across pinhole, fisheye, and spherical cameras. ISPRS Journal of Photogrammetry and Remote Sensing, 2021, 178: 187-202.
同时,作者开源了代码,代码地址:
https://github.com/lh9171338/ULSD-ISPRS
摘要:
图像的线段检测是计算机视觉和遥感技术中的一个基本问题,可广泛应用于三维重建和SLAM。虽然许多先进方法在线段检测方面表现出了良好的性能,但对未去畸变原始图像的线段检测仍然是一个具有挑战性的问题。此外,对于畸变和无畸变的图像都缺乏统一的线段检测框架。为了解决这两个问题,本文提出了一种新的基于学习的任意畸变图像的统一线段检测方法(即ULSD)。具体来说,我们首先提出了一种新的基于等分点的Bezier曲线表示方法来建模任意畸变的线段。然后利用端到端可训练神经网络进行等分点回归,在此基础上回归出整条线段。因此,所提出的ULSD算法和相机的畸变参数和相机模型无关,不需要进行去畸变预处理。在实验中,该方法分别在针孔、鱼眼和球形图像数据集上进行评估,并在不同相机模型畸变图像的混合数据集上进行训练和测试。在典型三种相机模型上的实验结果表明,提出ULSD在准确性和效率上比当前SOTA的方法更具有竞争力,特别是统一三种相机模型的混合数据集的结果训练,证明提出的ULSD在现实场景的有效性和普遍性。源代码和数据集:https://github.com/lh9171338/ULSD-ISPRS
1.引言
线段检测是计算机视觉和遥感中的一个基本问题,在许多高级视觉任务中起着重要作用,如图像匹配、相机校准、相机定位、三维重建,视觉SLAM等。现有线段检测方法可大致根据输入图像分为直线段检测和畸变线段检测两类。由于直线段表示的简单性(两个端点),大多数研究都致力于这一点,并取得了显著的结果。最近,人们提出了一个更高层次的线段检测任务,即线框解析,以联合检测有意义和显著的线段和线段端点。在端点的约束下,输出的线段在线的完整性和对噪声的鲁棒性方面明显提高。然而,这些线段检测和线框解析的方法不能直接应用于带畸变的图像,导致了不可避免的图像去畸变预处理。对鱼眼和球形图像的失真线检测可以保留图像大视角优势而不丢失信息。此外,对于大多数对时间要求高的SLAM方法(如ORB-SLAM、VINS-mino和2D-3D姿态跟踪),对原始图像进行特征检测然后对特征校正是提高效率的常见做法。
图1:所提出的ULSD方法演示了平面、鱼眼和球形图像的统一线段检测模型。
本工作的目的是开发一种简单而有效的统一线段表示和一种基于学习的检测方法,直接输出针孔、鱼眼和球形图像的矢量化线段。考虑到Bezier曲线的强拟合能力,它已成功地应用于任意形状的文本检测,我们将Bezier曲线表示作为失真和未失真图像中线段的统一表示。利用线段的等分点对Bezier曲线进行建模,利用等分点的坐标回归可以有效地解决线段的检测问题。基于所提出的Bezier曲线表示和流行的线框表示,我们设计了一种用于统一线段检测的端到端神经网络,即ULSD。通过预测线中点来建模Bezier曲线,我们的ULSD在线段表征和网络设计方面都具有创新性,并扩展了对失真图像的线检测。ULSD的网络可分为三部分:特征提取网络、Line Proposal Network(LPN)和最后的分类器LOI Head。以平面、鱼眼或球形相机拍摄的图像作为输入,网络可以直接输出矢量化的线段,如图1所示。为了评估所提出的USLD的性能,我们在单一畸变模型(平面、鱼眼或球形)和混合模型的不同数据集上进行了充分的实验。实验结果表明,所提出的ULSD在准确性、效率和通用性方面比以往最先进的方法更具竞争力。
综上所述,本文的主要贡献有三个方面:
我们提出了一种基于Bezier曲线的简单而有效的统一线段表示方法,其中线段用其等分点进行非参数表示。因此,它与相机的固有模型无关,可以直接扩展到检测有畸变图像里的线段。
在统一的线段表示的基础上,设计了一个线段等分点回归的端到端神经网络,该网络可以从平面、鱼眼和球面图像中提取失真和未失真的线段。
为了评估其性能,我们创建了鱼眼和球形图像数据集,用于畸变图像中的线段检测。与当前SOTA方法的广泛评估和比较证明了ULSD的准确性和效率。最重要的是,在混合数据集上训练的统一模型结果验证了其泛化性和通用性。
图2.一个三阶Bezier曲线的说明。bi表示控制点,pi表示中点。
图3:对我们的ULSD网络架构的概述。该网络包括特征提取骨干、Line Proposal Network和LoI头三部分。
3.实验
在本节中,我们在各种数据集上进行了充分的实验,以评估ULSD的性能,并将其与当前SOTA方法进行比较。
3.1.数据集和评估指标
3.1.1.平面图像数据集
公共Wireframe数据集和YorkUrban数据集用作直线段检测数据集。前者包含5462张场景图像,其中5000张图像用于训练,其余462张图像用于测试,这个数据集的标注包括交叉点和线段。后者包含102张城市环境图像,标注是满足“曼哈顿假设”的线段集。Wireframe数据集同时用于训练和测试,而YorkUrban数据集仅用于测试,以验证模型的可推广性。
3.1.2.鱼眼图像数据集
由于没有用于线段检测的公共鱼眼图像数据集,所以我们同时收集仿真图像和真实图像来创建鱼眼数据集。首先,我们利用鱼眼畸变模型扭曲Wireframe数据集和YorkUrban数据集的图像,建立F-Wireframe数据集和F-YorkUrban数据集,其中随机生成每幅图像的鱼眼畸变系数。类似地,F-Wireframe数据集同时用于训练和测试,而F-YorkUrban数据集只用于测试。然后,为了提高模型对真实图像的普适性,我们手动标注了1900张真实的180度鱼眼图像。最终的训练集由3100张合成图像和1900张真实图像组成,共计5000张图像。
3.1.3.球面图像数据集
目前没有可用的公共球面图像数据集进行线段检测,因此我们通过手动注释来自SUN360数据集和斯坦福2D-3D-S数据集的图像,构建了一个名为SS360的新数据集。SS360数据集由来自SUN360数据集的518张图像和来自Stafff2D-3D-S数据集的550张图像组成。在数据集中的1068幅图像中,将950张图像分为训练集,将118张图像分为测试集。
3.1.4.混合图像数据集
作为任意畸变图像的统一线段检测方法,我们进一步对ULSD在不同类型图像的混合数据集上进行综合性能评估。因此,我们还构建了一个混合训练和测试数据集。混合训练数据集是上述三个训练集的10950张图像的混合。混合测试数据集的图像是从Wireframe数据集、F-Wireframe数据集和SS360数据集的测试集中随机选择各100张。
3.2.消融研究
我们首先探讨了Bezier曲线的阶数的影响,并根据实验结果确定了ULSD的合适的阶数设置。然后,我们进一步比较了不同的混合训练策略的效果。
图6:不同Bezier阶数在平面、鱼眼和球面图像数据集下的表现。(a)不同阶数Bezier曲线的平均拟合误差(b)-©不同阶数Bezier曲线的参数和网络的FLOPs (d)-(f)不同阶数Bezier曲线提取的精度和效率。
3.3.与其他方法的比较
为了评估所提出的ULSD的性能,我们对针孔、鱼眼和球形图像数据集以及混合数据集的传统方法霍夫变换(HT)和LSD、基于学习的方法DWP、AFM、L-CNN和HAWP进行了深入的比较。对于平面图像,使用OpenCV中的渐进式概率霍夫变换(PPHT)进行评估,并使用结构化边缘检测算法(Dollar和Zitnick,2013)提取突出的结构化边缘。而对于鱼眼图像和球形图像,则采用了球形霍夫变换。
图7:平面Wireframe数据集和YorkUrban数据集的定性结果和比较。
3.3.1.平面图像结果
表2总结了Wireframe数据集和YorkUrban数据集上的定量结果和比较。图7显示为定性结果比较。除在三混合数据集上训练的ULSD(P+F+S)外,所有模型均在Wireframe数据集上进行训练。定量结果表明,与传统的霍夫变换和LSD以及基于学习的DWP和AFM相比,ULSD具有更高的检测精度。此外,与最先进的方法LCNN和HAWP相比,所提出的ULSD获得了相当的精度和显著的速度提高,达到36.8FPS。在三混合数据集上的训练并不有助于在针孔线框和YorkUrban数据集上的测试的性能。
表2:Wireframe数据集和YorkUrban数据集的定量结果和比较。除在三混合数据集上训练的ULSD(P+F+S)外,所有模型均在Wireframe数据集上进行训练。与最先进的方法相比,ULSD获得了相当的精度和显著的速度提高。
3.3.2.鱼眼图像结果
对于鱼眼图像数据集,由于对比算法不能推广到失真的相机模型,我们只将ULSD与传统的霍夫变换和深度学习直线段检测方法L-CNN和HAWP进行了比较。L-CNN和HAWP的模型仍然在Wireframe数据集上进行训练,因为它们不支持使用鱼眼图像数据集进行训练。而我们的模型ULSD(F)和ULSD(P+F+S)分别在F-Wireframe数据集和三混合训练数据集上进行训练。定量和定性结果见表3和图9。与L-CNN和HAWP相比,我们的ULSD获得了更高的线段检测精度,因为L-CNN和HAWP只能检测鱼眼图像中的直线段。从理论上讲,霍夫变换可以检测到扭曲的线段。然而,它产生了许多片段的线段,如图9所示。相反,通过利用神经网络,ULSD可以以最高的效率产生高质量的线段检测结果。对合成和真实鱼眼图像的定性结果表明,该ULSD具有良好的鲁棒性和通用性。
表3:F-Wireframe数据集和F-YorkUrban数据集的定量结果和比较。由于其他方法不能应用于曲线检测,我们与传统的霍夫变换和深度学习方法L-CNN和HAWP进行了比较。ULSD取得了最优的结果。
图9:F-Wireframe数据集和F-YorkUrban数据集的定性结果和比较。第1−第4列是合成的鱼眼图像,第5−第6列是真实的鱼眼图像。
3.3.3.球面图像结果
在球面图像数据集上的线段检测结果如图11所示。表4表示定量结果和比较。所有这些结果表明,我们的方法显著优于最先进的方法。图11表明,传统的HT可以检测到曲线段,但由于有许多片段和噪声,最近基于学习的L-CNN和HAWP可以检测到大部分的垂直直线,但忽略了所有的水平曲线段。与ground truth相比,我们的ULSD的缺失线检测最少。当比较我们自己的两种模型ULSD(S)和ULSD(P+F+S)时,我们发现后者在定量和定性结果方面都获得了更好的性能。这是因为与原始的SSUN360数据集相比,混合训练大大增加了训练样本的数量。添加的针孔和鱼眼数据集有助于学习球形图像的直线检测和扭曲检测,获得更高的精度和更好的通用性。
图11:SS360数据集的定性结果和比较。
表4:SS360数据集的定量结果和比较。
3.3.4.混合试验结果
为了统一的线段检测,我们进一步将我们的方法配置为在上述三种相机模型的混合数据集上进行训练。为了评价线段检测方法对不同失真图像的综合性能,我们与Hough变换(HT)、L-CNN和HAWP方法进行了比较。结果如表5、图13所示。虽然HT可以检测到一些直线和曲线,但还需要提供相机模型来选择PPHT或球形HT。我们可以观察到,与ground truth相比,所提出的USLD获得了所有指标的最高精度,同时也获得了最好的定性结果。支持混合训练的独特特点显著提高了所提出的ULSD的性能,这证明了所提出的ULSD的统一性和普遍性。
表5:三种混合数据集的定量结果和比较。所提供的指标显示了对不同失真图像的综合性能。
图13:对三种混合数据集的定性结果和比较。前4种方法(行)在针孔数据集上进行训练,而ULSD(P+F+S)在三种混合数据集上进行训练。所有这些模型都在针孔(第一列)、鱼眼(第二−第3列)和球形(第4−第5列)图像上进行了测试。
4.结论
本文提出了一种统一的线段检测方法(ULSD),用于检测平面、鱼眼和球面图像中有畸变和无畸变的线段。USLD采用新的基于等分点的Bezier曲线表示,将任意畸变的图像线段检测统一到一个端到端的学习网络框架。其核心由三个模块组成:特征提取网络、线proposal网络(LPN)和分类器LoIHead。通过实验表明,所提出的ULSD在线特征提取精度和效率方面都比以往方法更具竞争力。在混合数据集上训练的ULSD的性能进一步证明了其在三种常见相机模型上的有效性和通用性。因此,我们的统一ULSD模型可以应用于检测平面、鱼眼和球面图像上的线段,而不需要任何相机模型或畸变参数。我们还提供了F-Wireframe、F-YorkUrban和SS360数据集,希望这带来更多的在任意畸变相机中的线段检测工作。
独家重磅课程!
1、视觉SLAM必备基础 太卷了!听说学懂ORB-SLAM2课程第3期可全额退款?敢不敢来挑战?
2、 VINS:Mono+Fusion SLAM面试官:看你简历上写精通VINS,麻烦现场手推一下预积分!
3、VIO课程:VIO最佳开源算法:ORB-SLAM3超全解析课程重磅升级!
4、图像三维重建课程(第2期):视觉几何三维重建教程(第2期):稠密重建,曲面重建,点云融合,纹理贴图
5、重磅来袭!基于LiDAR的多传感器融合SLAM 系列教程:LOAM、LeGO-LOAM、LIO-SAM
6、系统全面的相机标定课程:单目/鱼眼/双目/阵列 相机标定:原理与实战
7、深度学习三维重建课程:基于深度学习的三维重建学习路线
8、激光定位+建图课程:激光SLAM框架Cartographer课程90+视频全部上线!适合服务机器人!
链接:武大+CMU最新开源!全面支持平面/鱼眼/球面相机的实时统一线段检测算法
全国最棒的SLAM、三维视觉学习社区↓
链接:武大+CMU最新开源!全面支持平面/鱼眼/球面相机的实时统一线段检测算法
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器****、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、****算法竞赛****等微信群,请添加微信号 chichui502 或扫描下方加群,备注:”名字/昵称+学校/公司+研究方向“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:simiter@126.com
链接:武大+CMU最新开源!全面支持平面/鱼眼/球面相机的实时统一线段检测算法
扫描关注视频号,看最新技术落地及开源方案视频秀 ↓
链接:武大+CMU最新开源!全面支持平面/鱼眼/球面相机的实时统一线段检测算法
— 版权声明 —
本公众号原创内容版权属计算机视觉life所有;从公开渠道收集、整理及授权转载的非原创文字、图片和音视频资料,版权属原作者。如果侵权,请联系我们,会及时删除。