执行用于物体识别的图像分类的方法和系统与流程

文档序号:25859997发布日期:2021-07-13 16:15阅读:81来源:国知局
执行用于物体识别的图像分类的方法和系统与流程

对相关申请的交叉引用

本申请要求2020年1月10日提交的题为“aroboticsystemwithobjectdetection”的美国临时申请no.62/959,182的权益,该美国临时申请的全部内容通过引用并入本文中。

本公开涉及用于图像分类(imageclassification)的计算系统和方法。具体地,本文的实施例涉及将图像或其一部分分类为有纹理的(textured)或无纹理的(textureless)。



背景技术:

随着自动化变得更加普遍,表示物体的图像可以被用于自动提取关于物体(诸如仓库、工厂或零售空间中的盒子或其他包裹)的信息。这些图像可以促进诸如自动包裹跟踪、库存管理或机器人与物体的交互之类的任务。



技术实现要素:

在实施例中,提供了一种包括非暂时性计算机可读介质和处理电路的计算系统。处理电路被配置为执行以下方法:由计算系统接收图像,其中计算系统被配置为与图像捕获设备通信,其中图像是由图像捕获设备生成的,并且用于表示图像捕获设备的视野中的一个或多个物体;由计算系统基于图像的至少一个图像部分生成一个或多个位图(bitmap),其中该一个或多个位图和该至少一个图像部分与该一个或多个物体中的第一物体相关联,并且其中该一个或多个位图描述用于特征检测的一个或多个视觉特征是否存在于该至少一个图像部分中,或者描述跨该至少一个图像部分是否存在强度(intensity)变化。另外,该方法包括由计算系统基于该一个或多个位图确定将该至少一个图像部分分类为有纹理还是无纹理的,以及基于该至少一个图像部分被分类为有纹理的还是无纹理的来执行机器人与该一个或多个对象的交互的运动计划。在实施例中,该方法可以通过执行非暂时性计算机可读介质上的指令来执行。

附图说明

图1a至图1f示出了根据本文的实施例的用于将图像或图像部分分类为有纹理的或无纹理的系统。

图2a至图2c提供了示出根据本文的实施例的用于将图像或图像部分分类为有纹理的或无纹理的计算系统的框图。

图3提供了示出根据本文的实施例的用于将图像或图像部分分类为有纹理的或无纹理的方法的流程图。

图4a至图4d示出了根据本文的实施例的在其中执行图3的方法的示例环境。

图5a至图5e示出了根据本文的实施例的基于图像部分正生成的各种位图。

图6示出了根据本文的实施例的正生成的融合位图(fusedbitmap)和纹理位图。

图7示出了根据本文的实施例的正从彩色图像生成的融合位图。

图8a至图8c示出了根据本文的实施例的被分类为有纹理的或无纹理的附加图像部分。

具体实施方式

本公开涉及用于对至少一个图像部分是有纹理的还是无纹理的进行分类的系统和方法。在一些情况下,该分类可以是物体注册过程(objectregistrationprocess)的一部分,该物体注册过程用于确定一组一个或多个物体(诸如到达仓库或零售空间的盒子或其他包裹)的特性。可以确定这些特性以便例如促进对该组物体的自动处理或其他交互,或对具有与该组物体基本上相同设计的其他物体的交互。在实施例中,可以由相机或其他图像捕获设备生成的图像的部分(也被称为图像部分)可以表示该一个或多个物体之一,并且可以提供对以下各项的指示:是否存在出现在物体的表面上的任何视觉细节,在物体的表面上是否存在至少一定量或数量的视觉细节,和/或视觉细节中是否存在至少一定量的变化。在一些情况下,该图像部分可以被用于生成用于物体识别的模板(template)。这样的情况可以涉及对图像或图像部分形成有纹理的模板还是无纹理的模板进行分类。模板可以描述例如物体的外观(也被称为物体外观)和/或物体的大小(也被称为物体大小)。在实施例中,模板可以被用于例如标识具有匹配的物体外观或者更一般地与该模板匹配的任何其他物体。这样的匹配可以指示两个物体属于相同的物体设计,并且更具体地可以指示它们具有相同或基本相同的其他特性,诸如物体大小。在一些情况下,如果特定物体具有与现有模板匹配的外观,则这样的匹配可以促进机器人交互。例如,匹配可以指示物体具有由模板描述的物体大小(例如,物体尺寸或表面积)。该物体大小可以被用于计划机器人能够如何拾取该物体或与该物体交互。

在实施例中,对至少一个图像部分是有纹理的还是无纹理的进行分类可以涉及基于该图像部分生成一个或多个位图(也被称为一个或多个掩码(mask))。在一些情况下,该一个或多个位图中的一些或全部可以充当热图(heatmap),其指示特定属性跨该图像部分的各个位置的概率或强度。在一些情况下,该一个或多个位图中的一些或全部可以被用于描述图像部分是否具有用于物体识别的一个或多个视觉特征。如果该图像部分具有一个或多个这样的视觉特征,则该一个或多个位图可以描述该一个或多个特征在该图像部分中的位置。作为示例,该一个或多个位图可以包括描述子位图(descriptorbitmap)和/或边缘位图(edgebitmap)。描述子位图可以描述图像部分是否具有描述子,或者描述一个或多个描述子在该图像部分中所处的位置(本公开中的术语“或”可以指代“和/或”)。边缘位图可以描述在该图像部分中是否检测到边缘,或者描述一个或多个边缘在该图像部分中所处的位置。

在实施例中,一个或多个位图中的一些或全部可以被用于描述跨图像部分是否存在强度变化。例如,这样变化(其也可以被称为空间变化)可以指示该图像部分的像素值之间是否存在变化。在一些情况下,空间变化可以通过标准偏差位图(standarddeviationbitmap)来描述,该标准偏差位图可以描述该图像部分的像素值之间的局部标准偏差。

在实施例中,对至少图像部分是有纹理的还是无纹理的进行分类可以涉及来自单个位图的信息,或涉及来自组合了多个位图的融合位图的信息。例如,融合位图可以基于组合描述子位图、边缘位图和/或标准偏差位图。在一些情况下,融合位图可以被用于生成纹理位图,该纹理位图可标识例如图像部分是否具有一个或多个有纹理的区域以及图像部分是否具有一个或多个无纹理的区域。在一些情况下,纹理位图可以被用于描述该一个或多个有纹理的区域或该一个或多个无纹理的区域所占据的总面积或总大小。

在实施例中,融合位图可以以对条件的影响(诸如过多的光从发亮的物体表面反射并导致眩光出现在图像部分中,或者光被物体表面阻挡并导致阴影出现在图像部分中)进行补偿的方式来生成。照明条件的影响可以通过例如高亮位图(highlightbitmap)和/或阴影位图(shadowbitmap)来描述。在一些实现方式中,融合位图还可以基于高亮位图和/或阴影位图来生成。

在实施例中,可以基于由描述子位图、边缘位图、标准偏差位图、高亮位图、阴影位图、融合位图和/或纹理位图提供的信息,对至少图像部分是有纹理的还是无纹理的进行分类。例如,该分类可以基于在该图像部分中多少个描述子(如果有的话)被检测到、该图像部分中有纹理的区域(如果有的话)占据的总面积、该图像部分中无纹理的区域(如果有的话)占据的总面积、和/或与该图像部分或与融合位图相关联的标准偏差来执行。

在实施例中,模板(或更一般地,图像部分)是有纹理的还是无纹理的分类可以影响如何基于模板执行物体识别。在与本申请同一日期提交的题为“methodandcomputingsystemforobjectrecognitionorobjectregistrationbasedonimageclassification”的第________号美国专利申请(atty.dkt.mj0054-us/0077-0012us1)中更详细地讨论了基于这样的分类的物体识别,该美国专利申请的全部内容通过引用并入本文中。在一些情况下,该分类可以影响与物体识别的结果相关联的置信度。例如,如果物体识别是基于有纹理的模板的,则物体识别的结果可以被分配相对高的置信度,并且如果物体识别是基于无纹理的模板的,则物体识别的结果可以被分配相对低的置信度。在一些情况下,与物体识别的结果相关联的置信度可以影响是否要再次执行物体识别(例如,使用另一物体识别技术),和/或影响如何计划机器人与特定物体的交互。例如,如果针对该物体的物体识别是基于无纹理的模板的,则机器人与该物体的交互可以被控制以更加谨慎或更慢地进行。在一些情况下,如果物体识别过程确定特定图像部分与任何现有模板都不匹配,则物体注册过程可以被执行以基于该图像部分生成并存储新模板。

图1a示出了用于对图像或其一部分进行分类的系统100。系统100可以包括计算系统101和图像捕获设备141(也被称为图像感测设备)。图像捕获设备141(例如,相机)可以被配置为捕获或以其他方式生成表示图像捕获设备141的视野中的环境的图像。在一些情况下,环境可以是例如仓库或工厂。在这样的情况下,图像可以表示仓库或工厂中的一个或多个物体,诸如要接收机器人交互的一个或多个盒子。计算系统101可以直接或间接地从图像捕获设备141接收图像,并且处理图像以例如执行物体识别。如下面更详细地讨论的,该处理可以涉及对图像或其一部分是有纹理的还是无纹理的进行分类。在一些情况下,计算系统101和图像捕获设备141可以位于相同的场所,诸如仓库或工厂。在一些情况下,计算系统101和图像捕获设备141可以彼此远离。例如,计算系统101可以位于提供云计算平台的数据中心。

在实施例中,计算系统101可以经由数据存储设备(其也可以被称为存储设备)或经由网络从图像捕获设备141接收图像。例如,图1b描绘了系统100a,其可以是图1a的系统100的实施例,系统100a包括计算系统101、图像捕获设备141,并且还包括数据存储设备198(或任何其他类型的非暂时性计算机可读介质)。数据存储设备198可以是图像捕获设备141的一部分,或者可以与图像捕获设备141分离。在此实施例中,计算系统101可以被配置为通过从数据存储设备198检索(或更一般地,接收)图像来访问图像。

在图1b中,存储设备198可以包括任何类型的(一个或多个)非暂时性计算机可读介质,其也可以被称为非暂时性计算机可读存储设备。这样的非暂时性计算机可读介质或存储设备可以被配置为存储数据并提供对数据的访问。非暂时性计算机可读介质或存储设备的示例可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、固态驱动器、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)和/或记忆棒。

