垃圾弹出处理方法、系统及自移动清扫机器人与流程

文档序号:24118551发布日期:2021-02-27 14:36阅读:66来源:国知局
垃圾弹出处理方法、系统及自移动清扫机器人与流程

[0001]
本发明涉及自动化技术领域,特别涉及一种垃圾弹出处理方法、系统及自移动清扫机器人。


背景技术:

[0002]
当前的自移动清扫机器人在清扫地面的垃圾时,可以采用双边刷或者单边刷聚拢延伸路径上的垃圾。随着边刷的高速转动,在实现清扫垃圾的同时,边刷会将垃圾甩出。因此,目前亟需一种能够对弹出的垃圾进行重新清扫的方法。


技术实现要素:

[0003]
本申请的目的在于提供一种垃圾弹出处理方法、系统及自移动清扫机器人,能够对弹出的垃圾进行清扫。
[0004]
为实现上述目的,本申请一方面提供一种垃圾弹出处理方法,应用于自移动清扫机器人,所述方法包括:检测是否有垃圾被弹出;当检测到有垃圾被弹出,自移动清扫机器人的摄像头旋转,在转动的过程中检测是否有垃圾。
[0005]
为实现上述目的,本申请另一方面还提供一种垃圾弹出处理系统,所述系统包括:检测单元,用于检测是否有垃圾被弹出;旋转单元,用于当检测到有垃圾被弹出,自移动清扫机器人的摄像头旋转,在转动的过程中检测是否有垃圾。
[0006]
为实现上述目的,本申请另一方面还提供一种自移动清扫机器人,所述自移动清扫机器人上设有摄像头,所述自移动清扫机器人包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,用于实现以下功能:检测是否有垃圾被弹出;当检测到有垃圾被弹出,自移动清扫机器人的摄像头旋转,在转动的过程中检测是否有垃圾。
[0007]
由上可见,本申请一个或者多个实施方式提供的技术方案,自移动清扫机器人通过摄像头采集清扫图像,可以检测是否有垃圾被弹出。如果检测到有垃圾弹出,自移动清扫机器人可以中止当前的清扫进度并旋转。在转动的过程中可以持续检测是否有垃圾。这样,后续可以针对检测到的垃圾制定补扫策略。可见,本申请提供的技术方案,能够有效地检测垃圾弹出的位置,为后续的重新清扫提供了依据。
附图说明
[0008]
为了更清楚地说明本发明实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0009]
图1是本发明实施方式中垃圾弹出处理方法步骤示意图;
[0010]
图2是本发明实施方式中光流图像的切分示意图;
[0011]
图3是本发明实施方式中异常图像块的检测流程图;
[0012]
图4是本发明实施方式中垃圾弹出位置的检测系统的功能模块示意图;
[0013]
图5是本发明实施方式中自移动清扫机器人的结构示意图。
具体实施方式
[0014]
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施方式及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施方式仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。
[0015]
本申请提供一种垃圾弹出处理方法,该方法可以应用于自移动清扫机器人中。该自移动清扫机器人可以是带有清扫功能的智能设备。举例来说,自移动清扫机器人可以包括一个或多个处理器和一个或多个存储计算机程序的存储器,以及一个或多个传感器。一个或多个传感器可以用于在行进过程中采集自移动清扫机器人自身的数据和与其周围环境有关的数据。例如,自移动清扫机器人上可以安装摄像头(图像传感器),通过摄像头可以采集清扫过程中的图像帧。此外,自移动清扫机器人还可以包括音视频组件、电源组件、边刷、内置垃圾箱等组件。在实际应用中,该自移动清扫机器人可以根据实现功能的不同,被制作为扫地机器人、擦窗机器人等具备清扫功能的产品。
[0016]
请参阅图1,本申请一个实施方式提供的垃圾弹出处理方法,可以包括以下多个步骤。
[0017]
s1:检测是否有垃圾被弹出。
[0018]
在本实施方式中,自移动清扫机器人在清扫过程中,可以通过摄像头不断采集清扫环境的图像帧。在实际应用中,为了有效地根据图像帧来检测弹出的垃圾,摄像头的镜头可以采用超广角镜头,也可以采用角度不固定的动态镜头,或者还可以采用双摄像镜头。具体地,可以根据实际应用场景和成本灵活选用。
[0019]
在本实施方式中,考虑到光流图像可以表征像素点的运动状态,因此可以对图像帧之间的光流图像进行分析,从而确定出垃圾弹出的位置。具体地,针对采集到的图像帧中的第一图像帧和第二图像帧,可以计算这两个图像帧之间的光流图像。其中,第一图像帧和第二图像帧可以是采集到的图像帧中不同的两个图像帧,通常而言,这两个图像帧可以是先后采集到的相邻的两个图像帧。当然,有时候为了简化运算过程,第一图像帧和第二图像帧之间也可以相隔多个视频帧。例如,第一图像帧和第二图像帧可以是相邻的两个关键帧(i帧),这两个关键帧之间的非关键帧(p帧和b帧)可以不进行分析。
[0020]
在本实施方式中,可以采用常规的手段计算第一图像帧和第二图像帧之间的光流图像。例如,可以采用lucas-kanade(lk)光流法计算这两个图像帧之间的光流图像。又例如,还可以采用光流网络flownet或者flownet 2.0,对这两个图像帧进行处理,从而得到对应的光流图像。当然,随着技术的进步,关于光流图像的计算还可以有其它更多的方式,在这里就不一一例举。
[0021]
在本实施方式中,计算得到第一图像帧和第二图像帧之间的光流图像后,可以将光流图像切分为多个图像块,并针对每个图像块进行分析。
[0022]
在一个实施方式中,为了能够顺利地对光流图像进行切分,在采集到第一图像帧
和第二图像帧之后,可以按照光流图像中待切分的图像块的尺寸,对第一图像帧和第二图像帧的尺寸进行重塑。具体地,请参阅图2,假设光流图像中待划分的图像块的尺寸为l*l(长和宽均为l),并且在划分图像块时,是按照横向或者纵向移动l/2进行划分。这样,划分的图像块之间会有部分重叠的区域。为了保证切分的图像块的数量为整数,光流图像的长和宽就需要满足2w/l为整数,以及2h/l也为整数。其中,w和h分别为光流图像的长和宽。由于光流图像的尺寸与原始的第一图像帧和第二图像帧的尺寸是一致的,因此第一图像帧和第二图像帧的尺寸也需要满足上述的关系。
[0023]
鉴于此,在本实施方式中,可以识别所述光流图像中待切分的图像块的尺寸,并确定与所述图像块的尺寸相适配的目标尺寸。例如,待切分的图像块的尺寸为l*l,并且是按照l/2的间隔进行划分,因此适配的目标尺寸w和h便需要满足:2w/l为整数,2h/l也为整数。然后,可以将所述第一图像帧和所述第二图像帧重塑为具备所述目标尺寸的图像帧,并计算重塑后的第一图像帧和第二图像帧之间的光流图像。这样便可以保证光流图像能够正好切分出整数个图像块。在对第一图像帧和第二图像帧进行重塑时,可以采用常规的编码算法(例如opencv或者python中的库函数reshape)对图像帧的尺寸进行更改,从而将第一图像帧和第二图像帧修改为符合要求的目标尺寸。
[0024]
需要说明的是,随着待切分的图像块的尺寸以及切分规则的变化,第一图像帧和第二图像帧重塑后的目标尺寸也会随之变化。例如,待切分的图像块的尺寸为l*l,并且是按照l的间隔进行划分,那么适配的目标尺寸w和h便需要满足:w/l为整数,h/l也为整数。
[0025]
在本实施方式中,可以按照从左到右,从上到下的顺序对光流图像进行切分,切分得到的图像块,可以按照切分顺序进行编号。例如在图2中,第一行最后一个图像块的编号可以是n,根据上述的切分规则,n可以是2w/l。该编号可以作为图形快的切分索引序号,根据该切分索引序号可以快速地在光流图像中找到图像块的位置。
[0026]
在本实施方式中,在将光流图像切分为多个图像块后,可以对各个图像块进行分析,以识别是否存在运动状态突变的异常图像块。具体地,切分得到的各个图像块,可以通过各自的异常指标值来表征异常程度。该异常指标值可以通过将图像块与标准的光流图像块进行对比得到。通常而言,对于内容变化平缓的两个图像帧而言,这两个图像帧对应的光流图像中,各个图像块中颜色的分布以及颜色的深浅(光流图像中的颜色表征运动方向,颜色的深浅表征运动速度的大小)应当在一个理论的范围内,该理论的范围可以形成一个标准的光流图像块。这样,通过将光流图像中的各个图像块与标准的光流图像块进行对比,从而可以得到两者的误差,该误差便可以作为光流图像中图像块的异常指标值。
[0027]
在实际应用中,可以计算图像块与标准的光流图像块之间的相似度,然后将该相似度的倒数作为图像块的异常指标值。此外,在一个实施方式中,请参阅图3,可以结合异常运动检测网络来对各个图像块进行分析。在异常运动检测网络中,可以包括编码器和鉴别器。其中,编码器可以用于将输入的图像块转换为对应的隐空间变量(latent variable)。在实际应用中,编码器可以由多个层级结构组成。如图3所示,编码器中可以包括两种层级结构,一种是由“卷积层、批归一化层以及激活层”构成的层级结构,另一种是由“卷积层和批归一化层”构成的层级结构。其中,不同的层级结构可以包括一个或者多个层级实例,每个层级实例可以具备自身的维度。例如在图3中,第一种层级结构可以包括维度为16*16*32、8*8*64以及4*4*128的三个层级实例,第二种层级结构则可以包括维度为1*1*128的一
个层级实例。这样,经过这些层级结构,输入的图像块最终可以转换为对应的隐空间变量。例如在图3中,可以得到维度为1*1*128的隐空间变量。不同的图像块,生成的隐空间变量可能会有差别,这样,隐空间变量便可以定量地表征切分后的图像块。
[0028]
在本实施方式中,生成的隐空间变量可以被输入鉴别器中,在异常运动检测网络完成训练的情况下,鉴别器可以判断输入的隐空间变量是否符合预设的先验分布,该预设的先验分布可以通过标准向量来表示。鉴别器可以由多个全连接(full connected,fc)层组成。在训练阶段,标记为正样本的隐空间变量与标准向量被一并输入鉴别器中,该标准向量可以是服从先验分布的向量。这样,鉴别器可以计算隐空间变量与标准向量之间的误差(鉴别损失),该误差可以作为反馈数据被传递至编码器中,以使得编码器根据该误差调节各个层级结构的权重值。最终,调整之后的编码器生成的隐空间变量被再次输入鉴别器时,能够较好地服从先验分布。这样,经过海量样本的不断训练,异常运动检测网络能够精确地区分正常的光流图像块和异常的光流图像块。
[0029]
在本实施方式中,在判断当前的图像块是否为异常图像块时,可以通过编码器生成对应的隐空间变量,并将该隐空间变量输入鉴别器中,鉴别器可以计算所述隐空间变量与标准向量之间的误差,并将所述误差作为输入的图像块的异常指标值。
[0030]
针对每个图像块,均可以按照上述的方式得到各自的异常指标值。然后根据各个图像块的异常指标值,可以判断这些图像块中是否存在异常图像块。具体地,异常图像块越大,表明图像块出现异常的概率越高。因此,可以从生成的异常指标值中筛选出值最大的目标异常指标值,并判断该目标异常指标值是否大于预设误差阈值,该预设误差阈值可以是基于实际的经验选取的数值。如果该目标异常指标值大于预设误差阈值,则可以判定所述目标异常指标值对应的图像块为异常图像块。
[0031]
在本实施方式中,在确定出光流图像中存在的异常图像块之后,便表征此时有垃圾被弹出。这样,需要根据该异常图像块在原始的第一图像帧或者第二图像帧中确定出垃圾弹出的位置。具体地,可以识别该异常图像块的切分索引序号。光流图像中的各个图像块在切分时,可以按照切分规则记录各自的切分索引序号。例如图2中第一行最右边的图像块的切分索引序号为2w/l。按照所述光流图像中图像块的切分规则,可以将所述切分索引序号还原为行号和列号。具体地,针对不同的切分规则,可以制定不同的还原算法。例如,对于图2所示的切分规则,切分索引序号还原后的行号和列号可以表示为:
[0032]
i=(n//l/2)+1
[0033]
j=n%(l/2)
[0034]
其中,n表示图像块的切分序列号,i表示还原后的行号,j表示还原后的列号。“//”和“%”为两种特殊的运算,其中,“//”表示“地板除”运算,举例来说,3//2=1。“%”表示取模操作,即取余数,举例来说,4%2=0,7%2=1。l表示图像块的划分间隔。
[0035]
在本实施方式中,还原得到的行号和列号的组合,便可以对应第一图像帧或者第二图像帧中的图像块,该对应的图像块便可以作为光流图像的异常图像块在原始的第一图像帧或者第二图像帧中对应的像素图像块。
[0036]
在实际应用中,像素图像块中各个像素点的实际坐标值,可以通过还原后的行号和列号来表示。例如,按照图2所示的切分规则,在得到还原的行号和列号后,像素图像块中的像素点(x,y)的取值分别可以是x∈[(i-1)
×
l/2,(i+1)
×
l/2],y∈[(j-1)
×
l/2,(j+1)
×
l/2]。需要说明的是,由于第一图像帧和第二图像帧在时间上通常十分靠近,因此像素图像块在第一图像帧和第二图像帧中所在的位置几乎是相同的,因此在具体应用场景中,可以统一地在第一图像帧中确定出像素图像块的位置。
[0037]
s3:当检测到有垃圾被弹出,自移动清扫机器人的摄像头旋转,在转动的过程中检测是否有垃圾。
[0038]
按照前述的方式,便可以在原始的图像帧中确定出表征垃圾弹出位置的像素图像块。一旦检测到光流图像中存在异常图像块,自移动清扫机器人便可以制定相应的补扫策略,以对弹出的垃圾重新进行清扫。具体地,在识别出光流图像中存在异常图像块之后,自移动清扫机器人可以暂停当前的清扫工作,从而停止行动,并旋转,旋转的过程就是转动摄像头的过程。然而确定出垃圾弹出的位置只能预测垃圾可能滚落的大概位置,垃圾被滚落的位置跟垃圾被弹出的速度有关系,同时跟当时的外界环境条件也有关系,所以垃圾最终滚落的位置有一定的随机性。因此在一个实施方式中,在机器人停止移动之后,在旋转之前,首先可以检测在摄像头当前视角范围内是否有垃圾,该垃圾可以是被弹出的垃圾,也可以是别的垃圾。若检测到有垃圾落在清洁机器人摄像头当前视角范围中,那么自移动清扫机器人继续缓慢旋转,并使得垃圾最终处于摄像头视角的预设范围内。若没有检测到有垃圾落在清洁机器人摄像头当前视角范围中,则自移动清扫机器人开始旋转,并在转动的过程中检测是否有垃圾,当检测到有垃圾落在清洁机器人摄像头当前视角范围中,自移动清扫机器人继续缓慢旋转,并使得垃圾最终处于摄像头视角的预设范围内。
[0039]
具体地,上述的预设范围,可以是以摄像头视角中心线为起始,向两侧扩展预设的角度所构成的范围。例如,该预设的角度可以是10
°

[0040]
当然,为了确保自移动清扫机器人能够准确地对垃圾进行清扫,还可以继续旋转摄像头,使得垃圾刚好位于摄像头视角的竖直中轴位置。具体地,可以确定出垃圾的中心位置,并在水平方向判断当前视角范围的中心位于与垃圾的中心位置之间的角度差。后续,可以控制摄像头向像素图像块的方向转动该角度差,从而使得垃圾能够位于转动后的视角范围的竖直中轴位置。
[0041]
当检测到有垃圾位于摄像头视角的预设范围内,可以从当前清扫位置规划行进至所述垃圾的延伸路径,并根据所述延伸路径中区域的清扫状态,判断是否对所述垃圾进行清扫。
[0042]
在实际应用中,针对弹出的垃圾而言,弹出的垃圾可能落在摄像头当前视角范围内,也可能滚落到摄像头当前视角范围外。自移动清扫机器人可以先识别在摄像头当前视角范围内是否存在垃圾,针对摄像头当前视角范围内没有检测到垃圾的情况,说明被弹出的垃圾滚落到摄像头当前视角范围外了。对于弹出的垃圾而言,可能并没有偏离自移动清扫机器人太远,也有可能偏离自移动清扫机器人较远。如果垃圾的弹出速度很小的话,可以推断垃圾滚动的范围不是很大,反之,则可以预测垃圾可能偏离到弹出位置较远的地方。因此,为了提高自移动清扫机器人检测垃圾的效率,在弹出垃圾滚落到摄像头当前视角范围外的情况下可以通过垃圾的弹出速度确定自移动机器人需要旋转的角度。
[0043]
在识别出光流图像中存在异常图像块,并在第一图像帧或者第二图像帧中确定出对应的像素图像块后,可以对后续采集的图像帧继续分析,以确定垃圾的弹出方向和速度。具体地,在采集的图像帧中,可以获取位于所述第二图像帧之后的多个目标图像帧,并按照
上述的方式,在各个目标图像帧中识别出表征垃圾弹出位置的像素图像块。按照目标图像帧的采集顺序,可以将识别出的各个像素图像块先后拼接起来,从而确定出垃圾的弹出速度和方向。后续,根据不同的弹出速度和方向,便可以采用相匹配的摄像头转动角度和方向。
[0044]
通过解析异常图像块确定出垃圾弹出的方向和速度之后,自移动清扫机器人可以根据垃圾的弹出速度和方向计算自移动清扫机器人的转动角度,并控制摄像头向所述弹出方向转动,以提高自移动机器人检测到弹出垃圾的效率。由于受到外界条件的限制,垃圾滚落的位置存在一定的随机性,通过上述的方式不一定能检测到垃圾,若在设定的转动角度内未检测到垃圾,自移动机器人可以继续旋转摄像头进行检测,直至旋转完一周。具体地,根据解析出的弹出速度,可以定义摄像头转动角度的角度区间。例如弹出速度为v,那么转动角度的角度区间可以是[0,αv],摄像头可以按照该角度区间内的角度进行转动。在另一个实施例中,自移动机器人只需通过解析异常图像块确定出垃圾弹出的方向,在确定自移动机器人当前摄像头视角范围内没有垃圾之后,就控制摄像头向所述弹出方向转动,直至检测到垃圾或者摄像头旋转完一周。在另一个实施例中,自移动机器人无需通过解析异常图像块确定出垃圾弹出的方向或速度,在确定自移动机器人当前摄像头视角范围内没有垃圾之后朝任意一个方向转动,直至检测到垃圾或者摄像头旋转完一周。
[0045]
当自移动清扫机器人检测到垃圾后,继续缓慢转动摄像头,可以使得垃圾处于摄像头视角的预设范围内,此时,确定摄像头视角的预设范围在地图上延伸所覆盖的区域,其中,以摄像头为起点,摄像头视角的预设范围在地图上延伸直到碰到障碍物为止构成所覆盖的区域。在进一步的实施例中,当自移动清扫机器人检测到垃圾后,继续缓慢转动摄像头,当垃圾位于摄像头视角的竖直中轴位置时,可以确定自移动清扫机器人与垃圾之间的连线在地图上延伸直到碰到障碍物为止所覆盖到的区域。
[0046]
在一个实施方式中,若所述覆盖的区域全部为未清扫状态,则不补扫,自移动清扫机器人转回到停止工作时的角度,并继续工作。例如,所述覆盖的区域中的区域均未被清扫,则表明目前的清扫进度还没有进行到该覆盖的区域处,后续会针对该覆盖的区域进行清扫。因此,当前时刻就判定无需对检测到的垃圾进行清扫,而是按照原先的清扫规划继续清扫,垃圾则可以留在后续的清扫规划中一并清扫。
[0047]
相反,若所述覆盖的区域存在已清扫的部分,则开始补扫,自移动清扫机器人沿着摄像头视角的中轴线方向移动直到碰到障碍物。例如,所述覆盖的区域中存在已被清扫的区域,则表示垃圾可能落在了已经清扫过的区域中,此时自移动清扫机器人沿着摄像头视角的中轴线方向移动直到碰到障碍物,从而完成补扫的过程。
[0048]
在本实施方式中,自移动清扫机器人在中止当前的清扫行为时,可以记录当前的工作状态,该工作状态可以包括:自移动机器人的所在位置、清扫角度、清扫模式、已经清扫区域中清扫轨迹、之前规划的清扫路径等信息。然后,可以通过转动摄像头和规划清扫路径,完成垃圾的补扫过程。在对检测到的的垃圾清扫完毕之后,自移动清扫机器人可以加载之前的工作状态,从而返回到补扫起始点,并转回到停止工作时的角度,从而不会由于需要进行弹出垃圾的补扫,而影响原先的清扫计划。这样,自移动清扫机器人在补扫时,如果碰到障碍物后,便可以返回到补扫起始点,并转回到停止工作时的角度,并继续工作。
[0049]
在一个实施方式中,当自移动清扫机器人返回到补扫起始点后,可以转回到检测
到垃圾时的角度。此时,自移动清扫机器人的摄像头可以继续向未检测的方向进行转动,并且在转动的过程中继续检测是否有垃圾。这样处理的目的在于,之前检测到的垃圾可能并不是弹出的垃圾,如果将之前检测到的垃圾补扫之后就重新回到原先的清扫计划,那么弹出的垃圾依然没有进行处理。同时,在未检测的方向可能还存在其它的垃圾,针对这些垃圾,自移动清扫机器人也可以判断是否需要补扫。这样,自移动清扫机器人可以按照前述的方式,向未检测的方向继续转动,并在转动过程中检测是否有垃圾。如果有垃圾,可以中止检测过程,并根据该垃圾所处区域的清洁状态,判断该垃圾是否需要被补扫。如果需要被补扫扫,可以记录当前的工作状态,进入补扫流程。后续,在完成补扫之后,可以回到记录的工作状态,并控制摄像头再次向未检测的方向转动,直至摄像头转动一周为止。当摄像头转动一周之后,便可以按照最先制定的清扫计划继续清扫。
[0050]
需要说明的是,上述的自移动清扫机器人的摄像头在旋转时,可以表示摄像头相对于自移动清扫机器人机体自由转动,也可以表示摄像头固定设置于自移动清扫机器人之上,当自移动清扫机器人转动时,可以带动摄像头转动。
[0051]
可见,通过将光流图像与异常检测网络进行结合,可以有效地识别垃圾弹出的位置,并通过后续的摄像头转动策略和补扫策略,可以有效地判断是否需要对检测到的垃圾进行补扫,提高了整体的清扫效率。
[0052]
在一个具体应用示例中,带有边刷的扫地机器人在清扫过程中,可以通过超广角镜头采集清扫环境的图像。该图像可以在扫地机器人本地进行处理,如果网速允许,扫地机器人也可以将采集到的图像上传至云端的服务器进行处理。通过计算两个图像帧之间的光流场,并进行异常图像块的识别,从而可以判定当前是否存在弹出的垃圾。
[0053]
在本应用示例中,一旦检测到有垃圾从边刷弹出,扫地机器人可以停止当前的清扫行为,并记录当前时刻所处的位置和镜头的角度,该位置和角度可以作为清扫信息被记录。然后,扫地机器人可以判断当前的视角范围内是否存在垃圾。
[0054]
在本应用示例中,如果检测到有垃圾位于扫地机器人当前的视角范围内,那么扫地机器人向垃圾的方向旋转,以使得垃圾被锁定于视角范围的左右居中位置。而如果垃圾没有位于扫地机器人当前的视角范围内,那么扫地机器人可以根据垃圾弹出的速度,计算出扫地机器人的转动角度。当然,在一些应用示例中,扫地机器人也可以省略计算转动角度的步骤,而是根据垃圾弹出的方向确定向一个方向转动,直至捕捉到垃圾的位置或旋转一周。扫地机器人在捕捉到垃圾之后,便可以按照上述的方式继续旋转,直至垃圾位于镜头的左右居中位置。
[0055]
在本应用示例中,扫地机器人将垃圾锁定在左右居中的位置后,便可以根据摄像头视角的中轴线在地图上延伸的范围,确定摄像头视角的中轴线在地图上涉及的区域。具体地,扫地机器人根据当前时刻镜头的位姿,可以在地图中确定出镜头的朝向。根据该朝向可以在地图中作一定宽度的直线,该直线在地图上覆盖的区域,便可以作为中轴线延伸的范围。该直线在延伸时,如果碰到障碍物,则可以停止延伸。该障碍物可以是弹出的垃圾,也可以是位于弹出的垃圾与扫地机器人之间的其它物体。这样,以摄像头为起点,摄像头视角的中轴线在地图上延伸直到碰到障碍物为止便可以构成延伸的范围。针对该延伸的范围表征的延伸路径,可以选择进行清扫或者不清扫。
[0056]
具体地,如果延伸路径中的区域均未被清扫,则表明目前的清扫进度还没有进行
到该延伸路径处,后续会针对该延伸路径进行清扫。因此,当前时刻就判定无需对检测到的垃圾进行清扫,而是按照原先的清扫规划继续清扫,检测到的垃圾则可以留在后续的清扫规划中一并清扫。
[0057]
相反,如果延伸路径中存在已被清扫的区域,则表示垃圾可以落在了已经清扫过的区域中,此时则需要沿着延伸路径对检测到的垃圾进行清扫,从而完成补扫的过程。
[0058]
在本应用示例中,在对弹出的垃圾清扫完毕之后,扫地机器人可以加载之前记录的工作状态,返回到补扫起始点,并转回到停止工作时的角度继续清扫,从而不会由于需要进行弹出垃圾的补扫,而影响原先的清扫计划。或者,在返回到补扫起始点后,可以转回到检测到垃圾时的角度,摄像头继续向未检测的方向进行转动,在转动的过程中检测是否有垃圾,从而完成更加全面的垃圾检测过程。。
[0059]
请参阅图4,本申请还提供一种垃圾弹出处理系统,自移动清扫机器人上设有摄像头,所述系统包括:
[0060]
检测单元,用于检测是否有垃圾被弹出;
[0061]
旋转单元,用于当检测到有垃圾被弹出,自移动清扫机器人的摄像头旋转,在转动的过程中检测是否有垃圾。
[0062]
请参阅图5,本申请一个实施方式还提供一种自移动清扫机器人,所述自移动清扫机器人上设有摄像头,所述自移动清扫机器人包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,用于实现以下功能:
[0063]
检测是否有垃圾被弹出;
[0064]
当检测到有垃圾被弹出,自移动清扫机器人的摄像头旋转,在转动的过程中检测是否有垃圾。
[0065]
在一个实施方式中,本申请还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时,可以实现上述的垃圾弹出处理方法的步骤。
[0066]
在本实施方式中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。该存储器可以包括:利用电能方式存储信息的装置,如ram、rom等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置,如cd或dvd。当然,还有其他方式的存储器,例如量子存储器、石墨烯存储器等等。
[0067]
在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。
[0068]
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。
[0069]
由上可见,本申请一个或者多个实施方式提供的技术方案,通过对光流图像进行分析,从而确定出原始图像帧中垃圾弹出的位置。具体地,自移动清扫机器人在清扫过程中,可以不断采集清扫环境的图像帧,然后针对其中的第一图像帧和第二图像帧,可以计算这两个图像帧之间的光流图像。光流图像可以表征视频帧中像素点的运动状态,通过对光流图像进行分析,可以识别光流图像中是否存在异常图像块。其中,光流图像中的异常图像
块可以表明原始图像帧中像素点的运动状态发生了突变,这种突变是由于垃圾弹出后,前后图像帧中相同位置处的内容发生了变化。鉴于此,在识别出光流图像中存在异常图像块后,可以确定该异常图像块在原始的第一图像帧或者第二图像帧中对应的像素图像块。该像素图像块中的内容在前后图像帧中发生了变化,因此该像素图像块便可以表征垃圾弹出的位置。可见,本申请提供的技术方案,能够有效地检测垃圾弹出的位置,为后续的重新清扫提供了依据。
[0070]
本领域内的技术人员应明白,本发明的实施方式可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0071]
本发明是参照根据本发明实施方式的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0072]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0073]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0074]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0075]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0076]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0077]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0078]
以上所述仅为本申请的实施方式而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1