发明内容
本申请的主要目的在于提供一种基于神经网络的绑扎判定方法,以解决通过人工操作确定绑扎点是否绑扎的方式费时费力的问题。
为了实现上述目的,根据本申请的第一方面,提供了一种基于神经网络的绑扎判定方法。
根据本申请的基于神经网络的绑扎判定方法包括:
绑扎机器人通过机架上的摄像头获取当前区域的图像,所述当前区域为绑扎机器人在当前方位能够识别到的钢筋绑扎区域;
基于神经网络模型对当前区域的图像进行识别,确定当前区域中绑扎点的位置以及判断绑扎点是否完成绑扎;
若未完成绑扎,则控制机械臂对准未绑扎点位置并通过机械臂上的摄像头获取近距离的未绑扎点图像;
基于神经网络模型对近距离的未绑扎点图像进行识别,验证未绑扎点是否未绑扎。
进一步的,所述基于神经网络模型对当前区域的图像进行识别,确定当前区域中绑扎点的位置以及判断绑扎点是否完成绑扎包括:
对当前区域的图像进行分割,得到多个绑扎点图像,每个绑扎点图像对应一个绑扎点;
对每个绑扎点图像进行识别确定绑扎点是否已绑扎;
若所有的绑扎点都为已绑扎点则确定当前区域中的绑扎点完成绑扎。
进一步的,所述若所有的绑扎点都为已绑扎点则确定当前区域中的绑扎点完成绑扎包括:
统计已绑扎点的数量;
计算识别率,所述识别率为已绑扎点的数量与当前区域的图像中所有绑扎点的数量之比;
根据识别率确定当前区域中的绑扎点是否完成绑扎。
进一步的,所述方法还包括:
获取训练样本,所述训练样本为预设数量的并已标记已绑扎点和未绑扎点的钢筋绑扎区域图像;
根据训练样本进行模型训练得到神经网络模型。
进一步的,所述神经网络模型为卷积神经网络模型,所述根据训练样本进行模型训练得到神经网络模型还包括:
对训练样本进行增益处理;
采用随机失活Dropout方法,对训练过程中的神经元进行随机去除;
对使用的线性整流函数对应的线性整流层的输出做局部归一化处理。
进一步的,所述机架上的摄像头为深度摄像头,所述机械臂上的摄像头为高分辨率摄像头。为了实现上述目的,根据本申请的第二方面,提供了一种基于神经网络的绑扎判定装置。
根据本申请的基于神经网络的绑扎判定装置包括:
第一获取单元,用于绑扎机器人通过机架上的摄像头获取当前区域的图像,所述当前区域为绑扎机器人在当前方位能够识别到的钢筋绑扎区域;
第一识别单元,用于基于神经网络模型对当前区域的图像进行识别,确定当前区域中绑扎点的位置以及判断绑扎点是否完成绑扎;
第二获取单元,用于若未完成绑扎,则控制机械臂对准未绑扎点位置并通过机械臂上的摄像头获取近距离的未绑扎点图像;
第二识别单元,用于基于神经网络模型对近距离的未绑扎点图像进行识别,验证未绑扎点是否未绑扎。
进一步的,所述第一识别单元包括:
分割模块,用于对当前区域的图像进行分割,得到多个绑扎点图像,每个绑扎点图像对应一个绑扎点;
识别模块,用于对每个绑扎点图像进行识别确定绑扎点是否已绑扎;
确定模块,用于若所有的绑扎点都为已绑扎点则确定当前区域中的绑扎点完成绑扎。
进一步的,所述确定模块用于:
统计已绑扎点的数量;
计算识别率,所述识别率为已绑扎点的数量与当前区域的图像中所有绑扎点的数量之比;
根据识别率确定当前区域中的绑扎点是否完成绑扎。
进一步的,所述装置还包括:
第三获取单元,用于获取训练样本,所述训练样本为预设数量的并已标记已绑扎点和未绑扎点的钢筋绑扎区域图像;
训练单元,用于根据训练样本进行模型训练得到神经网络模型。
进一步的,所述神经网络模型为卷积神经网络模型,所述训练单元还包括:
增益模块,用于对训练样本进行增益处理;
去除模块,用于采用随机失活Dropout方法,对训练过程中的神经元进行随机去除;
归一化处理模块,用于对使用的线性整流函数对应的线性整流层的输出做局部归一化处理。
进一步的,所述机架上的摄像头为深度摄像头,所述机械臂上的摄像头为高分辨率摄像头。
为了实现上述目的,根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;
以及与所述处理器连接的至少一个存储器、总线;其中,
所述处理器、存储器通过所述总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行第一方面中任一项所述的基于神经网络的绑扎判定方法。
为了实现上述目的,根据本申请的第四方面,提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述第一方面中任一项所述的基于神经网络的绑扎判定方法。
在本申请实施例中,基于神经网络的绑扎判定方法和装置中,绑扎机器人能够首先通过机架上的摄像头获取当前区域的图像,并基于神经网络模型对图像进行识别,初步判断绑扎点是否完成绑扎并且确定当前区域中绑扎点的位置;如果初步确定未完成绑扎,则控制机械臂对准未绑扎点位置并通过机械臂上的摄像头获取近距离的未绑扎点图像;再次基于神经网络模型对近距离的未绑扎点图像进行识别,验证未绑扎点是否未绑扎。整个过程中没有人工的干预,省时省力。另外,在判定绑扎状态的过程中经过了初次判断以及再次验证双重图像识别,因此能够确保绑扎点绑扎状态的准确判断。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
根据本申请实施例,提供了一种基于神经网络的绑扎判定的方法,如图1所示,该方法包括如下的步骤S101至步骤S104:
首先需要说明的是,本实施例的应用场景为对钢筋进行绑扎。
S101.绑扎机器人通过机架上的摄像头获取当前区域的图像。
其中,当前区域为绑扎机器人在当前方位能够识别到的钢筋绑扎区域。相比于能够活动的机械臂,机架是固定的设备,机架相比于机械臂来讲距离钢筋的绑扎点较远。获取当前区域的图像是为了判断当前区域中的绑扎点的绑扎状态,以进一步确定是否进行绑扎操作。
S102.基于神经网络模型对图像进行识别,确定当前区域中绑扎点的位置以及判断绑扎点是否完成绑扎。
神经网络模型的输入为包含绑扎点的图像,输出为标注出已绑扎点和未绑扎点的图像。神经网络模型是提前根据训练样本训练好的,训练样本是预设数量的并已标记已绑扎点和未绑扎点的钢筋绑扎区域图像,因此通过本实施例中的神经网络模型能够对当前区域的图像进行识别,确定绑扎点是否完成绑扎。另外,识别出绑扎点的同时能够对应的获取绑扎点的位置,该位置是基于机架上的摄像头坐标系下的坐标位置。获取绑扎点位置是为了根据绑扎点的位置将机械臂移动到未绑扎点位置对未绑扎点进行绑扎状态的验证。
另外,对于判断绑扎点是否完成绑扎的判断依据为当前区域的图像中所有的绑扎点是否完成绑扎。
S103.若未完成绑扎,则控制机械臂对准未绑扎点位置并通过机械臂上的摄像头获取近距离的未绑扎点图像。
如果当前区域的绑扎点未完成绑扎,则表示还有未绑扎的绑扎点。但是由于前述判断绑扎点的绑扎状态是以机架上的摄像头获取的图像为依据进行判断的,而机架上的摄像头距离绑扎点距离较远,为了确保判断的准确性,本实施例对已经判断为未绑扎的绑扎点进行验证。具体的验证是通过机械臂末端的摄像头再次获取近距离的未绑扎点图像,以近距离的未绑扎图像为依据判断的。具体的判断过程参见步骤S104。
S104.基于神经网络模型对近距离的未绑扎点图像进行识别,验证未绑扎点是否未绑扎。
本步骤基于神经网络模型对近距离的未绑扎点图像进行识别与步骤S102中对当前区域的图像识别的实现方式是相同的,此处不再赘述。本步骤是进一步的对未绑扎点的状态进行验证。如果验证通过,则确定为未绑扎点,此时绑扎机器人会控制机械臂根据未绑扎点的位置进行绑扎,具体的未绑扎点的位置是根据获取的近距离的未绑扎点图像的识别确定的未绑扎点的位置。如果验证没有通过,则继续对其他的未绑扎点图像进行识别,直到当前区域中所有的绑扎点都确定为已绑扎状态,则绑扎机器人继续前行。
从以上的描述中,可以看出,本申请实施例中基于神经网络的绑扎判定方法中,绑扎机器人能够首先通过机架上的摄像头获取当前区域的图像,并基于神经网络模型对图像进行识别,初步判断绑扎点是否完成绑扎并且确定当前区域中绑扎点的位置;如果初步确定未完成绑扎,则控制机械臂对准未绑扎点位置并通过机械臂上的摄像头获取近距离的未绑扎点图像;再次基于神经网络模型对近距离的未绑扎点图像进行识别,验证未绑扎点是否未绑扎。整个过程中没有人工的干预,省时省力。另外,在判定绑扎状态的过程中经过了初次判断以及再次验证双重图像识别,因此能够确保绑扎点绑扎状态的准确判断。
根据本申请另一实施例,提供了一种基于神经网络的绑扎判定方法,如图2所示,该方法包括:
S201.绑扎机器人通过机架上的摄像头获取当前区域的图像。
本步骤的实现方式可以参见图1步骤S101的实现方式,另外还需要补充的是,获取当前区域的图像的机架上的摄像头为深度摄像头,比如realsenseD435等其它种类或者其它型号的深度摄像头。采用深度摄像头,是为了获取更加准确的绑扎点的位置信息,保证绑扎的准确性。
S202.基于卷积神经网络模型对当前区域的图像进行识别,确定当前区域中绑扎点的位置以及判断绑扎点是否完成绑扎。
具体的基于卷积神经网络模型对当前区域的图像进行识别的原理为:对图像进行分割,得到多个绑扎点图像,每个绑扎点图像对应一个绑扎点;然后对每个绑扎点图像进行识别确定绑扎点是否已绑扎。
优选的,本实施例中的卷积神经网络为AlexNet神经网络模型,在实际的应用中,也可以使用ResNet或者VGGNet等其他的神经网络模型。
本实施例中的卷积神经网络模型需要提前进行训练得到,具体的以AlexNet神经网络模型为例进行训练的说明:1)获取训练样本。获取预设数量的包含钢筋绑扎点的图像;对每一个图像进行人工标注,标注出已绑扎点和未绑扎点,并且用不同的颜色或者形状进行已绑扎点和未绑扎点的区分。2)基于训练样本进行AlexNet神经网络模型的训练。在训练的过程中,为了保证训练神经网络的快速性,使用了线性整流函数,并对线性整流层的输出做了局部响应归一化的处理,这种处理是基于真实神经元的行为的启发,形成了一种横向抑制。为防止过度拟合造成绑扎识别对于不同环境的适应性变差,对训练样本进行了增益处理,即对图像进行了翻转,以及在神经网络的训练过程中采用随机失活Dropout的方法,随机的去除一些神经元。另外,图3为本实施例提供的一种卷积神经网络模型(AlexNet神经网络模型)的网络结构示意图。
最终得到的AlexNet神经网络模型的输入为包含绑扎点的图像,输出为标注出已绑扎点和未绑扎点的图像。因此,基于卷积神经网络模型对图像进行识别,能够确定已绑扎点和未绑扎点。
依据已确定的已绑扎点和未绑扎点,确定当前区域中绑扎点是否完成绑扎。具体的判定方式有两种:
第一种判定方式:
若所有的绑扎点都为已绑扎点则确定当前区域中的绑扎点完成绑扎;若不是所有的绑扎点都为已绑扎点则确定当前区域中的绑扎点未完成绑扎。
第二种判定方式:
1)统计已绑扎点的数量;2)计算识别率,识别率为已绑扎点的数量与当前区域的图像中所有绑扎点的数量之比;3)根据识别率确定当前区域中的绑扎点是否完成绑扎:将识别率与预设值比较。其中预设值为自定义值,优选的,本实例中将预设值设为大于等于0.75小于1的值;若识别率小于预设值,则确定当前区域的绑扎点未完成绑扎;若识别率大于等于预设值,则确定当前区域的绑扎点完成绑扎。
对于当前区域的图像中所有绑扎点的数量的计算过程为:确定当前区域的图像中边界点的坐标;根据边界点的坐标以及钢筋间距计算图像中所有绑扎点的数量。给出具体的示例对图像中所有绑扎点的数量的计算过程进行说明:如图4所示,图像中边界点的坐标分别为(x0,y0)(x1,y1)(x2,y2)(x3,y3);由此可以计算出当前区域的图像中所能识别出的绑扎点数的最大值Nmax=((x1-x0)/dx+1)*((y2-y0)/dy-1);其中dx、dy表示实际钢筋的间距;将上述最大值确定为本实施例中当前区域的图像中所有绑扎点的数量。
S203.若未完成绑扎,则控制机械臂对准未绑扎点位置并通过机械臂上的摄像头获取近距离的未绑扎点图像。
本步骤的实现方式与图1步骤S103的实现方式相同,此处不再赘述。另外需要补充的是机械臂上的摄像头为高分辨率摄像头,比如高分辨率USB摄像头。
S204.基于卷积神经网络模型对近距离的未绑扎点图像进行识别,验证未绑扎点是否未绑扎。
本步骤中卷积神经网络模型与步骤S202中的卷积神经网络模型相同,因此基于卷积神经网络模型对近距离的未绑扎点图像进行识别,可以确定未绑扎点是否未绑扎。本步骤是进一步的对未绑扎点的状态进行验证。如果验证通过,则确定为未绑扎点,此时绑扎机器人会控制机械臂根据未绑扎点的位置进行绑扎,具体的未绑扎点的位置是根据获取的近距离的未绑扎点图像的识别确定的未绑扎点的位置。如果验证没有通过,则继续对其他的未绑扎点图像进行识别,直到当前区域中所有的绑扎点都确定为已绑扎状态,则绑扎机器人继续前行。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述图1或图2所述方法的基于神经网络的绑扎判定装置,如图5所示,该装置包括:
第一获取单元31,用于绑扎机器人通过机架上的摄像头获取当前区域的图像,所述当前区域为绑扎机器人在当前方位能够识别到的钢筋绑扎区域;
第一识别单元32,用于基于神经网络模型对当前区域的图像进行识别,确定当前区域中绑扎点的位置以及判断绑扎点是否完成绑扎;
第二获取单元33,用于若未完成绑扎,则控制机械臂对准未绑扎点位置并通过机械臂上的摄像头获取近距离的未绑扎点图像;
第二识别单元34,用于基于神经网络模型对近距离的未绑扎点图像进行识别,验证未绑扎点是否未绑扎。
具体的,本申请实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
从以上的描述中,可以看出,本申请实施例中基于神经网络的绑扎判定装置中,绑扎机器人能够首先通过机架上的摄像头获取当前区域的图像,并基于神经网络模型对图像进行识别,初步判断绑扎点是否完成绑扎并且确定当前区域中绑扎点的位置;如果初步确定未完成绑扎,则控制机械臂对准未绑扎点位置并通过机械臂上的摄像头获取近距离的未绑扎点图像;再次基于神经网络模型对近距离的未绑扎点图像进行识别,验证未绑扎点是否未绑扎。整个过程中没有人工的干预,省时省力。另外,在判定绑扎状态的过程中经过了初次判断以及再次验证双重图像识别,因此能够确保绑扎点绑扎状态的准确判断。
进一步的,如图6所示,所述第一识别单元32包括:
分割模块321,用于对当前区域的图像进行分割,得到多个绑扎点图像,每个绑扎点图像对应一个绑扎点;
识别模块322,用于对每个绑扎点图像进行识别确定绑扎点是否已绑扎;
确定模块323,用于若所有的绑扎点都为已绑扎点则确定当前区域中的绑扎点完成绑扎。
进一步的,如图6所示,所述确定模块323用于:
统计已绑扎点的数量;
计算识别率,所述识别率为已绑扎点的数量与当前区域的图像中所有绑扎点的数量之比;
根据识别率确定当前区域中的绑扎点是否完成绑扎。
进一步的,如图6所示,所述装置还包括:
第三获取单元35,用于获取训练样本,所述训练样本为预设数量的并已标记已绑扎点和未绑扎点的钢筋绑扎区域图像;
训练单元36,用于根据训练样本进行模型训练得到神经网络模型。
进一步的,如图6所示,所述神经网络模型为卷积神经网络模型,所述训练单元36还包括:
增益模块361,用于对训练样本进行增益处理;
去除模块362,用于采用随机失活Dropout方法,对训练过程中的神经元进行随机去除;
归一化处理模块363,用于对使用的线性整流函数对应的线性整流层的输出做局部归一化处理。
进一步的,所述机架上的摄像头为深度摄像头,所述机械臂上的摄像头为高分辨率摄像头。
具体的,本申请实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
根据本申请实施例,还提供了一种电子设备,该电子设备包括:
至少一个处理器;
以及与所述处理器连接的至少一个存储器、总线;其中,
所述处理器、存储器通过所述总线完成相互间的通信;
所述处理器用于调用所述存储器中的程序指令,以执行上述图1或图2中所述的基于神经网络的绑扎判定方法。
根据本申请实施例,还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行图1或图2所述的基于神经网络的绑扎判定方法。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。