一种目标识别方法及设备与流程

文档序号:18167918发布日期:2019-07-13 09:43阅读:190来源:国知局
一种目标识别方法及设备与流程

本发明涉及目标识别技术领域,特别涉及一种目标识别方法及设备。



背景技术:

随着计算机技术、神经网络技术的发展,越来越多的人用神经网络模型进行目标识别,但在用神经网络模型进行目标识别的过程中,存在着大量复杂数据的运算,如各个网络层的浮点型模型参数,以及可能为小数形式的图像数据,上述各个网络层的模型参数以及上述图像数据间的运算直接影响着神经网络模型进行目标识别的效率,但在使用神经网络模型进行目标识别时,由于上述模型参数以及图像数据间存在大量复杂的乘除运算,且上述模型参数和图像数据常常以小数或者浮点型数据的形式表示,进而导致神经网络模型处理数据占用计算资源多,十分消耗时间,加长运算周期,进而极大地降低了神经网络模型进行目标识别的效率。

综上所述,在利用神经网络模型进行目标识别时,存在着大量数据的乘除运算,进而导致利用神经网络模型处理任务的效率过低。



技术实现要素:

本发明提供一种目标识别方法及设备,用以解决现有技术中,存在利用神经网络模型进行目标识别时,存在着大量数据的乘除运算,进而导致利用神经网络模型处理任务的效率过低的问题。

第一方面,本申请实施例提供一种目标识别方法,该方法包括:

将用于目标识别的图像数据输入神经网络模型;

利用所述神经网络模型对所述图像数据进行目标识别过程中,确定n个相乘或相除的处理数据;

从所述n个相乘或相除的处理数据中确定m个移位数据,其中,所述n为大于1的整数,所述m为大于0小于n的整数;

根据各移位数据的真实值确实所述各移位数据对应的移位方向,根据各移位数据的绝对值确定所述各移位数据对应的移位位数;

根据所述各移位数据对应的移位方向和移位位数,确定所述n个处理数据相乘或相除的结果;

根据所述n个处理数据相乘或相除的结果,通过所述神经网络模型输出所述目标识别的识别结果。

上述方法中,在利用神经网络模型进行目标识别时,在出现的多个处理数据的乘除运算中,用数据的移位替代一部分乘除运算,占用的计算资源较少,进而加快数据处理的速度,节省时间提高效率,另一方面,上述方法中,根据移位数据的绝对值确定对应的移位位数,保证移位后的结果与实际运算的结果偏离程度在一定范围之内。

在一种可能的实现方式中,所述处理数据包括如下任一或任多:

所述神经网络模型的模型参数;

量化所述神经网络模型时的模型参数的量化系数;

量化后的所述神经网络模型的模型参数;

所述用于目标识别的图像数据。

在一种可能的实现方式中,该方法用于多个处理数据相乘时,根据各移位数据的真实值确实所述各移位数据对应的移位方向,包括:

任一移位数据的真实值大小大于第一预设数据时,确定该移位数据的移位方向为左移;

任一移位数据的真实值大小不大于第一预设数据时,确定该移位数据的移位方向为右移。

在一种可能的实现方式中,该方法用于多个处理数据相除时,根据各移位数据的真实值确实所述各移位数据对应的移位方向,包括:

任一移位数据的真实值大小大于第一预设数据时,确定该移位数据的移位方向为右移;

任一移位数据的真实值大小不大于第一预设数据时,确定该移位数据的移位方向为左移。

在一种可能的实现方式中,根据各移位数据的绝对值确定所述各移位数据对应的移位位数,包括:

确定与任一移位数据的绝对值最接近的,第二预设数据的幂次方的值;

根据所述第二预设数据的幂次方的值,确定该移位数据的移位位数。

在一种可能的实现方式中,根据所述第二预设数据的幂次方的值,确定该移位数据的移位位数,包括:

根据所述第二预设数据的幂次方的值确定所述幂k;

将所述幂k确定为该移位数据的移位位数,所述k为整数。

在一种可能的实现方式中,从n个相乘或相除的处理数据中确定m个移位数据,包括如下任一步骤:

从所述n个相乘或相除的处理数据中确定任m处理个数据为移位数据;

从所述n个相乘或相除的处理数据中指定m处理个数据为移位数据;

从所述n个相乘或相除的处理数据中指定部分数据,从所述部分数据中确定任m个处理数据为移位数据。