图1c描绘了系统100b,其可以是图1a和1b的系统100/100a的实施例,系统100b包括网络199。更具体地,计算系统101可以经由网络199接收由图像捕获设备141生成的图像。网络199可以提供单独的网络连接或一系列网络连接以允许计算系统101接收与本文的实施例一致的图像数据。在实施例中,网络199可以经由有线或无线链路连接。有线链路可以包括数字用户线(dsl)、同轴电缆线或光纤线。无线链路可以包括低功耗蓝牙(ble)、ant/ant+、zigbee、z-wave、thread、全球微波接入互操作性移动-advanced、nfc、sigfox、lora、随机相位多址(rpma)、失重n/p/w、红外信道或卫星频段。无线链路还可以包括在移动设备之间进行通信的任何蜂窝网络标准,包括符合2g、3g、4g或5g的标准。无线标准可以使用各种信道访问方法,例如,fdma、tdma、cdma或sdma。网络通信可以经由任何适当的协议来进行,包括例如http、tcp/ip、udp、以太网、atm等。

在实施例中,网络199可以是任何类型的网络。网络的地理范围可以广泛地变化,并且网络199可以是体域网(ban)、个人局域网(pan)、局域网(lan)(例如,内联网)、城域网(man)、广域网(wan)或互联网。网络199的拓扑可以是任何形式,并且可以包括例如以下任何一种:点对点、总线、星形、环形、网状或树形。网络199可以是如本领域普通技术人员已知的能够支持本文描述的操作的任何这样的网络拓扑。网络199可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议套件(tcp/ip)、atm(异步传输模式)技术、sonet(同步光网络)协议或sdh(同步数字体系)协议。网络199可以是一种类型的广播网络、电信网络、数据通信网络或计算机网络。

在实施例中,计算系统101和图像捕获设备141可以经由直接连接而不是网络连接进行通信。例如,在这样的实施例中,计算系统101可以被配置为经由专用通信接口(诸如rs-232接口、通用串行总线(usb)接口)和/或经由本地计算机总线(诸如外围组件互连(pci)总线)从图像捕获设备141接收图像。

在实施例中,计算系统101可以被配置为与空间结构感测设备通信。例如,图1d示出了包括计算系统101、图像捕获设备141,并且还包括空间结构感测设备142的系统100c(其可以是系统100/100a/100b的实施例)。空间结构感测设备142可以被配置为感测其视野中的物体的3d结构。例如,空间结构感测设备142可以是深度感测相机(例如,飞行时间(tof)相机或结构光相机),其被配置为生成空间结构信息,诸如点云,其描述物体的结构如何在3d空间中排列。更具体地,空间结构信息可以包括深度信息,诸如一组深度值,其描述物体表面上各个位置的深度。深度可以是相对于空间结构感测设备142或某个其他参考框架的。

在实施例中,由图像捕获设备141生成的图像可以被用于促进对机器人的控制。例如,图1e示出了机器人操作系统100d(其是系统100的实施例),其包括计算系统101、图像捕获设备141和机器人161。图像捕获设备141可以被配置为生成表示例如仓库或其他环境中的物体的图像,并且机器人161可以被控制为基于该图像与物体交互。例如,计算系统101可以被配置为接收图像并且基于该图像执行物体识别。物体识别可以涉及确定例如物体的大小或形状。在此示例中,可以基于所确定的物体的大小或形状来控制机器人161与物体的交互。

在实施例中,计算系统101可以形成或可以是被配置为控制机器人161的移动或其他操作的机器人控制系统(也被称为机器人控制器)的一部分。例如,在这样的实施例中,计算系统101可以被配置为基于由图像捕获设备141生成的图像来执行机器人161的运动计划,并且基于该运动计划来生成一个或多个移动命令(例如,电动机命令)。在这样的示例中,计算系统101可以将该一个或多个移动命令输出到机器人161以控制其移动。

在实施例中,计算系统101可以与机器人控制系统分离,并且可以被配置为将信息传达给机器人控制系统以便允许机器人控制系统控制机器人。例如,图1f描绘了机器人操作系统100e(其是图1a的系统100的实施例),其包括计算系统101和与计算系统101分离的机器人控制系统162。在此示例中,计算系统101和图像捕获设备141可以形成视觉系统150,该视觉系统150被配置为向机器人控制系统162提供关于机器人161的环境的信息,并且更具体地,关于该环境中的物体的信息。计算系统101可以用作视觉控制器,该视觉控制器被配置为处理由图像捕获设备141生成的图像以确定关于机器人161的环境的信息。计算系统101可以被配置为将所确定的信息传达给机器人162,该机器人控制系统162可以被配置为基于从计算系统101接收的信息来执行机器人161的运动计划。

如上所述,图1a至图1f的图像捕获设备141可以被配置为生成图像数据,该图像数据捕获或形成表示图像捕获设备141的环境中的一个或多个物体的图像。更具体地,图像捕获设备141可以具有设备视野,并且可以被配置为生成表示该设备视野中的一个或多个物体的图像。如本文所使用的,图像数据是指描述该一个或多个物理物体(也被称为一个或多个物体)的外观的任何类型的数据(也被称为信息)。在实施例中,图像捕获设备141可以是或可以包括相机,诸如被配置为生成二维(2d)图像的相机。2d图像可以是例如灰度图像或彩色图像。

还如上所述,由图像捕获设备141生成的图像可以由计算系统101处理。在实施例中,计算系统101可以包括或被配置为服务器(例如,具有一个或多个服务器刀片、处理器等)、个人计算机(例如,台式计算机、膝上型计算机等)、智能手机、平板计算设备和/或其他任何其他计算系统。在实施例中,计算系统101的任何或全部功能可以被执行为云计算平台的一部分。计算系统101可以是单个计算设备(例如,台式计算机或服务器),或者可以包括多个计算设备。

图2a提供了示出计算系统101的实施例的框图。计算系统101包括至少一个处理电路110和(一个或多个)非暂时性计算机可读介质120。在实施例中,处理电路110包括一个或多个处理器、一个或多个处理核、可编程逻辑控制器(“plc”)、专用集成电路(“asic”)、可编程门阵列(“pga”)、现场可编程门阵列(“fpga”)、其任何组合或任何其他处理电路。

在实施例中,非暂时性计算机可读介质120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机磁盘、硬盘、固态驱动器(ssd)、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)、记忆棒、其任意组合或任何其他存储设备。在一些情况下,非暂时性计算机可读介质120可以包括多个存储设备。在某些情况下,非暂时性计算机可读介质120被配置为存储从图像捕获设备141接收的图像数据。在某些情况下,非暂时性计算机可读介质120还存储计算机可读程序指令,该计算机可读程序指令在由处理电路110执行时使处理电路110执行本文描述的一种或多种方法,诸如关于图3描述的方法。

图2b描绘了计算系统101a,其是计算系统101的实施例并且包括通信接口130。通信接口130可以被配置为例如从图像捕获设备141接收图像或更一般地图像数据,诸如经由图1b的存储设备198、图1c的网络199或经由更直接的连接。在实施例中,通信接口130可以被配置为与图1d的机器人161或图1e的机器人控制系统162通信。通信接口130可以包括例如配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括rs-232端口控制器、usb控制器、以太网控制器、控制器、pci总线控制器、任何其他通信电路或其组合。

在实施例中,可以通过存储在非暂时性计算机可读介质120上的一个或多个计算机可读程序指令来对处理电路110进行编程。例如,图2c示出了计算系统101b,其可以是计算系统101的实施例,其中可以通过图像访问模块202、图像分类模块204、物体识别模块206、物体注册模块207和运动计划模块208来对处理电路110进行编程或处理电路110被配置为执行图像访问模块202、图像分类模块204、物体识别模块206、物体注册模块207和运动计划模块208。将理解的是,本文讨论的各种模块的功能是代表性的而非限制性的。

在实施例中,图像访问模块202可以是在计算系统101b上运行的软件协议,并且可以被配置为访问(例如,接收、检索、存储)图像或更一般地图像数据。例如,图像访问模块202可以被配置为访问存储在非暂时性计算机可读介质120或198中的图像数据,或者经由网络199和/或图2b的通信接口130访问图像数据。在一些情况下,图像访问模块202可以被配置为直接或间接地从图像捕获设备141接收图像数据。图像数据可以被用于表示图像捕获设备141的视野中的一个或多个物体。在实施例中,图像分类模块204可以被配置为将图像或图像部分分类为有纹理的或无纹理的,如下面更详细地讨论的,其中,图像可以由图像访问模块202访问的图像数据表示。

在实施例中,物体识别模块可以被配置为基于物体的外观来执行物体识别。如上所述,物体识别可以基于一个或多个模板,诸如图2c中的模板210。这些模板可以被存储在计算系统101b上,如图2c所示,也可以被存储在其他位置,诸如在由另一个设备或一组设备托管的数据库中。在一些情况下,模板中的每一个模板可以包括或可以基于图像访问模块202已经接收到的并且图像分类模块204已经将其分类为有纹理的或无纹理的相应图像部分。物体识别模块206可以例如使用模板对出现在另一图像部分中的物体执行物体识别。如果物体识别模块206确定图像部分不匹配模板存储空间(例如,非暂时性计算机可读介质120或上述数据库)中的任何现有模板,或者如果模板存储空间中没有模板,则在一些情况下,物体注册模块207可以被配置为基于该图像部分生成并存储新模板。在实施例中,运动计划模块208可以被配置为执行运动计划,以例如基于图像分类模块204执行的分类和/或基于物体识别模块206的结果来控制机器人与物体的交互,如下面更详细地讨论的。

