如果神经网络可以优化传统的图像处理算法?
If a neural network can optimize traditional image processing algorithms?
我不是说神经网络可以完成传统图像处理的工作algorithm.What我想说的是如果存在一种神经网络可以使用传统方法的参数作为输入和输出更多不需要手动的通用参数adjustment.Intuitively,我的想法比直接使用神经网络效率低,但我对神经网络的数学了解不多
如果我没理解错的话,你的意思是对于传统方法(比方说阈值),你想使用 ann 找到最佳参数。这是可能的,但您必须提供如此多的训练数据,需要创建、处理和评估这些数据,这将花费大量时间。据我所知,许多具有 AI 辅助摄像头的手机都使用这种方法来找到最佳光圈、曝光等。
First of all, thank you very much. I still have two things to figure out. If I wanted to get a (or a set of) relatively optimal parameters, what data set would I need to build (such as some kind of error between input and output and threshold) ? Second, as you give an example, is it more efficient or better than traversal or Otsu to select the optimal threshold through neural networks in practice?To be honest, I wonder if this is really more efficient than training input and output directly using neural networks
对于你的第二个问题,Otsu 只适用于直方图有两个不同峰值的情况。阈值是一个简单的函数,但 cut-off 值基于您的 objective;没有对每种情况都有效的单一“最佳”值。所以如果你想训练一个阈值模型,我认为你必须为每种情况提出单独的模型(比如一个用于明亮物体阈值的模型,另一个用于较暗物体的模型......等等)也许一个额外的输出参数用于确定目标有效,但我不确定。会不会更高效更好?取决于具体情况(以及您对更好的定义)。 Otsu,遍历或自适应阈值并不是一直有效(实际上 Otsu 有非常具体的用例)。如果它们适合您的情况,那就太好了。如果没有,那么事情就会变得一团糟。所以要回答你的问题,这取决于你手头的问题。
对于第一个问题,TBF,在传统的人工神经网络中处理图像是相当困难的。图像有很多像素,因此标准 ANN 很难处理输入。此外,当图像中某个对象的 location/scale 发生变化时,即使内容相同,整个像素数据也会发生变化(这就是 CNN 在图像方面优于 ANN 的原因)。由于这些原因,最好使用包含压缩和 location-invariant 信息的已处理指标。例如。对于阈值,您可以给直方图 returns 一个阈值。因此,您需要一个具有 256 个输入神经元(对于 8 位灰度图像的强度直方图)、1 个输出神经元和 1-2 个具有一些深度连接的神经元(可能是 128 个?)的中间层的 ann。您的训练数据将是一堆直方图作为输入以及每个直方图对应的 best
阈值。然后一旦训练完成,你可以给 ANN 一个它以前从未见过的直方图,它会根据训练告诉你 optimal
阈值。
what I want to do is a model that can output different parameters (parameter sets) based on different input images, so I think if you choose a good enough data set it should be somewhat universal.
很有可能,但是您的数据集应该包含预期的图像(在指标和特征方面),这意味着它必须很大。
Also, I don't know much about modeling -- can I use a function about the output/parameters (which might be a function about the result of the traditional method) as an error in the back-propagation by create a custom loss function?
我认为是的,但是训练模型比使用预定义的损失函数要复杂得多,因为你必须编写它们。您还必须测试它们是否按预期工作。
我不是说神经网络可以完成传统图像处理的工作algorithm.What我想说的是如果存在一种神经网络可以使用传统方法的参数作为输入和输出更多不需要手动的通用参数adjustment.Intuitively,我的想法比直接使用神经网络效率低,但我对神经网络的数学了解不多
如果我没理解错的话,你的意思是对于传统方法(比方说阈值),你想使用 ann 找到最佳参数。这是可能的,但您必须提供如此多的训练数据,需要创建、处理和评估这些数据,这将花费大量时间。据我所知,许多具有 AI 辅助摄像头的手机都使用这种方法来找到最佳光圈、曝光等。
First of all, thank you very much. I still have two things to figure out. If I wanted to get a (or a set of) relatively optimal parameters, what data set would I need to build (such as some kind of error between input and output and threshold) ? Second, as you give an example, is it more efficient or better than traversal or Otsu to select the optimal threshold through neural networks in practice?To be honest, I wonder if this is really more efficient than training input and output directly using neural networks
对于你的第二个问题,Otsu 只适用于直方图有两个不同峰值的情况。阈值是一个简单的函数,但 cut-off 值基于您的 objective;没有对每种情况都有效的单一“最佳”值。所以如果你想训练一个阈值模型,我认为你必须为每种情况提出单独的模型(比如一个用于明亮物体阈值的模型,另一个用于较暗物体的模型......等等)也许一个额外的输出参数用于确定目标有效,但我不确定。会不会更高效更好?取决于具体情况(以及您对更好的定义)。 Otsu,遍历或自适应阈值并不是一直有效(实际上 Otsu 有非常具体的用例)。如果它们适合您的情况,那就太好了。如果没有,那么事情就会变得一团糟。所以要回答你的问题,这取决于你手头的问题。
对于第一个问题,TBF,在传统的人工神经网络中处理图像是相当困难的。图像有很多像素,因此标准 ANN 很难处理输入。此外,当图像中某个对象的 location/scale 发生变化时,即使内容相同,整个像素数据也会发生变化(这就是 CNN 在图像方面优于 ANN 的原因)。由于这些原因,最好使用包含压缩和 location-invariant 信息的已处理指标。例如。对于阈值,您可以给直方图 returns 一个阈值。因此,您需要一个具有 256 个输入神经元(对于 8 位灰度图像的强度直方图)、1 个输出神经元和 1-2 个具有一些深度连接的神经元(可能是 128 个?)的中间层的 ann。您的训练数据将是一堆直方图作为输入以及每个直方图对应的 best
阈值。然后一旦训练完成,你可以给 ANN 一个它以前从未见过的直方图,它会根据训练告诉你 optimal
阈值。
what I want to do is a model that can output different parameters (parameter sets) based on different input images, so I think if you choose a good enough data set it should be somewhat universal.
很有可能,但是您的数据集应该包含预期的图像(在指标和特征方面),这意味着它必须很大。
Also, I don't know much about modeling -- can I use a function about the output/parameters (which might be a function about the result of the traditional method) as an error in the back-propagation by create a custom loss function?
我认为是的,但是训练模型比使用预定义的损失函数要复杂得多,因为你必须编写它们。您还必须测试它们是否按预期工作。