在一种可能的实现方式中,根据所述各移位数据对应的移位方向和移位数据确定所述n个处理数据相乘的结果,包括:

确定所述n个处理数据中除所述各移位数据外的其他处理数据相乘的结果值;

只存在一个移位数据时,将所述其他处理数据相乘的结果值根据该移位数据对应的移位方向和移位位数进行移位;

存在多个移位数据时,将所述其他处理数据相乘的结果值根据每个移位数据对应的移位方向和移位位数进行移位。

在一种可能的实现方式中,根据各移位数据对应的移位方向和移位数据确定所述n个处理数据相除的结果,包括:

只存在一个除数为移位数据时,将除以所述一个除数之前的计算结果值根据该移位数据对应的移位方向和移位位数进行移位,移位后继续按除数的先后顺序进行其他除数的计算至得到最终结果值;

存在多个除数为移位数据时,按除数的先后顺序,对于为移位数据的除数,将除以该除数之前的计算结果值,按照该移位数据的移位方向和移位位数进行移位,对于非移位数据的除数,进行除以该除数的计算至得到最终结果值。

在一种可能的实现方式中,该方法应用于现场可编程阵列fpga中时,所述第一预设数据为1,所述第二预设数据为2。

第二方面,本申请实施例提供一种目标识别设备,该设备包括处理器和存储器,其中,所述存储器存储可执行程序,所述可执行程序被执行时,所述处理器用于实现如下过程:

将用于目标识别的图像数据输入神经网络模型获取目标识别相关数据,从所述目标识别相关数据中确定n个相乘或相除的处理数据;

从所述n个相乘或相除的处理数据中确定m个移位数据,其中,所述n为大于1的整数,所述m为大于0小于n的整数;

根据各移位数据的真实值确实所述各移位数据对应的移位方向,根据各移位数据的绝对值确定所述各移位数据对应的移位位数;

根据所述各移位数据对应的移位方向和移位位数,确定所述n个处理数据相乘或相除的结果;

根据所述n个处理数据相乘或相除的结果,通过所述神经网络模型输出所述目标识别的识别结果。

第三方面,本申请还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理单元执行时实现第一方面所述方法的步骤。

另外,第二方面至第四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例一提供的一种目标识别的方法示意图;

图2为本申请实施例二提供的一种目标识别的示意图;

图3为本申请实施例三提供的一种目标识别的示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

随着计算机技术、物联网技术的发展,如何加快对数据处理的效率成了急需解决的问题,在众多场景中,出现越来越多的浮点数或小数等复杂数据的乘除运算,如在现场可编程门阵列fpga(fieldprogrammablegataarray)中,常常运算周期较长,运算速度较慢,导致数据运算效率过低。

因此本申请实施例提供一种目标识别方法及设备;

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

针对上述场景,下面结合说明书附图对本发明实施例做进一步详细描述。

实施例一:

如图1所示,本发明实施例的一种目标识别的方法,该方法用于多个数据相乘或相除,具体包括以下步骤:

步骤101,将用于目标识别的图像数据输入神经网络模型;

步骤102,利用上述神经网络模型对上述图像数据进行目标识别过程中,确定n个相乘或相除的处理数据;

步骤103,从上述n个相乘或相除的处理数据中确定m个移位数据,其中,上述n为大于1的整数,上述m为大于0小于n的整数;

步骤104,根据各移位数据的真实值确实上述各移位数据对应的移位方向,根据各移位数据的绝对值确定上述各移位数据对应的移位位数;

步骤105,根据上述各移位数据对应的移位方向和移位位数,确定上述n个处理数据相乘或相除的结果;

步骤106,根据上述n个处理数据相乘或相除的结果,通过上述神经网络模型输出上述目标识别的识别结果。

应当理解的是,上述步骤102至步骤105的执行主体为上述神经网络模型;

上述方法中,在利用神经网络模型进行目标识别时,在出现的多个处理数据的乘除运算中,用数据的移位替代一部分乘除运算,占用的计算资源较少,进而加快数据处理的速度,节省时间提高效率,另一方面,上述方法中,根据移位数据的绝对值确定对应的移位位数,保证移位后的结果与实际运算的结果偏离程度在一定范围之内。

作为一种可选的实施方式,上述处理数据可以但不局限于包括如下任一或任多:

1)上述神经网络模型的模型参数;

