PiDiNet:Pixel Difference Networks for Efficient Edge Detection

一、简要介绍

传统边缘检测器仅用作一些现有方法中提取候选边缘点的辅助工具。直观上,边缘表现出不同的特定图案,如直线、角和“X”连接点。而基于 CNN 的边缘检测的高性能是通过大量预训练的 CNN 主干来实现的,这会消耗内存和能量。PiDiNet 采用新颖的像素差分卷积,将传统的边缘检测算子集成到现代 CNN 中流行的卷积运算中,以增强任务性能。

我们相信可以衍生出一种新型的卷积运算,以满足以下需求。首先,它可以轻松捕获图像梯度信息,有利于边缘检测,并且CNN模型可以更加专注,释放处理大量不相关图像特征的负担。其次,深度 CNN 强大的学习能力仍然可以保留,以提取语义上有意义的表示,从而实现稳健且准确的边缘检测。

在本文中,我们提出了像素差异卷积(PDC),首先计算图像中的像素差异,然后与核权重进行卷积以生成输出特征。利用像素差卷积,我们构建了一种新的端到端架构,即像素差网络(PiDiNet),以一次性解决上述问题。具体而言,PiDiNet由高效的主干和高效的任务专用侧结构组成,能够高效地进行稳健准确的边缘检测。

二、相关工作

使用传统边缘检测器帮助深度 CNN 模型进行边缘检测。 Canny和 SE边缘检测器通常用于在应用 CNN 模型进行轮廓/非轮廓预测之前提取候选轮廓点。候选点还可以用作辅助松弛标签,以更好地训练 CNN 模型。 PDC没有依赖于手工制作的检测器的边缘信息,而是直接将梯度信息提取过程集成到卷积运算中,更加紧凑且可学习。

用于边缘检测的轻量级架构。构建了一个主干结构,仅使用简单的快捷方式[19]作为卷积块的第二个分支。

整合传统操作。PDC 使用可学习的过滤器,同时更通用、更灵活地捕获丰富的内容。

三、像素差分卷积(PDC) 

在进行卷积运算时,卷积核覆盖的局部特征图块中的原始像素被像素差异替换。 

Vanilla convolution的意思是指标准的、基础的卷积操作,通常是指使用常见的卷积核进行卷积操作,如3x3、5x5等大小的矩阵。

 

其中,xi和x′i是输入像素,wi是k×k卷积核中的权重。 P = {(x1, x′ 1), (x2, x′ 2), ..., (xm, x′ m)} 是从当前局部补丁中选取的像素对的集合,并且 m ≤ k × k 。 

 为了捕获丰富的梯度信息,可以根据不同的策略选择像素对,这可以从众多传统特征描述符中得到启发。在这里,我们利用了局部二值模式(LBP)及其鲁棒变体扩展LBP(ELBP)被用来编码来自不同方向(角度和径向)的像素关系。

通过将ELBP与CNN卷积相结合,我们导出了三种类型的PDC实例。如下图所示。

我们将它们分别命名为基于中心差分的像素差分卷积(CPDC)、基于角度差异的像素差分卷积(APDC)和基于径向差分的像素差分卷积(RPDC)。局部补丁中的像素对很容易理解。例如,对于核大小为3×3的APDC,我们在3×3局部补丁的角度方向上创建8对(因此m=8),然后通过与核权重进行逐元素相乘,然后求和,将从这些对获得的像素差与核进行卷积,以生成输出特征图中的值。

基于ELBP派生的PDC实例可以看作是ELBP的扩展,更加灵活和可学习。尽管功能强大,但原始的ELBP代码是离散的,代表性能力有限。虽然 PDC 中像素关系的有用编码将保留在经过训练的卷积核中,但在 CNN 的训练过程中,将鼓励卷积核与这些重要编码具有更高的内积,以创建更高的激活响应。通过大量数据的训练,PDC 能够自动学习任务的丰富代表性编码。

将 PDC 转换为普通卷积。以 APDC 为例(下图所示),通过以下方程完成转换:

 

四、PiDiNet结构

高效的骨干。我们使用可分离的深度卷积结构和快速推理和轻松训练的快捷方式。整个主干网有 4 个阶段,其中最大池化层用于下采样。每个阶段有 4 个残差块(第一阶段除外,有一个初始卷积层和 3 个残差块)。每个块中的残差路径依次包括深度卷积层、ReLU层和逐点卷积层。每个阶段的通道数量相当小,以避免模型尺寸过大(阶段 1、2、3 和 4 分别为 C、2 ×C、4 ×C 和 4 ×C 通道)。

高效的侧面结构。使用侧面结构分别从每个阶段生成边缘图,在此基础上使用地面实况图计算侧面损失以提供深度监督。为了细化特征图,从每个阶段的末尾开始,我们首先构建一个基于紧凑扩张卷积的模块(CDCM)来丰富多尺度边缘信息,该模块采用 n × C 通道的输入,并产生 M (M < C)输出中的通道以减轻计算开销,然后是紧凑的空间注意模块(CSAM)以消除背景噪声。之后,1×1 卷积层进一步将特征量缩小为单通道图,然后将其插值到原始大小,然后使用 Sigmoid 函数创建边缘图。用于测试的最终边缘图是通过将 4 个单通道特征图与串联、卷积层和 Sigmoid 函数融合而创建的。为了简单起见,我们没有使用任何归一化层,因为训练图像的分辨率不统一。获得的架构是我们的基线。通过用 PDC 替换残差块中 3×3 深度卷积层中的普通卷积,我们得到了所提出的 PiDiNet。

损失函数。 对于每个生成的边缘图(包括最终的边缘图),我们采用注释器鲁棒损失函数。对于第 j 个边缘图中值为p_{i}^{j}的第 i 个像素,损失计算如下:

其中 yi 是真实边缘概率,η 是预定义的阈值,这意味着在计算损失时,如果一个像素被少于 η 个注释器标记为正值以避免混淆,则该像素将被丢弃并且不被视为样本,β 是负像素样本的百分比且 α = λ · (1 − β)。损失:L=\sum _{i,j}l_{i}^{j}  

扩展

LBP特征描述及其计算算法

详细扩展算法内容可看【opencv学习笔记】LBP特征原理及代码实现 

原始的LBP算子定义在像素3X3的邻域内,以邻域中心像素为阈值,相邻的8个像素的灰度值与邻域中心的像素值进行比较,若周围像素大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3X3邻域内的8个点经过比较可产生8位二进制数,将这8位二进制数依次排列形成一个二进制数字,这个二进制数字就是中心像素的LBP值,LBP值共有2^8种可能,因此LBP值有256种。中心像素的LBP值反映了该像素周围区域的纹理信息。 

计算LBP特征的图像必须是灰度图,如果是彩色图,需要先转换成灰度图。如下图所示。

 

 

 ELBP算法

ELBP是对LBP进行改进和扩展。ELBP算法引入了额外的参数,包括半径(radius)和邻域点数(neighbor points),以增加对纹理特征的描述能力。ELBP通过在图像的每个像素周围以一定的半径距离内选择一组邻域点,并将这些邻域点与中心像素进行比较,生成对应的二值编码。相比于传统的LBP算法,ELBP能够提取更丰富、更具区分度的纹理特征。 

为了适应不同尺度的纹理特征,并达到灰度和旋转不变性的要求,Ojala 等对 LBP 算子进行了改进,将 3×3 邻域扩展到任意邻域,并用圆形邻域代替了正方形邻域,改进后的 LBP 算子允许在半径为 R 的圆形邻域内有任意多个像素点。从而得到了诸如半径为R的圆形区域内含有P个采样点的LBP算子:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值