图像分析系统
文献发布时间:2023-06-19 12:21:13
技术领域
本发明涉及一种用于图像分析的系统。
背景技术
传统上,已经进行了各种类型的机器人的研究和开发。PTL 1公开了一种用于仿人类型的腿式移动机器人的行走控制的学习方法。PTL 1公开了一种用于在机器人不能沿着初始阶段给出的行走轨迹稳定行走时,机器人能够沿着其行走的稳定行走轨迹的强化学习的方法。
[引用列表]
[专利文献]
[PTL 1]
日本专利公开号2005-96068
发明内容
[技术问题]
机器人技术正在逐日发展。虽然四足步行型的宠物型机器人已经成为商业模型的主流,但是近年来,执行诸如跳舞的复杂操作的人形机器人正在普及。可以预期,通过增加算术运算能力和改进学习模型,机器人自身学习改进现有功能和获取新功能。
自主机器人的动作目的和动作模式取决于要执行的应用。一种用于使机器人自主行走的应用,收集并分析机器人周围的环境信息,并且计算构成机器人关节的多个电动机的转速。为每个电动机提供用于控制的微型计算机,并且多个微型计算机根据所计算的旋转速度彼此同步地向电动机供电。例如,具有追随用户的动作目的应用程序根据摄像机图像来确定用户和障碍物在空间中的位置,确定追随用户的路径,并且计算机器人关节的电动机的旋转速度,使得机器人在该路径上移动。
在机器人中,基于通过图像感测获得的精确数据来计算多个电动机的旋转速度,并且以所计算的旋转速度无任何时间延迟地旋转电动机,以根据动作目的来实现动作模式。在使机器人具有高级自主行动功能的情况下,应用的运算量变大。然而,为了即使在刚刚描述的这种情况下也允许机器人动作,有必要建立用于立即实现图像感测功能和/或运动控制功能的机制。
在当前时间点,图像感测功能不仅被并入机器人中,而且被并入各种移动对象中,诸如由人驾驶的车辆或由人操纵的玩具(例如,无线遥控车等)。因此,期望不仅在机器人领域而且在各种领域中实现包括图像感测功能的图像分析技术。
[问题解决方案]
为了解决上述问题,本发明的一个方面的图像分析系统包括处理应用的应用处理器和从图像传感器获取图像数据并分析图像数据的传感器处理器。应用处理器获取由传感器处理器获得的图像分析结果,以及用于指定图像传感器的取向的姿态信息。
另外,上述构成要素的任意组合、在方法、装置、系统、计算机程序、记录了可读取的计算机程序的记录介质、数据结构等之间转换的本发明的表现形式的任意组合,作为本发明的方式也是有效的。
附图说明
图1是描绘实施例的娱乐系统的一般配置的视图。
图2是描绘控制系统的硬件配置的视图。
具体实施方式
图1描绘了一个实施例的娱乐系统1的一般配置。娱乐系统1包括机器人装置20和服务器装置10,机器人装置20是可以自主行走的移动物体,并且通过接入点(AP)3经由诸如因特网的网络2与服务器装置10连接以进行通信。
机器人装置20被配置为人形机器人,并且由作为所有者的用户拥有。优选地,机器人装置20能够通过基于图像分析的面部认证、基于语音分析的声纹认证等来识别所有者。通过识别所有者,机器人装置20例如可以仅接受来自所有者的指令,并且根据所有者指令来动作。
优选地,机器人装置20具有与人的部件类似的部件,并且具有给人友好感的外部形状。机器人装置20具有头部、颈部、躯干(胸部、腹部和背部)、上肢和下肢。上肢可以各自具有上臂、前臂和手,下肢可以各自具有大腿、小腿和脚。这些部件通过致动器彼此联接。致动器至少包括布置在作为可动部件的关节部处的马达和将一个马达联接到另一个马达的连杆机构。机器人装置20根据动作目的而动作,同时通过驱动致动器来保持姿态平衡。
机器人装置20通过描述各个致动器的控制方法的基本应用程序(以下也称为“基本应用”)来实现包括行走和跑步功能的基本功能以及避开障碍物的功能。由于基本应用负责机器人装置20的基本功能,因此优选地将其预先安装在机器人装置20中,并且例如可以将其并入中间件中。
除了基本应用程序之外的任何应用程序都是应用程序(以下也称为“应用的应用”)。应用的应用实现附加功能,例如跳舞功能。应用的应用根据需要从服务器装置10提供,并安装到机器人装置20中。机器人装置20通过下载和安装新的应用的应用来获取新的功能。
图2是表示控制系统4的硬件结构的图,本实施方式的控制系统4具有用于实现机器人装置20的图像传感功能和动作控制功能的直接性的结构。控制系统4具有多处理器结构,包括用于处理应用程序的应用处理器30、用于处理图像数据的传感器处理器50、用于控制机器人装置20的可动部的运动的运动控制处理器70。在控制系统4中,应用处理器30和传感器处理器50构成图像分析系统,应用处理器30和运动控制处理器70构成运动控制系统。应用处理器30、传感器处理器50和运动控制处理器70被提供在机器人装置20的外壳中,并且各处理器中的两个被连接以彼此通信。
在该架构中,应用处理器30作为主处理器操作。传感器处理器50执行由应用处理器30指定的图像分析,并将图像分析结果提供给应用处理器30,运动控制处理器70以由应用处理器30指定的旋转速度驱动和控制致动器,由于传感器处理器50和运动控制处理器70分别执行相应的处理,因此应用处理器30不需要具有图像感测功能和运动控制功能,并且可以减少应用处理器30上的处理负荷。
应用处理器30运行第一操作系统(下文中也称为“第一OS”)以处理应用。要处理的应用包括基本应用和应用的应用。在同时处理多个基本应用的同时,应用处理器30还处理必要的应用的应用。因此,应用处理器30在其中包括多个中央处理单元(CPU)核心。优选地,第一OS是允许同时执行各种应用的通用OS。
显示设备32、扬声器34、通信设备36和麦克风38连接到应用处理器30。显示设备32和扬声器34分别输出由应用处理器30生成的图像和声音,以向用户呈现信息。通信设备36通过无线局域网(LAN)建立与AP 3的连接,并通过AP 3与服务器装置10通信。通信设备36可以具有便携式电话通信功能。通信设备36可以从服务器装置10下载应用程序和补丁文件。麦克风38收集环境声音,将其转换为声音信号,并将该声音信号提供给应用处理器30。应用处理器30可以具有声音识别功能,使得其基于用户的语音指令确定动作。
传感器处理器50是执行图像感测功能的处理器,并且连接到图像传感器52、距离传感器54和事件驱动型传感器56。图像传感器52、距离传感器54和事件驱动型传感器56被并入机器人装置20中,并且作为获取机器人装置20的外围信息的视觉传感器来操作,并且传感器处理器50负责视觉方面的识别功能。
图像传感器52是相机,并将以预定周期(例如1/60秒)捕获的RGB图像提供给传感器处理器50。距离传感器54可以是飞行时间(TOF)距离图像传感器,并将三维距离图像提供给传感器处理器50。事件驱动型传感器56是检测成像元件的像素的亮度值的改变并将检测时间和像素坐标的组合提供给传感器处理器50的传感器。距离传感器54和事件驱动型传感器56是检测与图像数据中所包括的成像目标有关的信息的信息传感器。
事件驱动型传感器56具有比图像传感器52的动态范围更宽的动态范围,并且即使在存在超过图像传感器52的动态范围的入射光的环境中也能够准确地检测成像目标的移动。此外,由于事件驱动型传感器56可以以高于图像传感器52的时间分辨率来检测成像目标的移动,所以当传感器处理器50处理由图像传感器52获取的图像数据时,其可以补充地利用由事件驱动型传感器56获取的移动信息。
传感器处理器50运行第二操作系统(以下也称为“第二OS”)以处理由图像传感器52获取的图像数据。传感器处理器50可以具有通过使用机器学习模型识别包括在图像数据中的目标对象的神经网络。传感器处理器50从距离传感器54获取成像目标的深度信息,并从事件驱动型传感器56获取成像目标的移动信息,并通过使用成像目标信息来分析从图像传感器52获取的图像数据。应用处理器30根据要处理的应用,为传感器处理器50指定要执行的图像分析功能。
例如,当应用处理器30处理用于使机器人装置20跟随作为跟随目标的所有者的应用时,它请求传感器处理器50指定所有者的位置。传感器处理器50在接收到该请求时,将用于从拍摄图像中识别所有者的图像分析用的参数集设置到神经网络,并且执行用于通过图像分析识别所有者的处理。应该注意,尽管将用于所有者识别的参数组存储在与传感器处理器50连接的存储装置(未图示)中,但也可以从应用处理器30供给传感器处理器50。考虑由距离传感器54和事件驱动型传感器56取得的成像目标信息,传感器处理器50可以执行用于分析图像数据的处理。
传感器处理器50可以具有优化神经网络的参数集的学习功能,以便实现专用于该应用的图像分析功能。在该示例中,优选地,传感器处理器50预先执行用于优化用于所有者识别的参数集的学习,并且在应用处理器30执行用于跟随所有者的应用之前优化参数集。
学习功能中的目标函数(误差函数)将通过将用于学习的图像输入到神经网络而获得的输出与对应于该图像的正确值(即,目标人是所有者的事实)进行比较以计算误差。学习功能基于该误差通过梯度反向传播方法等计算参数的梯度,并基于动量方法更新神经网络的优化目标参数。通过进行应用程专用的学习,可以针对各应用创建最佳参数集,并且实现精确的图像分析功能。应当注意,传感器处理器50可以具有不同类型的学习功能。
例如,当应用处理器30处理机器人装置20用来预测特定移动对象的目的地并且在对象到达目的地之前到达目的地的应用时,传感器处理器50在执行识别对象的图像分析的同时预测特定对象的移动轨迹。由于事件驱动型传感器56以高时间分辨率检测成像目标的移动信息,因此移动信息可以被适当地利用来进行精确的移动预测。传感器处理器50基于来自图像传感器52、距离传感器54和事件驱动型传感器56的信息预测特定对象的移动轨迹。
此外,当应用处理器30处理机器人装置20执行与诸如所有者的姿态的移动同步的移动的应用时,传感器处理器50可以在执行用于识别所有者的图像分析的同时识别所有者的移动,并且还可以预测未来的移动。传感器处理器50可以获取由事件驱动型传感器56检测到的所有者的移动信息,以识别所有者目前的移动,并基于迄今为止获得的移动信息预测将进行的移动。如果传感器处理器50预测所有者的移动,则机器人装置20可以预期所有者的移动而移动。
由传感器处理器50以上述方式运行的第二OS优选地是控制用于图像分析的神经网络的OS。第二OS是适用于神经网络的专用OS,并且因此,第二OS不是通用OS,并且不同于第一OS。
运动控制处理器70是用于控制机器人装置20的可动部分的运动的处理器,并且连接到多个运动传感器72、多个触摸传感器74和多个微型计算机76a至76n(在以下描述中,当它们没有彼此具体区分时,它们中的每一个被称为“微型计算机76”)。一个微型计算机76负责驱动一个电动机。运动控制处理器70负责机器人装置20的运动控制功能,并控制微型计算机76向电动机提供驱动电流。
每个运动传感器72包括三轴加速度传感器和三轴陀螺仪传感器。运动传感器72可以设置在每个关节部分处,并且向运动控制处理器70提供指示关节部分在三维空间中的位置和姿态的传感器数据和/或指示位置和姿态的改变的传感器数据。应当注意,在该实施例中,运动传感器72可以设置在图像传感器52的位置处,使得向运动控制处理器70提供指示图像传感器52在三维空间中的位置和姿态的传感器数据和/或指示位置和姿态的改变的传感器数据。每个触摸传感器74设置在机器人装置20的外表面上,并检测与机器人装置20的接触。
运动控制处理器70运行第三操作系统(以下也称为“第三OS”),以控制机器人装置20的可移动部分的运动,即,电动机的旋转。运动控制处理器70的作用是实时管理微型计算机76,以使各电动机以应用处理器30计算出的旋转速度旋转,并且,其更重要的作用是防止机器人装置20的跌倒。为此,作为满足来自应用处理器30的运动要求的前提,运动控制处理器70通常监视动作传感器72的传感器数据,进行用于跌倒防止的姿态控制应用。例如,当机器人装置20碰到障碍物并且将要跌倒时,运动控制处理器70立即执行用于跌倒预防的电动机控制。
这样,运动控制处理器70的电动机控制需要即时性。因此,由运动控制处理器70运行的第三OS最好是实时OS。实时OS是被设计成使得诸如姿态控制应用的特定应用以高精度在定时处执行并且可以执行应用的实时处理的OS。自然地,第三OS不同于第一OS和第二OS。
应用处理器30、传感器处理器50和运动控制处理器70以如上所述的方式配置。例如,当要执行用于使机器人装置20跟随作为跟随目标的所有者的应用时,应用处理器30需要找到所有者在空间中的位置以及存在于机器人装置20和所有者之间的障碍物在空间中的位置。因此,应用处理器30指示传感器处理器50指定图像传感器52的图像数据中包括的所有者和障碍物的位置。在以下描述中,将成为应用处理器30的识别目标的所有者和障碍物中的每一个简称为“目标”
传感器处理器50从图像传感器52获取图像数据,并通过使用距离传感器54的深度信息和事件驱动型传感器56的运动信息来执行由应用处理器30指定的图像分析。传感器处理器50向应用处理器30提供图像分析结果,该图像分析结果包括每个目标在以图像传感器52为原点的相机坐标系中的位置坐标。该图像分析结果还包括目标在相机坐标系中的深度信息(距离信息)。因此,应用处理器30可以指定目标在相机坐标系中的三维坐标,该相机坐标系具有在图像传感器52处的原点。
运动控制处理器70向传感器处理器50提供用于指定图像传感器52的取向的姿态信息。该姿态信息可以包括用于指定图像传感器52的位置的信息。简而言之,姿态信息包括用于指定当图像传感器52获取图像数据时空间中的光轴的取向和位置的信息。机器人装置20中的关节部和主要部分中的每一个的位置由机器人坐标系限定,在该机器人坐标系中,原点是机器人机体中的参考位置。运动控制处理器70不断地计算参考位置在三维实际空间坐标系(空间坐标系)中的三维坐标,并且通过指定图像传感器52在机器人坐标系中的取向和位置来创建用于指定图像传感器52在空间坐标系中的取向和位置的姿态信息。传感器处理器50将图像分析结果与图像传感器52的姿态信息一起发送到应用处理器30。
应用处理器30通过获取姿态信息来指定图像传感器52在空间坐标系中的取向和位置,并且通过获取图像分析结果来指定图像传感器52在相机坐标系中的三维坐标。应用处理器30由此获取目标在空间坐标系中的三维坐标。
运动控制处理器70将当图像传感器52获取要由传感器处理器50分析的图像数据时获得的姿态信息提供给传感器处理器50。运动控制处理器70可以从设置在每个关节部分处的运动传感器72的传感器数据导出图像传感器52的姿态信息。注意,当在图像传感器52的安装位置处设置运动传感器72时,运动控制处理器70可以通过使用运动传感器72的传感器数据来导出图像传感器52的姿态信息。
传感器处理器50将用于分析的图像数据的图像捕获时间通知给运动控制处理器70,并且运动控制处理器70将图像传感器52的与图像捕获时间相同时间的姿态信息提供给传感器处理器50。运动控制处理器70持续执行姿态控制应用,并且在比传感器处理器50的图像分析周期(例如1/60秒)短得多的采样周期中计算关节部分和主要部分的位置坐标。实施例中的运动控制处理器70可以导出该采样周期中图像传感器52的姿态信息,并且将该姿态信息与时间信息一起存储在存储设备(未示出)中,使得当其接收图像数据的图像捕获时间的通知时,其从存储设备读出与图像捕获时间相同时间的图像传感器52的姿态信息,并且将该姿态信息提供给传感器处理器50。
在分析图像数据期间,向传感器处理器50提供来自运动控制处理器70的姿态信息。当传感器处理器50结束对图像数据的分析时,其将图像传感器52的姿态信息作为元数据添加到图像分析结果,并将得到的图像分析结果提供给应用处理器30。应用处理器30根据图像分析结果和姿态信息指定目标在空间中的位置。
本实施例中的运动控制处理器70不经由应用处理器30而将图像传感器52的姿态信息提供给传感器处理器50。简而言之,运动控制处理器70通过将运动控制处理器70和传感器处理器50彼此连接的总线将姿态信息直接提供给传感器处理器50。
在通常的架构设计中,由于作为主处理器的应用处理器30中继其它处理器之间的数据传输,所以数据传输时间是附加地包括应用处理器30的中继时间的总和。另一方面,由于在控制系统4中,传感器处理器50和运动控制处理器70通过总线彼此连接,所以当运动控制处理器70向传感器处理器50提供图像传感器52的姿态信息时,与经由应用服务器30发送姿态信息相比,直接向传感器处理器50提供姿态信息实现了更短的传输时间。因此,为了提高实时性,运动控制处理器70将图像传感器52的姿态信息直接发送到传感器处理器50。
在图像分析时,传感器处理器50可以向运动控制处理器70发出提供图像传感器52的姿态信息的请求。此时,传感器处理器50可以向运动控制处理器70通知要在分析中使用的图像数据的图像捕获时间。当运动控制处理器70接收到提供姿态信息的请求时,它将图像传感器52的姿态信息直接提供给传感器处理器50。当运动控制处理器70被通知图像数据的图像捕获时间时,它可以此后根据传感器处理器50的图像分析周期循环地提供姿态信息。例如,当传感器处理器50的图像分析周期是1/60秒时,运动控制处理器70可以从在该通知的图像捕获时间设置的开始点以相同的周期将姿态信息提供给传感器处理器50。应当注意,运动控制处理器70可以以其他方式周期性地向传感器处理器50提供姿态信息,而不依赖于来自传感器处理器50的请求。
传感器处理器50将姿态信息作为元数据添加到图像分析结果,并将得到的图像分析结果提供给应用处理器30。因此,应用处理器30可以指定目标在空间中的位置。应当注意,尽管传感器处理器50提供图像分析结果,但是它不向应用处理器30提供在图像分析中使用的图像数据。在控制系统4中,传感器处理器50不向应用处理器30提供图像数据的事实降低了从传感器处理器50到应用处理器30的传输延迟风险,使得图像分析结果没有时间延迟地被提供给应用处理器30。此外,传感器处理器50不向应用处理器30提供图像数据的事实防止了包括个人信息的图像数据泄露到机器人装置20的外部的情况。
值得注意的是,传感器处理器50可以另外提供图像分析结果到运动控制处理器70。例如,当运动控制处理器70具有预定目标的追踪功能时,其可以通过使用传感器处理器50的图像分析结果来控制自主追踪动作。
如上所述,在控制系统4中,提供传感器处理器50和运动控制处理器70以避免负载集中在应用处理器30上的情况。此外,由于应用处理器30、传感器处理器50和运动控制处理器70中的每一个运行适合于相应处理的OS,所以总体上提高了控制系统4的即时性。
已经基于实施例描述了本发明。实施例是示例性的,并且本领域技术人员应该理解,关于部件和处理的组合的各种修改是可能的,并且这样的修改也落入本发明的范围内。如果机器人装置20是可移动机器人,则这是足够的,并且机器人装置20不限于两腿行走机器人。此外,机器人装置20可以是工业机器人等。
在本实施方式中,描述了传感器处理器50进行对机器人装置20所内置的图像传感器52的捕获图像数据进行分析的处理。尽管在控制系统4中,应用处理器30和传感器处理器50构成图像分析系统,但是在对机器人装置20以外的移动物体所内置的图像传感器的捕获图像数据进行分析处理的情况下,也可以利用该图像分析系统。该图像分析系统可以用于对诸如人驾驶的车辆或人操作的玩具(例如,无线遥控车等)等各种移动物体所内置的图像传感器的图像数据的分析。
在本实施方式中,尽管运动控制处理器70将图像传感器52的姿态信息提供给传感器处理器50,但也可以将姿态信息提供给应用处理器30。此时,应用处理器30不将姿态信息传送给传感器处理器50而保持姿态信息,并将姿态信息与从传感器处理器50提供的图像分析结果相关联。应用处理器30参照图像分析结果中包含的图像分析中使用的图像数据的图像拍摄时间和姿态信息中包含的姿态信息的导出中使用的传感器数据的获取时间,在同一时间将图像分析结果和姿态信息相关联,并将其用于空间中的目标的位置的确定。
在本实施方式中,说明了在机器人装置20的框架内设置应用处理器30、传感器处理器50以及运动控制处理器70的例子。但在变形例中,也可以在机器人装置20的框体内设置传感器处理器50以及运动控制处理器70,在机器人装置20的框体外设置应用处理器30。通过在机器人装置20的外部、例如在服务器装置10内设置应用处理器30的功能,能够向应用处理器30提供高的处理能力,使应用处理器30进行复杂的运算处理。
尽管在该实施例中描述了传感器处理器50不向应用处理器30提供图像数据,但是如果用户设置了预定操作模式,则可以使得传感器处理器50能够提供图像数据。
当机器人装置20的主电源关闭时,可以通过使用备用电源来驱动事件驱动型传感器56、运动传感器72和触摸传感器74。机器人装置20可以被配置为使得当事件驱动型传感器56、运动传感器72和触摸传感器74中的至少一个检测到预定信息时,主电源被自动接通。
[工业实用性]
本发明可以在用于分析图像数据的系统中使用。
[参考符号列表]
1:娱乐系统
2:网络
3:AP
4:控制系统
10:服务器装置
20:机器人装置
30:应用处理器
32:显示设备
34:扬声器
36:通信设备
38:麦克风
50:传感器处理器
52:图像传感器
54:距离传感器
56:事件驱动型传感器
70:运动控制处理器
72:运动传感器
74:触摸传感器
76:微型计算机。
- 图像分析方法、图像分析装置、图像分析系统以及图像分析便携式装置
- 图像分析方法、图像分析装置及图像分析系统