一种图像处理方法及装置与流程

文档序号:18400697发布日期:2019-08-09 23:51阅读:189来源:国知局
一种图像处理方法及装置与流程

本申请涉及机器人技术,尤其涉及一种图像处理方法及装置。



背景技术:

机器人学习的研究主要分为监督学习和强化学习两个方向,其中监督学习又有模仿学习和自监督学习等细分方向。模仿学习方法通过收集专家的示教信息来训练网络模型,缺点是需要大量专家示教信息,且通常假设环境是已知和有限的,对于现实中开放而复杂的场景效果不好;自监督学习则是通过机器人试错实验来采集标注数据,缺点试错实验成功率低,采集数据非常低效,而且在真实环境中试错会存在安全风险。强化学习方法通过机器人大量的探索来学会完成指定的任务,缺点是需要的探索次数非常多,在现实中几乎不可能完成。

现有机器人学习过程中是直接使用彩色图像作为网络模型输入,通过生成对抗网络(generativeadversarialnetworks,gan)模型来学习到一个能对输入的rgb图像进行良好编码的编码器,再将编码器的输出输入到长短期记忆网络(longshort-termmemory,lstm)模型中,让网络学会完成一个序列的动作。该方法的缺点是所需数据量仍然很大,共计采集了约2500次专家示教范例。该方法采集数据非常耗时,可能会出现机器人物理损耗,而且专家示教的场景和动作是有限的,机器人无法对不熟悉的场景作出合适预测。因此,如何高效快速地采集数据,以及如何通过少量数据训练一个效果良好的网络模型,是机器人技术亟待解决的技术问题。



技术实现要素:

为解决上述技术问题,本申请实施例期望提供一种图像处理方法及装置。

本申请的技术方案是这样实现的:

第一方面,提供了一种图像处理方法,该方法包括:获取训练样本集,所述训练样本集包括至少一个彩色样本图像,以及至少一个与所述彩色样本图像对应的深度样本图像;

将所述训练样本集输入图像处理模型进行处理,所述图像处理模型包括彩色图像处理模型以及深度图像处理模型,所述彩色图像处理模型用于对所述彩色样本图像进行处理得到彩色重构图像,所述深度图像处理模型用于对所述深度图像进行处理得到深度重构图像;

基于所述彩色样本图像、所述彩色重构图像、所述深度样本图像与所述深度重构图像确定所述图像处理模型的第一损失参数,并基于所述第一损失参数调整所述彩色图像处理模型,得到训练后的彩色图像处理模型。

这样,利用彩色图像和深度图像同时作为训练样本具有信息互补的作用,能够以较少的训练样本训练出效果良好的彩色图像处理模型,采用分步训练的方式能够降低训练难度,提高训练效率。

上述方案中,所述方法还包括:基于所述第一损失参数调整所述深度图像处理模型,得到训练后的深度图像处理模型。

这样,在图像处理模型训练过程中,可以同时训练彩色图像处理模型和深度图像处理模型,利用训练后的深度图像处理模型监督训练彩色图像处理模型,能够同时提高二者的训练效果。

上述方案中,所述彩色图像处理模型包括第一编码模块,所述深度图像处理模型包括第二编码模块,所述基于所述彩色样本图像、所述彩色重构图像、所述深度样本图像与所述深度重构图像确定所述图像处理模型的第一损失参数,包括:将所述彩色样本图像输入至所述彩色图像处理模型的第一编码模块中,输出编码后的第一彩色样本图像;将所述深度样本图像输入至所述彩色图像处理模型的第二编码模块中,输出编码后的第一深度样本图像;基于所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,得到第一损失参数。

上述方案中,所述彩色图像处理模型还包括第一解码模块,所述深度图像处理模型还包括第二解码模块,所述基于所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,得到第一损失参数,包括:将所述编码后的第一彩色样本图像输入至所述第一解码模块,输出所述彩色重构图像;将所述编码后的第一深度样本图像输入至所述第二解码模块,输出所述深度重构图像;利用所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,计算得到第二损失参数;基于所述编码后的第一彩色样本图像和所述彩色重构图像,确定第三损失参数;基于所述编码后的第一深度样本图像和所述深度重构图像,确定第四损失参数;基于所述第二损失参数、所述第三损失参数和所述第四损失参数,确定所述第一损失参数。

这样,将编码后的第一彩色样本图像和编码后的第一深度样本图像得到的第二损失函数作为图像处理模型的一种损失参数,能够保证图像处理模型中得到的编码后的彩色图像和深度图像尽量相似,以此来提高训练效果。

上述方案中,所述训练样本集还包括:至少一个与所述彩色样本图像对应的机器人的状态标签;

所述方法还包括:将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;基于所述编码后的第二彩色样本图像以及所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型;

或者,所述方法还包括:将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;将所述深度样本图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的第二深度样本图像;基于所述编码后的第二彩色样本图像和所述编码后的第二深度样本图像,以及所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型。

这样,训练控制模型得到预测状态信息之后,利用状态标签来检验预测状态信息是否准确,通过使预测状态信息与状态标签相同或相近,可以提高控制模型的训练效果。

上述方案中,所述状态标签至少包括以下之一:关节角度、关节线速度和关节角速度。

上述方案中,所述方法还包括:控制机器人对目标对象执行目标任务时,获取包含所述目标对象的目标彩色图像;将所述目标彩色图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的目标彩色图像;将所述编码后的目标彩色图像输入至所述训练后的控制模型,得到所述机器人的结果状态信息,基于所述结果状态信息对所述机器人进行控制。

