[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0048] 为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。
[0049] 以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。为了便于理解本发明实施例所述的技术方案及其产生的技术效果,本发明实施例首先对于相关专业名词进行解释:
[0050] 有鉴于此,本发明实施例提供一种基于机器学习的垃圾清理方法,如图1所示,所述方法可以包括:
[0051] S101.获取待清理区域平面规划图,对所述平面规划图进行网格化处理得到待清理区域的网格图。
[0052] 具体地,所述待清理区域可以是露天停车场、公园或者野外等较为空旷的场地,本发明实施例旨在对于待清理区域进行自动的垃圾分类清理,更为适用于空旷场地,并且网格划分越细越好。
[0053] S103.通过无人机拍摄所述待清理区域的航拍图像,根据所述网格图和所述航拍图像得到网格化航拍图像。
[0054] 待清理区域的网格图中对平面规划图进行了网格划分,而航拍图像与平面规划图一一对应,因此也可以进行相同的网格划分,以得到网格化航拍图像。
[0055] 垃圾的自动发现是垃圾自动清理的一个必要步骤,通过垃圾自动发现、垃圾自动分类和垃圾自动清理最大程度上降低人工操作,提升垃圾清理效率。
[0056] S105.将所述网格化航拍图像输入预设的垃圾分类模型,得到所述垃圾分类模型输出的垃圾分类信息集,所述垃圾分类信息集中每一条垃圾分类信息均包括垃圾在所述待清理区域的位置信息和所述垃圾的分类结果。
[0057] 具体地,如图2所示,所述垃圾分类模型包括垃圾提取子模型和垃圾分类子模型,所述垃圾提取子模型和所述垃圾分类子模型通过图像切片层连接,所述垃圾分类子模型还与垃圾分类信息输出层连接。
[0058] 具体地,所述垃圾提取子模型可以通过预设的机器学习模型进行训练得到,其中,所述垃圾提取子模型的训练方法如图3所示,包括:
[0059] S2.获取样本数据集,所述样本数据集包括正向样本数据子集和反向样本数据子集,所述正向样本数据子集包括多条正向样本数据,所述反向样本数据子集包括多条反向样本数据,所述正向样本为各种垃圾图像,所述反向样本为非垃圾图像。
[0060] 具体地,所述反向样本的内容与所述待清理区域相关,不同的待清理区域其反向样本的内容可以不同。比如公园中随出可见的垃圾桶、水井盖以及落地装饰物,这些物品并不是垃圾,因此,应当将这些物品作为反向样本进行训练,以使得垃圾提取子模型可以避免将上述物品识别为垃圾,从而使得本发明实施例中所述基于机器学习的垃圾清理方法可以更为广泛的适用于各种垃圾清理场景之中。
[0061] S4.构建预设机器学习模型,将所述预设机器学习模型确定为当前机器学习模型;
[0062] S6.基于所述当前机器学习模型,对所述样本数据集中的图像是否为垃圾图像进行二值化的判别操作,确定判别结果;
[0063] S8.基于所述判别结果和所图像的来源,确定损失值;
[0064] 具体地,所述来源包括正向样本数据子集或反向样本数据子集。
[0065] S10.当所述损失值大于预设阈值时,基于所述损失值进行反向传播,对所述当前机器学习模型进行更新以得到更新后的机器学习模型,将所述更新后的机器学习模型重新确定为所述当前机器学习模型;重复步骤:基于所述当前机器学习模型,对所述样本数据集中的图像是否为垃圾图像进行二值化的判别操作,确定判别结果;
[0066] S12.当所述损失值小于或等于所述预设阈值时,将所述当前机器学习模型确定为所述垃圾提取子模型。
[0067] 在本发明实施例中,所述垃圾提取子模型可以对所述待清理区域中的网格化航拍图像中的各种物品进行识别以判断其是否为垃圾图像。所述图像切片层用于根据所述垃圾提取子模型的输出结果得到垃圾切片图像,具体地,所述图像切片层执行下述动作:
[0068] 获取所述垃圾提取子模型对所述网格化网格化航拍图像中各个物品的垃圾提取结果。
[0069] 若所述垃圾提取结果为真,则提取所述物品所在网格的图像为垃圾切片图像,建立所述垃圾切片图像与所述网格的映射关系。
[0070] 具体地,所述垃圾子分类模型可以通过预设的机器学习模型进行训练得到,其中,所述垃圾分类子模型的训练方法如图4所示,包括:
[0071] S1.获取样本数据集,所述样本数据集包括多条样本数据,每条样本数据均包括垃圾图像和所述垃圾图像对应的垃圾分类标记;
[0072] S3.构建预设机器学习模型,将所述预设机器学习模型确定为当前机器学习模型;
[0073] S5.基于所述当前机器学习模型,对所述样本数据集中的垃圾图像进行分类操作,确定所述垃圾图像对应的预测分类结果;
[0074] S7.基于所述垃圾图像对应的预测分类结果和所述垃圾图像对应的垃圾分类标记,确定损失值;
[0075] S9.当所述损失值大于预设阈值时,基于所述损失值进行反向传播,对所述当前机器学习模型进行更新以得到更新后的机器学习模型,将所述更新后的机器学习模型重新确定为所述当前机器学习模型;重复步骤:基于所述当前机器学习模型,对所述样本数据集中的垃圾图像进行分类操作,确定所述垃圾图像对应的预测分类结果;
[0076] S11.当所述损失值小于或等于所述预设阈值时,将所述当前机器学习模型确定为所述垃圾分类子模型。
[0077] 在本发明实施例中,所述垃圾分类子模型对各个垃圾切片图像中的垃圾进行分类,得到分类结果,将所述分类结果传输至垃圾分类信息输出层,所述垃圾分类信息输出层执行下述动作:
[0078] 获取所述垃圾分类子模型输出的垃圾切片图像对应的垃圾分类结果;
[0079] 根据垃圾切片图像与所述网格的对应关系,得到垃圾分类结果与所述网格的映射关系。
[0080] S107.根据所述垃圾分类信息集驱动垃圾清理机器人进行垃圾自动清理。
[0081] 具体地,所述根据所述垃圾分类信息集驱动垃圾清理机器人进行垃圾自动清理,如图5所示,包括:
[0082] S1071.根据所述垃圾分类信息集和所述网格化航拍图像生成垃圾网格矩阵,所述垃圾网格矩阵中的元素与所述网格化航拍图像中的网格一一对应,所述元素的值对应所述网格指向的垃圾类型。
[0083] 具体地,在一个可行的实施例中,若元素值为0,则表征所述元素对应的网格中不存在垃圾,若所述元素值不为零,则表征所述元素对应的网格中存在垃圾。
[0084] 具体地,本发明实施例中可以将垃圾分为干垃圾、湿垃圾、可回收垃圾和有害垃圾,干垃圾、是垃圾、可回收垃圾和有害垃圾分别对应不同的元素值。比如干垃圾所在网格的元素值为1,湿垃圾所在的网格的元素值为2,可回收垃圾所对应的网格值为3,有害垃圾对应的网格值为4。
[0085] S1073.将所述垃圾网格矩阵确定为当前垃圾网格矩阵。
[0086] S1075.根据所述当前垃圾网格矩阵确定当前有效垃圾网格矩阵,位于所述所述垃圾网格矩阵,并且不位于所述当前有效垃圾网格矩阵的的元素指向的网格中不存在垃圾。
[0087] 以所述当前垃圾网格矩阵为 为例,则当前有效垃圾网格矩阵为
[0088] S1077.以所述当前有效垃圾网格矩阵的左上角为路径起始点,以所述当前垃圾网格矩阵的右下角为路径终点,规划一条垃圾清理机器人运行路径。
[0089] 具体地,一条垃圾清理机器人运行路径可以用于垃圾清理机器人在当前有效垃圾网格矩阵的左上角至所述当前有效垃圾网格矩阵的右下角运行一次,并在运行过程中沿运行路径清理掉运行路径所覆盖的网格中的垃圾。当然,在很多场景中,垃圾清理机器人仅仅沿一条运行路径并不能清理掉其它未被规划在所述运行路径中的垃圾,因此,本发明实施例中通过循环驱动的方式,多次执行步骤S1075可以最终到达清理待清理区域中全部垃圾的目的。
[0090] 为了降低路径规划的难度,提升路径规划算法的鲁棒性,降低人工干预程度,本发明实施例中规定垃圾清理机器人仅仅能够沿网格运行,具体地,可以沿当前网格向右侧网格或向下侧网格运行。在一个可行的实施例中,所述以所述当前有效垃圾网格矩阵的左上角为路径起始点,以所述当前垃圾网格矩阵的右下角为路径终点,规划一条垃圾清理机器人运行路径,包括:
[0091] S10771.初始化第一游标i、第二游标j和网格序列,所述第一游标i和所述第二游标j均停留在所述当前有效垃圾网格矩阵的左上角,所述第一游标i用于沿所述当前有效垃圾网格矩阵向下按行运动,所述第二游标j用于沿所述当前有效垃圾网格矩阵向右按列运动。
[0092] S10772.判断所述第一游标是否指向所述当前有效垃圾网格的最后一行,若否,则执行步骤S10773,若是,则执行步骤S10779。
[0093] S10773.将所述第二游标指向所述当前有效垃圾网格的第一列。
[0094] S10774.判断所述第二游标是否指向所述当前有效垃圾网格的最后一列,如否,则执行步骤S10775,若是,则执行步骤S10778。
[0095] S10775.若否,则根据所述第一游标i和第二游标j,获取第一目标元素值和第二目标元素值,其中所述第一目标元素值为与元素gij的同行下一列的元素值,所述第二目标元素值为与元素gij的同列下一行的元素值。
[0096] 元素gij标识所述当前有效垃圾网格矩阵中由第一游标i和第二游标j唯一确定的元素。
[0097] S10776.若所述第一目标元素值为非零值,则将所述第一目标元素对应的网格加入所述网格序列;若所述第一目标元素值为0并且所述第二目标元素值为非零值,则将所述第二目标元素对应的网格加入所述网格序列;若所述第一目标元素值为0并且所述第二目标元素值也为0,则将所述第一目标元素对应的网格加入所述网格序列。
[0098] S10777.将所述第二游标向右移动一位,重复执行步骤S10774。
[0099] S10778.将所述第一游标向下移动一位,重复执行步骤S10772。
[0100] S10779.根据所述网格序列生成所述垃圾清理机器人运行路径。
[0101] S1079.驱动垃圾清理机器人沿所述一条垃圾清理机器人运行路径运行,清理所述一条垃圾清理机器人运行路径覆盖的网格中的垃圾,将所述当前垃圾网格矩阵中被所述一条垃圾清理机器人运行路径覆盖的网格中的元素值设置为0。
[0102] 具体地,所述垃圾清理机器人的运行路径中存在垃圾,为了便于对垃圾分类存储,本发明实施例垃圾清理机器人还执行下述动作:
[0103] S10791.获取路径网格序列,所述路径网格序列通过网格序列的形式记录所述垃圾清理机器人的运行路径,所述路径网格序列中的网格的值表征所述网格中的垃圾的类别。
[0104] 具体地,无垃圾网格的值为0,干垃圾所在网格值为1,湿垃圾所在的网格的值为2,可回收垃圾所对应的网格的值为3,有害垃圾对应的网格的值为4。
[0105] S10793.所述垃圾清理机器人沿所述路径网格序列行进,并根据网格的值开启对应的回收口。
[0106] 比如,若所述垃圾清理机器人行进到某个网格,并且网格对应的值为3,则开启可回收垃圾的回收口,以便于将清理出来的垃圾输入可回收垃圾的回收口。
[0107] S10711.判断所述当前垃圾网格矩阵中各个元素是否全部为0,若否,则重复执行步骤S1075。
[0108] 本发明实施例公开的一种基于机器学习的垃圾清理方法实现了垃圾发现、垃圾分类和垃圾清理的全程自动化,尤其适用于空旷的场景中的垃圾自动清理,能非常显著的提升清理效率,并且获得分类好的清理结果,降低了垃圾后处理的压力,具有较好的使用前景。
[0109] 本发明实施例还公开一种基于机器学习的垃圾清理装置,如图6所示,所述装置包括:
[0110] 网格图获取模块201,用于获取待清理区域平面规划图,对所述平面规划图进行网格化处理得到待清理区域的网格图;
[0111] 网格化航拍图像获取模块203,用于通过无人机拍摄所述待清理区域的航拍图像,根据所述网格图和所述航拍图像得到网格化航拍图像;
[0112] 垃圾分类信息集获取模块205,用于将所述航拍图像输入预设的垃圾分类模型,得到所述垃圾分类模型输出的垃圾分类信息集,所述垃圾分类信息集中每一条垃圾分类信息均包括垃圾在所述待清理区域的位置信息和所述垃圾的分类结果;
[0113] 垃圾清理模块207,用于根据所述垃圾分类信息集驱动垃圾清理机器人进行垃圾自动清理。
[0114] 具体地,本发明实施例所述一种基于机器学习的垃圾清理装置与方法实施例均基于相同发明构思。详情请参见方法实施例,在此不再赘述。
[0115] 本发明实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令。所述指令可以适于由处理器加载并执行本发明实施例所述的一种基于机器学习的垃圾清理方法,所述方法请参考方法实施例。
[0116] 进一步地,图7示出了一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本发明实施例所提供的装置或系统。如图7所示,设备10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
[0117] 应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
[0118] 存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种基于机器学习的垃圾清理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0119] 传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0120] 显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
[0121] 需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0122] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0123] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0124] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。