网络结构
每个卷积层捕获的有用信息随着其接受域大小的增加而变得更粗糙,随着网络深入receptive field逐渐增大,网络基于VGG16做了以下几点更改
- 作者切断了所有完全连接层和VGG16网络每个卷积层的最大池化层,删除全连接层是已经为与作者的网络设计不一致,而删除池化层是应为,池化层会使步幅增加两倍,不利于边缘定位
- 将VGG的每个stage的卷积层都连接到一个卷积层中,该conv层的内核尺寸为1×1,通道深度为21。先对阶段内部卷积层特征使用特征叠加求和的方式进行初步特征融合。
- 将所有向上采样层连接起来。然后使用11个卷积层融合每个阶段的特征映射。最后通过交叉熵损失/ s形层得到融合损失/输出
模型最终的fusion层采用和HED模型相同的融合策略,先把5个卷积层上采样层进行通道连接,再把拼接得到的特征用1×1的卷积层进行特征提取,最终效果也胜过了HED模型
损失函数
作者认为人工标注图片可能存在误差,所以对于每一幅图像,作者将所有的ground truth进行平均,生成一个范围为0到1的边缘概率图。这里,0表示没有标注者在这个像素上进行标记,1表示所有标注者都在这个像素处标记了。我们将边缘像素的概率高于η的像素视为正样本,像素边缘概率等于0为负样本。否则,这个像素如果少于η个人标记,这个像素可能是语义上有争议的一个边缘点。因此,将其视为正样本还是负样本可能会混淆网络。所以作者忽略了这个类别中的像素。
作者计算每个像素的label如下式所示
l
(
X
i
;
W
)
=
{
α
⋅
log
(
1
−
P
(
X
i
;
W
)
)
if
y
i
=
0
0
if
0
<
y
i
≤
η
β
⋅
log
P
(
X
i
;
W
)
otherwise
l\left(X_{i} ; W\right)=\left\{\begin{aligned} \alpha \cdot \log \left(1-P\left(X_{i} ; W\right)\right) & \text { if } y_{i}=0 \\ 0 & \text { if } 0<y_{i} \leq \eta \\ \beta \cdot \log P\left(X_{i} ; W\right) & \text { otherwise } \end{aligned}\right.
l(Xi;W)=⎩⎪⎨⎪⎧α⋅log(1−P(Xi;W))0β⋅logP(Xi;W) if yi=0 if 0<yi≤η otherwise
其中
α
=
λ
⋅
∣
Y
+
∣
∣
Y
+
∣
+
∣
Y
−
∣
β
=
∣
Y
−
∣
∣
Y
+
∣
+
∣
Y
−
1
∣
\begin{aligned} \alpha &=\lambda \cdot \frac{\left|Y^{+}\right|}{\left|Y^{+}\right|+\left|Y^{-}\right|} \\ \beta &=\frac{\left|Y^{-}\right|}{\left|Y^{+}\right|+\left|Y^{-1}\right|} \end{aligned}
αβ=λ⋅∣Y+∣+∣Y−∣∣Y+∣=∣Y+∣+∣Y−1∣∣Y−∣
Y+和Y−分别表示正样本集和负样本集。的hyper-parameter λ(作者通过实验得出最佳值为1.1)是平衡正负样本。激活值(CNN特征向量)和像素i处的地面真值边缘概率分别由Xi和yi表示。P(X)是sigmoid函数,W表示在我们的体系结构中要学习的所有参数。因此,我们证明的损失函数可以表示为
L
(
W
)
=
∑
i
=
1
∣
I
∣
(
∑
k
=
1
K
l
(
X
i
(
k
)
;
W
)
+
l
(
X
i
f
u
s
e
;
W
)
)
L(W)=\sum_{i=1}^{|I|}\left(\sum_{k=1}^{K} l\left(X_{i}^{(k)} ; W\right)+l\left(X_{i}^{f u s e} ; W\right)\right)
L(W)=i=1∑∣I∣(k=1∑Kl(Xi(k);W)+l(Xifuse;W))
其中X(k) i是第k阶段的激活值,而Xfuse i来自fusion层。I是图像I的像素数,K是阶段数(这里等于5)