这样,可以先利用训练后的彩色图像处理模型的图像识别能力识别出彩色图像中的场景信息,再通过训练后的控制模型的控制能力确定针对当前场景信息所能执行的控制操作,分步操作降低了控制难度。

上述方案中,所述方法还包括:控制机器人对目标对象执行目标任务时,获取包含所述目标对象的目标彩色图像和目标深度图像;将所述目标彩色图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的目标彩色图像;将所述目标深度图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的目标深度图像;将所述编码后的目标彩色图像和编码后的目标深度图像输入至所述训练后的控制模型,得到所述机器人的结果状态信息,基于所述结果状态信息对所述机器人进行控制。

这样,可以利用训练后的彩色图像处理模型的图像识别能力和训练后的深度图像处理模型的图像识别能力,能够得到更全面的场景信息,利用这些信息能够使训练后的控制模型得到更准确的控制信息,提高控制精度。

上述方案中,所述获取训练样本集包括:对采集到的彩色样本图像和采集到的深度样本图像进行数据增强处理以增加样本数量,得到所述训练样本集。

这样,通过数据增强处理不仅可以增加数据量,还可以缓解网络过拟合,提高模型训练效率。

第二方面,本申请实施例中还提供了一种图像处理装置,所述装置包括:

获取单元,用于获取训练样本集,所述训练样本集包括至少一个彩色样本图像,以及至少一个与所述彩色样本图像对应的深度样本图像;

处理单元,用于将所述训练样本集输入图像处理模型进行处理,所述图像处理模型包括彩色图像处理模型以及深度图像处理模型,所述彩色图像处理模型用于对所述彩色样本图像进行处理得到彩色重构图像,所述深度图像处理模型用于对所述深度图像进行处理得到深度重构图像;

所述处理单元,还用于基于所述彩色样本图像、所述彩色重构图像、所述深度样本图像与所述深度重构图像确定所述图像处理模型的第一损失参数,并基于所述第一损失参数调整所述彩色图像处理模型,得到训练后的彩色图像处理模型。

这样,利用彩色图像和深度图像同时作为训练样本具有信息互补的作用,能够以较少的训练样本训练出效果良好的彩色图像处理模型,采用分步训练的方式能够降低训练难度,提高训练效率。

上述方案中,所述处理单元,还用于基于所述第一损失参数调整所述深度图像处理模型,得到训练后的深度图像处理模型。

这样,在图像处理模型训练过程中,可以同时训练彩色图像处理模型和深度图像处理模型,利用训练后的深度图像处理模型监督训练彩色图像处理模型,能够同时提高二者的训练效果。

上述方案中,所述彩色图像处理模型包括第一编码模块,所述深度图像处理模型包括第二编码模块,所述处理单元,具体用于将所述彩色样本图像输入至所述彩色图像处理模型的第一编码模块中,输出编码后的第一彩色样本图像;将所述深度样本图像输入至所述彩色图像处理模型的第二编码模块中,输出编码后的第一深度样本图像;基于所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,得到第一损失参数。

上述方案中,所述彩色图像处理模型还包括第一解码模块,所述深度图像处理模型还包括第二解码模块,所述处理单元,具体用于将所述编码后的第一彩色样本图像输入至所述第一解码模块,输出所述彩色重构图像;将所述编码后的第一深度样本图像输入至所述第二解码模块,输出所述深度重构图像;利用所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,计算得到第二损失参数;基于所述编码后的第一彩色样本图像和所述彩色重构图像,确定第三损失参数;基于所述编码后的第一深度样本图像和所述深度重构图像,确定第四损失参数;基于所述第二损失参数、所述第三损失参数和所述第四损失参数,确定所述第一损失参数。

这样,将编码后的第一彩色样本图像和编码后的第一深度样本图像得到的第二损失函数作为图像处理模型的一种损失参数,能够保证图像处理模型中得到的编码后的彩色图像和深度图像尽量相似,以此来提高训练效果。

上述方案中,所述训练样本集还包括:至少一个与所述彩色样本图像对应的机器人的状态标签;

所述处理单元,还用于将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;基于所述编码后的第二彩色样本图像以及所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型;

或者,所述处理单元,还用于将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;将所述深度样本图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的第二深度样本图像;基于所述编码后的第二彩色样本图像和所述编码后的第二深度样本图像,以及所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型。

这样,训练控制模型得到预测状态信息之后,利用状态标签来检验预测状态信息是否准确,通过使预测状态信息与状态标签相同或相近,可以提高控制模型的训练效果。

上述方案中,所述状态标签至少包括以下之一:关节角度、关节线速度和关节角速度。

上述方案中,所述获取单元,还用于控制机器人对目标对象执行目标任务时,获取包含所述目标对象的目标彩色图像;所述处理单元,还用于将所述目标彩色图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的目标彩色图像;将所述编码后的目标彩色图像输入至所述训练后的控制模型,得到所述机器人的结果状态信息,基于所述结果状态信息对所述机器人进行控制。

这样,可以先利用训练后的彩色图像处理模型的图像识别能力识别出彩色图像中的场景信息,再通过训练后的控制模型的控制能力确定针对当前场景信息所能执行的控制操作,分步操作降低了控制难度。

上述方案中,所述获取单元,还用于控制机器人对目标对象执行目标任务时,获取包含所述目标对象的目标彩色图像和目标深度图像;

所述处理单元,还用于将所述目标彩色图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的目标彩色图像;将所述目标深度图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的目标深度图像;将所述编码后的目标彩色图像和编码后的目标深度图像输入至所述训练后的控制模型,得到所述机器人的结果状态信息,基于所述结果状态信息对所述机器人进行控制。

