深度网络在目标检测中如何接受不同尺度的图像?
How the deep network accepts images of different scales in object detection?
用 MatConvNet 构建的网络接受不同尺度的图像并对其进行评估。例如:-
%img is an image of size 730*860*3
%net is loaded DagNN obj
scales = [-2 -1 0 0.5 1]
for s = 2.^scales
img = imresize(raw_img, s, 'bilinear');
img = bsxfun(@minus, img, averageImage);
inputs = {'data', img};
net.eval(inputs);
end
在调试的时候,我发现 img
resized and evaluated the every iteration of the loop.但是网络(net
)应该接受固定图像。作为 -
K>> net
net =
DagNN with properties:
layers: [1x319 struct]
vars: [1x323 struct]
params: [1x381 struct]
meta: [1x1 struct]
m: []
v: []
mode: 'test'
holdOn: 0
accumulateParamDers: 0
conserveMemory: 1
parameterServer: []
device: 'cpu'
加载经过训练的网络后:-
K>> net.vars(1, 1).value
ans =
[]
在 for
循环中 :-(iter 1)
K>> net.vars(1, 1).value
ans =
[64 64 3]
(iter 2)
K>> net.vars(1, 1).value
ans =
[160 160 3]
等等....
那么 DagNN 如何处理此类输入并自我评估?(我是 MatConvNet 的新手,在文档中找不到任何帮助。所以请回答这个问题并建议如何在 keras 中构建此类东西)
一般来说,ConvNet 并不关心图像的输入大小。所有层都在执行类似卷积的操作(例如,即使池化在空间上也表现得像卷积)。如果你提供大量的输入,你就会得到大量的输出。唯一关心输入大小的是损失层。如果您没有损失层,则代码根本不会中断。 MatConvNet 中没有全连接层,一切都是卷积的。
顺便说一句,这就是为什么一些早期从事ConvNet工作的人认为FCN是一个有趣的名字,因为全连接层和卷积层之间真的没有区别。
用 MatConvNet 构建的网络接受不同尺度的图像并对其进行评估。例如:-
%img is an image of size 730*860*3
%net is loaded DagNN obj
scales = [-2 -1 0 0.5 1]
for s = 2.^scales
img = imresize(raw_img, s, 'bilinear');
img = bsxfun(@minus, img, averageImage);
inputs = {'data', img};
net.eval(inputs);
end
在调试的时候,我发现 img
resized and evaluated the every iteration of the loop.但是网络(net
)应该接受固定图像。作为 -
K>> net
net =
DagNN with properties:
layers: [1x319 struct]
vars: [1x323 struct]
params: [1x381 struct]
meta: [1x1 struct]
m: []
v: []
mode: 'test'
holdOn: 0
accumulateParamDers: 0
conserveMemory: 1
parameterServer: []
device: 'cpu'
加载经过训练的网络后:-
K>> net.vars(1, 1).value
ans =
[]
在 for
循环中 :-(iter 1)
K>> net.vars(1, 1).value
ans =
[64 64 3]
(iter 2)
K>> net.vars(1, 1).value
ans =
[160 160 3]
等等.... 那么 DagNN 如何处理此类输入并自我评估?(我是 MatConvNet 的新手,在文档中找不到任何帮助。所以请回答这个问题并建议如何在 keras 中构建此类东西)
一般来说,ConvNet 并不关心图像的输入大小。所有层都在执行类似卷积的操作(例如,即使池化在空间上也表现得像卷积)。如果你提供大量的输入,你就会得到大量的输出。唯一关心输入大小的是损失层。如果您没有损失层,则代码根本不会中断。 MatConvNet 中没有全连接层,一切都是卷积的。
顺便说一句,这就是为什么一些早期从事ConvNet工作的人认为FCN是一个有趣的名字,因为全连接层和卷积层之间真的没有区别。