在各种实施例中,术语“软件协议”、“软件指令”、“计算机指令”、“计算机可读指令”和“计算机可读程序指令”用于描述被配置为执行各种任务和操作的软件指令或计算机代码。如本文所使用的,术语“模块”广泛地是指被配置为使处理电路110执行一个或多个功能任务的软件指令或代码的集合。为了方便起见,当实际上模块、计算机指令和软件协议对硬件处理器进行编程以执行操作和任务时,各种模块、管理器、计算机指令和软件协议将被描述为执行各种操作或任务。尽管在各种地方被描述为“软件”,但是应当理解,由“模块”、“软件协议”、和“计算机指令”执行的功能可以更一般地被实现为固件、软件、硬件或其任何组合。此外,本文的实施例根据方法步骤、功能步骤和其他类型的事件来描述。在实施例中,这些动作根据由计算系统101的处理电路110执行的计算机指令或软件协议发生。

图3是示出了用于将图像或图像部分分类为有纹理的或无纹理的示例方法300的流程图。图像可以表示例如仓库、零售空间或其他场所中的一个或多个物体。例如,图4a描绘了可以在其中执行方法300的环境。更具体地,图4a描绘了系统400,该系统400包括计算系统101、机器人461(其可以是机器人161的实施例)和具有设备视野443的图像捕获设备441(其可以是图像捕获设备141的实施例)。图像捕获设备441可被配置为生成表示设备视野443中的场景的外观的图像。例如,当物体401、402、403、404位于设备视野443中时,图像捕获设备441可以被配置为生成表示物体401-404或更具体地表示物体401-404的外观的图像。在一个示例中,物体401-404可以是要由机器人461卸垛的盒子或其他包裹的堆叠。物体401-404的外观可以包括被印刷或以其他方式布置在物体401-404的一个或多个表面上的视觉标记(如果有的话)。视觉标记可以形成或包括物体401-404中的一个或多个物体的表面上的例如文本、徽标或其他视觉设计或图案、或图片。例如,物体401、404可以是盒子,每个盒子具有印刷在盒子401/404的相应顶表面上的图片401a/404a。如果盒子401/404被用于存放商品,则图片401a/404a或其他视觉标记可以例如标识与商品相关联的品牌名称或公司和/或标识商品本身或盒子的其他内容。在一些情况下,物体401-404的外观可以包括附接到物体401-404中的一个或多个物体的表面的物理项的轮廓(如果有的话)。例如,物体403可以在其顶表面上具有胶带条403a。在一些情况下,该胶带条403a与物体403的周围区域之间可能有足够的对比度,以允许胶带403a的边缘出现在物体403的图像中。

在一些情况下,图像捕获设备的视野(例如,443)中的物体(例如,401-404)中的一些或全部可以具有匹配的外观或基本匹配的外观。更具体地,这些些物体每一个可以包括相同或基本相同的视觉标记,诸如相同的图片。例如,印刷在物体401顶表面上的图片401a可以与印刷在物体404顶表面上的图片404a相同或基本相同。在一些情况下,物体(例如,401-404)可以具有匹配的外观,因为它们都是公共的物体设计的实例。例如,物体设计可以是用于生产用来存放具体商品或商品类型的盒子的盒子设计。这样的盒子设计可以涉及具体的大小和/或具体的视觉设计或其他视觉标记。因此,具有相同物体设计的物体可以具有匹配的外观和/或匹配的大小(例如,匹配的尺寸)。

在实施例中,图3的方法300可以由图2a至2c的计算系统101执行,并且更具体地由处理电路110执行。当例如用于表示一个或多个物体(例如,物体401-404)的图像被存储在非暂时性计算机可读介质(例如,图2a-2c的120)中时,或者当图像由图像捕获设备(例如,图4a的441)生成时,方法300可以被执行。在实施例中,非暂时性计算机可读介质(例如120)还可以存储多个指令(例如,计算机程序指令),该多个指令在由处理电路110执行时,使处理电路110执行方法300。

在实施例中,图3的方法300可以以步骤302开始于或以其他方式包括步骤302,其中,计算系统101的处理电路110接收由图像捕获设备(例如,141/441)生成的用于表示图像捕获设备(例如,141/441)的设备视野(例如,443)中的一个或多个物体(例如,401-404)的图像。例如,图4b示出了用于表示图4a的物体401-404的图像420。图像420可以由图像捕获设备441生成,该图像捕获设备在此示例中可以位于物体401-404正上方。因此,图像420可以表示物体401-404的相应顶表面的外观,或更具体地,表示顶表面的(一个或多个)非遮挡部分的外观。换句话说,此示例中的图像420可以表示捕获物体401-404的顶表面的顶透视图。在实施例中,所接收的图像可以被用于创建用于执行物体识别的一个或多个模板,如下面更详细地讨论的。

在一些情况下,在步骤302中接收到的图像可以表示多个物体,诸如多个盒子的堆叠。例如,如图4b所示,所接收到的图像420的整体可以表示多个物体,即物体401-404。在此示例中,物体401-404中的每个物体可以由图像420的具体部分(也被称为图像部分)表示。例如,如图4c所示,物体401可以由图像420的图像部分421表示。图像部分421可以是例如图像420的矩形区域(例如,正方形区域)或其他区域。在这样的示例中,方法300可以涉及从接收到的图像(例如,420)中提取与具体物体(例如,401)相关联的图像部分(例如,421)。该具体物体(其也可以被称为目标物体)可以是单个物体(例如,401),诸如由计算系统101标识的单个盒子。所标识的物体可以是用于执行物体识别或物体注册的目标和/或用于执行机器人交互(例如,被从托盘上卸载)的目标。

在实施例中,从图像420提取图像部分421可以基于标识物体401的边缘出现在图像420内的位置(也被称为图像位置),并且提取由这些图像位置界定的图像420的区域。在一些情况下,如果一个或多个物体401-404也在空间结构感测设备(例如,图1d的142)的视野中,则计算系统101可以被配置为接收由空间物体感测设备(例如,142)生成的空间结构信息,并在空间结构信息的帮助下提取图像部分421。例如,空间结构信息可以包括深度信息,并且计算系统101可以被配置为基于深度信息来确定物体401的边缘的位置(也被称为边缘位置),这诸如是通过检测存在深度急剧变化的位置。在此示例中,计算系统101可以被配置为将由空间结构感测设备(例如,142)感测的边缘位置映射到图像420内的图像位置,并且提取由图像位置界定的区域,其中所提取的区域可以是图像部分(例如,421)。

在实施例中,图像部分421在一些情况下可以被用于生成用于执行物体识别的模板,并且该模板可以被分类为有纹理的或无纹理的,如下面关于步骤308所讨论的。模板可以表示特定的物体设计,或更具体地表示与物体设计相关联的物体外观和/或物体结构。物体结构可以描述物体大小,诸如物体长度、物体宽度、物体高度和/或任何其他物体尺寸或其组合。物体识别可以涉及例如将另一个物体的外观与模板进行比较,或更具体地,与由模板描述的物体外观进行比较。例如,物体识别可以涉及比较物体402-404中的每个物体的相应外观,以确定哪个物体(如果有的话)具有与从图像部分421创建的模板相匹配的相应外观。在一些情况下,物体402-404中的每个物体的外观可以由图4b和4c的图像420的对应图像部分表示。作为示例,计算系统101可以(例如,经由图2c的物体识别模块206)确定表示物体404的图像部分与从图像部分421创建的模板以及物体401相匹配。这样的匹配可以指示例如物体404具有与物体401相同的物体设计,并且更具体地具有与模板所表示的物体设计相同的物体设计。更具体地,该匹配可以指示物体404具有与物体401相同的物体大小(例如,物体尺寸),并且具有与由模板表示的物体设计相关联的物体大小。

如上所述,图像420在一些情况下可以表示多个物体。在其他情况下,在步骤302中接收到的图像可以仅表示一个物体(例如,仅一个盒子)。例如,在图像被计算系统101接收之前,它可能已经由图像捕获设备(例如,141/441)或另一设备进行了处理(例如,裁剪),以便仅表示特定物体(例如,物体401)并移除表示图像捕获设备(例如,141/441)的视野(例如,443)中的其他物体(如果有的话)的任何部分。在这样的示例中,在步骤302中接收的图像可以仅表示该特定物体(例如,物体401)。

在实施例中,步骤302可以由图2c的图像访问模块202执行。在实施例中,图像(例如,图4b的420)可能已经被存储在非暂时性计算机可读介质(例如,图2c的120)上,并且在步骤302中接收图像可能涉及从非暂时性计算机可读介质(例如,120)或从任何其他设备检索(或者,更一般地,接收)图像(例如,420)。在一些情况下,图像(例如,420)可能已经由计算系统101诸如经由图2b的通信接口130从图像捕获设备(例如,141/441)接收,并且可能已经被存储在可以为图像(例如,420)提供临时缓冲区或长期存储的非暂时性计算机可读介质(例如,120)中。例如,图像(例如,420)可以被从图像捕获设备(例如,图4a的141/441)接收,并且被存储在非暂时性计算机可读介质(例如,120)中。然后在步骤302中,图像(例如,420)可以由计算系统101的处理电路110从非暂时性计算机可读介质接收。

在一些情况下,图像(例如,420)可以被存储在非暂时性计算机可读介质(例如,120)中,并且可能已经由处理电路110本身基于从图像捕获设备(例如,141/441)接收的信息而预先生成。例如,处理电路110可以被配置为基于从图像捕获设备(例如,141/441)接收的原始相机数据来生成图像(例如,420),并且可以被配置为将所生成的图像存储在非暂时性计算机可读介质(例如,120)中。然后,在步骤302中,图像可以被处理电路110接收(例如,通过从非暂时性计算机可读介质120检索图像)。

在实施例中,在步骤302中接收的图像(例如,420)可以是或包括二维(2d)像素阵列,其可以具有与由图像捕获设备441感测的信号的强度(诸如从物体401-404的相应表面(例如,顶表面)反射的光的强度)相关联的相应像素值(也被称为像素强度值)。在一些情况下,图像(例如,420)可以是灰度图像。在这样的情况下,图像(例如,420)可以包括单个2d像素阵列,其中每个像素可以具有例如从0到255或某个其他范围内的整数值或浮点值。在一些情况下,图像(例如,420)可以是彩色图像。在这样的情况下,图像(例如,420)可以包括不同的2d像素阵列,其中该2d像素阵列中的每一个像素可以指示相应颜色分量(也被称为相应颜色通道)的强度。例如,这样的彩色图像可以包括表示红色通道并指示图像(例如,420)的红色分量的强度的第一2d像素阵列,表示绿色通道并指示图像(例如,420)的绿色分量的强度的第二2d像素阵列,以及表示蓝色通道并指示图像(例如,420)的蓝色分量的强度的第三2d像素阵列。