这样,可以利用训练后的彩色图像处理模型的图像识别能力和训练后的深度图像处理模型的图像识别能力,能够得到更全面的场景信息,利用这些信息能够使训练后的控制模型得到更准确的控制信息,提高控制精度。

上述方案中,所述获取单元,具体用于对采集到的彩色样本图像和采集到的深度样本图像进行数据增强处理以增加样本数量,得到所述训练样本集。

这样,通过数据增强处理不仅可以增加数据量,还可以缓解网络过拟合,提高模型训练效率。

第三方面,本申请实施例中还提供了另一种图像处理装置,所述装置包括处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行前述任一项所述方法的步骤。

第四方面,本申请实施例中还提供了一种计算机存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。

采用上述技术方案,将彩色样本图像和深度样本图像输入至图像处理模型中,利用图像处理模型的第一损失参数调整彩色图像处理模型,以得到训练后的彩色图像处理模型。这样,利用彩色样本图像和深度样本图像同时作为训练样本具有信息互补的作用,能够以较少的训练样本训练出效果良好的彩色图像处理模型,降低训练难度,提高训练效率。

附图说明

图1为本申请实施例中图像处理方法的流程示意图1;

图2为本申请实施例中数据采集系统的组成结构示意图;

图3为本申请实施例中图像处理模型的组成结构示意图;

图4为本申请实施例中图像处理方法的流程示意图2;

图5为本申请实施例中图像处理方法的流程示意图3;

图6为本申请实施例中图像处理方法的流程示意图4;

图7为本申请实施例中机器人控制系统的组成结构示意图;

图8为本申请实施例中图像处理装置的组成结构示意图1;

图9为本申请实施例中图像处理装置的组成结构示意图2。

具体实施方式

为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。

实施例一

如图1所示,图像处理方法具体可以包括以下:

步骤101:获取训练样本集,所述训练样本集包括至少一个彩色样本图像,以及至少一个与所述彩色样本图像对应的深度样本图像;

步骤102:将所述训练样本集输入图像处理模型进行处理,所述图像处理模型包括彩色图像处理模型以及深度图像处理模型,所述彩色图像处理模型用于对所述彩色样本图像进行处理得到彩色重构图像,所述深度图像处理模型用于对所述深度图像进行处理得到深度重构图像;

步骤103:基于所述彩色样本图像、所述彩色重构图像、所述深度样本图像与所述深度重构图像确定所述图像处理模型的第一损失参数,并基于所述第一损失参数调整所述彩色图像处理模型,得到训练后的彩色图像处理模型。

这里,步骤101至步骤103的执行主体可以为图像处理装置的处理器。

实际应用中,在控制机器人进行学习时,需要利用样本数据对机器人的至少一个网络模型进行训练,此时训练人员通过控制机器人针对目标对象执行至少一项历史目标任务,并采集样本数据。这里,样本数据包括由图像采集装置采集到的彩色样本图像及其对应的深度样本图像,由这些彩色样本图像和深度样本图像建立训练样本集。

比如,图像采集装置可以包括用于采集彩色图像的摄像头,用于采集深度图像的摄像头。比如,使用kinect采集目标对象的彩色图像和深度图像。这里,彩色图像可以包括目标对象的颜色、纹理等信息,深度图像中每个像素点的像素值表示传感器到实体对象的距离。

如图2所示,训练人员通过控制器,控制机器人完成某一任务。在此过程中,数据采集系统会通过机器人操作系统(robotoperatingsystem,ros)记录每个时刻摄像头的彩色图像和深度图像和机器人的状态信息。数据采集系统可以采集的信息包括:不同型号的摄像头(比如kinectv2)的彩色图像和深度图像,图像分辨率可调;不同型号机器人(比如ur机器人)的状态信息。这里,状态信息可以包括关节角度、关节线速度、关节角速度、机器人负载、末端执行器位置和姿态等。

实际应用中,所述获取训练样本集包括:对采集到的彩色样本图像和采集到的深度样本图像进行数据增强处理以增加样本数量,得到所述训练样本集。

这里,为了增加数据量,缓解网络过拟合,对采集的彩色样本图像和深度样本图像进行增强处理,可以获得更多的训练样本,在一张图像的基础上可以得到多张图像,扩增样本数量,能够提高模型训练效率。增强处理包括:对给定样本图像进行随机裁剪、水平翻转、尺寸缩放、色调调整、亮度调整、饱和度调整等预处理。

实际应用中,所述彩色图像处理模型包括第一编码模块,所述深度图像处理模型包括第二编码模块,所述基于所述彩色样本图像、所述彩色重构图像、所述深度样本图像与所述深度重构图像确定所述图像处理模型的第一损失参数,包括:将所述彩色样本图像输入至所述彩色图像处理模型的第一编码模块中,输出编码后的第一彩色样本图像;将所述深度样本图像输入至所述彩色图像处理模型的第二编码模块中,输出编码后的第一深度样本图像;基于所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,得到第一损失参数。

这里,第一损失参数是用于衡量图像处理模型训练效果的依据。在将训练样本集输入至图像处理模型中后,会得到编码后的彩色图像和编码后的深度图像,让编码后的彩色图像和编码后的深度图像尽量相似,才能得到效果良好的彩色图像处理模型。