在本实施例中,在创建上述神经网络模型或者利用上述神经网络模型进行目标识别时,可以但不局限于对上述过程涉及到的上述模型参数的乘除运算进行移位操作,以加快创建上述神经网络模型的过程,以使在训练模型时,加快模型的迭代过程,在用上述神经网络模型进行目标识别时,对涉及到的模型参数的乘除运算进行移位操作,可以加快神经网络模型进行目标识别的速度,同时减少了占用的计算资源;

2)量化上述神经网络模型时的模型参数的量化系数;

在创建上述神经网络模型时,因为上述神经网络模型的模型参数常常是浮点型数据或者小数等复杂形式,致使在创建用于目标识别的神经网络模型在处理上述模型参数的乘除计算时,消耗的计算资源多,且用时长,在本实施例中,可以但不局限于在创建上述神经网络模型时,利用预设的量化系数对上述模型参数进行量化成整数,进而在创建上述神经网络模型时,对涉及到的模型参数的量化系数的乘除运算进行移位操作,以加快上述神经网络模型的创建,以及提高利用上述神经网络模型进行目标识别的效率;

3)上述神经网络模型的模型参数经量化系数量化后的整数;

在创建上述神经网络模型时,因为上述神经网络模型的模型参数常常是浮点型数据或者小数等复杂形式,致使在创建用于目标识别的神经网络模型在处理上述模型参数的乘除计算时,消耗的计算资源多,且用时长,在本实施例中,可以但不局限于在创建上述神经网络模型时,利用预设的量化系数对上述模型参数进行量化成整数,进而在创建上述神经网络模型时,对涉及到的量化上述模型参数得到的整数的乘除运算进行移位操作,以加快上述神经网络模型的创建,以及提高利用上述神经网络模型进行目标识别的效率;

4)上述用于目标识别的图像数据;

在本实施例中,在利用上述神经网络进行目标识别时,对上述涉及到的图像数据的乘除运算进行移位操作,简化运算,加快了上述神经网络模型对图像数据的处理,进而能更快的得到上述神经网络模型输出的目标识别的结果。

作为一种可选的实施方式,该方法用于多个处理数据相乘时,根据乘法运算的特性,根据各移位数据的真实值确实上述各移位数据对应的移位方向,包括:

任一移位数据的真实值大小大于第一预设数据时,确定该移位数据的移位方向为左移;

任一移位数据的真实值大小不大于第一预设数据时,确定该移位数据的移位方向为右移。

作为一种可选的实施方式,该方法用于多个处理数据相除时,根据除法运算的特性,根据各移位数据的真实值确实上述各移位数据对应的移位方向,包括:

任一移位数据的真实值大小大于第一预设数据时,确定该移位数据的移位方向为右移;

任一移位数据的真实值大小不大于第一预设数据时,确定该移位数据的移位方向为左移。

在本实施中,可以根据乘数的先后顺序依次确定上述各移位数据的移位方向,也可以按照其他顺序确定上述各移位数据的移位方向。

作为一种可选的实施方式,根据各移位数据的绝对值确定上述各移位数据对应的移位位数,包括:

确定与任一移位数据的绝对值最接近的,第二预设数据的幂次方的值;

根据上述第二预设数据的幂次方的值,确定该移位数据的移位位数。

作为一种可选的实施方式,根据上述第二预设数据的幂次方的值,确定该移位数据的移位位数,包括:

根据上述第二预设数据的幂次方的值确定上述幂k;

将上述幂k确定为该移位数据的移位位数,上述k为整数。

对上述第一预设数据和第二预设数据不做过多限定,在本实施例中,根据移位操作及乘除法运算的特性,当上述移位数据为二进制表示的数据时,上述第一预设数据可以但不局限于为1,上述第二预设数据为2;当上述移位数据为八进制表示的数据时,上述第二预设数据为8,当上述移位数据为十六进制表示的数据时,上述第二预设数据为16,应当理解的是,上述各种进制表示的数据都可以转化为二进制数据进行运算,且上述除法也可以转为乘法运算。

在本实施例中,上述第一预设数据为1,第二数据为2,对于(a×b),若a为二进制表示的“101”(即十进制表示的数字5),b为二进制表示的1000(即十进制表示的数字8)时,若确定的移位数据为b,因b表示的数接近十进制的23,因此上述幂k为3,上述b对应的移位方向为左移,移位位数为3;

作为一种可选的实施方式,从n个相乘或相除的数据中确定m个移位数据,包括如下任一步骤:

1)从上述n个相乘或相除的处理数据中确定任m个处理数据为移位数据;

