目标/标签数量未知的图像回归



我有灰度图像上手写数字(0-9)的未知频率

我正在尝试构建一个机器学习模型,该模型确定:

  1. 每个数字的x、y坐标。
  2. 数字标签(即0-9)。

(我无法上传灰度图像,所以假设.表示"黑色背景",数字代表它们自己):

Image1:     Image2:     Image3:
7.......    .2......    ........
........    .....3..    ........
....1...    ........    ........
........    ....2...    ........
因此,让f表示我的机器学习模型/函数,我们应该有:
f(Image1) = [ label0:[], f(Image2) = [ label0:[], f(Image3) = [ label0:[],
              label1:[(x=4,y=2)],      label1:[],               label1:[],
              label2:[],               label2:[(x=1,y=0),       label2:[],
                                               (x=1,y=3)],      
              label3:[],               label3:[(x=5,y=1)],      label3:[],
              label4:[],               label4:[],               label4:[],
              label5:[],               label5:[],               label5:[],
              label6:[],               label6:[],               label6:[],
              label7:[(x=0,y=0)],      label7:[],               label7:[],
              label8:[],               label8:[],               label8:[],
              label9:[],               label9:[],               label9:[],
             ]

我试图使用Keras应用深度学习方法同时解决这两个问题,但我正在努力设置我的标签,因为每个图像有未知数量的标签。

有谁知道我该如何为深度学习设置这样的问题吗?我是否应该将问题分成两个阶段(定位然后分类——但是定位问题仍然有未知数量的标签)?谢谢!

你可以把这个问题分成两部分。

在第一部分中,您应该创建一个方法来检测图像中是否为数字。为此,你可以使用一种叫做"滑动窗口"的方法(观看Andrew Ng解释这种方法的视频)。假设您有一个大小为200x200的图像,每个数字的大小约为20x20。您可以创建一个大小为20x20的窗口,并且在每次迭代中窗口向右移动20像素(或更少/更多),如果窗口到达图像的右侧,它将移回左侧,并向下移动20像素(或更少/更多)。每次移动窗口后,你都在裁剪图像,使用神经网络检查裁剪图像上是否有数字。如果有数字,你将保存窗口和裁剪图像的x, y坐标到图像数组。

第二部分应该很简单,你把数字传递给神经网络,神经网络决定数字的标签。

所以,你应该训练两个神经网络——一个用于检测图像上是否有数字,另一个用于确定数字的标签。

还有第二种方法来找到图像上的数字,你可以训练神经网络来确定图像上的数字数量(这可能很难),然后,通过使用k-means(你应该设置簇的数量到你从神经网络得到的数字的数量),你可以找到数字的位置,如果它们彼此不太接近。我在一个项目中这样做了,它工作了,但你应该有纯背景的图像,你必须创建一个像素位置的数组,亮度超过一些阈值。

相关内容

  • 没有找到相关文章

最新更新