对象序列的识别方法、网络训练方法、装置、设备及介质
文献发布时间:2024-01-17 01:14:25
相关申请的交叉引用
本申请要求在2021年9月22日提交新加坡知识产权局、申请号为10202110489U的新加坡专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及图像处理技术领域,涉及但不限于一种对象序列的识别方法、网络训练方法、装置、设备及介质。
背景技术
图像中的序列识别是计算机视觉中的一个重要研究问题。序列识别算法在场景文字识别、车牌识别等场景中有广泛应用。相关技术中,采用神经网络对序列式对象的图像进行识别,其中神经网络可以由序列式对象中的对象的类别作为监督信息训练得出。
在一些场景中,对象序列的长度较长,且对这些对象进行识别的准确度要求较高,相关技术中的序列识别方法难以达到满足要求的序列识别效果。
发明内容
本申请实施例提供一种对象序列的识别技术方案。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种对象序列的识别方法,所述方法包括:
获取对象序列的第一图像;
将所述第一图像输入对象序列的识别网络中进行特征提取,得到特征序列;其中,所述对象序列识别网络在训练过程的监督信息至少包括:样本图像组每一样本图像中的样本对象序列的类别的第一监督信息和至少两帧样本图像之间的相似度的第二监督信息;所述每一样本图像组中的至少两帧样本图像包括一帧原始样本图像和至少一帧对所述原始样本图像进行图像变换后得到的图像;
基于所述特征序列,确定所述对象序列中每个对象的类别。
在一些实施例中,所述将所述第一图像输入对象序列的识别网络中进行特征提取,得到特征序列,包括:采用所述对象序列的识别网络中的卷积子网络对所述第一图像进行特征提取,得到特征图;对所述特征图进行拆分,得到所述特征序列。如此,对特征图按照维度信息进行拆分,从而能够得到保留了更多高度方向特征的特征序列,便于后续对特征序列中的对象序列类别进行更加精准地识别。
在一些实施例中,所述采用所述对象序列的识别网络中的卷积子网络对所述第一图像进行特征提取,得到特征图,包括:采用所述卷积子网络,在所述第一图像的第一方向的长度维度上对所述第一图像进行下采样,得到第一维度特征,所述第一方向不同于所述对象序列中的对象的排列方向;基于所述第一图像的第二方向的长度,提取所述第一图像的第二方向的长度维度上的特征,得到第二维度特征;基于所述第一维度特征和所述第二维度特征,得到所述特征图。如此,能够尽可能多的保留第一图像在第一方向维度上的特征信息。
在一些实施例中,所述对所述特征图进行拆分,得到所述特征序列,包括:沿着所述第一方向对所述特征图进行池化,得到已池化特征图;沿着所述第二方向对所述已池化特征图进行拆分,得到所述特征序列。如此,在第二方向对特征图进行池化,在第一方向对特征图进行拆分,从而使得特征序列能够包括第一图像沿第一方向的更多细节信息。
在一些实施例中,所述基于所述特征序列,确定所述对象序列中每个对象的类别,包括:采用所述对象序列的识别网络的分类器,预测所述特征序列中每个特征对应的类别;在所述特征序列中的每个特征对应的类别的预测结果,确定所述对象序列中每一对象的类别。如此,实现了将定长的特征序列,转变为不定长的特征的序列长度。
本申请实施例提供一种对象序列的识别网络训练方法,所述方法包括:获取样本图像组;其中,样本图像组中的至少两帧样本图像包括一帧原始样本图像和至少一帧对所述原始样本图像进行图像变换后得到的图像,所述原始样本图像包括样本对象序列;
将所述样本图像组中的样本图像输入待训练的对象序列的识别网络中进行特征提取,得到所述样本图像组中每一样本图像的样本特征序列;基于所述每一样本图像的样本特征序列,预测所述每一样本图像中的样本对象序列的类别;基于所述样本图像组中所述每一样本图像的样本序列特征,确定对所述每一样本图像中的样本对象序列的类别进行监督的第一损失,得到第一损失集合;基于所述样本图像组中至少两帧样本图像的样本特征序列,确定所述至少两帧样本图像之间的相似度进行监督的第二损失;采用所述第一损失集合和所述第二损失,对待训练的对象序列的识别网络的网络参数进行调整,以使调整后的对象序列的识别网络输出的分类结果的损失满足收敛条件。如此,在训练过程中,引入对整体序列进行监督的第一损失集合和对一组样本图像中图像之间的相似度进行监督的第二损失,能够提高对相似图像的特征提取一致性,从而整体提高该网络的类别预测效果。
在一些实施例中,所述获取样本图像组,包括:获取对画面中样本对象的类别进行标注的第一样本图像;基于所述第一样本图像的画面内容,确定至少一个第二样本图像;对所述至少一个第二样本图像进行数据增强,得到至少一个第三样本图像;基于所述第一样本图像和所述至少一个第三样本图像,得到所述样本图像组。如此,通过每一帧第一样本图像创建画面内容相似的成对图像,便于后续提高相似图像的特征提取的一致性。
在一些实施例中,所述将将所述样本图像组中的样本图像输入待训练的对象序列的识别网络中进行特征提取,得到所述样本图像组中每一样本图像的样本特征序列,包括:采用所述待训练的对象序列的识别网络中的卷积子网络对所述每一样本图像进行特征提取,得到所述每一样本图像的样本特征图;对所述每一样本图像的样本特征图进行拆分,得到所述每一样本图像的所述样本特征序列。如此,能够得到保留了更多第一方向特征的样本特征序列,能够提高对网络进行训练的准确度。
在一些实施例中,所述采用所述待训练的对象序列的识别网络中的卷积子网络对所述每一样本图像进行特征提取,得到所述每一样本图像的样本特征图,包括:采用所述卷积子网络,在所述每一样本图像的第一方向的长度维度上对所述每一样本图像进行下采样,得到第一维度样本特征,所述第一方向不同于所述样本对象序列中的样本对象的排列方向;基于所述每一样本图像的第二方向的长度,在所述每一样本图像的第二第二方向的长度维度上进行特征提取,得到第二维度样本特征;基于所述第一维度样本特征和所述第二维度样本特征,得到所述每一样本图像的所述样本特征图。如此,能够尽可能多的保留每一样本图像在第一方向维度上的特征信息。
在一些实施例中,所述对所述每一样本图像的样本特征图进行拆分,得到所述每一样本图像的所述样本特征序列,包括:沿着所述第一方向对所述样本特征图进行池化,得到已池化样本特征图;沿着所述第二方向对所述已池化样本特征图进行拆分,得到所述样本特征序列。如此,通过在第二方向维度对样本特征图进行池化后,在第一份安心维度对样本特征图进行拆分,从而使得样本特征序列能够保留样本图像在第一方向维度上的更详细的信息。
在一些实施例中,采用所述第一损失集合和所述第二损失,对待训练的对象序列的识别网络的网络参数进行调整,以使调整后的对象序列的识别网络输出的分类结果的损失满足收敛条件,包括:对所述第一损失集合和所述第二损失进行加权融合,得到总损失;基于所述总损失,对所述待训练的对象识别网络的网络参数进行调整,以使调整后的所述对象识别网络输出的分类结果的损失满足收敛条件。如此,将第一损失集合与第二损失相融合训练网络,使得已训练的网络具有更强的鲁棒性,
在一些实施例中,所述所述对所述第一损失集合和所述第二损失进行加权融合,得到总损失,包括:基于所述样本图像组中样本图像的数量,确定所述样本图像组对应的类别监督权重;基于所述类别监督权重和预设第一权重,对所述所述样本图像组的第一损失集合中的第一损失进行融合,得到第三损失;采用预设第二权重对所述第二损失进行调整,得到第四损失;基于所述第三损失和所述第四损失,确定所述总损失。如此,采用第三损失和第四损失融合得到的总损失,对待训练的对象序列的识别网络进行训练,能够提高对相似图像的特征提取的一致性,从而能够提高整个网络的预测效果。
在一些实施例中,所述基于所述类别监督权重和预设第一权重,对所述所述样本图像组的第一损失集合中的第一损失进行融合,得到第三损失,包括:将所述类别监督权重分别赋予所述第一损失集合中的每一第一损失,得到包括至少两个已更新损失的已更新损失集合;将所述已更新损失集合中的已更新损失进行融合,得到融合损失;采用所述预设第一权重对所述融合损失进行调整,得到所述第三损失。如此,在训练过程中,通过将一组样本图像中每一样本图像的预测结果的CTC损失进行融合,能够提高训练得到的识别网络的性能。
本申请实施例提供一种对象序列的识别装置,所述装置包括:
第一获取模块,用于获取对象序列的第一图像;
第一提取模块,用于将所述第一图像输入对象序列的识别网络中进行特征提取,得到特征序列;其中,所述对象序列识别网络在训练过程的监督信息至少包括:样本图像组每一样本图像中的样本对象序列的类别的第一监督信息和至少两帧样本图像之间的相似度的第二监督信息;所述每一样本图像组中的至少两帧样本图像包括一帧原始样本图像和至少一帧对所述原始样本图像进行图像变换后得到的图像;
第一确定模块,用于基于所述特征序列,确定所述对象序列中每个对象的类别。
在一些实施例中,所述第一提取模块,包括:
第一提取子模块,用于采用所述对象序列的识别网络中的卷积子网络对所述第一图像进行特征提取,得到特征图;
第一拆分子模块,用于对所述特征图进行拆分,得到所述特征序列。
在一些实施例中,所述第一提取子模块,包括:
第一下采样单元,用于采用所述卷积子网络,在所述第一图像的第一方向的长度维度上对所述第一图像进行下采样,得到第一维度特征,所述第一方向不同于所述对象序列中的对象的排列方向;
第一提取单元,用于基于所述第一图像的第二方向的长度,提取所述第一图像的第二方向的长度维度上的特征,得到第二维度特征;
第一确定单元,用于基于所述第一维度特征和所述第二维度特征,得到所述特征图。
在一些实施例中,所述第一拆分子模块,包括:
第一池化单元,用于沿着所述第一方向对所述特征图进行池化,得到已池化特征图;
第一拆分单元,用于沿着所述第二方向对所述已池化特征图进行拆分,得到所述特征序列。
在一些实施例中,所述第一确定模块,包括:
第一预测子模块,用于采用所述对象序列的识别网络的分类器,预测所述特征序列中每个特征对应的类别;
第一确定子模块,用于在所述特征序列中的每个特征对应的类别的预测结果,确定所述对象序列中每一对象的类别。
本申请实施例提供一种对象序列的识别网络训练装置,包括:
第二获取模块,用于获取样本图像组;其中,样本图像组中的至少两帧样本图像包括一帧原始样本图像和至少一帧对所述原始样本图像进行图像变换后得到的图像,所述原始样本图像包括样本对象序列;
第二提取模块,用于将所述样本图像组中的样本图像输入待训练的对象序列的识别网络中进行特征提取,得到所述样本图像组中每一样本图像的样本特征序列;
第一预测模块,用于基于所述每一样本图像的样本特征序列,预测所述每一样本图像中的样本对象序列的类别;
第二确定模块,用于基于所述样本图像组中所述每一样本图像的样本序列特征,确定对所述每一样本图像中的样本对象序列的类别进行监督的第一损失,得到第一损失集合;
第三确定模块,用于基于所述样本图像组中至少两帧样本图像的样本特征序列,确定所述至少两帧样本图像之间的相似度进行监督的第二损失;
第一调整模块,用于采用所述第一损失集合和所述第二损失,对待训练的对象序列的识别网络的网络参数进行调整,以使调整后的对象序列的识别网络输出的分类结果的损失满足收敛条件。
在一些实施例中,所述第二获取模块,包括:
第一获取子模块,用于获取对画面中样本对象的类别进行标注的第一样本图像;
第二确定子模块,用于基于所述第一样本图像的画面内容,确定至少一个第二样本图像;
第一增强子模块,用于对所述至少一个第二样本图像进行数据增强,得到至少一个第三样本图像;
第三确定子模块,用于基于所述第一样本图像和所述至少一个第三样本图像,得到所述样本图像组。
在一些实施例中,所述第二提取模块,包括:
第二提取子模块,用于采用所述待训练的对象序列的识别网络中的卷积子网络对所述每一样本图像进行特征提取,得到所述每一样本图像的样本特征图;
第二拆分子模块,用于对所述每一样本图像的样本特征图进行拆分,得到所述每一样本图像的所述样本特征序列。
在一些实施例中,所述第二提取子模块,包括:
第二下采样单元,用于采用所述卷积子网络,在所述每一样本图像的第一方向的长度维度上对所述每一样本图像进行下采样,得到第一维度样本特征,所述第一方向不同于所述样本对象序列中的样本对象的排列方向;
第二提取单元,用于基于所述每一样本图像的第二方向的长度,在所述每一样本图像的第二第二方向的长度维度上进行特征提取,得到第二维度样本特征;
第二确定单元,用于基于所述第一维度样本特征和所述第二维度样本特征,得到所述每一样本图像的所述样本特征图。
在一些实施例中,所述第二拆分子模块,包括:
第二池化单元,用于沿着所述第一方向对所述样本特征图进行池化,得到已池化样本特征图;
第二拆分单元,用于沿着所述第二方向对所述已池化样本特征图进行拆分,得到所述样本特征序列。
在一些实施例中,所述第一调整模块,包括:
第一融合子模块,用于对所述第一损失集合和所述第二损失进行加权融合,得到总损失;
第一调整子模块,用于基于所述总损失,对所述待训练的对象识别网络的网络参数进行调整,以使调整后的所述对象识别网络输出的分类结果的损失满足收敛条件。
在一些实施例中,所述第一融合子模块,包括:
第三确定单元,用于基于所述样本图像组中样本图像的数量,确定所述样本图像组对应的类别监督权重;
第一融合单元,用于基于所述类别监督权重和预设第一权重,对所述所述样本图像组的第一损失集合中的第一损失进行融合,得到第三损失;
第一调整单元,用于采用预设第二权重对所述第二损失进行调整,得到第四损失;
第四确定单元,用于基于所述第三损失和所述第四损失,确定所述总损失;
在一些实施例中,所述第一融合单元,包括:
第一赋予子单元,用于将所述类别监督权重分别赋予所述第一损失集合中的每一第一损失,得到包括至少两个已更新损失的已更新损失集合;
第一融合子单元,用于将所述已更新损失集合中的已更新损失进行融合,得到融合损失;
第一调整子单元,用于采用所述预设第一权重对所述融合损失进行调整,得到所述第三损失。
对应地,本申请实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现上述的对象序列的识别方法;或,该计算机可执行指令被执行后,能够实现上述的对象序列的识别网络训练方法。
本申请实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时能够实现上述的对象序列的识别方法;或,所述处理器运行所述存储器上的计算机可执行指令时能够实现上述的对象序列的识别网络训练方法。
本申请实施例提供一种对象序列的识别方法、网络训练方法、装置、设备及存储介质,首先,采用监督信息为对一组样本图像之间的相似度的监督和对所述一组样本图像的样本对象的类别监督的对象序列的识别网络,对第一图像进行特征提取,得到特征序列;这样,能够提高对多帧相似的第一图像的进行特征提取的一致性;然后,对特征序列中的对象序列进行类别预测,使得到的特征序列中的对象序列的分类结果较为准确;最后,通过对特征序列中的对象序列的分类结果进行进一步的处理,以确定对象序列的类别。这样,提高了对象序列的识别网络对相似图片的特征提取和识别结果的一致性,具有较好的鲁棒性,能够提高对象序列的识别精度。
附图说明
图1为本申请实施例提供的对象序列的识别方法的实现流程示意图;
图2A为本申请实施例提供的对象序列的识别方法的另一实现流程示意图;
图2B为本申请实施例提供的对象序列的识别网络训练方法的实现流程示意图;
图3为本申请实施例提供的对象序列的识别网络的结构示意图;
图4为本申请实施例提供的对象序列的识别网络的应用场景示意图;
图5A为本申请实施例对象序列的识别装置的结构组成示意图;
图5B为本申请实施例对象序列的识别网络训练装置的结构组成示意图;
图6为本申请实施例计算机设备的组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)成对损失(pair loss),在深度学习中,很多度量学习的方法都是使用成对的样本进行损失计算的。例如,在训练模型的过程,随意的选取两个样本,使用模型提取特征,并计算两个样本特征之间的距离。如果这两个样本属于同一个类别,那希望两个样本之间的距离应该尽量的小,甚至为0;如果这两个样本属于不同的类别,那希望两个样本之间的距离应该尽量的大,甚至是无穷大。基于这一原则,衍生出许多不同类型的特征对损失,使用这些损失对样本对之间的距离进行计算,并根据生成的损失使用各种优化方法对模型进行更新。
2)时序类分类(Connectionist Temporal Classification,CTC)是计算一种损失值,主要的优点是可以对没有对齐的数据进行自动对齐,主要用在没有事先对齐的序列化数据训练上。比如,语音识别、光学字符识别(Optical Character Recognition,OCR)识别等等。在本申请实施例中,CTC损失可以用来在对网络的训练前期,对序列的整体预测情况进行监督。
下面说明本申请实施例提供的对象序列的识别的设备的示例性应用,本申请实施例提供的设备可以实施为具有图像采集功能的笔记本电脑,平板电脑,台式计算机,相机,移动设备(例如,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为终端或服务器时示例性应用。
该方法可以应用于计算机设备,该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。
本申请实施例提供一种对象序列的识别方法,如图1所示,结合如图1所示步骤进行说明:
步骤S101,获取对象序列的第一图像。
在一些实施例中,对象序列可以是由任意对象呈序列式排布形成的序列,具体的对象类型不做特殊限定。比如,第一图像为游戏场所采集到的图像,那么对象序列可以是该游戏场所内的游戏中的游戏币等;或者,第一图像为多种不同材质或颜色的木板堆叠场景下采集到的图像,那么对象序列可以是堆叠在一起的一摞板材。
第一图像为至少一帧图像,该至少一帧图像为尺寸信息和像素值均满足一定条件的图像,是经过尺寸调整和像素值归一化的图像。
在一些可能的实现方式中,通过对获取的第二图像进行预处理,作为能够输入到对象序列的识别网络中的第一图像,即上述步骤S101可以通过以下步骤S111和S112(图示未示出)实现:
步骤S111,获取获取画面包括对象序列的第二图像。
这里,第二图像可以是包括对象序列的外观信息的图像,第二图像可以是任意采集设备采集到的图像,还可以是从互联网或者其他设备获取到的图像或者视频中的任意一帧。比如,第二图像为从网络中获取到的画面内容包括对象序列的一帧图像;或者,第二图像为画面内容包括对象序列的视频片段等。
步骤S112,基于预设图像参数,对所述第二图像的图像参数进行预处理,得到所述第一图像。
在一些可能的实现方式中,预设图像参数包括:图像宽度、高度和图像像素值等。首先,按照预设尺寸,对所述第二图像的尺寸信息进行调整,得到已调整的图像;其中,预设尺寸为设定的预设宽度,高宽和宽度的预设比例。比如,按照该预设宽度将多帧第二图像的宽度统一调整为该预设宽度。然后,对所述已调整的图像的像素值进行归一化,得到第一图像。比如,对于高度不足预设高度的第二图像图像,在未达到预设高度的图像区域中进行像素填充;比如,填充灰色像素值。这样,调整了尺寸信息之后,使得到的第一图像的尺寸中高度和宽度的比例都是统一的,能够减少图像在处理过程中产生的形变。
步骤S102,将所述第一图像输入对象序列的识别网络中进行特征提取,得到特征序列。
在一些实施例中,对象序列识别网络在训练过程的监督信息至少包括:样本图像组每一样本图像中的样本对象序列的类别的第一监督信息和至少两帧样本图像之间的相似度的第二监督信息;所述每一样本图像组中的至少两帧样本图像包括一帧原始样本图像和至少一帧对所述原始样本图像进行图像变换后得到的图像。其中,图像变换可以包括:尺寸缩放、旋转、亮度调整等中的一种或多种。需要说明的是,这里的图像变换不会对图像的画面内容进行大幅改动,经过变换后的图像与变换前的图像的画面内容是近似相同的。这样,可以增强对象序列识别网络针对图像的尺寸、旋转角、亮度等维度的变化的鲁棒性。
或者说,对象序列的识别网络是基于对画面内容相关或相似的至少两帧样本图像之间的相似度进行监督的第二损失和对所述每一帧样本图像中的样本对象的类别进行监督的第一损失集合训练得到的。该对象序列的识别网络在训练的过程中,采用的是面面内容相关或相似的多组样本图像进行训练的。
通过将第一图像输入到对象序列的识别网络中,采用对象序列的识别网络中的卷积神经网络部分对第一图像进行特征提取,得到特征图;并按照一定的方式对特征图进行拆分,从而将卷积神经网络提取到的特征图拆分成若干特征序列,以便于后续对该第一图像中的对象序列进行分类。在一些可能的实现方式中,可以是按照特征图的任一维度对特征图进行拆分,得到特征序列;这样,一帧第一图像的特征序列中包括多个特征。特征序列中的每个特征可以对应对象序列中的一个对象,或者特征序列中的多个特征与对象序列中的一个对象对应。
步骤S103,基于所述特征序列,确定所述对象序列中每个对象的类别。
在一些实施例中,采用对象序列的识别网络中的分类器,对一组样本图像中每一样本图像的特征序列中的特征的类别进行预测,从而得到每一样本图像的特征序列的预测概率。通过对特征序列中的特征进行类别预测,可以得到每一特征的类别,每一特征的类别即为该特征对应的对象的类别;这样,属于同一类的特征序列,即为同一对象对应的特征序列,那么同一类特征的类别即为该类特征所对应的对象的类别,进而能够得到对象序列中每个对象的类别。比如,对象序列的总类别数为n,那么采用具有n个类别标签的分类器,对特征序列中的特征的类别进行预测,从而得到特征序列中每一特征属于这n个类别标签的预测概率。将这样特征序列的预测概率,作为该特征序列的分类结果。
在一些实施例中,根据CTC函数的后处理规则对特征序列的分类结果进行处理(例如根据CTC输出的序列的概率生成最终的序列识别结果),得到每一个特征序列所对应的对象的类别,从而能够预测到该第一图像中对象序列中各个对象的类别。基于每一个特征序列所对应的对象的类别还可以统计属于同一类对象的序列的长度。特征序列的分类结果能够表征该特征序列对应的对象属于分类器的每一分类标签的概率;在一个特征序列对应的一组概率中,将概率值大于一定阈值的分类标签对应的类别作为该特征对应的对象的类别;如此,可以得到每一对象的类别。
在本申请实施例中,首先,采用监督信息包括对一组样本图像之间的相似度的监督和对所述一组样本图像的样本对象的类别监督的对象序列的识别网络,对第一图像进行特征提取,得到特征序列;然后,对对象序列中各对象进行类别预测,使得到的对象序列的分类结果较为准确;最后,通过对对象序列的分类结果进行进一步的处理,以确定多个对象的类别。这样,采用同时考虑图像相似度与对象类别的网络,对各个对象进行分类,既能够提高对第一图像中相似图像的特征提取和识别结果的一致性,提升鲁棒性,从而提高对象的识别精度。
在一些实施例中,采用对残差网络(Residual Network,ResNet)的结构进行微调后的卷积网络,实现对第一图像的特征提取,从而得到特征序列;即上述步骤S102可以通过图2所示的步骤实现,图2为本申请实施例提供的对象序列的识别方法的另一实现流程示意图,结合图2进行以下说明:
步骤S201,采用对象序列的识别网络中的卷积子网络对所述第一图像进行特征提取,得到特征图。
在一些实施例中,所述对象序列的识别网络是基于对样本图像的整体进行监督的第一损失和对所述样本图像中的每一类对象进行监督的第二损失训练得到的;采用对象序列的识别网络中的卷积网络部分对第一图像进行特征提取,得到特征图。对象序列的识别网络中的卷积网络部分可以是基于ResNet网络结构进行微调后得到的。
在一些可能的实现方式中,在对象序列的识别网络中,通过采用对步长进行调整后的卷积网络,对第一图像进行特征提取,从而得到高度保持不变,宽度变化的特征图,即上述步骤S201可以通过以下步骤S211至213(图示未示出)实现:
步骤S211,采用所述卷积子网络,在所述第一图像的第一方向的长度维度上对所述第一图像进行下采样,得到第一维度特征。
在一些可能的实现方式中,将调整后的ResNet网络结构作为对第一图像进行特征提取的卷积网络。第一方向不同于所述对象序列中的对象的排列方向。比如,如果对象序列是在高度方向上排列或堆叠的多个对象,即对象序列中对象的排列方向为高度方向,那么第一方向可以为该对象序列的宽度方向。如果对象序列是沿水平方向排列的多个对象,即对象序列中对象的排列方向为水平方向,那么第一方向可以为该对象序列的高度方向。比如,将该ResNet网络结构中的第三层(layer3)和第四层(layer4)的卷积层的最后一个步长(Stride)中的第一方向的步长保持为2不变;这样,就实现了在第一图像的第一方向的长度维度上进行下采样,将得到的特征图的第一方向的长度变为第一图像的第一方向的长度的一半。以对象序列为高度方向上堆叠的多个对象为例,将该ResNet网络结构中的第三层(layer3)和第四层(layer4)的卷积层的最后一个步长(Stride)中的宽度步长保持为2不变;这样,就实现了在第一图像的宽度维度上进行下采样,将得到的特征图的宽度变为第一图像的宽度的一半。
步骤S212,基于所述第一图像的第二方向的长度,提取所述第一图像的第二方向的长度维度上的特征,得到第二维度特征。
在一些可能的实现方式中,第二方向与对象序列中对象的排列方向相同,将该残差网络结构中的第三层和第四层的卷积层的最后一个步长中的第二方向的步长从2变为1;这样,就实现了在第一图像的第二方向的长度维度上不进行下采样,即保持第一图像的第二方向的长度,在该第一图像的第二方向的长度维度上进行特征提取,得到与第一图像的第二方向长度相同的第二维度特征。
在一个具体例子中,以对象序列的排列方向为高度方向为例,将该残差网络结构中的第三层和第四层的卷积层的最后一个步长中的高度步长从2变为1;这样,就实现了在第一图像的高度维度上不进行下采样,即保持第一图像的高度,在该第一图像的高度维度进行特征提取,得到与第一图像的高度相同的特征。
步骤S213,基于所述第一维度特征和所述第二维度特征,得到所述特征图。
在一些可能的实现方式中,将第一维度特征与第二维度特征相结合,组成该第一图像的特征图。
在上述步骤S211至213中,在第一图像的第二方向的长度维度上不对第一图像进行下采样,使得第二方向的维度特征的维度与第一图像的第二方向的维度相同,在与对象的排列方向不同的第一方向维度上对第一图像进行下采样,使得第一方向维度特征的长度变为第一图像的在第一方向的长度的一半;如此,能够尽可能多的保留第一图像在对象序列的排列方向维度上的特征信息。在对象序列的排列方向为高度方向的情况下,将ResNet中第三层和第四层的最后一个Stride为(2,2)的卷积层改为Stride为(1,2)的卷积层,从而使得在高度维度上不对第一图像进行下采样,使得高度维度特征的维度与第一图像的高度相同,在宽度维度上对第一图像进行下采样,使得宽度维度特征的宽度变为第一图像的宽度的一半;如此,能够尽可能多的保留第一图像在高度维度上的特征信息。
步骤S202,对所述特征图进行拆分,得到所述特征序列。
在一些实施例中,基于所述特征图的维度信息,对所述特征图进行拆分,得到所述特征序列。特征图的维度信息包括第一方向的维度和第二方向的维度(比如,宽度维度和高度维度),基于这样两个维度对该特征图做不同的处理,得到特征序列。比如,首先,通过在特征图的第一方向的维度对该特征图进行池化,然后,在特征图的第二方向的维度对该特征图进行拆分操作,从而将该特征图拆分为特征序列。这样,采用基于两个损失函数训练得到的对象序列的识别网络,对图像进行特征提取,并对该特征图按照维度信息进行拆分,从而能够得到保留了更多第二方向的特征的特征序列,便于后续对特征序列中的对象序列类别进行更加精准地识别。
在一些可能的实现方式中,在第一方向的维度对特征图进行池化,并沿着第二方向的维度对该特征图进行拆分,得到特征序列,即上述步骤S202可以通过步骤S221和222(图示未示出)实现:
步骤S221,沿着所述第一方向对所述特征图进行池化,得到已池化特征图。
在一些实施例中,沿着该特征图的第一方向维度,对该特征图进行平均池化,并保持该特征图在第二方向的维度和通道维度不变,得到已池化特征图。比如,以对象序列中对象的排列方向为沿高度排列为例,沿所述维度信息中的宽度维度对所述特征图进行池化,得到已池化特征图。第一特征图的维度为2048*40*16(其中,通道维度是2048,高维度是40,宽度维度是16),经过宽度维度的平均池化后变成2048*40*1的已池化特征图。
步骤S222,沿着所述第二方向对所述已池化特征图进行拆分,得到所述特征序列。
在一些实施例中,沿着所述特征图的第二方向维度,对所述已池化特征图进行拆分,得到所述特征序列。对已池化特征图进行拆分的数量可以是基于特征图的第二方向的长度确定的;比如,特征图第二方向的长度为60,那么将该已池化特征图拆分为60个向量。在一个具体例子中,以对象序列中对象的排列方向为沿高度排列为例,基于高度维度,对已池化特征图进行拆分,得到所述特征序列。如果已池化特征图为2048*40*1,沿着高度维度将已池化特征图进行拆分,得到40个2048维的向量,每个向量对应原始第一图像中高度方向1/40图像区域对应的特征。如此,通过在与对象排列方向不同的第一方向对特征图进行池化后,在与对象排列方向相同的第二方向对特征图进行拆分,从而使得特征序列能够包括第一图像沿第二方向的更多细节信息。
在一些实施例中,通过对特征序列的分类结果进行进一步的处理,预测每一对象的类别,即上述步骤S103可以通过以下步骤S131和S132(图示未示出)实现:
步骤S131,采用所述对象序列的识别网络的分类器,预测所述特征序列中每个特征对应的类别。
在一些实施例中,将特征序列输入分类器,以预测该特征序列中每一特征对应的类别。比如,对象序列的总类别数为n,那么采用具有n个类别标签的分类器,对特征序列中的特征的类别进行预测,从而得到特征序列中的特征对应于这n个类别标签中的每一个类别标签的预测概率。
步骤S132,在所述特征序列中的每个特征对应的类别的预测结果,确定所述对象序列中每一对象的类别。
在一些实施例中,在一些实施例中,对特征图进行拆分之后,特征序列中包括的是待识别图像在第二方向维度上的多个特征向量,即该特征向量为待识别图像的部分特征,可能包括一个或多个对象序列的全部特征,或者是包括一个对象序列的部分特征。这样,将特征序列中每一特征对应的对象的分类结果相结合,能够准确地识别出第一图像中对象序列中每一个对象的类别。首先,在特征序列的分类结果中,预测出每一特征向量所对应的对象的类别;然后,通过统计特征序列中每一特征向量所对应的对象的类别,可以确定出第一图像中所包括的各个对象的类别。如此,通过对特征序列的分类结果,采用CTC损失函数的后处理规则进行处理,能够更加准确地预测出图像中包括的对象序列的类别。
在其他实施例中,确定每一特征向量所属的对象类别之后,可以基于此,确定属于同一类对象的特征向量的长度。比如,以对象序列为游戏币序列为例,在特征序列中,确定属于同一类游戏币的特征所对应的游戏币序列长度。其中,游戏币的类别与游戏币的面值、游戏币的图案和游戏币所适用的游戏相关。每一类别对象的特征的序列长度都是不确定的,如此,实现了将定长的特征序列,转变为不定长的特征的序列长度。
在一些实施例中,对象序列的识别网络用于对对象序列的类别进行识别,对象序列的识别网络为对待训练的对象序列的识别网络进行训练得到的,待训练的对象序列的识别网络的训练过程可以通过如图2B所示的步骤实现,图2B为本申请实施例提供的对象序列的识别网络训练方法的实现流程示意图,结合图2B进行以下说明:
步骤S21,获取样本图像组。
在一些实施例中,样本图像组中的至少两帧样本图像包括一帧原始样本图像和至少一帧对所述原始样本图像进行图像变换后得到的图像,所述原始样本图像包括样本对象序列;原始样本图像中还包括样本对象的类别标注信息。该样本图像组中的多帧样本图像的画面内容的相似度大于预设阈值;或者,样本图像组中的多帧样本图像中标注的样本对象的类别相同。
步骤S22,将所述样本图像组中的样本图像输入待训练的对象序列的识别网络中进行特征提取,得到所述样本图像组中每一样本图像的样本特征序列。
在一些实施例中,首先,对样本图像组中的样本图像进行预处理,使得样本图像组中的样本图像的尺寸是统一的;然后,再对处理后的样本图像组进行特征提取,得到每一样本图像的样本特征序列。
在一些可能的实现方式中,通过对采集到的原始样本图像(即第一样本图像)先创建该样本图像的成对图像,然后组成样本图像对,对成对图像进行数据增强,将原始样本图像和增强的图像相结合作为样本图像组,即上述步骤S21可以通过以下步骤S231至234(图示未示出)实现:
步骤S231,获取对画面中样本对象的类别进行标注的第一样本图像。
这里,可以是采用图像采集设备对具有样本对象的场景进行图像采集,得到该第一样本图像,并对第一样本图像中的样本对象的类别进行标注。该第一样本图像可以是一帧或多帧图像。
步骤S232,基于所述第一样本图像的画面内容,确定至少一个第二样本图像。
在一些可能的实现方式中,首先,按照第一样本图像的画面内容,生成与该画面内容的相似度较高的多个图像,即得到多个第二样本图像。
步骤S233,对所述至少一个第二样本图像进行数据增强,得到至少一个第三样本图像。
在一些实施例中,对生成的第二样本图像进行数据增强,比如,对第二样本图像进行水平翻转,增加随机像素扰动,调整图像清晰度或亮度等,得到第三样本图像。
在一个具体例子中,对第一样本图像的画面内容进行复制,得到第二样本图像;再对第二样本图像进行数据增强,比如,调整第二样本图像的清晰度或者亮度等,得到第三样本图像。
步骤S234,基于所述第一样本图像和所述至少一个第三样本图像,得到所述样本图像组。
在一些实施例中,通过对第一样本图像和多个第三样本图像进行尺寸信息的调整,对像素值进行归一化等,以实现对样本数据的统一;将这样统一之后的至少两帧图像,作为一个样本图像组。如此,通过每一帧第一样本图像创建画面内容相似的成对图像,便于后续提高相似图像的特征提取的一致性。
在一些可能的实现方式中,在一组样本图像中,通过对样本图像进行预处理,并对预处理后的图像进行数据增强,将预处理后的图像和增强的图像相结合作为最终的一组样本图像,即上述步骤S234可以通过以下过程实现:
首先,基于预设图像参数,对所述至少一个第三样本图像和所述第一样本图像的图像参数进行预处理,得到至少两帧第三样本图像。
在一些可能的实现方式中,对第三样本图像和第一样本图像的图像参数进行预处理的过程,与对第二图像进行预处理的过程类似;即,首先,按照预设尺寸,对所述第三样本图像和第一样本图像的尺寸信息进行调整,得到已调整的图像;然后,对所述已调整的图像的像素值进行归一化,得到至少两帧第三样本图像。这样,按照该预设宽度将多帧样本原始图像的宽度统一调整为该预设宽度。对于高度不足预设高度的样本原始图像,在未达到预设高度的图像区域中进行像素填充;比如,填充灰色像素值。如此,调整了尺寸信息之后,使得到的样本图像组中的多帧样本图像的尺寸中高度和宽度的比例都是统一的,能够降低网络训练过程中产生的误差。
然后,对所述至少两帧第三样本图像进行数据增强,得到所述样本图像组。
这里,数据增强包括:随机翻转、随机裁剪、随机微调高宽比、随机旋转等操作;这样,对多帧已调整图像进行随机翻转、随机裁剪、随机微调高宽比、随机旋转等操作,能够得到更加丰富的一组样本图像。如此,将已进行尺寸统一的多帧图像相结合,作为样本图像组,能够丰富样本图像,而且能够提高待训练网络整体的鲁棒性。
步骤S23,基于所述每一样本图像的样本特征序列,预测所述每一样本图像中的样本对象序列的类别。
在一些实施例中,首先,在所述样本图像组中,对所述每一样本图像的样本特征序列中每一样本特征的类别进行预测,得到所述每一样本特征的分类结果;然后,基于所述每一样本特征的分类结果,确定所述每一样本图像的样本对象分类结果。这样,将样本图像组中每一样本图像的样本特征序列输入到待训练的对象序列的识别网络的分类器中进行类别预测,得到每一样本图像的样本特征序列的样本分类结果。每一样本图像的样本对象分类结果,包括:该样本图像的样本特序列中每一样本特征的分类结果。
在一些可能的实现方式中,通过分析样本对象的所有类别,设定分类器的分类标签,从而预测每一样本特征序列的样本分类结果,即上述步骤S23可以通过以下过程实现:
首先,确定所述样本图像集中包括的所述样本对象的总类别。
这里,分析样本图像所在场景下,样本对象的所有类别。比如,在游戏场景下,样本对象为游戏币,确定所有可能的游戏币的类别,作为游戏币的总类别。
然后,基于所述样本对象的总类别,确定所述待训练的对象序列的识别网络的分类器的分类标签。
这里,按照样本对象的总类别,设定分类器的分类标签,这样该分类器就能够预测样本图像中的样本对象属于任一类别的概率。
最后,采用具有所述分类标签的所述分类器,对所述样本图像组中每一样本图像的样本特征序列中的样本对象进行类别预测,得到所述每一样本图像的样本对象分类结果。
这里,采用具有多类分类标签的分类器,预测每一样本图像的样本特征序列中对象的类别,能够得到该样本图像的样本特征序列的样本分类结果;基于该样本分类结果可以确定该样本特征序列中包括的对象最有可能的类别。如此,通过分析对象的总类别,设定分类器所具有的分类标签,能够更加精确地预测样本特征序列中的对象的类别。
步骤S24,基于所述样本图像组中所述每一样本图像的样本序列特征,确定对所述每一样本图像中的样本对象序列的类别进行监督的第一损失,得到第一损失集合。
在一些实施例中,采用CTC损失作为第一损失。在样本图像组中,对于每一样本图像,通过将分类器输出的该样本图像的样本特征序列的分类结果以及该样本图像中样本对象的类别标注信息,作为CTC损失的输入,得到该样本图像的第一损失,以预测该样本图像的样本特征序列中每一特征对应的样本对象的类别;这样基于一组样本图像,可得到第一损失集合。
步骤S25,基于所述样本图像组中至少两帧样本图像的样本特征序列,确定所述至少两帧样本图像之间的相似度进行监督的第二损失。
在一些实施例中,采用成对损失作为第二损失,比如,成对损失的实现形式可以从衡量分布差异性的损失中选择。比如,回归损失(L2 loss),余弦损失(cos loss),相对熵损失(Kullback–Leibler divergence loss)等。在一组样本图像中,将每一样本图像的样本特征序列以及样本图像之间的相似度真值,输入到第二损失,预测不同样本图像之间的相似度。
步骤S26,采用所述第一损失集合和第二损失,对待训练的对象序列的识别网络的网络参数进行调整,以使调整后的对象序列的识别网络输出的分类结果的损失满足收敛条件。
这里,通过比较该分类结果中表征每一样本对象的类别和每一样本对象的真值信息,可以确定第一损失集合;通过比较不同样本图像之间的相似度与不同样本图像之间的相似度真值,可以确定第二损失。通过该第一损失和第二损失相融合,对待训练的对象序列的识别网络的权重值进行调整,使得训练好的对象序列的识别网络输出的样本对象的类别损失收敛。
通过上述步骤S21至步骤S26,在待训练的对象序列的识别网络中,基于成对图像组成的样本图像组,引入对整体序列进行监督的第一损失集合和对一组样本图像中图像之间的相似度进行监督的第二损失,能够提高对相似图像的特征提取一致性,从而整体提高该网络的类别预测效果。
在一些实施例中,在待训练的对象序列的识别网络中,采用卷积子网络,实现对样本图像的特征提取,从而得到样本特征序列,即上述步骤S22可以通过以下步骤S241和242实现(图示未示出):
步骤S241,采用所述待训练的对象序列的识别网络中的卷积子网络对所述每一样本图像进行特征提取,得到所述每一样本图像的样本特征图。
在一些实施例中,在样本图像组中,采用对残差网络的结构进行微调后的卷积网络作为该待训练识别网络的卷积子网络,对每一样本图像进行特征提取,得到样本特征图。
在一些可能的实现方式中,在待训练的对象序列的识别网络中,通过采用对步长进行调整后的卷积子网络,对样本图像进行特征提取,从而得到第一方向维度的信息保持不变,第二方向维度的信息变化的样本特征图,即上述步骤S241可以通过以下步骤实现:
第一步,采用所述卷积子网络,在所述每一样本图像的第一方向的长度维度上对所述每一样本图像进行下采样,得到第一维度样本特征。
这里,第一方向不同于所述样本对象序列中的样本对象的排列方向;第一步的实现过程与上述步骤S211的实现过程类似;在样本对象序列的排列方向为沿高度方向堆叠的情况下,在样本图像的宽度维度上对样本图像进行下采样,得到第一维度样本特征。设定该卷积子网络的layer3和layer4的卷积层的最后一个步长中的宽度步长保持为2不变,高度步长从2变为1。
第二步,基于所述每一样本图像的第二方向的长度,在所述每一样本图像的第二第二方向的长度维度上进行特征提取,得到第二维度样本特征。
这里,第二步的实现过程与上述步骤S212的实现过程类似;在样本对象序列的排列方向为沿高度方向堆叠的情况下,基于样本图像的高度,在所述样本图像的高度维度上进行特征提取,得到第二维度样本特征。比如,设定该卷积子网络的layer3和layer4的卷积层的最后一个步长中的高度从2变为1,这样,就实现了在样本图像的高度维度上不进行下采样,即保持样本图像的第二维度样本特征。
第三步,基于所述第一维度样本特征和所述第二维度样本特征,得到所述每一样本图像的所述样本特征图。
这里,将第一维度样本特征与第二维度样本特征相结合,组成该样本图像的样本特征图。
上述第一步至第三步,在样本对象序列的排列方向为沿高度方向堆叠的情况下,将ResNet中第三层和第四层的最后一个Stride为(2,2)的卷积层改为Stride为(1,2)的卷积层,作为该待训练的对象序列的识别网络的卷积子网络;如此,能够尽可能多的保留每一样本图像在排列方向的维度上的特征信息。
步骤S242,对所述每一样本图像的样本特征图进行拆分,得到所述每一样本图像的所述样本特征序列。
这里,步骤S242的实现过程与上述步骤S202的实现过程类似;即,基于第一方向的维度和第二方向的维度,对该每一样本特征图做不同的处理,得到样本特征序列。比如,在第一方向的维度上对样本特征图进行池化,在第二方向的维度上对样本特征图进行拆分成多个特征向量,组成样本特征序列;如此,能够得到保留了更多样本对象排列方向的维度特征的样本特征序列,能够提高对网络进行训练的准确度。
在一些可能的实现方式中,在第二方向维度对样本特征图进行池化,并沿着高第一方向维度对该样本特征图进行拆分,得到样本特征序列,即上述步骤S242可以通过以下步骤实现:
第一步,沿着所述第一方向对所述样本特征图进行池化,得到已池化样本特征图。
这里,第一步的实现过程与上述步骤S221的实现过程类似;即,沿着该样本特征图的第一方向的维度,对该样本特征图进行平均池化,并保持该样本特征图在第二方向的维度和通道维度不变,得到已池化样本特征图。
第二步,沿着所述第二方向对所述已池化样本特征图进行拆分,得到所述样本特征序列。
这里,第一步的实现过程与上述步骤S222的实现过程类似;即,沿着所述样本特征图的第二方向的维度,对所述已池化样本特征图进行拆分,得到所述样本特征序列。比如,样本特征图第二方向的维度为40,那么将该已池化样本特征图拆分为40个向量,组成样本特征序列。如此,通过在第二方向的维度对样本特征图进行池化后,在第二方向的维度对样本特征图进行拆分,从而使得样本特征序列能够保留样本图像在第二方向的维度上的更详细的信息。
在一些实施例中,通过对第一损失集合和第二损失进行动态加权融合,提高待训练的对象序列的识别网络识别对象序列的性能,即上述步骤S26可以通过以下步骤S261和S262实现:
步骤S261,对所述第一损失集合和所述第二损失进行加权融合,得到总损失。
在一些实施例中,采用不同的动态权重分别对第一损失集合和第二损失进行加权,将加权调整后的第一损失集合和第二损失进行融合,得到该总损失。
在一些实施例中,通过为第一损失和第二损失设定调整参数,提高待训练的对象序列的识别网络的对象序列的识别性能,即上述步骤S261可以通过以下步骤实现:
第一步,基于所述样本图像组中样本图像的数量,确定所述样本图像组对应的类别监督权重。
在一些实施例中,样本图像组对应的类别监督权重是针对一组样本图像确定的,即同一组中各样本图像对应的第一损失的权重可以相同。类别监督权重的数量与样本图像的数量相同,这样多个类别监督权重可以为同一个数值,也可以是不同的数值,但是多个类别监督调整的和为1。比如,样本图像组中样本图像的数量为n,那么类别监督权重可以是1/n。
第二步,基于所述类别监督权重和预设第一权重,对所述所述样本图像组的第一损失集合中的第一损失进行融合,得到第三损失。
在一些实施例中,通过将类别监督权重和预设第一权重,均赋予第一损失集合中的第一损失,并对赋予参数后的多个第一损失进行求和,得到第三损失。
在一些可能的实现方式中,通过先采用类别监督调整将多个第一损失进行融合,再采用预设第一权重对融合后的损失进行调整,从而得到第三损失,即上述第二步可以通过以下步骤实现:
步骤A,将所述类别监督权重分别赋予所述第一损失集合中的每一第一损失,得到包括至少两个已更新损失的已更新损失集合。
在一些可能的实现方式中,如果样本图像组中样本图像的数量为4,那么类别监督权重为0.25,将该类别监督权重0.25与每一第一损失进行相乘,得到已更新损失。
步骤B,将所述已更新损失集合中的已更新损失进行融合,得到融合损失。
在一些可能的实现方式中,将已更新损失集合中的已更新损失进行相加,得到融合损失。
步骤C,采用所述预设第一权重对所述融合损失进行调整,得到所述第三损失。
在一些可能的实现方式中,设定预设第一权重与预设第二权重之间的比值为1:10,将预设第一权重与融合损失相乘,得到该第三损失。如此,在训练过程中,通过将一组样本图像中每一样本图像的预测结果的CTC损失进行融合,能够提高训练得到的识别网络的性能。
第三步,采用预设第二权重对所述第二损失进行调整,得到第四损失。
在一些实施例中,将预设第二权重赋予第二损失,实现对第二损失的调整,比如,采用预设第二权重与第二损失相乘,得到第四损失。其中,预设第一权重小于预设第二权重,且预设第一权重与预设第二权重之间满足一定的比例关系。
步骤S254,基于所述第三损失和所述第四损失,确定所述总损失。
在一些实施例中,将第三损失和所述第四损失进行相加,得到该待训练的对象序列的识别网络的总损失。
步骤S262,基于所述总损失,对所述待训练的对象识别网络的网络参数进行调整,以使调整后的所述对象识别网络输出的分类结果的损失满足收敛条件。
在本申请实施例中,采用第三损失和所述第四损失进行融合得到的总损失,对待训练的对象序列的识别网络进行训练,能够提高对相似图像的特征提取的一致性,从而能够提高整个网络的预测效果。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用,以应用场景为游戏场所为例,对游戏场所中的对象(比如,游戏币)进行识别为例,进行说明。
图像中的序列识别算法在场景文字识别、车牌识别等场景中有广泛应用。在相关技术中,主要是由卷积神经网络提取图像特征+对每个切片特征进行分类预测结合CTC损失函数去重并监督预测输出构成的,在文字识别和车牌识别任务中都能适用。
然而,对于游戏场所中的游戏币序列识别问题,由于游戏币序列通常序列长度较长,且对于每个游戏币的面额和类型预测准确度有较高的要求;基于深度学习方法对游戏币进行序列识别的方式效果不佳。
基于此,本申请实施例提供一种对象序列的识别方法,在基于CTC损失的游戏币识别的基础上,增加基于成对图像的特征相似度的pair loss,从而能够提高对相似图像的特征提取一致性,进而能够提高游戏币识别精度。
图3为本申请实施例提供的对象序列的识别网络的结构示意图,结合图3进行以下说明,该对象序列的识别网络的框架包括以下模块:
构建成对数据模块,用于对训练图像中的每一帧图像301构建对应的成对图像302,得到样本图像集。
在一些可能的实现方式中,对训练图像进行数据增强处理,比如,对训练图像进行水平翻转、增加随机像素扰动、调整图像清晰度、调整图像亮度等操作;在不改变图像中游戏币序列标注的情况下,对每一帧图像构建对应的成对图像,并以成对的形式进行后续处理。
在一个具体例子中,通过首先对一帧图像进行复制,然后对复制的图像进行数据增强,得到该图像的成对图像。
通过为每一帧图像构建对应的成对图像之后,对一帧样本图像进行预处理,包括:保持高宽比调整图像大小、图像像素值归一化等操作。其中,保持长宽比调整图像大小的操作为,将多帧样本图像的宽调整到统一大小;为了减少由于输入图像中的游戏币数量不等,图像高宽比差距大,如果不保持多帧图像的高宽比调整到统一大小,那么这多帧图像会产生巨大的形变,本申请实施例对于图像高度不足最大高度的图像,在剩余不足最大高度的位置填充(127,127,127)灰色均值像素值。对为丰富样本图像集,对处理后的样本图像仅数据增强步骤;比如,对处理后的样本图像孔美新随机翻转、随机裁剪、随机微调高宽比、随机旋转等操作,如此,能够提高待训练网络整体的鲁棒性。
特征提取模块303,对处理后的样本图像进行特征提取,得到特征序列;其中,对图像301进行处理后,特征提取得到样本特征序列31,对成对图像302进行处理后,特征提取得到样本特征序列32。
在一些可能的实现方式中,首先,利用待训练的对象序列的识别网络中的卷积神经网络部分对输入的样本图像提取高层次特征。该卷积神经网络部分是基于残差网络(ResNet)的网络结构进行微调得到的;比如,对ResNet网络结构中layer3和layer4的最后一个步长(Stride)为(2,2)的卷积层改为Stride(1,2);这样,使得特征图在高度维度上不进行下采样,在宽度维度上进行下采样变为原来的一半,如此,能够尽可能多的保留高度维度上的特征信息。然后,对特征图进行拆分操作,即将卷积神经网络提取的特征图拆分成若干特征序列,以便于后续分类器与损失函数计算。在实现特征图拆分时沿着特征图宽度方向做平均池化,高度方向和通道维度都不变;比如,特征图的尺寸是2048*40*8(通道维度是2048,高维度是40,宽度维度是8),经过宽度方向的平均池化后变成2048*40*1的特征图,并沿着高度维度将特征图拆开,变成40个2048维的向量,每个向量对应原图中高度方向1/40区域对应的特征。
在一个具体例子中,如果样本图像如图4所示,包括多个游戏币,那么按照图像401的高维度进行划分,得到特征序列,一个特征序列中包括小于等于一个游戏币的特征。
分类器,对特征序列,使用n分类器进行游戏币类别预测,得到每个特征序列的预测概率。
这里,n为游戏币种类总数。
损失模块,针对卷积网络得到的特征序列,利用成对损失304确定成对图像的特征相似度,并以提高相似度为优化目标,对网络进行监督。针对所有特征序列分类的预测概率,利用CTC损失305和CTC损失306分别对一对图像中每一图像的特征序列的预测结果进行监督。
在一些可能的实现方式中,将成对损失304、CTC损失305和CTC损失306组成总损失307,L=α(0.5L
最后,根据特征序列的分类结果按照上述损失函数的计算结果进行反向传播,更新网络参数权重。在测试阶段,根据CTC损失函数后处理规则对特征序列的分类结果进行处理,得到预测的游戏币序列结果,包括游戏币序列长度和每个游戏币对应的分类。
在本申请实施例中,在不引入额外参数或网络结构更改的情况下,能够提升对序列长度的预测结果,同时提高类别的识别精度,最终提高整体识别结果,特别是在长游戏币序列的场景得到较大提升。
本申请实施例提供一种对象序列的识别装置,图5A为本申请实施例对象序列的识别装置的结构组成示意图,如图5A所示,所述对象序列的识别装置500包括:
第一获取模块501,用于获取对象序列的第一图像;
第一提取模块502,用于将所述第一图像输入对象序列的识别网络中进行特征提取,得到特征序列;其中,所述对象序列识别网络在训练过程的监督信息至少包括:样本图像组每一样本图像中的样本对象序列的类别的第一监督信息和至少两帧样本图像之间的相似度的第二监督信息;所述每一样本图像组中的至少两帧样本图像包括一帧原始样本图像和至少一帧对所述原始样本图像进行图像变换后得到的图像;
第一确定模块503,用于基于所述特征序列,确定所述对象序列中每个对象的类别。
在一些实施例中,所述第一提取模块502,包括:
第一提取子模块,用于采用所述对象序列的识别网络中的卷积子网络对所述第一图像进行特征提取,得到特征图;
第一拆分子模块,用于对所述特征图进行拆分,得到所述特征序列。
在一些实施例中,所述第一提取子模块,包括:
第一下采样单元,用于采用所述卷积子网络,在所述第一图像的第一方向的长度维度上对所述第一图像进行下采样,得到第一维度特征,所述第一方向不同于所述对象序列中的对象的排列方向;
第一提取单元,用于基于所述第一图像的第二方向的长度,提取所述第一图像的第二方向的长度维度上的特征,得到第二维度特征;
第一确定单元,用于基于所述第一维度特征和所述第二维度特征,得到所述特征图。
在一些实施例中,所述第一拆分子模块,包括:
第一池化单元,用于沿着所述第一方向对所述特征图进行池化,得到已池化特征图;
第一拆分单元,用于沿着所述第二方向对所述已池化特征图进行拆分,得到所述特征序列。
在一些实施例中,所述第一确定模块503,包括:
第一预测子模块,用于采用所述对象序列的识别网络的分类器,预测所述特征序列中每个特征对应的类别;
第一确定子模块,用于在所述特征序列中的每个特征对应的类别的预测结果,确定所述对象序列中每一对象的类别。
本申请实施例提供一种对象序列的识别网络训练装置,图5B为本申请实施例对象序列的识别网络训练装置的结构组成示意图,如图5B所示,所述对象序列的识别网络训练装置510包括:
第二获取模块511,用于获取样本图像组;其中,样本图像组中的至少两帧样本图像包括一帧原始样本图像和至少一帧对所述原始样本图像进行图像变换后得到的图像,所述原始样本图像包括样本对象序列;
第二提取模块512,用于将所述样本图像组中的样本图像输入待训练的对象序列的识别网络中进行特征提取,得到所述样本图像组中每一样本图像的样本特征序列;
第一预测模块513,用于基于所述每一样本图像的样本特征序列,预测所述每一样本图像中的样本对象序列的类别;
第二确定模块514,用于基于所述样本图像组中所述每一样本图像的样本序列特征,确定对所述每一样本图像中的样本对象序列的类别进行监督的第一损失,得到第一损失集合;
第三确定模块515,用于基于所述样本图像组中至少两帧样本图像的样本特征序列,确定所述至少两帧样本图像之间的相似度进行监督的第二损失;
第一调整模块516,用于采用所述第一损失集合和所述第二损失,对待训练的对象序列的识别网络的网络参数进行调整,以使调整后的对象序列的识别网络输出的分类结果的损失满足收敛条件。
在一些实施例中,所述第二获取模块511,包括:
第一获取子模块,用于获取对画面中样本对象的类别进行标注的第一样本图像;
第二确定子模块,用于基于所述第一样本图像的画面内容,确定至少一个第二样本图像;
第一增强子模块,用于对所述至少一个第二样本图像进行数据增强,得到至少一个第三样本图像;
第三确定子模块,用于基于所述第一样本图像和所述至少一个第三样本图像,得到所述样本图像组。
在一些实施例中,所述第二提取模块512,包括:
第二提取子模块,用于采用所述待训练的对象序列的识别网络中的卷积子网络对所述每一样本图像进行特征提取,得到所述每一样本图像的样本特征图;
第二拆分子模块,用于对所述每一样本图像的样本特征图进行拆分,得到所述每一样本图像的所述样本特征序列。
在一些实施例中,所述第二提取子模块,包括:
第二下采样单元,用于采用所述卷积子网络,在所述每一样本图像的第一方向的长度维度上对所述每一样本图像进行下采样,得到第一维度样本特征,所述第一方向不同于所述样本对象序列中的样本对象的排列方向;
第二提取单元,用于基于所述每一样本图像的第二方向的长度,在所述每一样本图像的第二第二方向的长度维度上进行特征提取,得到第二维度样本特征;
第二确定单元,用于基于所述第一维度样本特征和所述第二维度样本特征,得到所述每一样本图像的所述样本特征图。
在一些实施例中,所述第二拆分子模块,包括:
第二池化单元,用于沿着所述第一方向对所述样本特征图进行池化,得到已池化样本特征图;
第二拆分单元,用于沿着所述第二方向对所述已池化样本特征图进行拆分,得到所述样本特征序列。
在一些实施例中,所述第一调整模块516,包括:
第一融合子模块,用于对所述第一损失集合和所述第二损失进行加权融合,得到总损失;
第一调整子模块,用于基于所述总损失,对所述待训练的对象识别网络的网络参数进行调整,以使调整后的所述对象识别网络输出的分类结果的损失满足收敛条件。
在一些实施例中,所述第一融合子模块,包括:
第三确定单元,用于基于所述样本图像组中样本图像的数量,确定所述样本图像组对应的类别监督权重;
第一融合单元,用于基于所述类别监督权重和预设第一权重,对所述所述样本图像组的第一损失集合中的第一损失进行融合,得到第三损失;
第一调整单元,用于采用预设第二权重对所述第二损失进行调整,得到第四损失;
第四确定单元,用于基于所述第三损失和所述第四损失,确定所述总损失;
在一些实施例中,所述第一融合单元,包括:
第一赋予子单元,用于将所述类别监督权重分别赋予所述第一损失集合中的每一第一损失,得到包括至少两个已更新损失的已更新损失集合;
第一融合子单元,用于将所述已更新损失集合中的已更新损失进行融合,得到融合损失;
第一调整子单元,用于采用所述预设第一权重对所述融合损失进行调整,得到所述第三损失。
需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的对象序列的识别方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是终端、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、运动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
本申请实施例再提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令被执行后,能够实现本申请实施例提供的对象序列的识别方法、对象序列的识别网络训练方法。
本申请实施例再提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,所述该计算机可执行指令被处理器执行时实现上述实施例提供的对象序列的识别方法、对象序列的识别网络训练方法。
本申请实施例提供一种计算机设备,图6为本申请实施例计算机设备的组成结构示意图,如图6所示,所述计算机设备600包括:一个处理器601、至少一个通信总线、通信接口602、至少一个外部通信接口和存储器603。其中,通信接口602配置为实现这些组件之间的连接通信。其中,通信接口602可以包括显示屏,外部通信接口可以包括标准的有线接口和无线接口。其中所述处理器601,配置为执行存储器中图像处理程序,以实现上述实施例提供的对象序列的识别方法、对象序列的识别网络训练方法。
以上对象序列的识别装置、计算机设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同相应方法实施例相似的技术描述和有益效果,限于篇幅,可案件上述方法实施例的记载,故在此不再赘述。对于本申请对象序列的识别装置、计算机设备和存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ReadOnly Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 神经网络的训练方法、图像分割方法、装置、设备及介质
- 一种神经网络训练方法及装置、设备、介质
- 神经网络的训练方法、横向控制方法、装置、设备及介质
- 一种神经网络训练方法、装置、计算机设备和存储介质
- 网络服务平台情感倾向识别方法、装置、设备和存储介质
- 对象序列的识别方法、网络训练方法、装置、设备及介质
- 对象识别方法、网络训练方法、装置、设备及介质