在本实施例中,该方法应用于多个处理数据相乘时,可以从n个数据中选出任一或者任多个处理数据为移位数据,该方法应用于多个处理数据相除时,可以从n个处理数据中除被除数外的其他处理数据中选择任一或任多个处理数据为移位数据;

2)从上述n个相乘或相除的处理数据中指定m个处理数据为移位数据;

在本实施例中,该方法应用于多个处理数据相乘时,可以从n个处理数据中指定一或者多个处理数据为移位数据,该方法应用于多个处理数据相除时,可以从n个处理数据中除被除数外的其他处理数据中指定一个或多个处理数据为移位数据;

3)从上述n个相乘或相除的处理数据中指定部分数据,从上述部分数据中确定任m个处理数据为移位数据。

在本实施例中,该方法应用于多个处理数据相乘时,可以从n个处理数据中指定部分数据,进而从指定的部分数据中选择任一或者任多个处理数据为移位数据,该方法应用于多个处理数据相除时,可以从n个处理数据中除被除数外的其他处理数据中指定部分数据,进而从指定的部分数据中选择任一或者任多个处理数据为移位数据;

作为一种可选的实施方式,该方法应用于多个处理数据相乘时,根据上述各移位数据对应的移位方向和移位数据确定上述n个处理数据相乘的结果,包括:

确定上述n个处理数据中除上述各移位数据外的其他处理数据相乘的结果值;

只存在一个移位数据时,将上述其他处理数据相乘的结果值根据该移位数据对应的移位方向和移位位数进行移位;

存在多个移位数据时,将上述其他处理数据相乘的结果值根据每个移位数据对应的移位方向和移位位数进行移位。

应当理解的是,当存在多个移位数据,将上述其他处理数据相乘的结果值根据每个移位数据对应的移位方向和移位位数位进行移位时,可以按照乘数的先后顺序依次将各移位数据前的乘积结果按照对应的移位方向移动移位位数,也可以按照如下方法确定上述n个处理数据相乘的结果:

1)计算除作为移位数据的各乘数的乘积的结果值;

2)根据上述各移位数据对应的移位方向和移位位数确定综合移位操作,上述综合移位操作包括综合移位方向和综合移位个数;

3)根据上述综合移位操作将对上述除作为移位数据的各乘数的乘积的结果值进行移位;

如在本实施例中,若多个处理数据相乘为(a×b×c),且确定的移位数据为b和c时,若b对应的移位方向为右移,移位位数为2,c对应的移位方向右移为右移,移位位数为3,则上述综合移位操作的移位方向为右移,移位位数为5,则上述a×b×c的结果为将a进行右移5位的结果;若b对应的移位方向为左移,移位位数为2,c对应的移位方向右移为右移,移位位数为3,则上述综合移位操作的移位方向为右移,移位位数为1,则上述(a×b×c)的结果为将a进行右移1位的结果;

作为一种可选的实施方式,该方法应用于多个处理数据相除时,根据各移位数据对应的移位方向和移位数据确定上述n个处理数据相除的结果,包括:

只存在一个除数为移位数据时,将除以上述一个除数之前的计算结果值根据该移位数据对应的移位方向和移位位数进行移位,移位后继续按除数的先后顺序进行其他除数的计算至得到最终结果值;

存在多个除数为移位数据时,按除数的先后顺序,对于为移位数据的除数,将除以该除数之前的计算结果值,按照该移位数据的移位方向和移位位数进行移位,对于非移位数据的除数,进行除以该除数的计算至得到最终结果值。

如在本实施例中,若多个处理数据相除为(a÷b÷c),且确定的移位数据为b和c时,若b对应的移位方向为右移,移位位数为2,c对应的移位方向右移为右移,移位位数为3,则应先根据b对应的移位方向和移位位数将a右移2位,进而按照c对应的移位方向和移位位数,将a右移2位的结果右移3位。

作为一种可选的实施方式,该方法应用于现场可编程阵列fpga中时,上述多个相乘或相除的数据以二进制的形式表示,此时上述第一预设数据为1,行述第二预设数据为2。

需要说明的是,本申请实施例中所列举的对利用神经网络模型进行目标识别涉及到的处理数据的处理方法只是举例说明,任何一种可以利用神经网络模型进行任务处理中涉及上述方法的方式都适用于本发明实施例。

实施例二:

如图2所示,基于相同的发明构思,本实施例提供一种目标识别设备,该设备包括处理器201和存储器202,其中,上述存储器存储可执行程序,上述可执行程序被执行时,上述处理器用于实现如下过程:

