二元势函数都是通过考虑任意两个像素点之间的关系来构造的。如 ψ(yiu,yju)=μ(u,v)d(i,j) 中的 yiu 表示像素点 i 是否被标记为 u ; d(i,j) 表示像素点 i,j 之间的关系,比如RGB像素点的距离或者空间距离; μ(u,v) 则表示 u,v 这两个标记全局共现的惩罚。在空间上相近且看起来相似的两个点,应该更容易获得相同的标签。然而这种建模方式的两个缺点:(1)它只考虑了共现的频率,却没有考虑空间上下文关系,比如,当人和椅子一起出现的时候,人应该是坐在椅子上的,而不太可能在椅子下;(2)它只考虑了像素点之间成对(Pairwise)的关系,却没有考虑更高阶的关系。为了解决这些缺点,在二元势函数中引入了三元惩罚项:
Ψ(yiu,yju)=k=1∑Kλkμk(i,u,j,v)∀z∈Nj∑d(j,z)pzv
这个式子学习了局部标记上下文的混合。 K 是混合组件的数量, λk 取值为 0 或 1 ,表示哪个组件被激活,且 k=1∑Kλk=1 。如下图(b)所示,红色点和蓝色点描述了中心点 i 和它的邻域 j 。 (i,u) 表示像素点 i 被标记为 u 。 μ(i,u,j,v) 表示根据 i 和 j 的相对关系, (i,u) 和 (j,v) 同时存在的代价。上式的第二项就为三元惩罚项,表示像素点 i,j 以及 j 的邻域的关系。当 (i,u) 和 (j,v) 相容时, (i,u) 也应该相容于 (z,v) ,其中 z 是 j 的邻域,如下图(a)所示。所以DPN的主要贡献就是把上式分两步建模成CNN。第一步如图(c)所示,用m*m的卷积核作用于每个点 j 来表示 d(j,z)qjv ,平滑了像素点 j 和它的邻域之间的预测。第二步使用n*n的卷积核作用于每个点 i 来表示 μk(i,u,j,v) ,如图(d)所示。