一种基于贝塞尔曲线的任意畸变图像线段检测方法与流程

    专利2022-07-08  100


    本发明属于图像处理技术领域,特别涉及一种基于贝塞尔曲线的任意畸变图像线段检测方法。



    背景技术:

    线段检测是计算机视觉和机器人领域中最基础的任务之一,它可以帮助到众多的上层视觉任务,例如图像匹配、相机标定、sfm(structurefrommotion)、视觉slam(simultaneouslocalizationandmapping)等等。然而,当前的大多数线段检测方法把线段建模为直线,因此只能检测无失真的直线段,而不能检测因失真而弯曲的线段,特别是鱼眼相机图像和球面相机图像中的失真线段。而现有的失真线段检测方法基本都依赖于相机畸变参数,其中有一类方法是先利用相机畸变参数矫正图像,然后再利用直线段检测方法提取直线段;其他的方法,例如扩展霍夫变换、基于ransac的方法,则是利用相机畸变参数对失真线段建模,这类方法可以直接用于畸变图像。虽然这些方法在某些情况下对失真线段检测有效,但它们的性能都严重依赖于相机畸变参数的精度。此外,很多情况下相机畸变参数是难以获得的。总的来说,任意畸变图像的线段检测问题并未得到有效解决,主要还存在以下三点挑战:(1)针对失真线段,目前还没有一种统一的、不依赖于相机畸变参数的表示方法;(2)基于深度学习的方法在直线段检测中取得了最好的性能表现,但是对于鱼眼相机和球面相机图像,目前并没有公开的线段检测数据可供网络训练;(3)针孔相机、鱼眼相机和球面相机的成像模型有所不同,因此畸变也有所不同。针对任意畸变图像的线段检测方法,目前还未有人实现过。



    技术实现要素:

    针对任意畸变图像的线段检测任务面临的挑战,本发明提出了基于贝塞尔曲线的线段表示方法,这种表示方法以线段等分点为参数,可以表示任意畸变图像中的线段,包括直线段和失真线段,同时不依赖于相机畸变参数。基于上述线段表示,本发明设计了一个端到端的线段检测网络,同时我们通过合成数据集以及人工标注的方法,构造了2个鱼眼图像数据集和1个球面图像数据集,解决了网络训练缺乏数据集的问题。本发明最终提出了一种针对任意畸变图像的线段检测方法,该方法不依赖于相机畸变参数,其性能表现也远远好于现有的失真线段检测方法。

    本发明提供的基于贝塞尔曲线的任意畸变图像线段检测方法包括以下步骤:

    步骤1:构建训练数据集;

    步骤2:构建线段检测网络;

    步骤3:通过包括交叉点预测损失、线段预测损失、分类器损失构建线段检测网络的损失函数,将训练集的数据循环迭代带入线段检测网络,根据构建的线段检测网络的损失函数,利用自适应矩估计优化器进行优化更新网络,得到训练后的线段检测网络;

    步骤4:将待检测图像通过双线性插值缩放到网络要求的大小h×w,然后将图像输入到训练后的线段检测网络,得到所有候选线段的置信度分数,通过设定置信度分数阈值,保留置信度分数大于阈值的线段,得到待检测图像中线段检测结果。

    作为优选,步骤1所述训练数据集包括:图像集合、标注线段集合、标注交叉点集合;

    训练数据集中图像集合记为:

    其中。a为数据集中图像的数量,图像的尺寸均为h×w×3;

    对于一张图像

    训练数据集中标注线段集合记为:

    对于一条标注线段

    基于贝塞尔曲线的表示方法,具体标注形式为:la,k=(p1,p2,…,pn 1);

    训练数据集中交叉点集合记为:

    对于一个交叉点其标注形式为pa,k=[x,y];

    在网络中,对于交叉点的预测,首先将h×w的图像划分为hb×wb的网格,然后预测每个网格b内是否存在交叉点,若存在,再预测交叉点坐标到网格中点坐标b的偏移向量,也就是说网络需要预测交叉点的置信度图和交叉点的偏移向量图,分别记为ma,1、ma,2,因此数据集中需要生成对应的交叉点置信度图真实值和交叉点偏移向量图真实值计算公式如下:

    对于线段的预测,同样将h×w的图像划分为hb×wb的网格,然后预测每个网格b内是否存在线段中点,若存在,再预测线段中点坐标到网格中点坐标b的偏移向量,以及线段等分点坐标到线段中点坐标的偏移向量,也就是说网络需要预测线段中点的置信度图、线段中点的偏移向量图和线段等分点到线段中点的偏移向量图,分别记为ma,3、ma,4和ma,5,因此数据集中需要生成对应的线段中点置信度图真实值线段中点偏移向量图真实值和线段等分点到线段中点的偏移向量图真实值计算公式与交叉点的类似;

    作为优选,步骤2所述线段检测网络包括:线段特征提取骨干网络、线段提议网络、感兴趣线段头部;

    所述线段特征提取骨干网络的输入为图像输出为特征图fa;

    所述线段提议网络的输入为特征图fa,输出为候选线段集合

    所述感兴趣线段头部的输入为特征图fa和候选线段集合输出为线段检测结果;

    所述线段特征提取骨干网络采用的是堆叠沙漏网络,包括:卷积层、第一层沙漏模块、第二层沙漏模块;

    所述的卷积层、第一层沙漏模块、第二层沙漏模块依次串联级联;

    所述线段提议网络包括:交叉点预测模块、线段预测模块、线段交叉点匹配模块、线段采样模块;

    所述第二层级联沙漏模块分别与所述交叉点预测模块、线段预测模块连接;

    所述交叉点预测模块与所述线段交叉点匹配模块连接;

    所述线段预测模块与所述线段交叉点匹配模块连接;

    所述线段采样模块在网络训练阶段与所述线段交叉点匹配模块连接,在测试阶段不起作用;

    所述交叉点预测模块由第一交叉点解码器、第二交叉点解码器构成;

    所述线段预测模块由第一线段解码器、第二线段解码器、第三线段解码器构成;

    所述的第一交叉点解码器、第二交叉点解码器、第一线段解码器、第二线段解码器、第三线段解码器均由卷积层构成;

    所述感兴趣线段头部包括:贝塞尔对齐模块、全连接层分类器;

    所述的贝塞尔对齐模块、全连接层分类器依次串联级联;

    所述线段检测网络每个模块的作用如下:

    所述线段特征提取骨干网络首先通过卷积层对输入图像进行多次下采样,输入图像ia的尺寸为h×w×3,经过下采样空间尺寸变为然后利用所述的第一层级联沙漏模块、第二层级联沙漏模块提取多尺度特征,得到特征图fa,尺寸为hb×wb×c;

    所述线段提议网络的交叉点预测模块利用第一交叉点解码器预测交叉点的置信度图ma,1,其尺寸为hb×wb,表示将输入图像ia划分为hb×wb的网格,每个网格内存在交叉点的置信度(即概率);同时利用第二交叉点解码器预测交叉点的偏移向量图ma,2,其尺寸为hb×wb×2,表示每个网格内如果存在交叉点,交叉点坐标到网格中心坐标的偏移向量。利用交叉点的置信度图ma,1、交叉点的偏移向量图ma,2通过(3)式可以得到预测的交叉点集合

    其中k=300,表示将置信度按降序排序后,取置信度最高的前300个交叉点,ik、jk分别为第k个交叉点所在网格的行列下标,[jk 0.5,ik 0.5]表示第k个交叉点所在网格的中心点坐标,ma,2(ik,jk)为第k个交叉点的偏移向量,pa,k为第k个交叉点的坐标;

    所述线段提议网络的线段预测模块利用第一线段解码器预测线段中点的置信度图ma,3,其尺寸为hb×wb,利用第二线段解码器预测线段中点的偏移向量图ma,4,其尺寸为hb×wb×2,计算得到预测的线段中点集合

    其中k=5000,表示取置信度最高的5000个线段中点;

    同时利用第三线段解码器预测线段等分点到中点的偏移向量图ma,5,其尺寸为其尺寸为hb×wb×(n 1)×2,n为贝塞尔曲线的阶数,n 1为等分点的数量,计算得到预测的线段集合

    所述线段提议网络的线段交叉点匹配模块用于筛选高质量的候选线段,对于预测的线段集合中的线段如果存在2个预测的交叉点能够和l的2个端点匹配上即欧式距离小于定义的阈值θ,则保留该线段,最终得到匹配后的候选线段集合即具体公式如下:

    所述线段提议网络的线段采样模块用于在训练阶段采样得到线段的正负样本,来训练所述感兴趣线段头部的全连接层分类器。对于候选线段集合中的一条线段如果存在一条线段与l的线段距离d(l,l′)小于设定的阈值η,则认为l为正样本,标签为否则为负样本,标签为最终候选线段集合被划分为了正样本集合和负样本集合,再从中分别采样npos个正样本和nneg个负样本,用于训练后续的分类器;

    l=(p1,p2,…,pn 1),l′=(p′1,p′2,…,p′n 1)

    所述感兴趣线段头部的贝塞尔对齐模块用于生成固定长度的线段特征向量,在该模块中,对于匹配后的候选线段集合中每条线段即利用贝塞尔曲线插值公式对l进行均匀插值,得到np个插值点,再通过双线性插值计算每个点在特征图f上的特征,每个插值点有一个c维特征向量,将np个插值点的向量拼接为一个np×c的矩阵,再通过最大池化转化为的矩阵,最后展开为维的特征向量,得到线段l对应的特征向量;

    所述感兴趣线段头部的全连接层分类器根据候选线段集合中候选线段的特征向量对候选线段进行分类,输出每条候选线段为真实线段的置信度分数;

    作为优选,步骤3所述线段检测网络的损失函数为:

    l=ljunc lline lcls

    其中,ljunc为交叉点预测损失,lline为线段预测损失,lcls为分类器损失;

    所述交叉点ljunc预测损失包括两个部分,一个是交叉点的置信度图,另一个是交叉点的偏移向量图,置信度图预测采用的是交叉熵损失,偏移向量图预测采用的是smoothl1损失;

    所述交叉点预测损失为:

    其中,ma,1、ma,2分别为第a张图像预测的置信度图和偏移向量图,为第a张图像对应的置信度图和偏移向量图的真实值,是预测交叉点置信度图的交叉熵损失函数,是预测交叉点偏移向量图的smoothl1损失;为对应交叉点的置信度图预测和偏移向量图预测的损失的权重;

    所述线段预测损失:包括预测线段中点的置信度图的损失,预测线段中点的偏移向量图的损失以及预测线段等分点到中点的偏移向量图的损失。其中预测线段中点的置信度图的损失采用的是交叉熵损失,预测线段中点的偏移向量图的损失和预测线段等分点到中点的偏移向量图的损失采用的是smoothl1损失;

    其中,为线段的置信度图、偏移向量图、线段等分点到中点的偏移向量图损失的权重;是预测线段置信度图的交叉熵损失函数,是预测线段偏移向量图的smoothl1损失,loffset是预测线段等分点到中点的偏移向量图的smoothl1损失,ma,3、ma,4和ma,5分别为网络需要预测的第a张图像的线段中点的置信度图、线段中点的偏移向量图和线段等分点到线段中点的偏移向量图,为对应的线段中点置信度图的真实值、线段中点偏移向量图的真实值和线段等分点到线段中点的偏移向量图的真实值。

    所述分类器损失采用的是交叉熵损失函数,具体定义为:

    其中,其中分别为第a张图像中正负样本的标签(正样本为1,负样本为0),sa,pos、sa,neg分别为第a张图像中分类器预测的正负样本的置信度分数,λpos和λneg分别为正负样本损失的权重;

    本发明的原理是:首先利用堆叠沙漏网络作为特征提取骨干网络对输入图像提取多尺度特征,再将特征图输入到线段提议网络,线段提议网络包括交叉点预测模块、线段预测模块和线段-交叉点匹配模块,分别利用交叉点预测模块和线段预测模块提取图像中的交叉点和线段,再利用线段-交叉点匹配模块生成高质量的候选线段,然后通过贝塞尔对齐模块得到每条候选线段的特征向量,最后将特征向量输入到分类器,得到每条候选线段的置信度分数,根据设定的置信度阈值分数,筛选出最终的线段检测结果。

    附图说明

    图1:为网络架构。

    图2:为线段检测流程。

    图3:为本发明方法流程。

    图4:为不同方法的线段检测结果对比。

    具体实施方式

    本发明提供了基于贝塞尔曲线的任意畸变图像线段检测方法。为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图对本发明进一步详细说明。

    本发明设计的线段检测网络其网络架构如附图1所示,线段检测流程如附图2所示,图3为本发明方法流程图。

    下面结合图1至图4,介绍本发明的具体实施方式为:基于贝塞尔曲线的任意畸变图像线段检测方法包括以下步骤:

    步骤1:构建训练数据集;

    步骤1所述训练数据集包括:图像集合、标注线段集合、标注交叉点集合;

    训练数据集中图像集合记为:

    其中,a为数据集中图像的数量,图像的尺寸均为h×w×3;

    对于一张图像

    训练数据集中标注线段集合记为:

    对于一条标注线段

    基于贝塞尔曲线的表示方法,具体标注形式为:la,k=(p1,p2,…,pn 1);

    训练数据集中交叉点集合记为:

    对于一个交叉点其标注形式为pa,k=[x,y];

    在网络中,对于交叉点的预测,首先将h×w的图像划分为hb×wb的网格,然后预测每个网格b内是否存在交叉点,若存在,再预测交叉点坐标到网格中点坐标b的偏移向量,也就是说网络需要预测交叉点的置信度图和交叉点的偏移向量图,分别记为ma,1、ma,2,因此数据集中需要生成对应的交叉点置信度图真实值和交叉点偏移向量图真实值计算公式如下:

    对于线段的预测,同样将h×w的图像划分为hb×wb的网格,然后预测每个网格b内是否存在线段中点,若存在,再预测线段中点坐标到网格中点坐标b的偏移向量,以及线段等分点坐标到线段中点坐标的偏移向量,也就是说网络需要预测线段中点的置信度图、线段中点的偏移向量图和线段等分点到线段中点的偏移向量图,分别记为ma,3、ma,4和ma,5,因此数据集中需要生成对应的线段中点置信度图真实值线段中点偏移向量图真实值和线段等分点到线段中点的偏移向量图真实值计算公式与交叉点的类似;

    对于针孔相机图像,数据集采用的是公开的wireframedataset数据集,图像数量为a=5462,图像大小为h×w=512×512;

    对于鱼眼相机图像,数据集为f-wireframedataset数据集,它是通过对wireframedataset的图像以及标注信息加上随机的鱼眼畸变得到的,图像数量为a=5462,图像大小为h×w=512×512;

    对于球面相机图像,数据集为人工标注的sun360数据集,图像数量为a=1068,图像大小为h×w=512×1024;

    步骤2:构建线段检测网络;

    所述线段检测网络包括:线段特征提取骨干网络、线段提议网络、感兴趣线段头部;

    所述线段特征提取骨干网络的输入为图像输出为特征图fa;

    所述线段提议网络的输入为特征图fa,输出为候选线段集合

    所述感兴趣线段头部的输入为特征图fa和候选线段集合输出为线段检测结果;

    所述线段特征提取骨干网络采用的是堆叠沙漏网络,包括:卷积层、第一层沙漏模块、第二层沙漏模块;

    所述的卷积层、第一层沙漏模块、第二层沙漏模块依次串联级联;

    所述线段提议网络包括:交叉点预测模块、线段预测模块、线段交叉点匹配模块、线段采样模块;

    所述第二层级联沙漏模块分别与所述交叉点预测模块、线段预测模块连接;

    所述交叉点预测模块与所述线段交叉点匹配模块连接;

    所述线段预测模块与所述线段交叉点匹配模块连接;

    所述线段采样模块在网络训练阶段与所述线段交叉点匹配模块连接,在测试阶段不起作用;

    所述交叉点预测模块由第一交叉点解码器、第二交叉点解码器构成;

    所述线段预测模块由第一线段解码器、第二线段解码器、第三线段解码器构成;

    所述的第一交叉点解码器、第二交叉点解码器、第一线段解码器、第二线段解码器、第三线段解码器均由卷积层构成;

    所述感兴趣线段头部包括:贝塞尔对齐模块、全连接层分类器;

    所述的贝塞尔对齐模块、全连接层分类器依次串联级联;

    所述线段检测网络每个模块的作用如下:

    所述线段特征提取骨干网络首先通过卷积层对输入图像进行多次下采样,输入图像ia的尺寸为h×w×3,经过下采样空间尺寸变为然后利用所述的第一层级联沙漏模块、第二层级联沙漏模块提取多尺度特征,得到特征图fa,尺寸为hb×wb×c,这里特征通道数c=256;

    所述线段提议网络的交叉点预测模块利用第一交叉点解码器预测交叉点的置信度图ma,1,其尺寸为hb×wb,表示将输入图像ia划分为hb×wb的网格,每个网格内存在交叉点的置信度(即概率);同时利用第二交叉点解码器预测交叉点的偏移向量图ma,2,其尺寸为hb×wb×2,表示每个网格内如果存在交叉点,交叉点坐标到网格中心坐标的偏移向量。利用交叉点的置信度图ma,1、交叉点的偏移向量图ma,2通过(3)式可以得到预测的交叉点集合

    其中k=300,表示将置信度按降序排序后,取置信度最高的前300个交叉点,ik、jk分别为第k个交叉点所在网格的行列下标,[jk 0.5,ik 0.5]表示第k个交叉点所在网格的中心点坐标,ma,2(ik,jk)为第k个交叉点的偏移向量,pa,k为第k个交叉点的坐标;

    所述线段提议网络的线段预测模块利用第一线段解码器预测线段中点的置信度图ma,3,其尺寸为hb×wb,利用第二线段解码器预测线段中点的偏移向量图ma,4,其尺寸为hb×wb×2,计算得到预测的线段中点集合

    其中k=5000,表示取置信度最高的5000个线段中点;

    同时利用第三线段解码器预测线段等分点到中点的偏移向量图ma,5,其尺寸为其尺寸为hb×wb×(n 1)×2,n为贝塞尔曲线的阶数,n 1为等分点的数量,计算得到预测的线段集合

    所述线段提议网络的线段交叉点匹配模块用于筛选高质量的候选线段,对于预测的线段集合中的线段如果存在2个预测的交叉点能够和l的2个端点匹配上即欧式距离小于定义的阈值θ=1.5像素,则保留该线段,最终得到匹配后的候选线段集合即具体公式如下:

    所述线段提议网络的线段采样模块用于在训练阶段采样得到线段的正负样本,来训练所述感兴趣线段头部的全连接层分类器。对于候选线段集合中的一条线段如果存在一条线段与l的线段距离d(l,l′)小于设定的阈值η=1.5像素,则认为l为正样本,标签为否则为负样本,标签为最终候选线段集合被划分为了正样本集合和负样本集合,再从中分别采样npos=300个正样本和nneg=300个负样本,用于训练后续的分类器;

    l=(p1,p2,…,pn 1),l′=(p′1,p′2,…,p′n 1)

    所述感兴趣线段头部的贝塞尔对齐模块用于生成固定长度的线段特征向量,在该模块中,对于匹配后的候选线段集合中每条线段即利用贝塞尔曲线插值公式对l进行均匀插值,得到np=32个插值点,再通过双线性插值计算每个点在特征图f上的特征,每个插值点有一个c=256维特征向量,将np个插值点的向量拼接为一个np×c=32×256的矩阵,再通过最大池化转化为的矩阵,最后展开为维的特征向量,得到线段l对应的特征向量;

    所述感兴趣线段头部的全连接层分类器根据候选线段集合中候选线段的特征向量对候选线段进行分类,输出每条候选线段为真实线段的置信度分数;

    步骤3:通过包括交叉点预测损失、线段预测损失、分类器损失构建线段检测网络的损失函数,将训练集的数据循环迭代带入线段检测网络,根据构建的线段检测网络的损失函数,利用自适应矩估计优化器进行优化更新网络,得到训练后的线段检测网络;

    步骤3所述线段检测网络的损失函数为:

    l=ljunc lline lcls

    其中,ljunc为交叉点预测损失,lline为线段预测损失,lcls为分类器损失;

    所述交叉点ljunc预测损失包括两个部分,一个是交叉点的置信度图,另一个是交叉点的偏移向量图,置信度图预测采用的是交叉熵损失,偏移向量图预测采用的是smoothl1损失;

    所述交叉点预测损失为:

    其中,ma,1、ma,2分别为第a张图像预测的置信度图和偏移向量图,为第a张图像对应的置信度图和偏移向量图的真实值,是预测交叉点置信度图的交叉熵损失函数,是预测交叉点偏移向量图的smoothl1损失;为对应交叉点的置信度图预测和偏移向量图预测的损失的权重,具体取值为

    所述线段预测损失:包括预测线段中点的置信度图的损失,预测线段中点的偏移向量图的损失以及预测线段等分点到中点的偏移向量图的损失。其中预测线段中点的置信度图的损失采用的是交叉熵损失,预测线段中点的偏移向量图的损失和预测线段等分点到中点的偏移向量图的损失采用的是smoothl1损失;

    其中,为线段的置信度图、偏移向量图、线段等分点到中点的偏移向量图损失的权重,具体取值为λoffset=1;是预测线段置信度图的交叉熵损失函数,是预测线段偏移向量图的smoothl1损失,loffset是预测线段等分点到中点的偏移向量图的smoothl1损失,ma,3、ma,4和ma,5分别为网络需要预测的第a张图像的线段中点的置信度图、线段中点的偏移向量图和线段等分点到线段中点的偏移向量图,为对应的线段中点置信度图的真实值、线段中点偏移向量图的真实值和线段等分点到线段中点的偏移向量图的真实值。

    所述分类器损失采用的是交叉熵损失函数,具体定义为:

    其中,其中分别为第a张图像中正负样本的标签(正样本为1,负样本为0),sa,pos、sa,neg分别为第a张图像中分类器预测的正负样本的置信度分数,λpos和λneg分别为正负样本损失的权重,具体取值为λpos=0.1,λneg=0.1;

    步骤4:将待检测图像通过双线性插值缩放到网络要求的大小h×w,然后将图像输入到训练后的线段检测网络,得到所有候选线段的置信度分数,通过设定置信度分数阈值,保留置信度分数大于阈值的线段,得到待检测图像中线段检测结果。

    本发明设计的线段检测网络是基于pytorch实现的,可以端到端的训练和测试,给定一张图像作为输入,网络可以直接输出向量化的线段检测结果。

    本发明的实验结果如附图4所示,图中(a)~(b)为针孔相机图像,(c)~(d)为鱼眼相机图像,(e)~(g)为球面相机图像,lsd、sht、l-cnn、hawp分别为不同的对比方法,ulsd为本发明提供的方法,groundtruth为线段的真实值,可以看到对于针孔相机图像,本方法与l-cnn、hawp的效果相当,而对于鱼眼相机和球面相机图像,其他方法性能很差,而本方法依然具有很好的效果,说明本方法能够适用于任意畸变的图像。

    应当理解的是,本申请书未详细阐述的部分均属于现有技术。

    应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本申请专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本申请权利要求所保护的范围情况下,还可以做出替换或变形,均落入本申请的保护范围之内,本申请的请求保护范围应以所附权利要求为准。


    技术特征:

    1.一种基于贝塞尔曲线的任意畸变图像线段检测方法,实现方式包括以下步骤:

    步骤1:构建训练数据集;

    步骤2:构建线段检测网络;

    步骤2所述线段检测网络包括:线段特征提取骨干网络、线段提议网络、感兴趣线段头部;

    所述线段特征提取骨干网络的输入为图像输出为特征图fa;

    所述线段提议网络的输入为特征图fa,输出为候选线段集合

    所述感兴趣线段头部的输入为特征图fa和候选线段集合输出为线段检测结果;

    所述线段特征提取骨干网络采用的是堆叠沙漏网络,包括:卷积层、第一层沙漏模块、第二层沙漏模块;

    所述的卷积层、第一层沙漏模块、第二层沙漏模块依次串联级联;

    所述线段提议网络包括:交叉点预测模块、线段预测模块、线段交叉点匹配模块、线段采样模块;

    所述第二层级联沙漏模块分别与所述交叉点预测模块、线段预测模块连接;

    所述交叉点预测模块与所述线段交叉点匹配模块连接;

    所述线段预测模块与所述线段交叉点匹配模块连接;

    所述线段采样模块在网络训练阶段与所述线段交叉点匹配模块连接,在测试阶段不起作用;

    所述交叉点预测模块由第一交叉点解码器、第二交叉点解码器构成;

    所述线段预测模块由第一线段解码器、第二线段解码器、第三线段解码器构成;

    所述的第一交叉点解码器、第二交叉点解码器、第一线段解码器、第二线段解码器、第三线段解码器均由卷积层构成;

    所述感兴趣线段头部包括:贝塞尔对齐模块、全连接层分类器;

    所述的贝塞尔对齐模块、全连接层分类器依次串联级联;

    所述线段检测网络每个模块的作用如下:

    所述线段特征提取骨干网络首先通过卷积层对输入图像进行多次下采样,输入图像ia的尺寸为h×w×3,经过下采样空间尺寸变为然后利用所述的第一层级联沙漏模块、第二层级联沙漏模块提取多尺度特征,得到特征图fa,尺寸为hb×wb×c;

    所述线段提议网络的交叉点预测模块利用第一交叉点解码器预测交叉点的置信度图ma,1,其尺寸为hb×wb,表示将输入图像ia划分为hb×wb的网格,每个网格内存在交叉点的置信度(即概率);同时利用第二交叉点解码器预测交叉点的偏移向量图ma,2,其尺寸为hb×wb×2,表示每个网格内如果存在交叉点,交叉点坐标到网格中心坐标的偏移向量;利用交叉点的置信度图ma,1、交叉点的偏移向量图ma,2通过(3)式可以得到预测的交叉点集合

    其中k=300,表示将置信度按降序排序后,取置信度最高的前300个交叉点,ik、jk分别为第k个交叉点所在网格的行列下标,[jk 0.5,ik 0.5]表示第k个交叉点所在网格的中心点坐标,ma,2(ik,jk)为第k个交叉点的偏移向量,pa,k为第k个交叉点的坐标;

    所述线段提议网络的线段预测模块利用第一线段解码器预测线段中点的置信度图ma,3,其尺寸为hb×wb,利用第二线段解码器预测线段中点的偏移向量图ma,4,其尺寸为hb×wb×2,计算得到预测的线段中点集合

    其中k=5000,表示取置信度最高的5000个线段中点;

    同时利用第三线段解码器预测线段等分点到中点的偏移向量图ma,5,其尺寸为其尺寸为hb×wb×(n 1)×2,n为贝塞尔曲线的阶数,n 1为等分点的数量,计算得到预测的线段集合

    所述线段提议网络的线段交叉点匹配模块用于筛选高质量的候选线段,对于预测的线段集合中的线段如果存在2个预测的交叉点能够和l的2个端点匹配上即欧式距离小于定义的阈值θ,则保留该线段,最终得到匹配后的候选线段集合即具体公式如下:

    所述线段提议网络的线段采样模块用于在训练阶段采样得到线段的正负样本,来训练所述感兴趣线段头部的全连接层分类器;对于候选线段集合中的一条线段如果存在一条线段与l的线段距离d(l,l′)小于设定的阈值η,则认为l为正样本,标签为否则为负样本,标签为最终候选线段集合被划分为了正样本集合和负样本集合,再从中分别采样npos个正样本和nneg个负样本,用于训练后续的分类器;

    所述感兴趣线段头部的贝塞尔对齐模块用于生成固定长度的线段特征向量,在该模块中,对于匹配后的候选线段集合中每条线段即利用贝塞尔曲线插值公式对l进行均匀插值,得到np个插值点,再通过双线性插值计算每个点在特征图f上的特征,每个插值点有一个c维特征向量,将np个插值点的向量拼接为一个np×c的矩阵,再通过最大池化转化为的矩阵,最后展开为维的特征向量,得到线段l对应的特征向量;

    所述感兴趣线段头部的全连接层分类器根据候选线段集合中候选线段的特征向量对候选线段进行分类,输出每条候选线段为真实线段的置信度分数;

    步骤3:通过包括交叉点预测损失、线段预测损失、分类器损失构建线段检测网络的损失函数,将训练集的数据循环迭代带入线段检测网络,根据构建的线段检测网络的损失函数,利用自适应矩估计优化器进行优化更新网络,得到训练后的线段检测网络;

    步骤4:将待检测图像通过双线性插值缩放到网络要求的大小h×w,然后将图像输入到训练后的线段检测网络,得到所有候选线段的置信度分数,通过设定置信度分数阈值,保留置信度分数大于阈值的线段,得到待检测图像中线段检测结果。

    2.根据权利要求1所述的基于贝塞尔曲线的任意畸变图像线段检测方法,其特征在于,

    步骤1所述训练数据集包括:图像集合、标注线段集合、标注交叉点集合;

    训练数据集中图像集合记为:

    其中;a为数据集中图像的数量,图像的尺寸均为h×w×3;

    对于一张图像

    训练数据集中标注线段集合记为:

    对于一条标注线段

    基于贝塞尔曲线的表示方法,具体标注形式为:la,k=(p1,p2,…,pn 1);

    训练数据集中交叉点集合记为:

    对于一个交叉点其标注形式为pa,k=[x,y];

    在网络中,对于交叉点的预测,首先将h×w的图像划分为hb×wb的网格,然后预测每个网格b内是否存在交叉点,若存在,再预测交叉点坐标到网格中点坐标b的偏移向量,也就是说网络需要预测交叉点的置信度图和交叉点的偏移向量图,分别记为ma,1、ma,2,因此数据集中需要生成对应的交叉点置信度图真实值和交叉点偏移向量图真实值计算公式如下:

    对于线段的预测,同样将h×w的图像划分为hb×wb的网格,然后预测每个网格b内是否存在线段中点,若存在,再预测线段中点坐标到网格中点坐标b的偏移向量,以及线段等分点坐标到线段中点坐标的偏移向量,也就是说网络需要预测线段中点的置信度图、线段中点的偏移向量图和线段等分点到线段中点的偏移向量图,分别记为ma,3、ma,4和ma,5,因此数据集中需要生成对应的线段中点置信度图真实值线段中点偏移向量图真实值和线段等分点到线段中点的偏移向量图真实值计算公式与交叉点的类似。

    3.根据权利要求1所述的基于贝塞尔曲线的任意畸变图像线段检测方法,其特征在于,

    步骤3所述线段检测网络的损失函数为:

    l=ljunc lline lcls

    其中,ljunc为交叉点预测损失,lline为线段预测损失,lcls为分类器损失;

    所述交叉点ljunc预测损失包括两个部分,一个是交叉点的置信度图,另一个是交叉点的偏移向量图,置信度图预测采用的是交叉熵损失,偏移向量图预测采用的是smoothl1损失;

    所述交叉点预测损失为:

    其中,ma,1、ma,2分别为第a张图像预测的置信度图和偏移向量图,为第a张图像对应的置信度图和偏移向量图的真实值,是预测交叉点置信度图的交叉熵损失函数,是预测交叉点偏移向量图的smoothl1损失;为对应交叉点的置信度图预测和偏移向量图预测的损失的权重;

    所述线段预测损失:包括预测线段中点的置信度图的损失,预测线段中点的偏移向量图的损失以及预测线段等分点到中点的偏移向量图的损失;其中预测线段中点的置信度图的损失采用的是交叉熵损失,预测线段中点的偏移向量图的损失和预测线段等分点到中点的偏移向量图的损失采用的是smoothl1损失;

    其中,λoffset为线段的置信度图、偏移向量图、线段等分点到中点的偏移向量图损失的权重;是预测线段置信度图的交叉熵损失函数,是预测线段偏移向量图的smoothl1损失,loffset是预测线段等分点到中点的偏移向量图的smoothl1损失,ma,3、ma,4和ma,5分别为网络需要预测的第a张图像的线段中点的置信度图、线段中点的偏移向量图和线段等分点到线段中点的偏移向量图,为对应的线段中点置信度图的真实值、线段中点偏移向量图的真实值和线段等分点到线段中点的偏移向量图的真实值;

    所述分类器损失采用的是交叉熵损失函数,具体定义为:

    其中,其中分别为第a张图像中正负样本的标签(正样本为1,负样本为0),sa,pos、sa,neg分别为第a张图像中分类器预测的正负样本的置信度分数,λpos和λneg分别为正负样本损失的权重。

    技术总结
    本发明涉及一种基于贝塞尔曲线的任意畸变图像线段检测方法。本发明首先构建训练数据集;然后构建线段检测网络;进一步通过包括交叉点预测损失、线段预测损失、分类器损失构建线段检测网络的损失函数,将训练集的数据循环迭代输入线段检测网络,根据构建的线段检测网络的损失函数,利用自适应矩估计优化器进行优化更新网络,得到训练后的线段检测网络;将待检测图像通过训练后的线段检测网络,得到待检测图像中线段检测结果。本发明直接检测畸变图像中的失真线段,无需预先的去畸变处理,操作更加简便;本发明提供的方法不依赖于相机相机参数,因此相较于霍夫变换等依赖于相机畸变参数的方法适用范围更广,同时鲁棒性更好。

    技术研发人员:杨文;张瑞祥;余淮;李皓
    受保护的技术使用者:武汉大学
    技术研发日:2020.12.10
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-19181.html

    最新回复(0)