在实施例中,计算系统101可以被配置为对图像(例如,420)执行平滑(smoothing)或平滑化(smoothening)操作。如果平滑化操作被执行,则该平滑化操作可以作为步骤302的一部分或在步骤302之后执行,以例如从图像(例如,420)中去除伪影或噪声(例如照明噪声)。伪影可能是由于例如物体表面上的不规则性(例如,皱纹)、照明条件影响(例如,阴影)或某个其他因素引起的。在一些情况下,平滑化操作可以涉及在图像(例如,420)上应用结构保持滤波器(structure-preservingfilter),诸如高斯滤波器。

在实施例中,图3的方法300还包括步骤306,其中计算系统101的处理电路110基于图像的至少一个图像部分(诸如至少基于图4c和4d的图像420的图像部分421)生成一个或多个位图(也被称为一个或多个掩码)。图像部分(例如,421)可以是图像(例如,420)的表示图像捕获设备(例如,441)的视野(例如,443)中的特定物体(例如,401)的一部分,诸如表示上述目标物体的图像部分。因此,步骤306中的一个或多个位图可以具体地与目标物体相关联。如果在步骤302中接收到的图像(例如,420)表示多个物体(例如,401-404),则在一些情况下,步骤306可以仅基于表示目标物体(例如,401)的图像部分(例如,421),或主要基于该图像部分(例如,421)。换句话说,对于这样的情况,一个或多个位图所基于的至少一个图像部分可以主要限于表示目标物体的图像部分。在另一种情况下,如果在步骤302中接收到的图像仅表示目标物体,则在一些情况下,步骤306可以基于该图像的整体。换句话说,对于这样的情况,一个或多个位图所基于的至少一个图像部分可以包括图像的整体或几乎整体。在这样的示例中,在这样的情况下与目标物体相关联的图像部分可以占据图像整体或基本整体,使得在这样的情况下该一个或多个位图可以直接基于图像整体或基本整体而生成。在一些情况下,步骤306可以由图2c的图像分类模块204执行。

在实施例中,一个或多个位图可以描述用于特征检测的一个或多个视觉特征是否存在于表示物体(例如,401)的至少一个图像部分(例如,421)中。该一个或多个视觉特征可以表示可以被用于将物体的外观与第二物体(例如,404)的外观进行比较的视觉细节。一些或全部视觉细节(如果图像部分中存在)可以捕获或以其他方式表示被印刷或以其他方式出现在物体(例如,401)上的视觉标记(如果有的话)。如果图像部分(例如,421)被用于创建模板,则该一个或多个视觉特征(如果有的话)可以表示该模板所描述的视觉细节,并且可以被用于促进模板与第二物体(例如,404)的外观的比较。在这样的示例中,执行物体识别可以涉及将第二物体(例如,404)的外观与模板所描述的视觉细节进行比较。

在实施例中,图像部分(例如,421)中的视觉细节或视觉特征(如果有的话)可以对图像部分(例如,421)的视觉纹理做出贡献,或更具体地,对由图像部分(例如,421)表示的物体(例如,401)的表面的外观的视觉纹理做出贡献。视觉纹理可以指跨图像部分(例如,421)的强度的空间变化,或更具体地指图像部分(例如,421)的像素在其像素强度值之间具有变化。例如,视觉细节或一个或多个视觉特征(如果存在)可以包括线、角或图案,其可以由具有不均匀像素强度值的像素区域表示。在一些情况下,像素强度值之间的急剧变化可能对应于高水平的视觉纹理,而均匀的像素强度值可能对应于缺乏视觉纹理。视觉纹理的存在可以促进物体的相应外观之间,或更具体地,从第一物体(例如,401)的外观生成的模板与第二物体(例如,404)的外观之间的更鲁棒的比较。

在实施例中,一个或多个位图中的一些或全部每个可指示图像部分(例如,421)是否具有用于特征检测的一个或多个视觉特征,或者图像部分是否缺乏用于特征检测的视觉特征。如果图像部分(例如,421)具有或表示用于特征检测的一个或多个视觉特征,则一个或多个位图中的每个位图可以指示图像部分(例如,421)中存在的视觉特征的数量(quantity)或量(amount),和/或指示该一个或多个视觉特征位于图像部分(例如,421)内的位置。

在实施例中,一个或多个位图中的一些或全部每个可以表示特定类型的视觉特征。例如,视觉特征的类型可以包括作为第一视觉特征类型的描述子和作为第二视觉特征类型的边缘。如果多个位图被生成,则它们可以包括与标识图像的至少一个图像部分中的描述子(如果有的话)的存在相关联的第一位图,以及与标识该至少一个图像部分中的边缘(如果有的话)的存在相关联的第二位图。

更具体地,在实施例中,在步骤306中生成的一个或多个位图可以包括用于描述一个或多个描述子是否存在于在步骤302中接收到的图像(例如,420)的至少一个图像部分(例如,421)中的描述子位图(也被称为描述子掩码)。如下面更详细地讨论的,描述子位图可以指示图像部分(例如,421)的哪些区域(一个或多个)没有描述子,以及图像部分(例如,421)的哪些区域(一个或多个)(如果有的话)具有描述子。在一些情况下,描述子位图可以充当指示描述子存在于图像部分的各个位置处的概率的热图。描述子(也被称为特征描述子)可以是一种类型的视觉特征,其表示出现在图像部分(例如,421)中的特定视觉细节,诸如图像部分中的角或图案。在一些情况下,该视觉细节可以具有足够水平的唯一性,以便在外观上与接收到的图像(例如,420)中的其他视觉细节或其他类型的视觉细节是可区分的。在一些情况下,描述子可以通过将表示视觉细节的像素编码为标量值或矢量来充当该视觉细节的指纹(fingerprint)。

如上所述,描述子位图可以指示图像部分(例如,421)内的哪些位置(一个或多个)或区域(一个或多个)(如果有的话)具有形成描述子的视觉细节。例如,图5a描绘了基于图像部分421生成的描述子位图513的示例。在此示例中,描述子位图513可以是2d像素阵列,并且可以指示描述子分别位于像素坐标[a1b1]t、[a2b2]t……[anbn]t处和/或围绕像素坐标[a1b1]t、[a2b2]t……[anbn]t的描述子标识区域5141、5142……514n处。描述子标识区域5141、5142……514n可以是圆形区域,或者可以具有某个其他形状(例如,正方形)。在一些情况下,如果像素值零指示缺少描述子,则描述子位图513的描述子标识区域5141、5142……514n内的所有像素可以具有(一个或多个)非零值。描述子位图513的像素坐标[a1b1]t、[a2b2]t……[anbn]t(也被称为像素位置)可以对应于图像部分421的相同的像素坐标[a1b1]t、[a2b2]t……[anbn]t。因此,描述子位图513可以指示图像部分421的像素坐标[a1b1]t、[a2b2]t……[anbn]t具有形成相应的描述子的视觉细节,并且这些描述子一般位于图像部分421的与区域5141、5142……514n占据相同位置的区域中或周围。

在实施例中,计算系统101可以被配置为通过搜索图像部分421中存在描述符(如果有的话)的一个或多个位置(例如,[a1b1]t至[anbn]t)或一个或多个区域(例如,5141至514n)来生成描述子位图。在此实施例中,图像部分421可以在该一个或多个位置或区域处具有足够的视觉细节或视觉细节中的足够变化,以在这样的位置或区域处形成一个或多个相应的描述子。作为示例,在此实施例中,计算系统101可以被配置为通过至少在图像部分421中搜索一个或多个关键点(也被称为描述子关键点)来搜索该一个或多个位置。一个或多个关键点中的每一个(如果找到)可以是存在描述子的位置或区域。该一个或多个位置(例如,[a1b1]t至[anbn]t)或一个或多个区域(例如,5141至514n)可以等于或基于一个或多个关键点。可以使用诸如哈里斯角点检测算法、尺度不变特征变换(sift)算法、加速鲁棒特征(surf)算法、加速分割测试特征(fast)检测算法和/或定向的fast(theorientedfast)和旋转二进制鲁棒独立基本特征(orb,rotatedbinaryrobustinterdependentelementaryfeatures)算法的特征检测技术来执行该搜索。作为示例,计算系统101可以使用sift算法来搜索图像部分421中的关键点,其中每个关键点可以是具有关键点中心坐标和由比例参数值σ(也被称为关键点比例)表示的半径的圆形区域。在此示例中,图5a中的描述子位图513的坐标[a1b1]t、[a2b2]t……[anbn]t可以等于关键点中心坐标,而描述子标识区域5141至514n可以对应于由关键点标识的圆形区域。更具体地,描述子标识区域中的每一个(例如,区域5141)可以以对应的关键点的关键点中心坐标(例如,[a1b1]t)为中心,并且可以具有等于或基于对应的关键点的比例参数值的大小(例如,半径)。

在实施例中,在一个或多个描述子标识区域(例如,5141至514n)(如果发现任何这样的区域)内的描述子位图(例如,513)的像素可以具有(一个或多个)非零像素值,而位图的一些或所有其他像素可能具有像素值零(或某个其他限定的值)。在此示例中,如果特定描述子位图的所有像素具有像素值零,则该描述子位图可以指示在对应的图像部分中未找到描述子。替代地,如果描述子位图的一些像素具有(一个或多个)非零值,则该描述子位图(例如,513)可以指示对应的图像部分(例如,421)中的描述子的数量或量。例如,图5a的描述子位图513中的描述子或描述子标识区域的数目可以指示图像部分421中的描述子的数量(例如,n个描述子)。在此示例中,描述子标识区域5141至514n的总面积可指示图像部分421中的描述子或描述子信息的量。在一些情况下,如果描述子位图中存在描述子标识区域(例如,5141),则该描述子标识区域的大小可指示对应的描述子的大小。例如,描述子标识区域5141的半径可以指示图像部分421内的位于像素坐标[a1b1]t处的对应描述子的大小。在此示例中,较大的半径可以对应于占据较大面积的描述子。