这里,输入到彩色图像处理模型中的彩色样本图像和输入到深度图像处理模型中的深度样本图像为同一时刻针对同一场景采集的图像信息。同一时刻的彩色样本图像和深度样本图像携带了更全面的场景信息,彩色样本图像和深度样本图像具有信息互补效果,通过彩色样本图像编码后得到特征图与深度样本图像编码后得到的特征图尽量相似,能够更好地学习到场景信息,以较少的数据训练出效果良好的图像处理模型。本申请实施例在训练过程中可以利用深度图像处理模型监督训练彩色图像处理模型,提高彩色图像处理模型的训练效率和训练效果。

在一些实施例中,所述彩色图像处理模型还包括第一解码模块,所述深度图像处理模型还包括第二解码模块,所述基于所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,得到第一损失参数,包括:将所述编码后的第一彩色样本图像输入至所述第一解码模块,输出所述彩色重构图像;将所述编码后的第一深度样本图像输入至所述第二解码模块,输出所述深度重构图像;利用所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,计算得到第二损失参数;基于所述编码后的第一彩色样本图像和所述彩色重构图像,确定第三损失参数;基于所述编码后的第一深度样本图像和所述深度重构图像,确定第四损失参数;基于所述第二损失参数、所述第三损失参数和所述第四损失参数,确定所述第一损失参数。

示例性的,计算所述第一损失参数、所述第三损失参数和所述第四损失参数的累加和,将累加和结果作为所述第一损失参数。

如图3所示,图像处理模型包括彩色图像处理模型31和深度图像处理模型32,其中,彩色图像处理模型31包括第一编码模块311和第一解码模块312,深度图像处理模型32包括第二编码模块321和第二解码模块322;彩色样本图像依次经过第一编码模块和第一解码模块后得到彩色重构图像,深度样本图像依次经过第二编码模块和第二解码模块后得到深度重构图像,比较第一编码模块311输出的编码后的彩色图像和第二编码模块321输出的编码后的深度图像得到第二损失参数(loss2),比较彩色样本图像和彩色重构图像得到第三损失参数(loss3),比较深度样本图像和深度重构图像得到第四损失参数(loss4),将loss2、loss3和loss4求累加和得到第一损失参数(loss1)。

这里,图像处理模型中彩色图像处理模型和深度图像处理模型的参数随机初始化,对初始化后的图像处理模型进行训练。

在另一些实施例中,所述基于所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,得到第一损失参数,包括:利用所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,计算得到第二损失参数;将所述第二损失参数作为所述第一损失参数;

或者,基于所述第二损失参数和所述第三损失参数,确定所述第一损失参数;

或者,基于所述第二损失参数和所述第四损失参数,确定所述第一损失参数。

实际应用中,基于所述第一损失参数调整所述彩色图像处理模型,得到训练后的彩色图像处理模型,包括:在所述第一损失参数大于第一目标损失参数的情况下,调整所述彩色图像处理模型,得到训练后的彩色图像处理模型。

也就是说,在训练彩色图像处理模型时,第一目标损失参数作为彩色图像处理模型训练完成的依据,当第一损失参数大于第一目标损失参数时,表明当前彩色图像处理模型没有达到期望效果,确定训练失败,需要继续调整模型参数,调整模型参数后得到新的第一损失参数;当第一损失参数小于或者等于第一目标损失参数时,确定模型训练完成,并固定模型参数。

在一些实施例中,该方法还包括:基于所述第一损失参数调整所述深度图像处理模型,得到训练后的深度图像处理模型。

也就是说,会基于第一损失参数同时调整彩色图像处理模型和深度图像处理模型。同样,第一目标损失参数作为深度图像处理模型训练完成的依据,当第一损失参数大于第一目标损失参数时,表明当前深度图像处理模型没有达到期望效果,确定训练失败,需要继续调整模型参数,调整模型参数后得到新的第一损失参数;当第一损失参数小于或者等于第一目标损失参数时,确定模型训练完成,并固定模型参数。

这里,调整彩色图像处理模型和深度图像处理模型的方法可以有梯度下降、随机梯度下降、mini-batch。

实际应用中,在得到训练后的彩色图像处理模型之后,该方法还包括训练控制模型,训练控制模型的过程可以视作机器人测试过程,检测学习过程得到的训练后的图像处理模型是否能够使机器人执行正确的控制操作,只有学习和测试都达到预期效果时,机器人才可以投入到生产生活中。

在一些实施例中,所述训练样本集还包括:至少一个与所述彩色样本图像对应的机器人的状态标签;所述训练控制模型的方法包括:将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;基于所述编码后的第二彩色样本图像以及所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型。

这里,第五损失参数是用于表征控制模型训练效果的依据。在得到训练后的彩色图像处理模型后,需要对机器人进行测试,控制模型根据编码后的第二彩色样本图像得到预测状态信息,并根据彩色样本图像对应的状态标签,判断预设状态信息是否准确。让预测状态信息与状态标签相同或相近,才能得到效果良好的控制模型。

或者说,第五损失参数用于表征预测状态信息和状态标签之间的误差,预测状态信息与状态标签的误差可以为:关节角度误差、机器人速度误差、末端执行器位置误差或者其他状态信息误差。第二目标损失参数可以为误差阈值,误差阈值具体是针对不同状态信息设置的,比如:关节角度误差对应误差阈值为正负2°,机器人速度误差对应误差阈值为5米/分钟,末端执行器位置误差对应误差阈值为2毫米。

误差具体可以为预测状态信息与状态标签之间的均方差,均方差的计算公式作为控制模型的损失函数。

进一步地,所述基于所述编码后的第二彩色样本图像以及所述机器人的状态标签,确定控制模型的第五损失参数,包括:将所述编码后的第二彩色样本图像输入至所述控制模型,得到所述机器人的预测状态信息;基于所述机器人的预测状态信息和所述机器人状态标签,确定所述第五损失参数。

