语义分割推理-大图像分割成多patch推理后拼接的方法----探究

参考1:https://www.zhihu.com/question/453750066/answer/1828121763

参考2:https://blog.youkuaiyun.com/weixin_43162240/article/details/105137693#comments_16943083

当业务场景中碰到较大图像时,如遥感图像、医疗图像等,图像大小会达到数百M或者几个G甚至更大。此时将图片打开放入内存都会比较卡顿,直接将原图放入GPU推理,显然显存会爆掉。所以需要先将原图像按patchsize进行切割分成多个patchsize大小的小块图,再进行推理预测。然后将推理得到的结果图按下面的方法进行拼接融合。

方法:

1.确定patchsize:首先根据训练时的patchsize大小,确定推理时需要将原图切成patchsize大小的小块图。(此句是废话)

2.像素填充:用原图的宽除以patchsize得到一个余数,用patchsize减去刚才计算得到的余数,得到的差值就是在横向(宽)方向需要填充的像素个数,此时将差值像素数填充在原图最右边。同理,用原图的高除以patchsize得到一个余数,用patchsize减去刚才计算得到的余数,得到的差值就是在纵向(高)方向需要填充的像素个数,此时将差值像素数填充在原图最下边。此时经过填充后的图命名为A。

3.边缘膨胀(四周填充):假设我们的patchsize是1024,步长为512,那我们需要在上下左右四个边上各填充,步长 / 2即512 / 2= 256个的像素,,这样就能以1024*124的大小切原图,移动步长是256,这样就能把经过2次填充后的原图切成整数个。

4.推理后的拼接:将这些patch放入模型推理后得到的结果图,每一个按照顺序取中心512*512的区域进行拼接,就能完整的得到经过第一次填充后大小,即第二步图A的大小,再将右边第一步右边新加的部分和下面新加的部分采取,即可得到原图大小的结果图。

示意图,下面例子详见本博文开头的参考1:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值