将用于目标识别的图像数据输入神经网络模型;

利用上述神经网络模型对上述图像数据进行目标识别过程中,确定n个相乘或相除的处理数据;

从上述n个相乘或相除的处理数据中确定m个移位数据,其中,上述n为大于1的整数,上述m为大于0小于n的整数;

根据各移位数据的真实值确实上述各移位数据对应的移位方向,根据各移位数据的绝对值确定上述各移位数据对应的移位位数;

根据上述各移位数据对应的移位方向和移位位数,确定上述n个处理数据相乘或相除的结果;

根据上述n个处理数据相乘或相除的结果,通过上述神经网络模型输出上述目标识别的识别结果。

可选地,上述处理数据包括如下任一或任多:

上述神经网络模型的模型参数;

量化上述神经网络模型时的模型参数的量化系数;

量化后的上述神经网络模型的模型参数。

上述用于目标识别的图像数据。

可选地,上述处理器具体用于:

多个处理数据相乘时,任一移位数据的真实值大小大于第一预设数据时,确定该移位数据的移位方向为左移,任一移位数据的真实值大小不大于第一预设数据时,确定该移位数据的移位方向为右移。

多个处理数据相除时,任一移位数据的真实值大小大于第一预设数据时,确定该移位数据的移位方向为右移,任一移位数据的真实值大小不大于第一预设数据时,确定该移位数据的移位方向为左移。

可选地,上述处理器具体用于,确定与任一移位数据的绝对值最接近的,第二预设数据的幂次方的值,根据上述第二预设数据的幂次方的值,确定该移位数据的移位位数。

可选地,上述处理器具体用于,根据上述第二预设数据的幂次方的值确定上述幂k,将上述幂k确定为该移位数据的移位位数,上述k为整数。

可选地,上述处理器具体用于如下任一步骤:

从上述n个相乘或相除的处理数据中确定任m个处理数据为移位数据;

从上述n个相乘或相除的处理数据中指定m个处理数据为移位数据;

从上述n个相乘或相除的处理数据中指定部分数据,从上述部分数据中确定任m个处理数据为移位数据。

可选地,上述处理器具体用于,多个处理数据相乘时,确定上述n个处理数据中除上述各移位数据外的其他处理数据相乘的结果值;只存在一个移位数据时,将上述其他处理数据相乘的结果值根据该移位数据对应的移位方向和移位位数进行移位,存在多个移位数据时,将上述其他处理数据相乘的结果值根据每个移位数据对应的移位方向和移位位数进行移位。

可选地,上述处理器具体用于,多个处理数据相除时,只存在一个除数为移位数据时,将除以上述一个除数之前的计算结果值根据该移位数据对应的移位方向和移位位数进行移位,移位后继续按除数的先后顺序进行其他除数的计算至得到最终结果值;存在多个除数为移位数据时,按除数的先后顺序,对于为移位数据的除数,将除以该除数之前的计算结果值,按照该移位数据的移位方向和移位位数进行移位,对于非移位数据的除数,进行除以该除数的计算至得到最终结果值。

上述设备为现场可编程阵列fpga设备时,上述第一预设数据为1,上述第二预设数据为2。

如图3所示,基于相同的发明构思,本实施例提供一种目标识别装置,该装置包括:

目标识别数据输入单元301,用于将用于目标识别的图像数据输入神经网络模型;

处理数据获取单元302,利用上述神经网络模型对上述图像数据进行目标识别过程中确定n个相乘或相除的处理数据;

移位数据确定单元303,用于从上述n个相乘或相除的处理数据中确定m个移位数据,其中,上述n为大于1的整数,上述m为大于0小于n的整数;

移位方向及位数确定单元304,用于根据各移位数据的真实值确实上述各移位数据对应的移位方向,根据各移位数据的绝对值确定上述各移位数据对应的移位位数;

移位结果确定单元305,根据上述各移位数据对应的移位方向和移位位数,确定上述n个处理数据相乘或相除的结果;

目标识别结果输出单元306,用于根据上述n个处理数据相乘或相除的结果,通过上述神经网络模型输出上述目标识别的识别结果。

实施例三:

本实施例提供一种计算机可读非易失性存储介质,包括程序代码,当上述程序代码在计算终端上运行时,上述程序代码用于使上述计算终端执行上述本申请实施例一的方法的步骤。

以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。

相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1