在实施例中,描述子位图(例如,513)中的描述子标识区域(如果有的话)的相应中心可以具有限定的非零值。例如,图5a的描述子位图513中的像素坐标[a1b1]t至[anbn]t中的每一个可具有限定的最大像素值。限定的最大像素值可以是描述子位图513的像素(或更一般地,任何位图的像素)所允许的限定的最大值。例如,如果位图513的每个像素是由8位表示的整数值,则限定的最大像素值可以是255。在另一个示例中,如果每个像素是表示0到1之间的概率值(用于在该像素处存在描述子的概率)的浮点值,则限定的最大像素值可以为1。在实施例中,描述子标识区域中的其他像素坐标的像素值可以小于所限定的最大像素值,和/或可以基于它们距描述子标识区域的相应中心坐标有多远。例如,描述子标识区域5141中的像素坐标[xy]t的像素值可以等于或基于所限定的最大像素值乘以小于1的比例因子,其中该比例因子可以是描述子标识区域5141中的像素坐标[xy]t与中心坐标[a1b1]t之间的距离的函数(例如,高斯函数)。

在实施例中,在步骤306中生成的一个或多个位图可以包括边缘位图(也被称为边缘掩码),其用于描述一个或多个边缘是否存在于在步骤302中接收到的图像(例如,420)的至少一个图像部分(例如,421)中。更具体地,边缘位图可以被用于标识至少一个图像部分(例如,421)的包括从该至少一个图像部分(例如,421)中检测到的一个或多个相应边缘的一个或多个区域,或用于指示在该至少一个图像部分中未检测到边缘。在一些情况下,边缘位图可以充当指示边缘存在于至少一个图像部分的各个位置处的强度或概率的热图。作为示例,图5b示出了图像部分421中的边缘4231至423n,并且示出了标识与图像部分421的边缘4231至423n相对应的区域5251至525n的边缘位图523。更具体地,如果边缘4231至423n占据了图5b中的图像部分421中的某些边缘位置(例如,像素坐标[gmhm]t),则区域5251至525n(也被称为边缘标识区域)在边缘位图523中可以围绕这些位置(例如,围绕像素坐标[gmhm]t)。例如,边缘标识区域5251至525n可以在这些边缘位置周围形成带,其中带可以具有限定的带厚度或宽度。

在实施例中,边缘标识区域5251至525n内的所有像素(如果存在)可以具有(一个或多个)非零像素值,并且边缘位图523的一些或所有其他像素可以具有像素值零。如果特定边缘位图的所有像素具有像素值零,则该边缘位图可以指示在对应的图像部分中未检测到边缘。如果特定边缘位图的一些像素具有(一个或多个)非零像素值,则这些像素可以指示图像部分421中一个或多个边缘所位于的一个或多个位置或区域。在实施例中,边缘位图(例如,523)可以指示图像部分421中边缘的数量或普遍性(prevalence)。例如,边缘位图中边缘标识区域(例如,5251至525n)的总数可以指示对应图像部分(例如,421)中边缘的数量,并且边缘标识区域(例如,5251至525n)的面积可以指示图像部分(例如,421)中边缘的普遍性。

在实施例中,边缘位图(例如,523)中和边缘位置(例如,[gmhm]t)处的像素可以被设置为限定的像素值,诸如以上讨论的限定的最大像素值。在这样的实施例中,在围绕边缘位置(例如,围绕[gmhm]t)的边缘标识区域(例如,5251)中的其他像素可以具有小于所限定的最大像素值的值。例如,边缘标识区域(例如,5251)中的像素可具有基于这些像素距边缘位置的距离的像素值。作为示例,图5b的边缘标识区域5251中的像素[xy]t可以具有等于限定的最大像素值乘以比例因子的像素值,其中该比例因子小于1。在一些情况下,比例因子可以是像素[xy]t与最近边缘位置(例如,[gmhm]t)之间的距离的函数(例如,高斯函数)。

在实施例中,计算系统101可以被配置为通过使用边缘检测技术来搜索边缘位置,诸如sobel边缘检测算法、prewitt边缘检测算法、laplacian边缘检测算法、canny边缘检测算法或任何其他边缘检测技术。在实施例中,边缘检测算法可以标识2d边缘,诸如直线或曲线。该检测可以基于例如标识像素值存在急剧变化的像素坐标。

在实施例中,在步骤306中生成的一个或多个位图可以包括标准偏差位图(也被称为标准偏差掩码)。标准偏差位图可以被用于描述强度是否跨至少一个图像部分(例如,421)变化,或更具体地,用于描述强度如何跨至少一个图像部分变化。例如,标准偏差位图可以形成2d像素阵列,其中标准偏差位图的每个像素可以指示图像部分(例如,421)中的像素的对应区域的像素值之间的标准偏差。因为标准偏差是具体于区域的,所以它可以被称为局部标准偏差。作为示例,图5c示出了从图像部分421生成的标准偏差位图533。在此示例中,标准偏差位图533的特定像素坐标(例如,[u1v1]t或[u2v2]t)的像素值可以等于或基于图像部分421的围绕该同一像素坐标(例如,[u1v1]t或[u2v2]t)的区域(例如,4321或4322)中的像素值之间的局部标准偏差(或方差的其他度量)。用于确定局部标准偏差的像素区域(例如,4321或4322)可以是例如具有限定大小的矩形区域,诸如3像素乘3像素的正方形区域。在一些实现方式中,标准偏差位图的每个像素可以具有归一化的标准偏差值,其可以等于对应区域的像素值之间的标准偏差除以该对应区域的大小。例如,标准偏差位图533中的[u1v1]t的像素值可以等于图像部分421的区域4321的像素值之间的标准偏差除以区域4321的面积(例如,9平方像素)。

在实施例中,如果标准偏差位图(例如,533)的特定像素具有像素值零或基本为零,则该像素可以指示图像部分(例如,421)的对应区域的局部标准偏差为零。在这样的实施例中,图像部分(例如,421)的该对应区域在该区域中的像素值之间可以没有变化或基本上没有变化。例如,标准偏差位图533中的[u2v2]t处的像素可以具有零值,该零值可以指示在图像部分421中围绕相同像素坐标[u2v2]t的对应区域4322具有像素值基本均匀的像素。在实施例中,如果标准偏差位图的所有像素都具有像素值零,则该标准偏差位图可以指示跨该标准偏差位图所基于的图像部分没有强度变化。在另一实施例中,如果标准偏差位图的像素具有非零值(例如,在位图533的像素坐标[u1v1]t处),则这样的像素可以指示跨图像部分(例如421)的至少对应区域(例如,4322)存在强度变化。在一些情况下,标准偏差位图(例如,533)中的较高像素值可能指示较高的局部标准偏差,这可能指示该图像部分中像素值之间的较高的变化水平。

在实施例中,步骤306可以包括生成多个位图,诸如作为描述子位图(例如,513)的第一位图和作为边缘位图(例如,523)的第二位图。在一些情况下,多个位图可以包括至少三个位图,诸如描述子位图、边缘位图和标准偏差位图。此实施例可以允许来自多个位图的信息被组合以便产生关于多少视觉特征(如果有的话)存在于图像部分中的更完整的信息。在一些情况下,该多个位图可以描述多个特征类型。例如,第一位图可以指示第一特征类型的一个或多个特征(诸如描述子)是否存在于至少一个图像部分(例如,421)中,并且第二位图可以指示第二特征类型的一个或多个特征(诸如边缘)是否存在于该至少一个图像部分(例如,421)中。

在实施例中,计算系统101可以被配置为生成指示照明条件对所接收的图像(例如,420)或其图像部分(例如,421)的影响的一个或多个位图。在一些情况下,照明条件可能导致从物体的表面区域(例如,物体401的顶表面)反射过多的光或其他信号,这可能在所得到的表示该物体的图像部分(例如421)中导致眩光。例如,光可以从具有发亮材料(例如,光滑胶带)的区域反射。在一些情况下,照明条件可能导致从物体的表面区域反射的光线太少,这可能在得到的图像部分中导致阴影。例如,光可能会被阻止而不能完全到达物体的表面区域。此示例中的一个或多个位图可以被称为一个或多个照明效果位图,并且可以被认为是上述多个位图的附加位图。在实施例中,图像或图像部分的区域中的眩光或阴影可能导致该区域中的任何视觉细节失去对比度或显得太模糊,这可能使得该视觉细节在用于物体识别时不那么可靠。

在实施例中,一个或多个照明效果位图(也被称为一个或多个照明效果掩码)可以包括高亮位图(也被称为高亮掩码)和/或阴影位图(也被称为阴影掩码)。高亮位图可以指示对应的图像部分(例如,421)的一个或多个区域(如果有的话),该一个或多个区域显示出太多的眩光或从物体的表面的特定部分反射的太多的光的其他效果。眩光可能会使图像或图像部分的区域饱和,这可能会导致表示物体的表面的该部分的视觉细节(如果有的话)失去对比度或与眩光融为一体。图5d描绘了基于图像部分421生成的示例高亮位图543。高亮位图543可以包括具有指示眩光的(一个或多个)像素值(诸如,非零像素值)的区域5471和区域5472。更具体地,区域5471和区域5472(其可以被称为高亮标识区域)可以指示眩光存在于图像部分421的对应区域4271和4272。图像部分421的区域4271和4272(其也可以被称为高亮区域)可以占据与高亮位图543的高亮标识区域5471和5472相同的位置。在一些情况下,高亮位图(例如,543)中的指示眩光在对应图像部分(例如,421)中的存在的像素(诸如区域5471和5472中的像素)可以具有(一个或多个)限定的像素值,诸如上面讨论的限定的最大像素值。在其他情况下,高亮位图(例如,543)的高亮标识区域中的像素可以具有与图像部分(例如,421)的高亮区域中的对应像素相同的像素值。在实施例中,不在至少一个高亮标识区域(例如,5471和5472)中的所有像素可以具有像素值零。

在实施例中,计算系统101可以通过检测图像部分中的眩光或其他过亮效果(overliteffect)来生成高亮位图。这样的检测可以基于例如检测图像部分421的超过限定的亮度阈值的像素值,诸如区域4271和4272中的像素值。作为亮度阈值的示例,如果像素值是在从0到255的范围内的8位(8-bit)整数,则限定的亮度阈值可以是例如230或240。如果图像部分421中的特定像素坐标处的像素值超过了限定的亮度阈值,则计算系统101可以将高亮位图543中相同像素坐标的像素值设置为与标识眩光相关联的值(例如,255)。

