Classification 用于图像检测/分类的卷积神经网络

Classification 用于图像检测/分类的卷积神经网络,classification,tensorflow,deep-learning,conv-neural-network,Classification,Tensorflow,Deep Learning,Conv Neural Network,这里有一个设置,我有一组图像(标记为train and test),我想训练一个conv网络,它告诉我特定的对象是否在这个图像中 为此,我遵循了MNIST上的tensorflow教程,训练了一个简单的conv网络,该网络缩小到感兴趣的区域(对象),在128x128大小的图像上进行训练。体系结构如下:连续3层,包括2个conv层和1个max pool down采样层,以及一个完全连接的softmax层(无论对象是否存在,都有两个0和1类) 我使用tensorflow实现了它,这非常有效,但由于我有

这里有一个设置,我有一组图像(标记为train and test),我想训练一个conv网络,它告诉我特定的对象是否在这个图像中

为此,我遵循了MNIST上的tensorflow教程,训练了一个简单的conv网络,该网络缩小到感兴趣的区域(对象),在128x128大小的图像上进行训练。体系结构如下:连续3层,包括2个conv层和1个max pool down采样层,以及一个完全连接的softmax层(无论对象是否存在,都有两个0和1类)

我使用tensorflow实现了它,这非常有效,但由于我有足够的计算能力,我想知道如何提高分类的复杂性: -添加更多层? -在每层添加更多通道?(目前32,64128和1024表示完全连接) -还有别的吗

但最重要的是,现在我想在更大的图像上检测相同的对象(粗糙600x600,而对象的大小应该在100x100左右)

我想知道如何使用之前用于小图像的训练“小”网络,以便在大图像上预训练更大的网络?一种选择是使用大小为128x128的切片窗口对图像进行分类,并扫描整个图像,但如果可能,我想尝试在其上训练整个网络

有没有关于如何进行的建议?还是一篇文章/资源来解决这类问题?(我对深度学习真的很陌生,如果这是个愚蠢的问题,我很抱歉…)


谢谢

我建议你继续阅读整个领域的内容。您的搜索关键字包括CNN、图像分类、神经网络、AlexNet、GoogleNet和ResNet。这将返回许多文章、在线课程和讲座以及其他材料,帮助您学习神经网络分类


不要只添加层或过滤器:拓扑的复杂性(网络设计)必须适合任务;过于复杂的网络会使训练数据过拟合。你一直在使用的可能是LeNet;我上面提到的三个是针对ImageNet图像分类竞赛的。

由于您正在处理图像,我建议您使用预训练图像分类网络(如VGG、Alexnet等),并使用128x128图像数据对该网络进行微调。根据我的经验,在我们拥有非常大的数据集之前,微调网络将提供更高的准确性,并节省培训时间。在数据集上构建好的图像分类器后,您可以使用任何流行的算法从图像生成建议区域。现在,将提案的所有区域逐一传递到分类网络,并检查该网络是否将提案的给定区域分类为正或负。如果它分类为正,那么你的物体很可能存在于该区域。否则就不是了。根据分类器,如果有很多建议区域中存在对象,则可以使用非最大抑制算法来减少积极建议的数量