在另一些实施例中,所述训练控制模型的方法包括:将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;将所述深度样本图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的第二深度样本图像;基于所述编码后的第二彩色样本图像和所述编码后的第二深度样本图像,以及所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型。

进一步地,所述基于所述编码后的第二彩色样本图像和所述编码后的第二深度样本图像,以及所述机器人的状态标签,确定控制模型的第五损失参数,包括:将所述编码后的第二彩色样本图像和编码后的第二深度样本图像输入至所述控制模型,得到所述机器人的预测状态信息;基于所述机器人的预测状态信息和所述机器人状态标签,确定所述第五损失参数。

在另一些实施例中,所述训练控制模型的方法包括:将所述深度样本图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的第二深度样本图像;基于所述编码后的第二深度样本图像和所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型。

进一步地,所述基于所述编码后的第二深度样本图像和所述机器人的状态标签,确定控制模型的第五损失参数,包括:将编码后的第二深度样本图像输入至所述控制模型,得到所述机器人的预测状态信息;基于所述机器人的预测状态信息和所述机器人状态标签,确定所述第五损失参数。

也就是说,训练控制模型时,可以只利用编码后的第二彩色样本图像训练控制模型,或者利用编码后的第二彩色样本图像和编码后的深度样本图像来训练控制模型,或者只利用编码后的第二深度样本图像训练控制模型。

所述基于所述第五损失参数调整控制模型,得到训练后的控制模型,包括:在所述第五损失参数大于第二目标损失参数的情况下,调整所述控制模型,使所述训练后的控制模型对应的第五损失参数不大于所述第二目标损失参数。

也就是说,在训练控制模型时,第二目标损失参数作为控制模型训练完成的依据,当第五损失参数大于第二目标损失参数时,表明当前控制模型没有达到期望效果,确定训练失败,需要继续调整模型参数,调整模型参数后得到新的第五损失参数;当第五损失参数小于或者等于第二目标损失参数时,确定模型训练完成,并固定模型参数。

实际应用中,所述状态标签至少包括以下之一:关节角度、关节线速度和关节角速度。

相应的,预测状态信息至少包括以下之一:关节角度、关节线速度和关节角速度。结果状态信息至少包括以下之一:关节角度、关节线速度和关节角速度。

这里,调整控制模型的方法可以有梯度下降、随机梯度下降、mini-batch。

采用上述技术方案,将彩色样本图像和深度样本图像输入至图像处理模型中,利用图像处理模型的第一损失参数调整彩色图像处理模型,以得到训练后的彩色图像处理模型。这样,利用彩色样本图像和深度样本图像同时作为训练样本具有信息互补的作用,能够以较少的训练样本训练出效果良好的彩色图像处理模型,降低训练难度,提高训练效率。

实施例二

为了能更加体现本申请的目的,在本申请实施例一的基础上,进行进一步的举例说明,如图4所示,在得到训练后的彩色图像处理模型之后,该图像处理方法还包括:

步骤401:将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;

这里,训练后的彩色图像处理模型也包括:第一编码模块和第一解码模块。

步骤402:基于所述编码后的第二彩色样本图像以及所述机器人的状态标签,确定控制模型的第五损失参数;

实际应用中,所述训练样本集还包括:至少一个与所述彩色样本图像对应的机器人的状态标签。

具体的,由图像采集装置采集包含目标对象的彩色样本图像和深度样本图像的同时获取机器人的历史状态信息,将历史状态信息作为状态标签。

确定第五损失参数的方法具体可以包括:将所述编码后的第二彩色样本图像输入至所述控制模型,得到所述机器人的预测状态信息;基于所述机器人的预测状态信息和所述机器人状态标签,确定所述第五损失参数。

在一些实施例中,控制模型仅包括第一控制模型时,将编码后的第二彩色样本图像作为控制模型的输入信息,输出所述机器人的预测状态信息。预测状态信息可以包括关节角度、关节线速度、关节角速度、机器人负载、末端执行器位置和姿态等。

在一些实施例中,控制模型包括至少两个控制模型时,比如包括第一控制模型和第二控制模型;将编码后的第二彩色样本图像作为所述第二控制模型的输入信息,将所述第二控制模型的输出信息作为所述第一控制模型的输入信息,输出预测状态信息。比如,第二控制模型为具有记忆功能的lstm模型,第一控制模型为混合密度网络(mixturedensitynetworks,mdn)模型。

步骤403:基于所述第五损失参数调整控制模型,得到训练后的控制模型;

具体的,在所述第五损失参数大于第二目标损失参数的情况下,调整所述控制模型,使所述训练后的控制模型对应的第五损失参数不大于所述第二目标损失参数。

步骤404:控制机器人对目标对象执行目标任务时,获取包含所述目标对象的目标彩色图像;

具体的,在进行机器人测试时,控制机器人对目标对象执行目标任务(比如控制机器人手臂执行抓取操作),由彩色摄像头采集目标彩色图像,接着通过目标彩色图像中携带的目标物体信息,确定针对目标物体的结果状态信息。

步骤405:将所述目标彩色图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的目标彩色图像;

步骤406:将所述编码后的目标彩色图像输入至所述训练后的控制模型,得到所述机器人的结果状态信息,基于所述结果状态信息对所述机器人进行控制。

也就是说,控制机器人执行动作时,利用训练后的彩色图像处理模型和控制模型确定机器人的结果状态信息。比如,结果状态信息可以包括机器人6个关节的角度信息,基于状态控制信息对机器人的操作进行控制。