在实施例中,阴影位图可以指示图像部分(例如,421)的表示光被阻挡而无法完全到达物体的表面的一部分的效果的区域(如果有的话)。这样的光线不足的效果可能会导致在物体的表面的该部分上投射阴影。在一些情况下,阴影可能导致图像部分(例如,421)的该区域处的任何视觉细节显得模糊或根本不显现。例如,图5e示出了图像部分421中的阴影区域4281。计算系统101可以将阴影区域4281检测为图像部分421的具有比周围区域的像素值小至少限定的差异阈值的像素值的区域。在一些情况下,阴影区域4281可以被检测为像素值小于限定的暗度阈值的区域。例如,如果像素值在0到255的范围内,则限定的暗度阈值可以是像素值10或20。

图5e还描绘了基于图像部分421生成的阴影位图553。更具体地,阴影位图553可以包括与阴影区域4281相对应的阴影标识区域5581。更具体地,阴影标识区域5581可以在阴影位图553中占据与阴影区域4281在图像部分421中所占据的那些位置相同的位置。在一些情况下,阴影标识区域(例如,5581)中的像素中的每一个像素可以具有非零值,而阴影位图553的不在阴影标识区域中的所有像素可以具有像素值零。在一些情况下,阴影位图(例如,553)的阴影标识区域(如果有的话)中的像素可以具有限定的像素值,诸如限定的最大像素值。在一些情况下,阴影标识区域(例如,5581)中的像素可以具有与阴影区域(例如,4281)中的对应像素相同的像素值。

参考回图3,方法300还包括步骤308,其中计算系统101的处理电路110可以确定(例如,经由图像分类模块204)基于上述一个或多个位图将至少一个图像部分(例如,421)分类为有纹理的还是无纹理的。这样的分类可以指图像或图像部分是否具有足够量的视觉纹理(如果有的话),或者图像或图像部分是否在外观上基本上空白或均匀。如上所述,在一些情况下,至少一个图像部分可以被用作执行物体识别的模板。在这样的情况下,步骤308可以涉及确定是将模板分类为有纹理的模板还是无纹理的模板。在实施例中,步骤308可以由图2c的图像分类模块208执行。

在实施例中,步骤308可以涉及如果一个或多个标准中的至少一个标准被满足,则将图像部分分类为有纹理的。在一些情况下,该至少一个标准可以基于单个位图,诸如描述子位图(例如,513)或标准偏差位图(例如,533)。例如,确定将至少一个图像部分分类为有纹理的还是无纹理的可以基于由描述子位图(例如,513)指示的描述子的总数是否超过限定的描述子数量阈值,或者标准偏差位图533中的局部标准偏差值的最大、最小或平均值是否超过限定的标准偏差阈值。如上所述,描述子位图(例如,513)可以标识至少一个图像部分(例如,421)的包括一个或多个相应描述子的一个或多个区域,或者可以指示在至少一个图像部分(例如,421)处未检测到描述子。

在实施例中,用于使图像部分被分类为有纹理的至少一个标准可以基于多个位图,诸如描述子位图(例如,513)和边缘位图(例如,523)的组合,描述子位图(例如,513)和标准偏差位图(例如,533)的组合,边缘位图和标准偏差位图的组合或所有三个位图。例如,在步骤308处确定将至少一个图像部分分类为有纹理的还是无纹理的可包括生成结合了多个位图的融合位图(也被称为融合掩码),并且其中分类是基于该融合位图的。在一些情况下,多个位图可以描述多个相应类型的特征。使用多个类型的位图对对应图像部分进行分类可以提供利用关于多个类型的特征的存在或缺乏的信息的益处,这可以提供对有多少或有多少个特征(如果有的话)存在于图像或图像部分中的更完整的评估。例如,图像部分可能具有特定的视觉细节(例如,与白色区域毗邻的粉红色区域),该特定的视觉细节可能不被第一位图标识为特征,但是可能被第二位图标识为特征。

在实施例中,生成融合位图可以涉及生成多个位图的和,或更具体地,多个位图的加权和。例如,融合位图可以等于或基于m1*w1+m2*w2,或m1*w1+m2*w2+m3*w3,其中m1可以指第一位图(例如,描述子位图),m2可以指第二位图(例如,边缘位图),并且m3可以是第三位图(例如,标准偏差位图),并且其中w1、w2和w3可以是与位图m1、m2和m3相关联的相应权重。在此示例中,位图m1、m2和m3可被称为特征或变化位图,因为它们表示图像部分中特征的存在(或表示特征的缺乏),或表示跨图像部分的强度变化(或表示变化的缺乏)。在实施例中,特征或变化位图的和或其他组合可以被称为经组合的特征或变化位图。生成特征或变化位图的加权和可能涉及例如逐像素将位图相加。例如,融合位图的像素坐标[xy]t的像素值可以等于以下各项的和:w1乘以第一位图m1的[xy]t的像素值;w2乘以第二位图m2的[xy]t的像素值;以及,w3乘以第三位图m3的[xy]t的像素值。在实施例中,权重w1、w2,w3可以是预定义的。在实施例中,权重w1、w2和w3可以由计算系统101经由机器学习算法来确定,如下面更详细地讨论的。

在实施例中,生成融合位图还可以基于一个或多个照明效果位图,诸如高亮位图(例如,543)和阴影位图(例如,553)。例如,计算系统101可确定像素值,这些像素值也被称为位图像素值,其描述跨图像的至少一个图像部分(例如,421)的视觉纹理水平。位图像素值可以基于上面讨论的经组合的特征或变化位图,例如像素值m1*w1+m2*w2或m1*w1+m2*w2+m3*w3。在此示例中,计算系统101可以减少或以其他方式调整经组合的特征或变化位图的经确定的位图像素值的子集,其中,调整可以基于高亮图(例如,543)和/或阴影位图(例如,553)。例如,高亮位图或阴影位图可将至少一个图像部分(例如,421)的一个或多个区域标识为显示眩光或处于阴影中。计算系统101可以进行调整,该调整减少经组合的特征或变化位图的相同一个或多个区域中的位图像素值。该减少可以降低该一个或多个区域中的像素值对将图像部分分类为有纹理的或无纹理的影响,因为这些位图像素值可能受到照明效果的影响,该照明效果降低了来自这些区域的视觉信息的可靠性或质量。在实施例中,该减少可以基于将经组合的特征或变化位图乘以高亮位图和/或阴影位图。

作为以上讨论的示例,图6示出了基于对特征位图和照明效果位图进行组合而正在生成的融合位图631。更具体地,图6描绘了计算系统101将融合位图生成为等于(m1*w1+m2*w2+m3*w3)*(m4*w4+m5*w5),其中m4是高亮位图,m5是阴影位图,w4和w5分别是与位图m4和m5相关联的权重。在此示例中,m1*w1+m2*w2+m3*w3可以形成经组合的特征或变化位图621,其可以乘以等于(m4*w4+m5*w5)的经组合的照明效果位图623。

如上所述,权重w1至w5在示例中可以经由机器学习技术来确定。例如,机器学习技术可能涉及使用训练数据来确定权重w1到w5的最佳值。在一些情况下,训练数据可以包括训练图像或训练图像部分,其可以是具有关于它们是有纹理的还是或无纹理的预定分类的图像或图像部分。在这样情况下,计算系统101可以被配置为确定权重w1至w5最优值,这些最优值使得训练图像的分类误差最小化。例如,计算系统101可以被配置为使用梯度下降过程来将权重w1至w5朝向其最佳值调整。

在实施例中,计算系统101可以被配置为基于关于可能在图像捕获设备的视野(例如,443)之内的物体的预定义信息来确定权重w1至w5的值。例如,如果计算系统101(例如,从仓库经理)接收到图像捕获设备(例如,441)已经拍摄或将要拍摄很可能具有许多将作为边缘出现的视觉标记的物体的指示,则权重w2可以被分配相对较高的值,以便强调边缘位图m2。如果计算系统101接收到物体可能具有形成描述子的视觉标记的指示,则权重w1可以被分配相对较高的值,以便强调描述子位图m1。在一些情况下,计算系统101可以被配置为基于下游分析来确定权重w1至w5的值,诸如确定哪些位图具有更多的信息(例如,更多的非零值)。在这样的示例中,具有更多信息的位图(例如,m1)的权重可以被分配相对较高的权重。在一些情况下,计算系统101可以被配置为基于哪种特征检测类型要被使用或强调限定的偏好来将值分配给权重。例如,如果限定的偏好指示基于边缘的检测要被强调,则计算系统可以将相对较高的值分配给w2。如果限定的偏好指示基于描述子的检测要被强调,则计算系统可以将相对较高的值分配给w1。

在实施例中,如果在步骤302处接收到的图像(例如,420)是具有多个颜色分量的彩色图像,则生成融合位图(例如,631)可以涉及生成与颜色分量对应的相应中间融合位图,然后组合这些中间融合位图。更具体地,图7示出了具有红色分量、绿色分量和蓝色分量的彩色图像。在这样的示例中,计算系统101可以被配置为至少生成与第一颜色分量(例如,红色)对应的第一组位图(m1_红色至m5_红色)和与第二颜色分量(例如,绿色)对应的第二组位图(m1_绿色至m5_绿色)。在图7的示例中,计算系统101还可以生成与第三颜色分量(例如,蓝色)对应的第三组位图(m1_蓝色至m5_蓝色)。在此实施例中,相应的中间融合位图(诸如融合的_红色、融合的_绿色和融合的_蓝色)可以从该三组位图的每一组位图生成。三个中间融合位图可以被组合成单个融合位图,例如图6的位图631。

如上所述,步骤308中的分类可以基于标准偏差位图(例如,533),其可以表示跨图像的至少一个图像部分的强度变化。在实施例中,用于使图像部分被分类为有纹理的至少一个标准可以基于跨融合位图(例如,631)的强度变化。跨融合位图的变化可以用例如融合位图中的局部化的区域的标准偏差值来量化。例如,如果这样的局部标准偏差值的最大、最小或平均值等于或大于限定的标准偏差阈值,则计算系统101可以将该至少一个图像部分分类为有纹理的。

