人工智能思考——柔性物体的检测与识别

       现在主流的方法还是按照深度学习的思路来设计一个多层的神经网络,所修改的大部分是网络的结构,层数,而在训练时,我们需要采用所谓数据增强的方式来对数据进行变换,以期能够应对现实中数据的各种变化,但是我们应该注意到以imagenet为代表的数据集,其中要识别的物体大部分是具有一种相对固定的形状,或者是由形状相对固定的模块组合而成的。

       人工智能思考——柔性物体的检测与识别       

       对于上述物体的检测,实际上如果我们如果将该物体精确选中,对其进行各种变换,变换完成后,叠加到一个噪声背景上进行训练, 如下图所示,将来做识别的时候,根据一些先验知识如边缘点或是颜色等进行初步预选,然后用平移候选检测框去进行检测,一般情况下可以正确检测到该物体。

      人工智能思考——柔性物体的检测与识别

     人工智能思考——柔性物体的检测与识别

      前述的这种变换不需要非常密集的采样,因为在一般情况下,我们认为一些没有覆盖到的情况可以用相邻的近似情况插值生成,而神经网络本身是通过微分反馈迭代,如果相邻两个图像输入都是同一个结果,那么这两个图像的线性加权图像输入网络后得到的结果也应该基本是相同的。

       人工智能思考——柔性物体的检测与识别

       但是对于柔性物体,这种方法不是总会管用,因为柔性物体的变化形式不是总能用线性加权的方式来表示的,如下图所示的蛇(为了避免引起不适,使用了简笔画)。

人工智能思考——柔性物体的检测与识别

        或者极端一点的情况,检测一根头发丝。诸如此类的情况,该如何去设计相应的算法或是对现在的算法进行修改呢?