实施例三

为了能更加体现本申请的目的,在本申请实施例一的基础上,进行进一步的举例说明,如图5所示,在得到训练后的彩色图像处理模型和训练后的控制模型之后,该图像处理方法还包括:

步骤501:将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;

这里,训练后的彩色图像处理模型也包括:第一编码模块和第一解码模块。

步骤502:将所述深度样本图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的第二深度样本图像;

这里,训练后的深度图像处理模型也包括:第二编码模块和第二解码模块。

实际应用中,第一编码模块和第二编码模块可以为编码器,第一解码模块和第二解码模块可以为解码器。

步骤503:基于所述编码后的第二彩色样本图像和所述编码后的第二深度样本图像,以及所述机器人的状态标签,确定控制模型的第五损失参数;

实际应用中,所述训练样本集还包括:至少一个与所述彩色样本图像对应的机器人的状态标签。

具体的,由图像采集装置采集包含目标对象的彩色样本图像和深度样本图像的同时获取机器人的历史状态信息,将历史状态信息作为状态标签。

确定第五损失参数的方法具体可以包括:将所述编码后的第二彩色样本图像和编码后的第二深度样本图像输入至所述控制模型,得到所述机器人的预测状态信息;基于所述机器人的预测状态信息和所述机器人状态标签,确定所述第五损失参数。

在一些实施例中,控制模型仅包括第一控制模型时,将编码后的第二彩色样本图像作为控制模型的输入信息,输出所述机器人的预测状态信息。预测状态信息可以包括关节角度、关节线速度、关节角速度、机器人负载、末端执行器位置和姿态等。

在一些实施例中,控制模型包括至少两个控制模型时,比如包括第一控制模型和第二控制模型;将编码后的第二彩色样本图像作为所述第二控制模型的输入信息,将所述第二控制模型的输出信息作为所述第一控制模型的输入信息,输出预测状态信息。比如,第二控制模型为具有记忆功能的lstm模型,第一控制模型为mdn模型。

步骤504:基于所述第五损失参数调整控制模型,得到训练后的控制模型;

具体的,在所述第五损失参数大于第二目标损失参数的情况下,调整所述控制模型,使所述训练后的控制模型对应的第五损失参数不大于所述第二目标损失参数。

步骤505:控制机器人对目标对象执行目标任务时,获取包含所述目标对象的目标彩色图像和目标深度图像;

具体的,在进行机器人测试时,控制机器人对目标对象执行目标任务(比如控制机器人手臂执行抓取操作),由彩色摄像头采集目标彩色图像,由深度摄像头采集目标深度图像,接着通过彩色图像和深度图像中携带的目标物体信息,确定针对目标物体的结果状态信息。

步骤506:将所述目标彩色图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的目标彩色图像;将所述目标深度图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的目标深度图像;

步骤507:将编码后的目标彩色图像和编码后的目标深度图像输入至所述训练后的控制模型,得到所述机器人的结果状态信息,基于所述结果状态信息对所述机器人进行控制。

也就是说,控制机器人执行动作时,可以利用训练后的彩色图像处理模型、深度图像处理模型以及控制模型确定机器人的结果状态信息。比如,结果状态信息可以包括机器人6个关节的角度信息,基于状态控制信息对机器人的操作进行控制。

在另一些实施例中,还可以利用训练后的深度图像处理模型和控制模型确定机器人的结果状态信息。

基于上述实施例给出了一种如下应用场景,该场景中图像处理模型为变分自编码器(variationalautoencoder,vae)模型,第一控制模型为mdn模型,第二控制模型为lstm模型;如图6所示,图像处理方法包括:

步骤601:数据采集;

如图2所示,人类示教者通过控制器,控制机器人完成某一任务。在此过程中,数据采集系统会通过机器人操作系统(robotoperatingsystem,ros)记录每个时刻摄像头的图像信息和机器人的状态信息。数据采集系统可以采集的信息包括:不同型号的摄像头(比如kinectv2)采集的彩色图像和深度图像,图像分辨率可调;不同型号机器人(比如ur机器人)的状态信息,状态信息可以包括关节角度、关节线速度、关节角速度、机器人负载、末端执行器位置和姿态等。

步骤602:数据预处理;

为了增加数据量,缓解网络过拟合,对采集回来的图像数据进行增强处理,来扩增样本数量和多样性。增强处理包括:对给定样本图像进行随机裁剪、水平翻转、尺寸缩放、色调调整、亮度调整、饱和度调整等预处理。比如,原彩色图像大小为540*540,可以随机裁剪成480*480的大小,随机旋转1~3°,随机进行左右方向的翻转。这种数据增强的方法可以使得数据量增大数十倍。

步骤603:训练图像处理模型;

本申请实施例中采用了跨模态信息融合的双流(two-stream)网络结构,融合了彩色图像、深度图像、机器人状态信息等多个模态的信息,双流网络中通过使彩色图像编码得到的特征图和深度图像编码得到的特征图相似,能够更好地学习到场景信息,以较少的数据训练出效果良好的深度神经网络。

如图7所示,机器人控制系统由双流网络组成,双流网络包括以彩色图像作为输入的第一支流和以深度图像作为输入的第二支流。第一支流包括编码器1和解码器1,第二支流包括编码器2和解码器2。编码器能够对图像进行编码,将图像压缩成一个较短的向量,该向量可以隐式表示图像中重要的信息,例如机械臂的位置和姿态,物体的颜色、形状和位置等。该向量经过采样,作为解码器的输入,由解码器解码成为重构图像,与样本图像对比,就能够直观地观察vae网络训练的效果。