在实施例中,步骤308可以涉及基于融合位图生成纹理位图。在这样的实施例中,用于使图像部分被分类为有纹理的至少一个标准可以基于该纹理位图。图6描绘了融合位图631正在被转换为纹理位图641。在实施例中,纹理位图可以被用于标识对应图像部分(例如,421)的哪一个或多个区域具有足够水平的视觉纹理,或用于指示图像部分(例如,421)不具有有足够水平的视觉纹理的区域。更具体地,纹理位图可以具有纹理标识区域和/或无纹理标识区域。纹理标识区域(诸如纹理位图641的区域643)可以具有用于指示图像部分的对应区域(其可以被称为有纹理的区域)具有至少限定的纹理水平的(一个或多个)像素值。无纹理标识区域(诸如纹理位图641中的区域645)可以具有用于指示图像部分的对应区域(其可以被称为无纹理的区域)不具有限定的纹理水平的(一个或多个)像素值。图像部分(例如,421)中的纹理区域可以占据与纹理位图641中的纹理标识区域643所占据的那些位置相同的位置(例如,相同的坐标)。类似地,图像部分中的无纹理的区域可以占据与纹理位图641中的无纹理标识区域645所占据的那些位置相同的位置。因此,纹理位图641可以被用于标识图像部分中有多少(如果有的话)部分具有足够水平的视觉纹理,以及图像部分中有多少(如果有的话)部分缺乏足够水平的视觉纹理。

在实施例中,计算系统101可以被配置为通过将融合位图(例如,631)的像素与限定的纹理水平阈值(诸如限定的像素值阈值)进行比较来生成纹理位图(例如,641)。在这样的示例中,计算系统101可以针对融合位图(例如,631)的每个像素坐标确定融合位图(例如,631)在该像素坐标处的像素值是否等于或超过限定的像素值阈值。如果融合位图的在该像素坐标处的像素值等于或超过限定的像素值阈值,则计算系统101可以将例如非零值分配给纹理位图(例如,641)中的相同像素坐标。作为示例,被分配非零值的像素坐标可以是在纹理标识区域643中的一个像素坐标。尽管以上讨论涉及分配非零值,但是与指示足够水平的纹理相关联的任何值都可以被分配。如果融合位图(例如,631)在该像素坐标处的像素值小于限定的像素值阈值,则计算系统101可以将例如零值分配给纹理位图中的相同像素坐标。作为示例,被分配零值的像素坐标可以是在无纹理标识区域645中的一个像素坐标。尽管以上讨论涉及分配零值,与指示不足水平的纹理相关联的任何值都可以被分配。

在实施例中,纹理位图可以是二进制掩码,其中纹理位图中的所有像素可以仅具有两个像素值之一,诸如0或1。例如,纹理位图641的纹理标识区域643中的所有像素可以具有像素值1,而无纹理标识区域645中的所有像素可以具有值0。在此示例中,纹理位图中的具有像素值1的像素可以指示图像部分(例如,421)的对应区域是有纹理的区域,而纹理位图641中的具有像素值0的像素可以指示图像部分(例如,421)的对应区域是无纹理的区域。

在实施例中,使图像部分(例如,421)被分类为有纹理的至少一个标准可以基于纹理位图(例如,641)中一个或多个纹理标识区域(如果有的话)的大小(例如,总面积)或纹理位图(例如,641)中一个或多个无纹理标识区域(如果有的话)的大小。该标准还可以基于图像部分(例如,421)的一个或多个有纹理的区域(如果有的话)的大小,或者基于图像部分的一个或多个无纹理的区域(如果有的话)的大小。一个或多个纹理标识区域(如果有的话)的大小可以等于或基本等于该一个或多个有纹理的区域(如果有的话)的大小,而一个或多个无纹理标识区域(如果有的话)的大小可以等于或基本上等于该一个或多个无纹理的区域(如果有的话)的大小。

作为以上标准的示例,计算系统101可以确定由纹理位图指示的总的有纹理的面积,并且可以基于总的有纹理的面积将图像部分(例如,421)分类为有纹理的或无纹理的。总的有纹理的面积可以指示纹理位图(例如,641)中的所有纹理标识区域(例如,643)或图像部分(例如,421)中的所有对应的有纹理的区域的总面积。如果纹理位图(例如,641)不具有纹理标识区域,或者如果图像部分(例如,421)不具有有纹理的区域,则总的有纹理的面积可以为零。在一些情况下,如果总的有纹理的面积等于或大于限定的面积阈值,则计算系统101可以将图像部分(例如,421)分类为有纹理的,并且如果总的有纹理的面积小于限定的面积阈值,则可以将图像部分(例如,421)分类为无纹理的。

在实施例中,使图像部分被分类为有纹理的或无纹理的至少一个标准可以基于百分比p纹理,其可以是一个或多个有纹理的区域(如果有的话)所占的图像部分(例如,421)的百分比,或者一个或多个纹理标识区域(例如,643)(如果有的话)所占的纹理位图(例如,641)的百分比。如果图像部分没有有纹理的区域,或者如果对应的纹理位图没有纹理标识区域,则百分比p纹理可以为零。在实施例中,至少一个标准可以基于百分比p无纹理,其可以是一个或多个无纹理的区域(如果有的话)所占的图像部分(例如,421)的百分比,或者一个或多个无纹理标识区域(例如,643)(如果有的话)所占的纹理位图(例如,641)的百分比。

在实施例中,使图像部分被分类为有纹理的或无纹理的至少一个标准可以基于百分比p纹理(在此示例中其可以是第一百分比)和百分比p无纹理(在此示例中其可以是第二百分比)之间的比率。例如,如果比率p纹理/p无纹理超过限定的有纹理-无纹理的比较阈值t1(例如,5),则这样的实施例可以涉及将至少一个图像部分(例如,421)分类为有纹理的。

在实施例中,使图像部分(例如,421)被分类为有纹理的或无纹理的至少一个标准可以基于百分比p纹理与步骤302中接收到的图像部分(例如,421)或图像(例如,420)中的像素总数num图像之间的比率,和/或基于百分比p无纹理和num图像之间的比率。例如,如果比率p纹理/num图像大于限定的纹理-图像大小比较阈值t2(例如,0.9),和/或如果比率p无纹理/num图像小于限定的无纹理-图像大小比较阈值t3(例如,0.1),则计算系统101可以将至少图像部分(例如,421)分类为有纹理的。

在实施例中,计算系统101可以结合将图像部分分类为有纹理的或无纹理的所涉及的上述标准中的一些或全部。在一些情况下,计算系统101可以被配置为通过以下步骤来执行步骤308:如果满足以上标准中的任一标准,则将图像部分(例如,421)分类为有纹理的,并且如果不满足上述条件中的全部,则将图像部分分类为无纹理的。

例如,作为评估第一标准的一部分,计算系统101可以确定描述子位图(例如,513)中的描述子的数目是否大于所限定的描述子数量阈值。如果此第一标准被满足,则计算系统101可以将图像部分(例如,421)分类为有纹理的。如果此第一标准不被满足,则计算系统101可以通过确定是否p纹理/p无纹理>t1来评估第二标准。如果第二标准被满足,则计算系统101可以将图像部分(例如,421)分类为有纹理的。如果第二标准不被满足,则计算系统101可以通过确定是否p无纹理/num图像>t2和/或p无纹理/num图像<t3来评估第三标准。如果第三标准被满足,则计算系统101可以将图像部分(例如,421)分类为有纹理的。如果第三标准不被满足,则计算系统101可以通过确定由标准偏差位图(例如,533)或由融合位图(例如,631)指示的标准偏差值的最大、最小或均值是否大于限定的标准偏差阈值来评估第四标准。如果第四标准被满足,则计算系统可以将图像部分(例如,421)分类为有纹理的。如果以上标准都不被满足,则计算系统101可以将图像部分(例如,421)分类为无纹理的。

在实施例中,可以针对在步骤302中接收到的图像的一个或多个其他图像部分重复步骤306和308。例如,接收到的图像(例如,420)可能表示多个物体,诸如图4a中的物体401-404。在一些情况下,多于一个模板可以基于该多个物体生成。作为示例,如上所述,第一模板可以基于描述物体401的外观的图像部分421来生成。在此实施例中,第二模板可以基于第二图像部分422来生成,而第三模板可以基于第三图像部分423来生成,这在图8a至图8c中示出。图像部分422可以表示物体402,而图像部分423可以表示物体403。在此示例中,计算系统101可以从图像420提取图像部分422和423,并且对这些图像部分422、423执行步骤306和308,以便基于这些图像分别生成第二模板和第三模板。在一个示例中,图像部分422可以被分类为无纹理的模板。在一些实现方式中,图像部分423也可以被分类为无纹理的模板。尽管图像部分423可能显示胶带条的一个或多个边缘,但是仅从该一个或多个边缘生成的(一个或多个)特征位图、变化位图和融合位图在此示例中可能不足以产生有纹理的分类。

返回图3,方法300可以包括步骤310,在该步骤中,计算系统101的处理电路110可以基于至少一个图像部分(例如,421)被分类为有纹理的还是无纹理的来执行机器人与一个或多个物体(例如,图4a的401-404)的交互的运动计划。在实施例中,步骤308可以由图2c的图像分类模块204和/或运动计划模块208执行。

在实施例中,步骤310可以涉及对图像捕获设备(例如,441)的设备视野(例如,443)中的物体中的一个或多个物体(诸如,由图像420表示的一个或多个物体401-404)执行物体识别。例如,如上所述,表示物体401的图像部分421可以被用作模板或者用于生成模板,并且物体识别可以涉及确定设备视野443中的剩余物体402-404是否与该模板匹配。作为示例,计算系统101可以被配置为确定图像420的表示物体402、403或404的一部分是否与该模板匹配,其中,模板是基于物体401的外观生成的。在一些情况下,物体识别可以基于模板被分类为有纹理的模板还是无纹理的模板。例如,模板的分类可以影响模板被存储在何处和/或模板被存储多久。在与本申请同一日期提交的题为“methodandcomputingsystemforobjectrecognitionorobjectregistrationbasedonimageclassification”的第________号美国专利申请(atty.dkt.mj0054-us/0077-0012us1)中更详细地讨论了基于无纹理的模板或有纹理的模板执行物体识别,该美国专利申请的全部内容通过引用并入本文中。如上所述,物体识别可以产生关于例如物体大小的信息,该信息可以被用于计划机器人与该物体(例如,404)的交互。在实施例中,步骤310可以被省略。例如,这样的实施例可以包括具有步骤302、306、308并且在步骤308完成后停止的方法。

