我使用具有 3 个完全连接的隐藏层的 ConvNetSharp 库创建了一个神经网络。第一个有 35 个神经元,另外两个每个有 25 个神经元,每层都有一个 ReLU 层作为激活函数层。
我正在使用这个网络进行图像分类 - 有点。基本上,它将输入作为输入图像的原始灰度像素值并猜测输出。我使用随机梯度下降来训练模型,学习率为 0.01。输入图像是一行或一列 OMR“气泡”,网络必须猜测哪个“气泡”被标记(即填充)并显示该气泡的索引。
我认为这是因为网络很难在众多泡沫中识别出单个填充的泡沫。
使用图像预处理给网络提供上述图像的单行或单列来评估标记的图像。
这是网络看到的预处理图像的示例:
以下是标记输入的示例:
我尝试使用卷积网络,但我无法让他们使用它。
基本上,我的问题是我应该使用哪种类型的神经网络和网络架构来完成此类任务?将不胜感激这种带有代码的网络的示例。
我尝试了许多预处理技术,例如使用 EmguCv 中的 AbsDiff 函数和 MOG2 算法的背景减法,我还尝试了阈值二进制函数,但图像中仍然存在足够的噪声,这使得神经网络难以学习.
我认为这个问题并不特定于将神经网络用于 OMR,而是针对其他问题。如果有一个解决方案可以使用相机存储背景/模板,然后当相机再次看到该图像时,它会透视转换它以与模板完全匹配
我能够做到这一点 - 然后找到它们的差异或进行某种预处理,以便神经网络可以从中学习。如果这不太可能,那么是否有一种神经网络可以检测图像中非常小的特征并从中学习。我已经尝试过卷积神经网络,但这也不是很好,或者我没有有效地应用它们。