基于深度学习的直线检测算法

直线检测是经典的底层视觉任务,对一些视觉任务,如自动驾驶、场景3D建模、无人机地平线检测等不可或缺。我们熟知的霍夫变换,就是解决直线检测问题的经典算法。然而,传统算法缺乏鲁棒性,只能受限于简单的应用场景。如今在充分的标注数据支持下,基于神经网络的直线检测算法对检测精度和鲁棒性有了很大提升。在数据驱动下,通过神经网络解决底层视觉任务,效果一般会更好。

传统算法

经典的霍夫变换算法,其一般流程是:提取图像边缘,并将边缘点坐标变换到霍夫空间。霍夫空间中每个点都代表一条直线,图像中同一直线上的点在霍夫空间会产生交点。在单位面积的霍夫空间中进行包含的像素点数统计,倘若高于设定阈值的,则认为包含一条直线。霍夫直线检测结果受阈值、霍夫空间分辨率等的影响,同时只能检测边缘直线,无法检测多个像素宽度的"粗直线"。但霍夫变换应用广泛,还可以应用于圆、椭圆等几何形状的检测。

LSD(line segment detection)也是传统的直线检测方法。它是一种“感知聚类”方法,依赖于精心设计的图像特征和检测策略,其精度、算法复杂度等都要好于霍夫直线检测。其主要思想是基于梯度构建每个像素点的特征,来表征这一点可能处于什么方向的直线上。随后对这些特征依据邻近程度、方向相似度等进行聚类,得到可能的直线区域。最后对这些区域进行筛选、后处理等,得到最终的直线检测结果。整个检测过程很复杂,为了得到较好的检测结果,需要精心调节多个算法参数。

LSD算法

上述算法均集成在了opencv中,除此以外opencv还包含了一些其他的传统直线检测算法,具体可以参考这篇博文:opencv直线检测算法汇总

深度学习算法

神经网络离不开数据支持,直线检测网络的发展离不开wireframe数据集【CVPR 2018】的公布。该数据集包含了多种场景下的5000多张包含线段标注的图像。

wireframe数据集

有了数据集的支持,近些年有不少直线检测顶会论文发表。

Wireframe 【CVPR 18】

wireframe是随数据集提出的直线检测网络。其思路是,一路检测直线的两个端点(junction),一路对直线像素做分割。其中,junction路需要去回归端点的位置(junction center decoders)和端点对应的直线方向、置信度信息(junction branch decoders),而line路则是要判断每个点是否是直线像素。

wireframe架构

对于端点,需要注意其所对应的直线不一定只有一条,(如矩形顶点都对应两条边)。对此,wireframe首先将可能的方向分为K份,每份360/K度,作为一个bin。文章假设在端点每个bin的方向上,只包含一条线段。因此,网络需要预测端点在K个方向上有直线的概率,同时对直线的精确角度进行回归(精确角度为相对bin起点的角度偏移量)。

另一方面,对于直线像素的分割,wireframe采用级联沙漏网络(Stacked Hourglass Networks)作为backbone。级联沙漏网络最初应用于人体姿态检测任务,其名称由来是在网络架构上,不断地将bottom-up,top-down的沙漏型结构子网络级联,从而不断地整合全局和局部信息,有利于对人体关节、四肢、人体位置等各个尺度上的信息进行整合。直线检测任务与人体姿态检测任务在全局、局部信息的利用上是类似的,从直线跨度上看是宏观的,但从直线像素本身的定位来看则是微观的,因此也需要不断整合各个尺度上的信息。

wireframe网络并非端到端的网络,其需要后处理来将分割结果和端点检测结果进行融合,才能得到最终检测结果。之后提到的几篇文章都是端到端的检测网络。

LCNN 【ICCV 19】

LCNN(Line-CNN)是双阶段的检测网络,它可以看成是RCNN从二维到一维上的迁移。(名字和网络架构都可体现)

LCNN网络架构

LCNN首先进行特征提取,采用的backbone也是级联沙漏网络。随后,得到的特征图送入junction header,来预测可能的端点位置。在推理时,对预测的所有端点,两两生成一个line proposal(类比RCNN region proposal),随后通过proposal的两个端点位置,去特征图上采样得到该proposal对应的特征向量(line feature),采样的过程为LoI Pooling(类比RCNN RoI pooling)。最终,将line feature送入全连接层,得到该proposal的分数,从而判定是否为一条直线。

值得注意的是,由于边的数目是远小于所有端点的两两组合数的,因此proposal中会生产大量的负样本,造成正负样本数的严重不平衡,会影响后续网络的训练。因而在训练时,Line Sampler并非生成所有的proposal,而是分别从正负样本中采样数目相等的proposal进行训练。同时,Line Sampler还会保证一些难样本(如一些与正样本有重合部分的负样本)的数目,来增加鲁棒性。

TP-LSD【 ECCV 20】

TP-LSD 是单阶段的直线检测网络。TP表示“Tri-points”,表示其对直线的三点式建模方式,这也是它能做到single stage的原因。

不同的直线建模方式

将直线表示成中点及到两端点的方向和距离,就可以同时去回归中点位置、直线方向、中点到两侧的距离。如此一来,就可以避免预测端点,再对端点两两组合预测分数的过程。

TP-LSD网络架构

从其网络架构看出,它也是先利用通用的特征提取器提取多尺度特征,随后通过不同的解码层,分别进行直线像素语义分割、中点检测,中点到两端点的位移向量预测。直线语义分割作为辅助信息,帮助中点定位,位移向量求解以及最终的融合。一般来说,在detection任务中做segmentation分支,都能提升检测效果。

相关推荐

  • 四月及五一假期LLM+KG+RAG产研总结:开源的继续奔放与RAG等的转向
  • 60个“特征工程”计算函数(Python代码)
  • 被严重低估!React 19 又是一次开发方式的变革,useEffect 将逐渐退出历史舞台
  • 鹅厂开招天才高中生!专门挑战产业难题,张胜誉于旸教主领衔带队
  • 阿里云进军大模型一年,现在是开源第一名,CTO:闭源要超过所有开源模型才有机会参与讨论
  • 最详细人脑3D地图登Science!GPT-4参数只相当于人类0.2%
  • ControlNet作者新作爆火:P照片换背景不求人,AI打光完美融入
  • AI顶会ICLR,今年只有一家中国大模型公司受邀演讲
  • 深圳内推 | 腾讯AI Lab招聘3D人体动作感知和生成方向实习生
  • 原作者带队!LSTM真杀回来了:我要夺回Transformer拿走的一切
  • CVPR 2024 | 多模态合作学习的新视角:样本级模态的评估与协同
  • 以蒸馏的名义:“从去噪自编码器到生成模型”重出江湖
  • 大模型多烧钱?明星独角兽揭秘训练成本:明年或达100亿美元
  • 马斯克首例脑机接口人体试验曝故障!Neuralink:接线脱落,不影响安全
  • 深度解密:苹果只讲了3分钟的这块屏,将引爆千亿市场
  • 14 项任务测下来,GPT4V、Gemini等多模态大模型竟都没什么视觉感知能力?
  • 3倍生成速度还降内存成本,超越Medusa2的高效解码框架终于来了
  • 苹果启动AI云服务器计划,芯片直接用M2 Ultra
  • 马斯克Neuralink植入物出故障:受试者接线脱落
  • 在ICLR 2024这场演讲中,智谱AI首次公开神秘项目「GLM-zero」