当前位置: 首页 > 知识库问答 >
问题:

基于模板图像的卷积网络训练

徐欣德
2023-03-14

我试图设计和训练一个卷积神经网络来识别图像中的圆形细胞。我在完整图像的“切口”上训练它,这些图像中间要么有一个圆(正训练样本),要么没有(负训练样本)。

中间有一个圆圈的图像示例(热图颜色不稳定,图像均为灰度):http://imgur.com/a/6q8LZ

我希望网络输出是一个二进制位图,而不仅仅是对两种类型的输入图像(圆形或不在中间)进行分类,如果输入图像中没有圆形,则该位图是一个统一的值(例如,-1),或者在图像中间有一个“斑点”(理想情况下是一个点),以指示圆形的中心。然后,这将应用于包含许多此类圆形单元格的大型图像,并且输出应为带有单元格所在位置斑点的位图。

为了训练这一点,我使用输出图像和2D高斯滤波器之间的均方误差(http://imgur.com/a/fvfP6)对于正的训练样本,以及图像和均匀矩阵之间的均方误差,对于负的训练样本,其值为-1。理想情况下,这将导致CNN在图像上收敛,对于正的训练样本,该图像类似于中间的高斯峰值,对于负的训练样本,该图像一致为-1。

然而,网络不断汇聚在一个不切实际的解决方案上,“把一切都归零”。这并没有使MSE最小化,因此我认为这不是网络结构的固有问题(我尝试过不同的结构,从具有与输入图像一样大的过滤器的单层CNN到具有不同大小的过滤器的多层CNN,所有这些都具有相同的结果)。

我使用的损失函数如下:

weighted_score = tf.reduce_sum(tf.square(tf.sub(conv_squeeze, y)),
                 reduction_indices=[1, 2])

conv\u挤压作为网络的输出图像,将y作为标签(即上面显示的高斯模板)。我已经尝试过按此处建议的批量大小求平均值:

用两幅图像的平方差作为张量流中的损失函数

但没有成功。我找不到任何关于如何用模板图像作为标签来训练神经网络的学术出版物,因此,如果有人能为我指出正确的方向,我将不胜感激。非常感谢你!


共有1个答案

苏骏
2023-03-14

根据你的描述,我认为你正面临一个“数据不平衡”的问题。你可以尝试铰链损失而不是MSE,它可能会解决你的问题。

 类似资料:
  • 我有一个关于卷积神经网络()训练的问题。 我成功地使用tensorflow训练了一个网络,它获取一个输入图像(1600像素),然后输出三个匹配的类中的一个。 使用不同的培训课程测试网络,效果良好。然而当我给它一个不同的第四个图像(不包含任何经过训练的3个图像)时,它总是返回一个随机匹配到其中一个类。 我的问题是,如何训练网络来分类图像不属于这三个训练图像中的任何一个?类似的例子是,如果我针对mni

  • 这是我的问题。我训练了一个卷积神经网络,用tensorflow将图像分为两类。我现在想知道如何使用神经网络的权重,并在未标记的随机图像上进行测试。tensorflow中是否有这样的函数,或者我现在应该自己运行卷积吗?

  • 是否有方法按层(而不是端到端)训练卷积神经网络,以了解每一层对最终架构性能的贡献?

  • 我正在尝试运行一个CNN(卷积神经网络),具有1通道/灰度图像,大小为28x28像素。当我尝试训练模型时,它说: ValueError:图层sequential_5输入0与图层不兼容:: 预期min_ndim=4,发现ndim=3。完整形状收到:[无,28,28]

  • 在本教程中,我们将构建一个TensorFlow.js模型,用卷积神经网络对手写数字进行分类. 首先,我们将通过“查看”成千上万的手写数字图像及其标签来训练分类器. 然后我们将使用模型从未见过的测试数据来评估分类器的准确性. 先决条件 本教程假设您熟悉TensorFlow.js的基础构建模块 (张量,变量,和操作),以及优化器和损失的概念. 有关这些主题的更多背景信息, 我们建议在本教程之前完成以下

  • 我正在研究一个深度学习问题,它需要我有一个深度学习模型,该模型具有输入图像和输出另一张图像。现在,输入和输出图像具有不同的维度,因此我不能使用自动编码器。我已经尝试构建一个非常简单的卷积神经网络,它有一个最终的输出密集层,该层以输出图像的宽度和高度相乘为“单位”参数。然而,我下面附加的这个网络没有成功。我的问题是: CNN是不是像我这样处理这个问题的合适的深度学习网络 如果没有,我还可以尝试其他什