bilinear
双线性插值是目前在语义分割中用的比较多的一种方式,比如FCN中就是用的这种方法。
这种方法特点是不需要进行学习,运行速度快,操作简单。只需要设置好固定的参数值即可,设置的参数就是中心值需要乘以的系数。
一个简单的例子可以参考如下(来自互联网):
具体的实现方式,可以直接参考fcn.berkerlyvision.org中的surgery.py如下:
def upsample_filt(size):
"""
Make a 2D bilinear kernel suitable for upsampling of the given (h, w) size.
"""
factor = (size + 1) // 2
if size % 2 == 1:
center = factor - 1
else:
center = factor - 0.5
og = np.ogrid[:size, :size]
return (1 - abs(og[0] - center) / factor) * \
(1 - abs(og[1] - center) / factor)
如果看了上面的简单实例和具体代码还不会使用b