如何决定哪种卷积神经网络架构可以识别自己的数据集?

Posted

技术标签:

【中文标题】如何决定哪种卷积神经网络架构可以识别自己的数据集?【英文标题】:How to decide which Convolution Neural Network architecture will work to identify the own data set? 【发布时间】:2020-02-20 19:39:22 【问题描述】:

我有关于巧克力的数据集。我需要检测它是否有划痕。我打算使用 Caffe 从卷积神经网络中检测。但是如何定义适合我的数据集的神经网络架构呢? 还有图像有划痕时如何产生热值?

我已尝试检测正常的图像处理算法,但没有成功。

Abnormal Image Normal Image

【问题讨论】:

【参考方案1】:

根据您提供的少量信息,网络架构选择应该是您最关心的问题。 “尝试正常的图像处理算法”也是一个相当模糊的说法。

需要考虑的几点

数据集有多大?巧克力照片是在受控环境中拍摄的,它们总是与您的示例照片相似,还是在野外拍摄,即它们可能具有不同的照明条件、位置等?数据集是否平衡? 如何标记数据集?它只是指定正常与异常的整个图像的一个类吗?如果是这样,您只需进行分类,并且可能只是可视化划痕位置的一种方法(如果它们最终成为分类的最突出特征)是使用梯度加权类激活图。另一方面,如果您的数据集在图像上标记了划痕点,那么您可以直接训练您的网络以输出热图。

一旦您的数据集正确设置了训练和验证集,您就可以从基线简单的小型卷积网络架构开始,然后您可以尝试不同且更大的网络架构,例如 VGG16、ResNet 等,并且检查它们是否提高了验证集的性能。

【讨论】:

以上是关于如何决定哪种卷积神经网络架构可以识别自己的数据集?的主要内容,如果未能解决你的问题,请参考以下文章

卷积神经网络(CNN)使用自己的数据集进行天气识别

毕设系列-检测专题-基于卷积神经网络的动物识别系统

如何教卷积神经网络对未知图像说“不”?

Pytorch定义并训练自己的数字数据集

Pytorch定义并训练自己的数字数据集

用PyTorch构建基于卷积神经网络的手写数字识别模型