示例性的,编码器1和编码器2分别由4个卷积层组成,在每个卷积层后均跟有batchnormalization(批标准化)。卷积层使用4*4的卷积核,步长为2。解码器1和解码器2由4个反卷积层组成,在每个卷积层后均跟有batchnormalization(批标准化)。反卷积层使用4*4的卷积核,步长为2。最后一个反卷积层使用tanh作为激活函数,其余层均使用leaky_relu函数作为激活函数,解码器对图像进行反卷积处理完成后对进行图像重构得到重构图像。激活函数还可以为relu,sigmoids,softmax等。可选的,图像数据在输入到vae网络之前对图像数据进行归一化处理,使图像像素等比例缩小以降低计算机数据处理难度,提高数据处理速度。

本申请实施例使用两个编码器和两个解码器,其中,编码器1和解码器1用于对彩色图像进行编码和解码,编码器2和解码器2用于对深度图像进行解码和编码。编码器1对彩色图像进行编码,输出编码后的彩色图像(即第一特征图)记为f1;编码器2对深度图像进行编码,输出编码后深度图像(即第二特征图)记为f2。由于输入的彩色图像和深度图像对应于同一场景,通过使两个编码器输出的特征图尽量相似,可以让不同模态的信息互相监督来实现对场景更好的学习,从而使用较少的数据训练出良好的网络。

两个特征图之间的均方误差将作为vae网络的第一损失函数:

其中,第一损失函数用于计算第二损失参数,l1是第一特征图和第二特征图的均方误差(即第二损失参数),fi1为第一特征图中第i个向量,fi2为第二特征图中第i个向量,n为特征图中向量总数。图7中mseloss1用于计算第二损失参数,mseloss2输入为第一特征图和第二特征图,输出为第二损失参数。

解码器1输出的第一重构图像与彩色样本图像进行对比,将两个图像之间的均方误差作为vae网络的第二损失函数:

其中,第二损失函数用于计算第三损失参数,l2是彩色样本图像和第一重构图像的均方误差(即第三损失参数),为彩色样本图像的第i行第j列像素点的数据,为第一重构图像的第i行第j列像素点的数据,h为图像像素点的行数,w为图像像素点的列数。图7中mseloss3用于计算第三损失参数,mseloss3输入为彩色样本图像和第一重构图像,输出为第三损失参数。

解码器2输出的第二重构图像与深度图像的深度样本图像进行对比,将两个图像之间的均方误差作为vae网络的第三损失函数:

其中,第三损失函数用于计算第四损失参数,l3是深度样本图像和第二重构图像的均方误差(即第四损失参数),为原图像的第i行第j列像素点的数据,为第二重构图像的第i行第j列像素点的数据,h为图像像素点的行数,w为图像像素点的列数。图7中mseloss4用于计算第四损失参数,mseloss4输入为深度样本图像和第二重构图像,输出为第四损失参数。

第一损失参数l的计算公式可以为:

l=l1+l2+l3

图7中vaeloss用于计算第一损失参数,vaeloss输入为第二损失参数、第三损失参数和第四损失参数,输出为第一损失参数。

步骤604:训练控制模型;

接下来将编码器1输出的向量z经过采样后输入到控制网络的lstm模型中,让机器人学习到如何完成一个序列的动作。本申请使用一层lstm层,该层由100个lstm神经元组成,每个lstm神经元包括遗忘门、输入门和输出门等结构。

最后将lstm网络的输出信息输入到mdn模型中,进行采样后输出机器人每个关节的预测关节角度。mdn模型适合解决多解问题,而多解问题在机器人领域是广泛存在的。本申请使用360个神经元组成mdn层,来表示机器人6个关节的角度信息,每60个神经元表示一个关节角度的相关信息:20个神经元表示该关节的均值μ,20个神经元表示该关节的方差σ,20个神经元表示该关节的混合系数α。

mdn网络的损失函数定义为:

其中,

其中,x为mdn网络输出的预测关节角度(即jointoutput),y为历史关节角度(即jointlabel),m为神经元的数量,c为机械臂自由度的数量。比如,每60个神经元表示一个关节角度的相关信息:20个神经元表示该关节的均值,20个神经元表示该关节的方差,20个神经元表示该关节的混合系数,则m=20,ur5机械臂中,c=6。

训练设置时,首先使用历史图像信息集训练vae模型,训练好vae模型后,固定其参数,使用历史彩色图像和机器人状态信息训练lstm模型和mdn模型。这三个模型均使用adam优化器进行梯度下降,学习率设定为10e-4,mini-batch的大小是64,所有参数均随机初始化。

步骤605:执行控制操作。

这里,利用训练后的图像处理模型和控制模型执行控制操作,即采集包含目标对象的图像信息,图像信息可以为彩色图像或深度图像,将图像处理模型编码后的图像信息作为控制模型的输入信息,控制模型输出针对目标对象的至少一个时刻的状态控制信息,基于至少一个时刻的状态控制信息针对目标对象执行操作。比如,目标对象为机器人待抓取的物体时,由于抓取操作为一连串的动作,因此需要确定多个时刻机器人的状态信息,以实现连续的控制操作。

这里,至少一个时刻的状态信息可以最终时刻机器人的状态信息,或者为预先确定的移动路径上等间隔时刻分别对应的状态信息。

实施例四

基于同一发明构思,本申请实施例还提供了一种图像处理装置,如图8所示,该装置包括:

