构建用于对象检测的神经网络的最重要步骤是什么? (不分类)

What are the most important steps in constructing neural netwoks for object detection? (NOT CLASSIFICATION)

我从事机器学习已有几个月了。我用过 caffe 和 darknet,现在将从 theano 开始。机器学习有 2 个主要任务:1. 检测和 2. 分类。虽然我了解大多数分类网络是如何制作或设计的,但我无法清楚地了解构建神经网络以检测图像所涉及的基本步骤是什么。在分类中,我们使用适当的最大池化、relu 和 conv 层来获得更好的结果并对网络进行微调。在制作用于对象检测的神经网络时需要牢记哪些重要事项?

一般来说,你所说的'detection'一般都是通过回归任务来解决的(所以,'neural networks for regression')。例如,您想要识别图片上的鼻尖(除此之外别无其他)。您标记训练图像,以便您拥有:

X(输入)- 只是图像大小,比如 256x256 像素,灰度 Y(输出)- 显示此图像上鼻尖位置的 X、Y 坐标的一对数字。

然后你构建了一个 DNN 来解决这个问题的回归任务。此 NN 应用与分类相同的原则。您可以根据需要使用最大池化层、卷积层、ReLU。您只需要记住,您的输出层应该能够输出所需范围内的数字,仅此而已。

关于使用 ANN 解决此任务的好教程是 here

P.S。您想要检测对象所在的 region(比如将其包含在图像中的彩色框中)?没问题,一种解决方案是多次解决回归任务以定位对象的左上角、右上角、左下角和右下角。或者,如果您愿意,可以使用滑动 windows。