在实施例中,计算系统101可以被配置为确定物体识别中的置信度,其中该确定可以基于模板是有纹理的还是无纹理的。例如,如果物体(例如,403)的外观仅与无纹理的模板匹配,则这样的匹配可以被分配相对低的置信度。如果物体(例如,404)的外观与有纹理的模板匹配,则这样的匹配可以被分配相对高的置信度。在一些情况下,计算系统101可以被配置为执行附加物体识别操作,诸如基于另一种技术或基于附加信息的附加物体识别操作,以便试图提高物体识别的鲁棒性。在一些情况下,计算系统101可以基于置信度执行运动计划。例如,如果置信度相对低,则计算系统101可以被配置为在机器人试图拾取物体或以其他方式与物体交互时限制机器人(例如,461)的速度,使得机器人交互更加小心地进行。

各种实施例的附加讨论

实施例1涉及一种图像分类方法。所述方法可以由例如在非暂时性计算机可读介质上执行指令的计算系统来执行。此实施例中的所述方法包括由计算系统接收图像,其中所述计算系统被配置为与图像捕获设备通信,其中所述图像是由所述图像捕获设备生成的,并且所述图像用于表示所述图像捕获设备的视野中的一个或多个物体。所述方法还包括由所述计算系统基于所述图像的至少一个图像部分来生成一个或多个位图,其中所述一个或多个位图和所述至少一个图像部分与所述一个或多个物体中的第一物体相关联,并且其中所述一个或多个位图描述用于特征检测的一个或多个视觉特征是否存在于所述至少一个图像部分中,或描述跨所述至少一个图像部分是否存在强度变化。另外,所述方法包括由所述计算系统基于所述一个或多个位图确定将所述至少一个图像部分分类为有纹理的还是无纹理的,以及基于所述至少一个图像部分被分类为有纹理的还是无纹理的,执行用于机器人与所述一个或多个物体的交互的运动计划。

实施例2包括实施例1的方法。在此实施例中,所述一个或多个位图包括描述子位图,所述描述子位图用于指示一个或多个描述子是否存在于所述至少一个图像部分中,或者用于标识所述至少一个图像部分的包括从所述至少一个图像部分中检测到的一个或多个相应描述子的一个或多个区域。对将所述至少一个图像部分分类为有纹理的还是无纹理的所述确定是基于由所述描述子位图标识的描述子的总数是否超过限定的描述子数量阈值的。

实施例3包括实施例1或2的方法。在此实施例中,所述一个或多个位图包括具有第一位图和第二位图的多个位图。所述第一位图是基于所述至少一个图像部分生成的,并且描述第一特征类型的一个或多个视觉特征是否存在于所述至少一个图像部分中。此外,在此实施例中,所述第二位图是基于所述至少一个图像部分生成的,并且描述第二特征类型的一个或多个视觉特征是否存在于所述至少一个图像部分中,以及其中,对将所述至少一个图像部分分类为有纹理的还是无纹理的确定包括生成组合了所述多个位图的融合位图,并且其中,所述至少一个图像部分基于所述融合位图而被分类为有纹理的或无纹理的。

实施例4包括实施例3的方法。在此实施例中,所述第一位图是描述子位图,所述描述子位图用于标识所述至少一个图像部分的包括从所述至少一个图像部分检测到的一个或多个相应描述子的一个或多个区域,或者用于指示在所述至少一个图像部分中未检测到描述子,以及其中,所述第二位图是边缘位图,所述边缘位图用于标识所述至少一个图像部分的包括从所述至少一个图像部分检测到的一个或多个相应边缘的一个或多个区域,或者用于指示在所述至少一个图像部分中未检测到边缘。

实施例5包括实施例4的方法。在此实施例中,所述多个位图包括第三位图,所述第三位图是标准偏差位图,所述标准偏差位图用于针对所述至少一个图像部分的每个像素指示该像素周围的像素强度值之间的标准偏差。

实施例6包括实施例3-5中任一项的方法。在此实施例中,对将所述至少一个图像部分分类为有纹理的还是无纹理的所述确定包括通过所述计算系统将所述融合位图转换为纹理位图。此外,在此实施例中,所述纹理位图用于标识所述至少一个图像部分的一个或多个有纹理的区域,或者用于指示所述至少一个图像部分不具有有纹理的区域,其中所述纹理位图还用于标识所述至少一个图像部分的一个或多个无纹理的区域,或用于指示所述至少一个图像部分不具有无纹理的区域,其中所述一个或多个有纹理的区域是所述至少一个图像部分的至少具有限定的纹理水平的一个或多个区域,并且所述一个或多个无纹理的区域是所述至少一个图像部分的具有小于所述限定的纹理水平的一个或多个区域;以及对将所述至少一个图像部分分类为有纹理的还是无纹理的所述确定是基于所述纹理位图的。

实施例7包括实施例6的方法。在此实施例中,对将所述至少一个图像部分分类为有纹理的还是无纹理的所述确定基于以下各项中的至少一项:由所述纹理位图指示的总的有纹理的面积,其中所述总的有纹理的面积是所述一个或多个有纹理的区域的总面积,或者如果所述纹理位图指示所述至少一个图像部分不具有有纹理的区域,则所述总的有纹理的面积为零。

实施例8包括实施例3-7中任一项的方法。在此实施例中,对将所述至少一个图像部分分类为有纹理的还是无纹理的所述确定基于跨所述融合位图是否存在像素强度值的变化,或者基于跨所述融合位图的像素强度值的变化量。

实施例9包括实施例2-8中任一项的方法。在此实施例中,对将所述至少一个图像部分分类为有纹理的还是无纹理的所述确定包括以下各项中的至少一项:a)如果由所述描述子位图标识的描述子的数目大于限定的描述子数量阈值,则将所述至少一个图像部分分类为有纹理的,b)如果第一百分比和第二百分比之间的比率超过限定的纹理-无纹理比较阈值,则将所述至少一个图像部分分类为有纹理的,其中所述第一百分比是所述至少一个图像部分的由所述一个或多个有纹理的区域占据的百分比,或者如果所述至少一个图像部分不具有有纹理的区域,则所述第一百分比为零,并且所述第二百分比是所述至少一个图像部分的由所述一个或多个无纹理的区域占据的百分比,c)如果所述第一百分比和所述至少一个图像部分的大小之间的比率大于限定的纹理-图像大小比较阈值,或者如果所述第二百分比和所述至少一个图像部分的所述大小之间的比率小于限定的无纹理-图像大小比较阈值,则将所述至少一个图像部分分类为有纹理的,或d)如果所述融合位图的相应像素的局部区域的标准偏差的最大值或最小值大于限定的标准偏差阈值,则将所述至少一个图像部分分类为有纹理的。

实施例10包括实施例1-9中任一项的方法。在此实施例中,所述方法还包括生成附加位图,所述附加位图描述生成所述图像的照明条件对所述至少一个图像部分的影响。

实施例11包括实施例10的方法。在此实施例中,所述附加位图包括以下各项中的至少一项:高亮位图,所述高亮位图标识所述至少一个图像部分中的由于所述照明条件而超过限定的亮度阈值的一个或多个区域,或阴影位图,所述阴影位图标识所述至少一个图像部分中的处于阴影中的一个或多个区域。

实施例12包括实施例3-11中任一项的方法。在此实施例中,生成所述融合位图包括:至少基于所述第一位图和所述第二位图,确定描述跨所述至少一个图像部分的纹理水平的位图像素值;以及基于所述高亮位图或所述阴影位图,减少所确定的位图像素值的子集,其中被减少的位图像素值的所述子集对应于所述至少一个图像部分的由所述高亮位图标识为超过所述限定的亮度阈值或由所述阴影位图标识为处于阴影中的一个或多个区域。

实施例13包括实施例3-12中任一项的方法。在此实施例中,生成所述融合位图基于至少所述第一位图和所述第二位图的加权和并且基于所述高亮位图和所述阴影位图的加权和。

实施例14包括实施例3-13中任一项的方法。在此实施例中,由所述计算系统接收的所述图像是包括多个颜色分量的彩色图像,其中,所述第一位图和所述第二位图属于与所述多个颜色分量中的第一颜色分量相关联的第一组位图,并且其中,所述方法包括生成与所述多个颜色分量中的第二颜色分量相关联的第二组位图,并且其中,所述融合位图是至少基于所述第一组位图和所述第二组位图生成的。

实施例15包括实施例14的方法。在此实施例中,所述方法还包括:生成组合了所述第一组位图的第一中间融合位图,其中所述第一中间融合位图与所述第一颜色分量相关联;生成组合了所述第二组位图的第二中间融合位图,其中所述第二中间融合位图与所述第二颜色分量相关联,并且其中,所述融合位图是通过至少组合所述第一中间融合位图和所述第二中间融合位图而生成的。

实施例16包括实施例1-15中任一项的方法。在此实施例中,所述方法还包括:在所述一个或多个位图被生成之前,对所述图像应用平滑操作以产生更新后的图像,其中,从其中生成所述一个或多个位图的所述至少一个图像是从所述更新后的图像中提取的。

对于相关领域的普通技术人员将清楚的是,在不脱离任何实施例的范围的情况下,可以对本文所述的方法和应用进行其他适当的修改和调整。上述实施例是说明性示例,并且不应被解释为将本发明限于这些特定实施例。应该理解的是,本文公开的各种实施例可以以与说明书和附图中具体呈现的组合不同的组合来组合。还应该理解,根据示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。另外,尽管为了清楚起见,本文的实施例的某些特征被描述为由单个组件、模块或单元执行,但是应当理解,本文描述的特征和功能可以由组件、单元、模块的任何组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以进行各种改变和修改。

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