【问题标题】:How to apply CNN for multi-channel pixel data based weights to each channel?如何将 CNN 应用于每个通道的基于多通道像素数据的权重?
【发布时间】:2017-12-25 14:27:30
【问题描述】:

我有一个有 8 个通道的图像。我有一个传统的算法,其中每个通道都添加了权重,以得到输出为“0”或“1”。这适用于多个样本和复杂场景。我想使用 CNN 方法在机器学习中实现相同的功能。

我是 ML 新手,开始查看似乎专门处理图像处理问题的教程 - 手写识别、特征提取等。

http://cv-tricks.com/tensorflow-tutorial/training-convolutional-neural-network-for-image-classification/

https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/neural_networks.html

我已将 Keras 设置为 Theano 作为背景。基本的 Keras 示例工作正常。

我需要遵循哪些步骤才能使用 CNN 获得相同的结果?我不理解在我的用例中使用过滤器、内核、步幅。如果像素通道值和输出采用以下形式,我们如何向 Keras 提供训练数据?

像素#1 f(C1,C2...C8)=1

像素#2 f(C1,C2...C8)=1

像素#3 f(C1,C2...C8)=0 .

.

像素#N f(C1,C2...C8)=1

【问题讨论】:

    标签: image-processing classification keras conv-neural-network pixels


    【解决方案1】:

    我认为您应该像使用 CNN 进行语义分割一样对待这个问题。举个例子看看

    https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf

    您可以使用他们正在使用的相同架构,但对于第一层而不是使用 3 个通道的过滤器,请使用 8 个通道的过滤器。

    对于损失函数,您可以使用相同的 loos 函数或更具体的二元损失函数。

    keras 有多种实现方式,但使用的是 tensorflow 后台

    https://github.com/JihongJu/keras-fcn https://github.com/aurora95/Keras-FCN

    【讨论】:

      【解决方案2】:

      由于输入是通道值的形式,所以也是顺序的。我建议你使用Convolution1D。在这里,您将每个像素的通道值作为输入,您需要预测每个像素。试试这个 例如:

       Conv1D(filters, kernel_size, strides=1, padding='valid')
       Conv1D()
       MaxPooling1D(pool_size)
       ......
       (Add many layers as you want)
       ......
       Dense(1) 
      

      使用binary_crossentropy作为损失函数。

      【讨论】:

        猜你喜欢
        • 2021-04-24
        • 2011-06-11
        • 2018-09-26
        • 2017-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多