获取单元801,用于获取训练样本集,所述训练样本集包括至少一个彩色样本图像,以及至少一个与所述彩色样本图像对应的深度样本图像;

处理单元802,用于将所述训练样本集输入图像处理模型进行处理,所述图像处理模型包括彩色图像处理模型以及深度图像处理模型,所述彩色图像处理模型用于对所述彩色样本图像进行处理得到彩色重构图像,所述深度图像处理模型用于对所述深度图像进行处理得到深度重构图像;

所述处理单元802,还用于基于所述彩色样本图像、所述彩色重构图像、所述深度样本图像与所述深度重构图像确定所述图像处理模型的第一损失参数,并基于所述第一损失参数调整所述彩色图像处理模型,得到训练后的彩色图像处理模型。

在一些实施例中,所述处理单元,还用于基于所述第一损失参数调整所述深度图像处理模型,得到训练后的深度图像处理模型。

在一些实施例中,所述彩色图像处理模型包括第一编码模块,所述深度图像处理模型包括第二编码模块,所述处理单元,具体用于将所述彩色样本图像输入至所述彩色图像处理模型的第一编码模块中,输出编码后的第一彩色样本图像;将所述深度样本图像输入至所述彩色图像处理模型的第二编码模块中,输出编码后的第一深度样本图像;基于所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,得到第一损失参数。

在一些实施例中,所述彩色图像处理模型还包括第一解码模块,所述深度图像处理模型还包括第二解码模块,

所述处理单元,具体用于将所述编码后的第一彩色样本图像输入至所述第一解码模块,输出所述彩色重构图像;

将所述编码后的第一深度样本图像输入至所述第二解码模块,输出所述深度重构图像;

利用所述编码后的第一彩色样本图像和所述编码后的第一深度样本图像,计算得到第二损失参数;

基于所述编码后的第一彩色样本图像和所述彩色重构图像,确定第三损失参数;

基于所述编码后的第一深度样本图像和所述深度重构图像,确定第四损失参数;

基于所述第二损失参数、所述第三损失参数和所述第四损失参数,确定所述第一损失参数。

在一些实施例中,所述训练样本集还包括:至少一个与所述彩色样本图像对应的机器人的状态标签;

所述处理单元,还用于将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;基于所述编码后的第二彩色样本图像以及所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型;

或者,所述处理单元,还用于将所述彩色样本图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的第二彩色样本图像;将所述深度样本图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的第二深度样本图像;基于所述编码后的第二彩色样本图像和所述编码后的第二深度样本图像,以及所述机器人的状态标签,确定控制模型的第五损失参数;基于所述第五损失参数调整控制模型,得到训练后的控制模型。

在一些实施例中,所述状态标签至少包括以下之一:关节角度、关节线速度和关节角速度。

在一些实施例中,所述获取单元,还用于控制机器人对目标对象执行目标任务时,获取包含所述目标对象的目标彩色图像;

所述处理单元,还用于将所述目标彩色图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的目标彩色图像;将所述编码后的目标彩色图像输入至所述训练后的控制模型,得到所述机器人的结果状态信息,基于所述结果状态信息对所述机器人进行控制。

在一些实施例中,所述获取单元,还用于控制机器人对目标对象执行目标任务时,获取包含所述目标对象的目标彩色图像和目标深度图像;

所述处理单元,还用于将所述目标彩色图像输入至所述训练后的彩色图像处理模型的第一编码模块,输出编码后的目标彩色图像;将所述目标深度图像输入至所述训练后的深度图像处理模型的第二编码模块,输出编码后的目标深度图像;将所述编码后的目标彩色图像和编码后的目标深度图像输入至所述训练后的控制模型,得到所述机器人的结果状态信息,基于所述结果状态信息对所述机器人进行控制。

在一些实施例中,所述获取单元,具体用于对采集到的彩色样本图像和采集到的深度样本图像进行数据增强处理以增加样本数量,得到所述训练样本集。

采用上述技术方案,将彩色样本图像和深度样本图像输入至图像处理模型中,利用图像处理模型的第一损失参数调整彩色图像处理模型,以得到训练后的彩色图像处理模型。这样,利用彩色样本图像和深度样本图像同时作为训练样本具有信息互补的作用,能够以较少的训练样本训练出效果良好的彩色图像处理模型,降低训练难度,提高训练效率。

本申请实施例还提供了另一种图像处理装置,如图9所示,该装置包括:处理器901和配置为存储能够在处理器上运行的计算机程序的存储器902;

其中,处理器901配置为运行计算机程序时,执行前述实施例中的方法步骤。

当然,实际应用时,如图9所示,该图像处理装置中的各个组件通过总线系统903耦合在一起。可理解,总线系统903用于实现这些组件之间的连接通信。总线系统903除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统903。

在实际应用中,上述处理器可以为特定用途集成电路(asic,applicationspecificintegratedcircuit)、数字信号处理装置(dspd,digitalsignalprocessingdevice)、可编程逻辑装置(pld,programmablelogicdevice)、现场可编程门阵列(field-programmablegatearray,fpga)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。

上述存储器可以是易失性存储器(volatilememory),例如随机存取存储器(ram,random-accessmemory);或者非易失性存储器(non-volatilememory),例如只读存储器(rom,read-onlymemory),快闪存储器(flashmemory),硬盘(hdd,harddiskdrive)或固态硬盘(ssd,solid-statedrive);或者上述种类的存储器的组合,并向处理器提供指令和数据。

在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器902,上述计算机程序可由图像处理装置的处理器901执行,以完成前述方法步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

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