Closed YuQi9797 closed 4 months ago
是的,这时因为PaddleRS滑窗推理的分块策略是行优先,如果以列优先分块,需要对应改写相关逻辑。
谢谢您的回答,由于我的代码理解能力有限,还想请问下
如果以列优先,是否只需要修改AccumProcessor呢?
只需要修改第一个判断条件吗?
if self.prev_xoff is not None and xoff != self.prev_xoff:
if xoff < self.prev_xoff:
raise RuntimeError
self.cache.roll_cache(xoff - self.prev_xoff)
还是说
self.cache.update_block(0, xoff, self.ch, self.cw, prob)
pred = self.cache.get_block(0, xoff, self.ch, self.cw)
这段代码也要相应修改。
需要修改的地方可能不止这两处,例如循环的内外层也需要调换,改写起来可能会比较困难,我暂时也无法确定全部需要改动的位置。请问是为什么需要列优先的分块策略哦?
由于我的输入图像并非两张大小完全一致的图像,因此我对输入图像进行了处理,得到两张图在其公共区域对应的索引。该索引是以列优先得到的,因此在对图像进行预测时,坐标索引是列优先开始的。 导致我使用accum策略时出错, 需要改为以列索引的。 目前看来只有修改前期处理图像部分了 ORL
好吧,看起来比起修改滑窗推理逻辑,修改预处理部分或许会更省力一些~
感谢!
https://github.com/PaddlePaddle/PaddleRS/blob/f62b46fd7fffc7429565c69f7ee4b0984efe64f2/paddlers/tasks/utils/slider_predict.py#L191
作者您好,在
AccumProcessor
这个处理机制中,这里的判断runtimeError 是通过
yoff< self.prev_yoff
, 这里用 y 方向 是因为 在图像分块的过程中,是按行优先进行的分块,y只会以递增的情况出现吗?(https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/utils/slider_predict.py#L474)如果我是以列优先分块,这里是否要改为xoff 进行判断