点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

来源丨计算机视觉life

作者丨司晗骞

大家好,今天给大家介绍一篇武汉大学和卡内基梅隆大学联合发布的论文,论文名称: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)-(c)不同阶数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数据集,希望这带来更多的在任意畸变相机中的线段检测工作。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

武大+CMU最新开源!全面支持平面/鱼眼/球面相机的实时统一线段检测算法相关推荐

  1. Android 利用OpenCV 的Stitcher做全景图片拼接(支持平面和球面)

    开发项目中遇到一个需求 就是用手机按照顺序拍几张图片 然后将图片拼接成一张全景的照片 百度了一下 看到OpenCV 的Stitcher工具支持全景图片拼接 于是研究了一下OpenCV  花了差不多一周 ...

  2. Yolo-Fastest:超超超快的开源ARM实时目标检测算法

    作者丨 qiuqiuqiu@知乎(已授权) 来源 | https://zhuanlan.zhihu.com/p/234506503 编辑 | AI约读社 Github:https://github.c ...

  3. 【开源方案共享】无序点云快速的线段分割算法

    点云PCL免费知识星球,点云论文速读. 标题:Fast 3D Line Segment Detection From Unorganized Point Cloud 作者:Xiaohu Lu, Yah ...

  4. 最新开源LiDAR数据集LSOOD:四种常见的室外物体分类

    点云PCL免费知识星球,点云论文速读. 标题:最新开源LiDAR数据集LSOOD:四种常见的室外物体分类 作者:Y Tian 来源:https://github.com/Tian-Yifei/LSOO ...

  5. 大家都收藏了的最新开源项目Top12!CV、NLP、机器学习一应俱全

    参加 2018 AI开发者大会,请点击大会官网 译者 | 林椿眄.Jane 责编 | Jane 出品 | AI科技大本营 [导读]作者整理了近期最新发布及更新的 12 个非常有学习和收藏意义的开源项目 ...

  6. Softer-NMS:CMU旷视最新论文提出定位更加精确的目标检测算法

    Softer-NMS:CMU&旷视最新论文提出定位更加精确的目标检测算法 前天arXiv新上论文<Softer-NMS: Rethinking Bounding Box Regressi ...

  7. 最新开源:3TS腾讯事务处理技术验证系统(下)

    作者:李海翔,腾讯TEG数据库技术专家 近日,中国人民大学-腾讯协同创新实验室正式举行揭牌仪式.据了解,双方已聚焦在数据库基础研究领域进行了多年的前沿产学研合作,以及数据库人才合作培养计划,在推进数据 ...

  8. 开源网络数据平面生态:软件正在吞食整个世界

    目录 LFN - Linux基金会网络开源伞项目 ONF基金会下的网络开源项目 数据面开源项目 DPDK ‍‍FD.io NSM ‍‍‍‍IOVisor George Zhao,目前任职华为在美国的研 ...

  9. 最新开源IDC代理PHP源码IDC平源码

    最新开源IDC代理PHP源码IDC平源码 IDC代理源码是一个以php+mysql进行开发的PHP开源IDC平源码.      1.支持国内多家API接口. 2.支持多家主机控制面板对接功能,如:一键 ...

最新文章

  1. 深度强化学习的现在,将来与未来
  2. Metasploit发布了新版本5.0.83
  3. PMcaff-培训 | 活动报名结束,押金和邮件须知的那些事儿
  4. 017_python常用小技巧
  5. # PHP - 使用PHPMailer发邮件
  6. 剑指offer:变态跳台阶
  7. 规范HTML页的几点注意
  8. 中介者模式分析、结构图及基本代码
  9. 实数基本定理的等价证明
  10. linux文件夹不能修改权限
  11. 讯飞AI同传被指造假:同传译员亲自揭发,讯飞用人类翻译冒充AI
  12. python第一周作业--------模拟登录
  13. 物联卡认识易陷入的几大误区
  14. Hinton的GLOM模型与千脑理论有何本质不同?
  15. 简述冯诺依曼工作原理_冯诺依曼提出的计算机的基本工作原理是什么?
  16. 正大市场监管总局、发改委、证监会联合提醒告诫部分铁矿石
  17. [小说]魔王冢(48)诏告
  18. go语言的控制台输入
  19. 专利申请预审需要满足什么条件?
  20. php7.1以上 mcrypt_generic_open is deprecated 报错处理

热门文章

  1. 单元测试 Mocking 类库需具备的特性
  2. 不使用fastreport自带的条码组件打印快递单(一款很不错的条码组件下载)
  3. 乐观锁与悲观锁——解决并发问题
  4. 前端工程师现在需要掌握的是什么?
  5. 美国字节程序员吐槽:国内同事太卷了!工资买不起房,卷的意义是什么?
  6. 一个sql的执行过程详解
  7. 某大厂女程序员哀叹:还不到三十岁,父母竟让自己和一个离异有娃的男人相亲!
  8. 面试官:不会看 Explain执行计划,简历敢写 SQL 优化?
  9. 【Java8新特性】浅谈方法引用和构造器引用
  10. 漫画:臭长臭长的高频贪心面试题