CN109463003A - 对象识别 - Google Patents
对象识别 Download PDFInfo
- Publication number
- CN109463003A CN109463003A CN201880000243.1A CN201880000243A CN109463003A CN 109463003 A CN109463003 A CN 109463003A CN 201880000243 A CN201880000243 A CN 201880000243A CN 109463003 A CN109463003 A CN 109463003A
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- surface data
- point cloud
- pose
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1602—Program controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
- B25J9/1602—Program controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20068—Projection on vertical or horizontal image axis
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Theoretical Computer Science (AREA)
- Mechanical Engineering (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本公开涉及用于对象识别的方法、装置和系统。例如,本文描述的系统、装置和方法可用于识别对象,例如在箱中取物工业环境中的对象(例如,平面工业零件)的类型、取向和位置。在本公开的一个方面,用于对象识别的系统可以将第一3D点云表面数据投影为2D数据。该系统可执行匹配操作,以评估2D数据的2D对象位姿,并将2D数据与2D对象模板相匹配。在识别匹配之后,该系统可以将2D数据投影为3D空间以获得粗略的3D对象位姿。
Description
技术领域
本公开总体上涉及对象识别,尤其涉及基于3D点云数据的平面对象识别的改进。
背景技术
计算机视觉用来使机器(例如计算机)处理能够视场的场景。基于所处理的场景,机器可以发起一个或多个动作或操作。计算机视觉系统可对二维(2D)数据或三维(3D)数据进行操作。
一个使用计算机视觉的行业是制造业。举例说明,制造业将2D计算机视觉图像处理用于多项任务,例如缺陷检查和对象识别。对于精细和/或复杂的任务,例如箱中取物(例如,引导机器人从一箱随机放置和堆叠的对象中选择目标对象),2D计算机视觉图像处理通常不足以产生高效和有效的识别以及选择所需的目标对象。举例说明,作为说明性的非限制性实例,在一个或多个对象类型以不同取向一个在另一个上面地随机堆叠的箱中取物的情况下,2D计算机视觉图像处理在计算上是耗时的,难以识别在不同取向和不同位置上的对象。对于这样的精细和复杂的任务,实现计算机视觉的尝试已经延伸到3D空间。
然而,在精细和复杂的环境和应用(例如制造业中的箱中取物)中使用3D计算机视觉处理对于利用3D计算机视觉处理对3D对象进行准确且高效的分类和评估对象的3D取向和位置存在许多困难和挑战。例如,工业部件或零件在取向和位置上都是完全随机的,这使得常规多视图方法(例如,使用来自两个或两个以上图像捕获装置的场景的图像数据的方法)变得复杂和不准确。作为另一个实例,在工业零件的多模型场景中,一些对象的特征是相似的,这使得结合到3D计算机视觉处理中的基于纹理的2D识别方法变得不太可行。作为进一步的实例,由于遮挡和过度的光反射导致的3D数据不完全特征提取降低了获取的3D的可靠性,从而降低了3D计算机视觉处理准确识别对象的有效性。作为又一个实例,已经证明3D计算机视觉处理在箱中取物中很难实现工业应用的效率和良好的准确度。
3D计算机视觉处理的一种常规方法使用基于红-绿-蓝(RGB)图像的2D颜色特征产生的深度图像数据。这种深度图像数据方法依赖于对象的颜色和纹理来执行对象的多视图检测。在对象(例如,零件)常常缺乏颜色和/或纹理的工业箱中取物应用中,深度图像数据在辨认和识别对象方面缺乏准确度,因为用于评估对象取向的多视图处理在模板产生阶段是复杂的,存在量化误差,并且不能准确地处理和识别无文本的对象。
3D计算机视觉处理的另一种常规方法使用点云处理,其中从对象的3D边缘和表面提取3D特征以进行模板匹配。然而,由于所有3D维度中的数据都要被提取和处理,所以常规的点云处理可能是耗时的。此外,如果对象不具有形状特征(例如,丰富的边缘和/或曲率),例如不具有尖锐的3D特征的相对平面的零件,导致在识别过程中可能会发生不可靠的3D特征提取,则常规的点云处理无法充分处理对象识别。因此,常规的基于点云的方法速度慢,并且不适用于平面零件,因为平面零件没有丰富的3D特征。
鉴于上述,本发明提出了一种用于随机箱中取物应用的基于3D点云法的平面对象识别的方法。特别地说,本发明教导一种具有将3D对象转换为2D对象以进行检测并进一步使用增强的3D对象用于识别过程的方法以便提高平面对象识别的效率和准确度的特征的方法。
发明内容
本公开通常涉及执行对象识别的系统、装置和方法。例如,本文中所描述的系统、装置和方法可用于识别对象诸如在随机堆叠箱中取物工业环境中的对象(例如,平面工业部件)的类型、取向和位置。在本公开的一个方面,用于对象识别的系统使用3D表面中心和法线将第一3D点云表面数据(例如,3D点云平面数据)投影为2D数据。在一些实现方式中,3D点云表面数据可以3D点云数据的一部分,其是通过执行第一分割操作诸如平面分割操作由3D点云数据先前分割的。系统执行匹配操作以评估2D数据的2D对象位姿,并将2D数据与2D对象模板相匹配。在识别匹配之后,系统将2D数据投影为3D空间以获得粗略的3D对象位姿。在一些实现方式中,系统基于第一3D对象位姿对3D点云表面数据进行分割,以产生第二3D点云表面数据(例如,第一3D点云表面数据的子集)。此外,该系统可执行迭代最近点(ICP)操作以微调3D位姿。
本公开以可应用于制造业和机器人工业应用的方式有利地执行3D对象识别。例如,本发明可以使机器检测平面对象、对对象进行分类,并识别其3D位置和取向,以便随机箱中取物。此外,本发明可以在没有2D颜色/纹理信息且不执行不可靠的3D特征提取操作的情况下,有利地执行3D对象识别。本发明的系统、装置和方法提高了对象识别诸如对平面零件对象的对象识别的总效率和准确度。例如,在工业箱中取物应用中,本公开的系统、装置和方法可以以大于或等于95%的准确度对多达5百万个数据点实现小于1-2秒的效率(例如,速度)。此外,本公开分割了用于将来处理的点云数据,这减少了进一步处理的点云的点数,从而更快、更有效地识别对象。这种分割(例如,接收到的点云数据的预处理)不会降低数据的分割部分的点云数据的密度;相反,它消除了噪声点云片,并识别了可能包含可检测/可识别对象的子点云。执行双向ICP可通过对齐被遮蔽的输入点云数据与粗略初始位姿猜测的模板点云,来补偿被遮蔽的点云数据,从而产生补偿一个或多个被遮蔽的点云数据点的微调位姿。通过执行2D匹配而不是3D匹配操作,可以比执行3D特征提取和匹配的常规技术更快更有效地执行对象识别,并且可以准确地识别平面零件和/或具有相对平面的零件。
在本公开的一个方面,对象识别的方法包括接收点云数据和分割点云数据以识别视场(FOV)中的平面。例如,分割点云数据可包括平面分割操作,其不依赖于3D颜色或纹理信息并且产生一组或多组平面点云数据。对于每个分割的点云,该方法包括将分割的点云数据投影为相应的2D图像以进行2D匹配操作。举例说明,从3D到2D投影分割的点云数据,该方法可确定中心和法线向量。该方法进一步包括执行匹配操作以识别与分割的点云数据的2D表示相匹配的2D模板(对应于对象类型)。例如,作为说明性的非限制性实例,该方法可使用2D倒角匹配。作为另一个实例,可以使用2D倒角匹配以外的匹配操作。另一个匹配操作可产生2D位置和旋转输出。在匹配结果之后,该方法执行2D位姿到3D投影以产生对象的3D位姿,并基于3D位姿对先前分割的点云数据执行分割操作,以将匹配的对象从分割点云中删除作为第二分割的点云数据。因为先前分割的点云数据可能包含对象,所以分割操作将对应于匹配对象的先前分割的点云数据的一部分分离出来。该方法还包括执行ICP操作,以便在提供输出之前对第二分割的点云进行微调。
因此,本公开描述了执行对象识别来检测对象(例如,具有平面的对象)并识别其3D位置和取向以在制造业和机器人工业应用中进行随机箱中取物的系统、装置和方法。所述系统、装置和方法不依赖于2D纹理,避免了不可靠的3D特征提取,并提高了对象识别的总效率和准确度。例如,对于具有平面表面或特征的对象,可以提高总效率和准确度。另外,通过执行平面分割(例如,平面分割)有利地缩短了计算时间的所述系统、装置和方法,通过组合执行2D匹配缩短了时间和精度,并通过执行双向ICP提高了不完整对象点云的精度。
前文大致概述了本公开的特点和技术优势,以便更好地理解下面的详细说明。下文将描述形成权利要求的主题的其它特征和优势。本领域技术人员应该认识到,所公开的概念和具体实例可以容易地用作为修改或设计用于实施本文所述的相同目的的其它结构的基础。本领域的技术人员也应当认识到,这种对等结构并不背离附属权利要求所规定的本公开的精神和范围。从考虑附图的以下描述中,可以更好地理解本文所描述的方面,其包括其组织和操作方法,以及进一步的目的和优点。然而,必须清楚地理解,每幅图都是为了说明和描述的目的提供的,而不作为对本公开的限制。
附图说明
为了更全面地理解本公开,现请参阅结合附图进行理解的下列说明,其中:
图1示意了其中可实施本发明的示例性实施例的系统;
图2示意了用于处理点云数据的系统的实例的框图;
图3A-3G描绘了示意图1的系统的操作的方面的图像实例;
图4是处理点云数据的说明性方法的流程图;
图5是执行分割的说明性方法的流程图;
图6是执行3D到2D投影的说明性方法的流程图;
图7是执行匹配操作的说明性方法的流程图;
图8是执行分割的操作的说明性方法的流程图;
图9是执行双向3D迭代最近点(ICP)操作的说明性方法的流程图;和
图10是执行对象识别的说明性方法的流程图。
具体实施方式
下面参考附图描述本公开的具体实施方式。在描述中,相同特征在整个附图中用形同的参考标号来指示。如本文所使用的,用于修饰要素(例如结构、部件、操作等)的序数词(例如,“第一”、“第二”、“第三”等),其本身并不表示元件相对于另一个元件的任何优先级或顺序,而仅是将具有相同名称的一个元件与另一个元件相区分(但使用了序数词)。
如本文所使用的,各种术语仅用于描述具体实施方式,而不打算限制实施方式。例如,单数形式“一个”和“该个”旨在也包括复数形式,除非上下文另有明确说明。可以进一步理解,词“包括”可与“包含”互换使用。此外,应该理解词“其中”与“此处”可互换使用。
参考图1,描绘了用于对象识别的系统100的实例的框图。例如,系统100可用于识别对象,例如在箱中取物工业环境中的对象(例如,平面工业零件)的类型、取向和位置。
系统100包括扫描器110、电子装置120、控制装置150和工作空间170。电子装置120通信地耦接到扫描器110和控制装置150。扫描器110,例如3D扫描器被定位成具有工作空间170的视场176。工作空间170(例如,箱)包括多个对象172,例如代表性对象174。扫描器110被配置成产生一个或多个对象174的扫描数据180,例如点云数据。
电子装置120可包括智能电话、平板计算装置、个人计算装置、膝上型计算装置、台式计算装置、计算机系统、服务器等。虽然被描述为与扫描器110分离,但在其它实现方式中,电子装置120可与扫描器110合并在同一装置中。
电子装置120包括处理器122、存储器124、一个或多个I/O装置126和网络接口128。处理器122可包括根据本文所描述的各个方面的各种形式的基于处理器的系统。例如,处理器122可包括通用计算机系统(例如,个人计算机(PC)、服务器、平板装置等)和/或专用处理器平台(例如,专用集成电路(ASIC)、片上系统(SOC)等)。在一些实现方式中,处理器122包括一个或多个处理器,例如图像处理器。处理器122可被配置成处理扫描数据180并执行对象检测和/或识别。另外,或可选地,处理器122可被配置成产生用于控制装置150的控制信息,例如控制数据182。例如,处理器122可被配置成执行如本文所述的一个或多个操作。为了处理扫描数据180,处理器122可产生数据,例如第一表面数据130、2D数据132、匹配结果数据134、位姿数据136、第二表面数据138、输出数据140或其组合。
存储器124可包括ROM装置、RAM装置、一个或多个HDD、闪存装置、SSD、配置为以持久或非持久状态存储数据的其它装置或不同存储器装置的组合。存储器124包括指令142和一个或多个模板144(例如,模板数据)。在各个方面,存储器124可存储指令142,指令142在由处理器122执行时使得处理器122执行如本文所述的根据本公开各个方面的操作。一个或多个模板144包括一个或多个2D模板16和一个或多个3D模板。在一些实现方式中,存储器124可包括一个或多个3D模板148,处理器122可被配置成由一个或多个3D模板产生一个或多个2D模板146。
一个或多个I/O装置126可包括鼠标、键盘、显示装置、摄像机、其它I/O装置或其组合。网络接口128可被配置成经由一个或多个网络将电子装置120通信地耦接到一个或多个外部装置,例如扫描器110、控制装置150或这两者。例如,电子装置120可被配置成从扫描器110接收扫描数据180,基于扫描数据180检测/识别对象,并将控制数据182输出到控制装置150。
在一方面,电子装置120可以是被配置成执行本文所述的操作的单个装置。本领域的技术人员应认识到,虽然图1将电子装置120示意为单个框,但电子装置120的实现方式不限于单个部件,而是可以分布在几个部件上。例如,电子装置120的操作可分布在多个装置上,这些装置被配置成根据本公开执行电子装置120的全部或部分操作。在多个装置上实现电子装置120的功能可提高系统100的效率、处理时间和可靠性。
控制装置150包括机器人控制件152、一个或多个处理器154、存储器156、一个或多个输入/输出(I/O)装置158和网络接口160。虽然被描述为与扫描器110和电子装置120分离,但在其它实现方式中,控制装置150可以与扫描器110、电子装置120或两者合并在同一装置中。
机器人控制件152可耦接到机器人(例如,机械装置),例如机器人臂162,机器人被配置成从多个对象中选择对象(例如174)。例如,机器人控制件152可包括电机、伺服系统、液压系统等。虽然机器人控制件152被描述为耦接到机器人(例如162),但另外或可选择地,机器人控制件152可耦接到另一个装置,例如磁铁。
处理器154可包括根据本文描述的各个方面的各种形式的基于处理器的系统。例如,处理器154可包括通用计算机系统(例如,个人计算机(PC)、服务器、平板装置等)和/或专用处理器平台(例如,专用集成电路(ASIC)、片上系统(SOC)等)。在一些实现方式中,处理器154包括一个或多个处理器,例如图像处理器。处理器154可被配置成处理控制数据182,并且处理控制数据182以向机器人控制件152提供一个或多个控制信号。
存储器156可包括ROM装置、RAM装置、一个或多个HDD,闪存装置、SSD、配置为以持久或非持久状态存储数据的其它装置或不同存储装置的组合。在各个方面,存储器156可存储指令,该指令在由处理器154执行时使得处理器154执行如本文所述的根据本公开的各个方面的操作,例如操作机器人臂162。
一个或多个I/O装置158可包括鼠标、键盘、显示装置、摄像机、其它I/O装置或其组合。网络接口160可被配置成经由一个或多个网络将控制装置150通信地耦接到一个或多个外部装置,例如扫描器110、控制装置150、机器人臂162或其组合。例如,控制装置150可被配置成从电子装置120接收控制数据182,并且响应于控制数据182操作机器人臂162。
在操作期间,扫描器110扫描工作空间170并产生扫描数据180(例如,3D点云数据)。电子装置120接收来自扫描器110的3D点云数据,例如扫描数据180,并对3D点云数据进行分割以产生第一3D表面数据130。例如,电子装置120可如本文至少参考图2、4和5所述对3D点云数据进行分割。第一3D表面数据130可包括3D点云数据的子集。电子装置120可基于与对象(例如,174)相关联的第一三维(3D)表面数据130产生二维(2D)数据132。例如,电子装置120可如本文至少参考图2、4和6所述对3D点云数据进行分割。
电子装置120(例如,处理器122)可选择2D对象模板(例如,146),并比较两个2D对象模板和2D数据132。电子装置120(例如,处理器122)可基于两个2D对象模板与2D数据相匹配的确定来产生匹配结果数据134。例如,电子装置120可执行本文至少参考图2、4和7所述的一个或多个匹配操作。匹配结果数据134可以对应于对扫描器110所扫描的多个对象172中的对象(例如,对象类型)的识别。电子装置120基于匹配结果数据134由2D数据132的至少一部分产生3D位姿数据(例如,136)。例如,电子装置120可如本文至少参考图2和4所述产生3D位姿数据(例如,136)。
电子装置120基于3D位姿数据(例如136)分割第一3D表面数据130,以产生第二3D表面数据138。例如,电子装置120如本文至少参考图2、4和8所述可分割第一3D表面数据130。在一些实现方式中,第一3D表面数据130和第二3D表面数据138是相同的数据。电子装置120可选择3D对象模板(例如,148),并使用第二3D表面数据138和3D对象模板执行双向迭代最近点(ICP)操作。例如,电子装置120可如至少参考图2、4和9本文所述执行双向ICP操作。在一些实现方式中,电子装置120(例如,处理器122)可基于ICP操作输出3D位姿(例如,140)。在特定的实现方式中,3D位姿可包括对象类型指示符、部分指示符、取向指示符或其组合。另外,或者可选择地,电子装置120可基于输出数据140产生控制数据182,以使控制装置150和/或机器人臂162识别和选择对象。
在图1的系统100的特定方面,一种设备(例如,电子装置120)包括被配置为存储指令142的存储器124,并包括耦接到存储器124的处理器122。处理器122被配置成执行指令142以使处理器122对与对象(例如,174)相关联的第一3D表面数据130执行三维(3D)到二维(2D)投影操作,以产生与对象(例如174)相关联的2D数据132。处理器122进一步被配置成执行指令142,以使处理器122基于匹配结果数据134由2D数据132的至少一部分产生3D位姿数据(例如,136)。在一些实现方式中,第一3D表面数据130包括平面表面数据。
在一些实现方式中,该设备(例如,电子装置120)进一步包括被配置为接收点云数据(例如,180)的接口(例如,128)。另外,或可选择地,处理器122可被配置成执行指令142,以使处理器122分割点云数据(例如,180)以产生第一3D表面数据130。举例说明,第一3D表面数据130可包括3D点云数据(例如,180)的子集。在一些这样的实现方式中,处理器122可进一步被配置成执行指令142,以使处理器执行匹配操作以产生匹配结果数据134。
在一些实现方式中,处理器122可被配置成执行指令142,以使处理器122基于3D位姿数据(例如,136)分割第一3D表面数据130以产生第二3D表面数据138。在一些这样的实现中,处理器122进一步被配置成执行指令142以使处理器122产生输出数据140。输出数据140可指示对象(例如,174)的对象类型、对象的位置、对象的取向或其组合。另外,处理器122可被配置成基于输出数据140产生控制数据182,以使控制装置150和/或机器人臂162识别和选择对象。
在一些实现方式中,处理器122、154中的每一个都可被配置成执行存储在相应存储器124、156(例如,非暂时性的计算机可读介质)中的软件(例如,由一个或多个指令142表示的程序)。例如,处理器122、154可被配置成执行指令以执行本文所述的一个或多个操作。
图1的系统100所提供的一个优点是,系统100以可应用于制造业和机器人工业应用的方式提供了3D对象识别。例如,电子装置120可检测平面对象,对对象进行分类,并识别其3D位置和取向,以进行随机箱中取物。另外,电子装置120(例如,处理器122)可以有利地在没有2D颜色/纹理信息和在不执行不可靠的3D特征提取操作的情况下执行3D对象识别。因此,系统100提高了对象识别,例如对于平面零件对象的对象识别的总效率和准确度。举例说明,在工业箱中取物应用中,系统100可以以大于或等于95%的准确度对多达5百万个数据点实现小于1至2秒的效率(例如速度)。在一些实现方式中,准确度可以大于或等于98%。此外,系统100(例如,电子装置120)有利地分割点云数据用于将来处理,这减少了进一步处理的点云的点量,从而导致更快更有效的对象识别。这种分割(例如,对接收的点云数据的预处理)不降低数据的分割部分的点云数据的密度;而是,它消除噪声点云片,并识别可能包括可检测/可识别对象的子点云。系统100(例如,电子装置120)还有利地执行双向ICP,双向ICP可产生对一个或多个遮蔽的点云数据点进行补偿的微调位姿。此外,系统100(例如,电子装置120)被配置成执行2D匹配,而不是3D匹配操作,其比执行3D特征提取和匹配的常规技术更快更高效地执行,并且可以准确地识别平面零件和/或具有相对平面表面的零件。
参考图2,示出了用于处理点云数据的系统200的实例的框图。系统200可包括或对应于电子装置120(例如,处理器122)。
系统200包括分割器204、3D到2D投影器210、匹配器216、2D到3D投影器220、分割器224和优化器230。在一些实现方式中,分割器204和分割器224可以是相同的分割器。分割器204、3D到2D投影器210、匹配器216、2D到3D投影器220、分割器224和优化器230中的一个或多个可以实现为电子硬件、计算机软件或两者的组合。
在系统200的操作期间,分割器204接收扫描数据202,例如点云数据。扫描数据202可包括或对应于扫描数据180。分割器204可被配置成产生包括扫描数据202的一部分的第一3D表面数据206。例如,分割器204可被配置成执行本文至少参考图5所述的一个或多个操作。第一3D表面数据206可包括或对应于第一表面数据130。在一些实现方式中,第一3D表面数据206可对应于平面表面。作为产生第一3D表面数据206的一部分,分割器204可产生表面信息208,例如取向信息(例如,平面法线和平面特征向量)。分割器204可将第一3D表面数据206提供给3D到2D投影器210和分割器224。
3D到2D投影器210可被配置成将第一3D表面数据206投影为2D数据212(例如,2D图像数据)。例如,3D到2D投影器210可被配置成执行本文至少参考图6所述的一个或多个操作。2D数据212可包括或对应于2D数据132。为了将第一3D表面数据206投影为2D数据212,3D到2D投影器210可产生特征信息,例如平面中心和一个或多个特征向量。3D到2D投影器220可将2D数据212提供给匹配器216和2D到3D投影器220。
匹配器216可被配置成将2D数据212与一个或多个2D模板进行匹配以检测对象。一个或多个2D模板可包括或对应于(一个或多个)2D模板146。匹配器216可被配置成执行本文至少参考图7所述的一个或多个操作。响应于匹配的识别,匹配器216将匹配结果数据218提供给2D到3D投影器220。例如,匹配结果数据可包括或对应于匹配结果数据134。在一些实现方式中,匹配器216可识别多个匹配,例如匹配2D数据212的第一部分的第一2D模板和匹配2D数据212的第二部分的第二2D模板。
2D到3D投影器220可被配置成投影2D数据212以产生3D位姿数据222。3D位姿数据222可包括或对应于位姿数据136。2D到3D投影器220可基于2D匹配结果数据218和特征信息214(例如,平面中心和平面特征向量)产生3D位姿数据222。例如,2D到3D投影器220可执行参考图4在此进一步描述的一个或多个操作。2D到3D投影器220可将3D位姿数据222提供给分割器224。
分割器224可被配置成将第一3D表面数据206分割为至少第二3D表面数据226。例如,分割器224可执行本文参考图8进一步描述的一个或多个操作。第二3D表面数据226可包括或对应于第二表面数据138。在第一3D表面数据206包含多于一个对象(由多于一个对象形成)的情况下,分割器224可分割第一3D表面数据206。如果第一3D表面数据206包含多于一个对象(由多于一个对象形成),则从第一3D表面数据分割第二3D表面数据226(对应于第一对象)可导致第三表面数据228(对应于至少第二对象)。分割器224可将第二3D表面数据226提供给优化器230。
优化器230可被配置成处理第二3D表面数据226以产生输出数据232。在一些实现方式中,优化器230可被配置成执行双向ICP 3D位姿优化操作。例如,优化器230可执行本文参考图9进一步描述的一个或多个操作。优化器230可以微调第二3D表面数据226,无论所产生的分割平面是否完整。输出数据232可包括或对应于输出数据140。
因此,系统200执行对象识别以检测对象(例如,具有平面表面的对象)并识别其3D位置和取向。这样的对象识别和/或检测可应用于制造业和机器人工业应用中的随机箱中取物。系统200不依赖于2D纹理,避免了不可靠的3D特征提取,并提高了对象识别的总效率和准确度。例如,可提高对于具有平面表面或特征的对象的总效率和准确度。此外,系统200通过执行平面分割(例如,平面的分割),有利地缩短了计算时间,通过组合执行2D匹配减少了时间和准确度,并通过执行双向ICP提高了对不完整对象点云的准确度。
参考图3A-3G,描绘了示意图1的系统100和图2的系统200的操作的各个方面的图像的实例。每幅图像都是用于说明目的,而不打算进行限制。
参考图3A,图像300示意了视场的实例。如图所示,图像300包括多个对象。例如,该视场可包括或对应于视场176。参考图3B,图像308示意了点云数据的实例。例如,点云数据可包括或对应于扫描数据180或扫描数据202。
参考图3C,图像310-320示意了基于点云数据(例如扫描数据180或扫描数据202)所识别的表面(例如,平面)的实例。该表面可通过电子装置120(例如,处理器122)或分割器204来识别。第一图像310指示从点云数据识别和分割的第一表面(例如,第一图像310的阴影部分)。第二图像312指示从点云数据识别和分割的第二表面(例如,第二图像312的阴影部分)。第三图像314指示从点云数据识别和分割的第三表面(例如,第三图像314的阴影部分)。第四图像316指示从点云数据识别和分割的第四表面(例如,第四图像316的阴影部分)。第五图像318指示从点云数据识别和分割的第五表面(例如,第五图像318的阴影部分)。第六图像320指示从点云数据识别和分割的第六表面(例如,第六图像320的阴影部分)。
参考图3D,图像340-350示例了3D到2D投影的实例。例如,图3D包括第一组图像340、344、348和第二组图像342、346、350。第一组图像340、344、348示意了3D点云数据,例如第一表面数据130或第一3D表面数据206。第二组图像342、346、350示意了2D投影(例如,3D点云数据的2D表示),例如2D数据132或2D数据212。3D到2D投影可以由电子装置120(例如,处理器122)或3D到2D投影器210执行。如图所示,由图像340表示的3D点云数据被投影为如图像342所示的2D数据。作为另一个实例,由图像344表示的3D点云数据被投影为如图像346所示的2D数据。作为另一个实例,由图像348表示的3D点云数据被投影为如图像350所示的2D数据。
参考图3E,图像360-364示意了模板数据(例如,2D模板数据)的实例。例如,模板数据可包括或对应于(一个或多个)2D模板146。如图所示,图像360对应于与第一对象相关联的模板数据。作为另一个实例,图像362对应于与第二对象相关联的模板数据。作为另一个实例,图像364对应于与第三对象相关联的模板数据。
参考图3F,图像370-376示意了2D匹配操作的实例。举例说明,2D模板数据(例如,146)可与2D数据(例如,132、212)相匹配。例如,2D匹配操作可以由电子装置120(例如,处理器122)或匹配器216执行。如图所示,图像370描绘了覆盖在2D数据上的2D模板(例如,对象轮廓)。作为另一个实例,图像372描绘了覆盖在2D数据上的2D模板(例如,对象轮廓)。图374描绘了覆盖在2D数据上的2D模板(例如,对象轮廓)。作为另一个实例,图像376描绘了覆盖在2D数据上的第一模板280和第二模板382。参考图像376,基于所识别的3D表面产生的2D表示,所述所识别的3D表面包含多个一个对象(由多个一个对象形成),例如相互挨着或接触的两个对象。
参考图3G,图像390-394示意了基于匹配的结果识别的分割的实例。例如,分割可以由电子装置120(例如,处理器122)或分割器224执行。如图所示,图像390指示从点云数据识别和分割的第一表面。例如,该表面(例如,平面)可包括或对应于第一表面数据130或第一3D表面数据206。第一表面数据可以已经基于所识别的3D表面产生,所述所识别的3D表面包含多个一个对象(由多个一个对象形成),例如相互挨着或接触的两个对象。第一表面(例如,第一3D表面数据)可以基于对象模板的第一匹配结果来分割,以产生第二表面数据,例如第二3D表面数据138或第二3D表面数据226,如图像392所示。另外,或可选地,第一表面(例如,第一3D表面数据)可以基于对象模板的第二匹配结果来分割,以产生第三表面数据,例如第三3D表面数据228,如图像394所示。在一些实现方式中,从第一表面数据分割第二表面数据可导致(例如,产生)第三表面数据。在其它实现方式中,从第一表面数据分割第二表面数据可导致第一表面数据的一部分,并且第三表面数据可以从第一表面数据的该部分进行分割。
参考图4,示出了执行对象识别的方法400。例如,方法400可用于针对制造环境中的随机箱中取物进行基于3D点云数据的平面对象识别。方法400可以由电子装置120(例如,处理器122)、系统200的一个或多个部件、一个或多个处理器或其组合来执行。
方法400包括在402接收点云数据。例如,点云数据可包括对象的三维(3D)点云数据。点云数据可包括或对应于扫描数据180或扫描数据。该方法400进一步包括在404对点云数据执行分割以产生第一3D分割的数据。例如,分割可以由分割器204执行,或者如本文至少参考图5进一步描述的那样执行。在一些实现方式中,分割可包括其中在分割期间和/或分割后提取部分取向信息(例如,平面法线)的平面分割。另外或替代地,在分割过程中,可以丢弃具有太少点的候选平面,以消除噪声并避免处理严重遮挡的平面。举例说明,候选平面可与阈值点数进行比较,如果包含在候选平面中的点数不满足阈值,则可将其丢弃。另外,通过识别和处理候选平面用于将来处理,可以减少用于进一步处理的点云的点量,从而更快更高效地识别对象。
方法400进一步包括在406执行3D到2D投影以处产生2D位姿。例如,3D到2D投影可以由3D到2D投影器210执行,或者如本文至少参考图6进一步描述的那样执行。3D到2D投影可包括产生特征信息,例如特征信息214。在一些实现方式中,可以为匹配操作(例如2D倒角匹配)执行3D到2D投影。在3D到2D投影期间,可识别所选平面的中心点和法线信息,并可将该平面投影为2D。
方法400进一步包括在408执行2D匹配。例如,2D匹配可以由匹配器216执行,或者如本文至少参考图7进一步描述的那样执行。通过执行2D匹配而不是3D匹配操作,可以比执行3D特征提取和匹配的常规技术更快更高效地执行对象识别。
方法400进一步包括在410将2D位姿投影为3D以产生3D位姿。例如,2D位姿到3D投影可以由2D到3D投影器220执行。执行2D位姿到3D投影可以通过结合2D匹配结果和3D信息(例如,平面中心和平面特征向量),将2D位姿投影为3D,从而得到3D位姿。举例说明,2D位姿到3D投影可以用方程来限定:
和
其中Trans3D和Rot3D是投影的3D平移和旋转,其中x2D、y2D和θ是来自2D匹配结果的值,并且其中Tcenter和Eigenvector是平面中心和平面特征向量。
方法400包括在412执行分割和双向迭代最近点(ICP)3D位姿优化。例如,分割可以由分割器224执行,或者如本文至少参考图8描述的那样执行,双向ICP 3D位姿优化可以由优化器230执行,或者如本文至少参考图9进一步描述的那样执行。执行3D分割可包括在初始平面包含多个一个对象(或由多个一个对象形成)的情况下基于3D位姿执行初始平面的分割。执行双向ICP可以微调3D位姿,不管所产生的分割的平面是否完整。方法400进一步包括在414输出输出的候选3D位姿。例如,输出的候选3D位姿可包括或对应于图1的输出数据140。
因此,方法400可以有利地提供3D对象识别,例如以可应用于制造业和机器人工业应用的方式的对象识别。例如,方法400可以检测平面对象,对对象进行分类,并识别其3D位置和取向,以进行随机箱中取物。另外,方法400可以在没有2D颜色/纹理信息和在不执行不可靠的3D特征提取操作的情况下有利地执行3D对象识别。因此,方法400提高了对象识别(例如对平面零件对象的对象识别)的总效率和准确度。另外,方法400有利地分割点云数据用于将来处理,这减少了进一步处理的点云的点量,从而更快更高效地进行对象识别。方法400还有利地执行了双向ICP,其可以产生对一个或多个被遮蔽的点云数据点进行补偿的微调位姿。此外,方法400执行2D匹配,其可以比执行3D特征提取和匹配的常规技术更快更高效地执行,并且可以准确地识别平面零件和/或具有相对平面的表面的零件。
参考图5,示例了执行平面分割的方法500。平面分割用于识别视场(FOV)(例如FOV176)中的平面。平面分割可包括或对应于分割器204或图4的步骤404。平面分割/检测算法可以利用体素生长技术。体素的分辨率可以由要检测的目标对象来决定。作为说明性的非限制性实例,分辨率可以从0.5毫米(mm)到2mm。方法500可以由电子装置120(例如,122处理器)、系统200的一个或多个部件(例如,分割器204或分割器224)、一个或多个处理器或其组合来执行。
方法500包括在502将3D空间和数据分割为立方体网格(cube),并在504产生多个种子平面。多个种子平面可以同时初始化和生长。种子的数量取决于输入数据的大小和目标对象的大小。作为说明性的非限制性实例,种子数量的范围可以从10到100。
方法500进一步包括在506计算种子平面法线。该方法还包括在508从队列计算法线和到相邻数据的平面的垂直距离。该方法还包括在510基于计算的法线和垂直距离进行相似性测试。如果相似性测试结果不指示相似,则方法500前进到508。可选择地,如果相似性测试结果指示相似,则方法500前进到514。
方法500包括在514合并在通过相似性测试的相邻立方体网格中的数据点。举例说明,种子平面可通过估计法线差α、到平面的垂直距离β和连通性来合并相邻数据。α和β的值可以取决于(待检测的)目标对象的形状。作为说明性的非限制性实例,α和β的值的范围可以分别为从10度到90度和从0.5mm到3mm。种子平面通过估计法线差α和平面连通性C来合并在一起。对于两个种子平面(例如,种子平面A和种子平面B)之间的种子平面连通性C,种子平面连通性C可以由被种子平面A和种子平面B两个种子平面搜索的体素的数量来限定。
方法500进一步包括在516将相邻立方体网格添加队列。举例说明,该方法500可包括在516维持每个种子平面的队列,并且该队列可存储可用作每个种子平面的后续生长迭代的生长方向的潜在立方体网格。方法500还包括在518确定相邻立方体网格队列是否清空。如果确定相邻立方体网格队列没有清空,则方法500前进至508。可选择地,如果确定相邻立方体网格队列清空,则方法500前进到520。方法500包括在520输出分割结果。分割结果可包括或对应于第一表面数据130或第一3D表面数据206。
参考图6,示出了执行3D到2D投影的方法600。3D到2D投影可包括或对应于3D到2D投影器210或图4的步骤406。3D到2D投影可用于利用平面中心和特征向量将检测的表面(例如,第一3D表面数据130或第一3D表面数据206)投影为2D图像。检测的表面可包括平面表面。检测的表面(例如,第一3D表面数据130或第一3D表面数据206)的点云信息通过其平面中心和最小特征向量来变换并投影到X-Y平面。X-Y平面点云通过预定的分辨率转换为2D图像。预定的分辨率的范围从0.8mm到3.2mm,其取决于目标对象的大小。方法400可以由电子装置120(例如,处理器122)、系统200的一个或多个部件(例如,3D到2D投影器210)、一个或多个处理器或其组合来执行。
方法600包括在602接收与平面相关联的分割的平面数据。例如,分割的平面数据可包括或对应于第一表面数据130或第一表面数据206。方法600进一步包括计算平面的平面中心和一个或多个特征向量。例如,平面中心和一个或多个特征向量可包括或对应于特征信息214。方法600还包括在606基于平面中心和一个或多个特征向量将该平面移动到(坐标系统的)原点并将该平面旋转到X-Y平面,以产生X-Y平面的点云数据。该方法包括在608将X-Y平面点云数据转换为2D数据。2D数据可包括或对应于2D数据132或2D数据212。
参考图7,示出了执行2D匹配的方法700。例如,方法700描述了2D倒角(chamfer)匹配,其可用于在2D图像(例如,2D数据)中查找对象。2D匹配可包括或对应于匹配器216或图4的步骤408。方法700可以由电子装置120(例如处理器122)、系统200的一个或多个部件(例如,匹配器216)、一个或多个处理器或其组合来执行。
方法700包括在702基于平面中心和平面特征向量信息将检测的平面投影为2D图像。投影检测的平面可包括或对应于图6的方法600。
方法700进一步包括在704检测2D图像上的定向FAST和旋转BRIEF(Oriented FASTand Rotated BRIEF)(ORB)关键点,以定位目标对象的潜在中心。该方法还包括在706对潜在的中心候选进行聚集和排序。方法700包括在708,对于具有预设的x、y、角度、尺度步长的每个潜在中心计算剪裁的倒角(clipped chamfer),以识别一个或多个局部最小值。该方法700还包括在710,对于每个局部最小值,通过贪婪搜索查找倒角距离并基于匹配结果产生分数。方法700包括在712选择分数大于或等于存储为匹配结果的阈值的局部最小值。匹配结果可包括或对应于匹配结果数据134或匹配结果数据218。
在一些实现方式中,如参考图7所描述的,匹配算法利用关键点匹配技术和倒角匹配技术。匹配算法分为模板阶段和查询阶段。在模板阶段,形成模板。在查询阶段,将模板与查询图像进行匹配,以获得匹配的位姿。
模板由模板图像通过关键点检测、描述符计算、轮廓提取、轮廓边缘取向提取而形成。模板图像通过投影模板3D点云获得。计算模板的不同角度,并将其存储在散列表中,以便在查询阶段进行匹配。例如,散列表可存储在存储器124中。对于关键点匹配技术,使用定向FAST和旋转BRIEF(ORB)作为关键点检测符和描述符。对于关键点匹配技术,将匹配提供为到倒角匹配阶段的输入猜测坐标。
对于倒角匹配技术,在查询图像的输入猜测坐标的邻域中,在模板的不同位置和取向上穷尽计算具有取向乘子的剪裁的倒角距离。得到的所有局部最小值都要经过贪婪搜索。在一些实现方式中,获得的所有局部最小值都要经过贪婪搜索。将分数大于阈值的局部最小值保留为2D倒角匹配的算法结果。
具有取向乘子的剪裁的倒角距离由以下定义:
其中和分别是模板和查询图像的对应的边缘取向。对于特定的模板轮廓点,查询图像中的最接近的边缘点是其对应的边缘点。另外,在上述等式中,D是倒角边缘距离,DThd是模板尺寸的百分比。百分比用于确定是否考虑将查询图像中的边缘点考虑为取决于与模板边缘点的距离。在较高百分比的情况下,将考虑离模型边缘点较远位置处的查询图像中的边缘点,从而导致具有方向乘子的较高的最终裁剪倒角距离。作为说明性的非限制实例,这个值可以设置在从0.1到0.3的范围内,从而就不会考虑离模型边缘点太远的查询边缘点。
阈值用于确定是否将局部最小值传递到处理的下一阶段。作为说明性的非限制实例,阈值的值可以设置在0.2-0.5的范围内,从而就不会考虑被发现为遮蔽太多或明显不正确的对象。
参考图8,示出了执行3D分割的方法800。2D匹配可包括或对应于分割器224或图4的步骤412。方法800描述了3D分割,其在初始平面包含多个一个对象的情况下,可基于粗略的3D位姿从初始检测平面中切割出3D对象平面。3D分割还可用于将翻转的3D位姿应用于初始平面,使其质心位于原点,并使其拟合X-Y平面。此操作由以下等式定义:
其中x、y、z来自初始平面,P是变换的平面。方法800可以由电子装置120(例如处理器122)、系统200的一个或多个部件(例如分割器204或分割器224)、一个或多个处理器或其组合来执行。
方法800包括在802应用由2D到3D投影产生的3D位姿以检测平面。例如,检测的平面可包括或对应于第一表面数据130或第一3D表面数据206。方法800进一步包括在804由3D模板计算出边界框,以及在806对具有边界框的检测平面进行过滤拟合(filter fitting),并记录删除的点的索引。用于分割的过滤边界框由3D模板进行评估。在这一步骤中,要从相应的3D模板中得到x、y和z的最小和最大值,并将它们扩展一定量,例如一个百分比(例如,10%),以得到过滤边界框。然后对具有边界框的变换平面进行过滤,并将记录在过滤边界框外面的点的索引。方法800包括在808用记录的索引从初始检测平面中删除点,并在810将其余点作为另一个分割平面输出。
参考图9,示出了执行双向3D ICP的方法900。双向3D ICP可包括或对应于优化器230或图4的步骤412。在方法900中,双向3D ICP可用于对3D位姿进行微调,而不管分割平面是否完整。该方法900可以由电子装置120(例如,处理器122)、系统200的一个或多个部件(例如,优化器230)、一个或多个处理器或其组合来执行。
方法900包括在902使用分割的平面作为查询并且3D模板作为目标来执行迭代最近点(ICP)算法,并确定第一误差(误差1)和第一优化位姿(POS 1)。方法900进一步包括在904交换查询和目标再次执行ICP以确定第二误差(误差2)和第二优化位姿(POS 2)。
方法900包括比较误差1和误差2。如果误差1大于误差2,则输出第二误差(误差2)和第二位姿(POS 2)。可选择地,如果误差1小于或等于误差2,则输出第一误差(误差1)和第一位姿(POS 1)。在其它实现中,如果误差1大于或等于误差2,则输出第二误差(误差2)和第二位姿(POS 2),如果误差1小于误差2,则输出第一误差(误差1)和第一位姿(POS 1)。
参考图10,示出了执行对象识别的方法1000。例如,方法1000可用于在制造业环境中随机箱中取物。方法1000可以由电子装置120(例如,处理器122)、系统200的一个或多个部件、一个或多个处理器或其组合来执行。
方法1000包括在1002对与对象相关联的第一3D表面数据执行三维(3D)到二维(2D)投影操作,以产生与对象相关联的2D数据。例如,3D到2D投影可包括或对应于3D到2D投影器210、图4的步骤406或图6的方法600。第一3D表面数据可以与对象的平面表面相关联。
方法1000还包括在1304基于匹配结果数据由2D数据的至少一部分产生3D位姿数据。例如,2D到3D投影可包括或对应于2D到3D投影器220、图4的步骤408、410或图6的方法600。
在一些实现方式中,方法1000还包括接收点云数据并对点云数据执行分割操作以产生第一3D平面数据,第一3D平面数据与平面表面相关联。例如,分割操作可包括或对应于分割器204,图4的步骤402、404,图5的方法500。在这种实现中,方法1000可进一步包括执行分割操作,所述分割操作包括识别点云数据的种子点,执行体素生长操作以产生第一3D表面数据的,并基于第一3D表面数据确定平面表面的法线。
在一些实现方式中,执行3D到2D投影操作包括产生与第一3D表面数据相关联的特征信息(例如,214)。该特征信息可包括与一个或多个平面特征向量相关联的平面中心数据和特征向量数据。在一些这样的实现中,可基于特征信息进一步产生3D位姿数据。
在一些实现方式中,方法1000包括执行匹配操作以产生匹配数据结果,该匹配操作是对2D数据和与一个或多个模板相关联的模板数据执行的。例如,分割操作可包括或对应于匹配器216、图4的步骤408或图7的方法700。匹配操作可包括2D倒角匹配操作或另一匹配操作。不同于2D倒角匹配的匹配操作可产生2D位置和旋转输出。
在一些实现方式中,方法1000包括基于3D位姿数据对第一3D表面数据执行分割操作,以产生第二3D表面数据。例如,分割操作可包括或对应于分割器224、图4的步骤412或图8的方法800。第一3D表面数据和第二3D表面数据可以是相同的数据。可选择地,第二3D表面数据可以是第一3D表面数据的子集(例如,第一3D表面数据和第二3D表面数据是不同的)。在一些实现方式中,分割操作进一步产生了第三3D表面数据。另外,或可选地,方法1000包括选择3D对象模板,使用第二3D表面数据和3D对象模板执行迭代最近点(ICP)操作,并基于ICP操作输出优化的3D位姿。例如,分割操作可包括或对应于优化器230、图4的步骤412或图9的方法900。
图10的方法1000能够检测/识别对象(例如,具有平面表面的对象)并识别其3D位置和取向。这种检测和/或识别可用于或应用于制造业和机器人工业应用中的随机箱中取物。方法1000在不依赖于2D颜色/纹理、在不执行不可靠的3D特征提取的情况下,执行检测和/或识别。另外,方法1000有利地提高了对象识别的总效率和准确度。例如,对于具有平面表面或特征的对象,可以提高总效率和准确度。
图1-2的系统、图4-10的方法或其组合中的任何一个所示出或描述的过程,都可由处理单元例如中央处理单元(CPU)、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置、固件装置或它们的任意组合来控制。例如,作为实例,图1-2的系统、图4-10的方法或其组合中的任何一个,都可由执行对象识别的一个或多个处理器来执行。此外,图1-2的系统或图4-10的方法所描述的一个过程的第一部分可以与图1-2的系统或图4-10的方法所描述的另一个过程的至少第二部分相结合。例如,图10的方法1000的第一部分可以与图6的方法600的第二部分相结合。
虽然图1-10中的一幅或多幅图可根据本公开的教导示例系统、装置、数据结构、方法或其组合,但本公开不限于这些示例的系统、装置、方法或其组合。本文所示例或描述的图1-10中的任一幅图的一个或多个功能或部件可以与图1-10的另一功能或部件一个或多个其它部分相结合。因此,本文所描述的任何单个实现都不应被理解为限制,并且在不脱离公开的教导的情况下,可以适当地组合本发明的实现方式。
本领域的技术人员应该理解,信息和信号可以用各种不同技术和技术中的任何一种来表示。例如,在上述描述中可引用的数据、指令、命令、信息、信号、位、符号和芯片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合来表示。
这些技术人员还应进一步认识到,关于本公开所描述的各种说明性逻辑块、模块、电路和算法步骤可被实现为电子硬件、计算机软件或两者的组合。为了清楚地示例硬件和软件的可互换性,各种示例性部件、块、模块、电路和步骤通常是根据它们的功能描述的。这些功能是被实现为硬件还是被实现为软件,取决于特定应用和强加于整个系统和设计约束。熟练的技术人员可以以不同的方式实现每个特定应用所描述的功能,但这种实现决策不应被解释为偏离本公开的范围。熟练的技术人员也应很容易地认识到,本文所描述的部件、方法或相互作用的顺序或组合仅仅是示例,并且本发明的各个方面的部件、方法或相互作用可以以与本文所示例和描述的那些方式不同的方式来组合或执行。
图1-2中的功能块和模块可包括处理器、电子装置、硬件装置、电子部件、逻辑电路、存储器、软件代码、固件代码等,或它们的任何组合。与前述一致,关于本公开所描述的各种示例性的逻辑块、模块和电路可以用通用处理器,数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件,分立门或晶体管逻辑,离散的硬件部件,或设计为执行本文所述的功能的任意组合来实现或执行。通用处理器可以是微处理器,但在另一个选择中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可被实现为计算装置的组合,例如DSP和微处理器的组合,多个微处理器、与DSP核心结合的一个或多个微处理器或任何其它这种配置。
关于本公开所述的方法或算法的步骤可直接在硬件中实现,在由处理器执行的软件模块中实现,或在两者的组合中实现。软件模块可存在RAM存储器、闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域所知的任何其它形式的存储介质中。示例性存储介质被耦接到处理器,使得处理器能够从存储介质读取信息,并向存储介质写入信息。在替代方案中,存储介质可以是处理器的组成部分。处理器和存储介质可以驻留在专用集成电路中。ASIC可驻留在用户终端、基站、传感器或任何其它通信装置中。在替代方案中,处理器和存储介质可以作为离散部件驻留在用户终端中。
在一个或多个示例性设计中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,该功能可作为一个或多个指令或代码被存储在计算机可读介质上或在计算机可读介质上传输。计算机可读介质包括计算机存储介质和其中包括有助于将计算机程序从一个地方传送到另一个地方的任何介质的通信媒体。计算机可读存储介质可以是能用通用或专用计算机访问的任何可用介质。通过举例、而非限制的方式,这种计算机可读介质包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储装置,或者可用于以指令或数据结构的形式携带或存放所需的程序代码的并且可用通用或专用计算机或通用或专用处理器访问的任何其它介质。另外,连接可被恰当地称为计算机可读介质。例如,如果软件使用同轴电缆、光纤电缆、双绞线或数字用户线(DSL)从网站、服务器或其它远程源传输,那么同轴电缆、光纤电缆、双绞线或DSL就包含在媒体的定义中。如这里所使用的磁盘和光盘,包括光盘(光盘)、激光光盘、光盘,数字多用途光盘(DVD),软盘和蓝光光盘,其中磁盘通常以磁方式再现数据,而光盘则用激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。
虽然已经详细描述了本发明及其优点,但应该理解,在不偏离附属权利要求所定义的本发明的精神和范围的情况下,可以进行各种更改、替换和修改。此外,本申请的范围不意指限制于说明书所述的过程、机器、制造、物质组成、手段、方法和步骤的特定实施例。作为本领域普通技术人员应从本发明的公开中很容易地认识到,根据本本发明可以利用目前现有的或以后被开发的、执行与本文所述的相应实施例基本相同的功能的或实现与其基本相同的结果的过程、机器、制造、物质组成、手段、方法和步骤。因此,所附权利要求书意指包括在其范围内的这些过程、机器、制造、物质组成、手段、方法或步骤。
Claims (27)
1.一种用于执行对象识别的方法,所述方法包括:
对与对象相关联的第一3D表面数据执行三维(3D)到二维(2D)投影操作,以产生与该对象相关联的2D数据;和
基于匹配结果数据由2D数据的至少一部分产生3D位姿数据。
2.根据权利要求1所述的方法,其中,第一3D表面数据与所述对象的平面表面相关联。
3.根据权利要求1所述的方法,进一步包括基于3D位姿数据对第一3D表面数据执行分割操作以产生第二3D表面数据。
4.根据权利要求1所述的方法,进一步包括:
接收点云数据;和
对点云数据执行分割操作以产生第一3D表面数据,所述第一3D表面数据与平面表面相关联。
5.根据权利要求4所述的方法,其中,执行分割操作包括:
识别点云数据的种子点;
执行体素生长操作以产生所述第一3D表面数据;和
基于所述第一3D表面数据确定平面表面的法线。
6.根据权利要求1所述的方法,其中,执行3D到2D投影操作包括产生与第一3D相关联的特征信息。
7.根据权利要求6所述的方法,其中,特征信息包括平面中心数据和与一个或多个平面特征向量相关联的特征向量数据。
8.根据权利要求6所述的方法,其中,进一步基于特征信息产生3D位姿数据。
9.根据权利要求1所述的方法,进一步包括执行匹配操作以产生匹配数据结果,所述匹配操作是对2D数据和与一个或多个模板相关联的模板数据执行的。
10.根据权利要求9所述的方法,其中,匹配操作包括2D倒角匹配操作。
11.根据权利要求1所述的方法,进一步包括基于3D位姿数据对第一3D表面数据执行分割操作以产生第二3D表面数据。
12.根据权利要求11所述的方法,其中,第一3D表面数据和第二3D表面数据是相同的数据。
13.根据权利要求11所述的方法,其中,分割操作进一步产生第三3D表面数据。
14.根据权利要求11所述的方法,进一步包括:
选择3D对象模板;
使用第二3D表面数据和3D对象模板执行迭代最近点(ICP)操作;和
基于ICP操作输出优化的3D位姿。
15.一种设备,包括:
配置为存储指令的存储器;和
耦接到存储器的处理器,所述处理器被配置成执行所述指令以使处理器:
对与对象相关联的第一3D表面数据执行三维(3D)到二维(2D)投影操作,以产生与所述对象相关联的2D数据;和
基于匹配结果数据由2D数据的至少一部分产生3D位姿数据。
16.根据权利要求15所述的设备,其中,3D表面数据包括平面表面数据。
17.根据权利要求15所述的设备,进一步包括被配置为接收点云数据的接口。
18.根据权利要求17所述的设备,其中,所述处理器进一步被配置成执行指令以使处理器对点云数据进行分割以产生第一3D表面数据,所述第一3D表面数据包括3D点云数据的子集。
19.根据权利要求17所述的设备,其中,所述处理器进一步被配置成执行指令以使处理器执行匹配操作,以产生匹配数据结果。
20.根据权利要求17所述的设备,其中,所述处理器进一步被配置成执行指令以使处理器基于3D位姿数据分割第一3D表面数据,以产生第二3D表面数据。
21.根据权利要求15所述的设备,其中,所述处理器进一步被配置成执行所述指令以使处理器产生输出数据,所述输出数据指示对象的对象类型、对象的位置、对象的取向或其组合。
22.一种包括指令的非暂时性计算机可读介质,当处理器执行指令时,使所述处理器:
基于与对象相关联的第一三维(3D)表面数据产生二维(2D)数据;和
基于匹配结果数据由2D数据的至少一部分产生3D位姿数据。
23.根据权利要求22所述的非暂时性计算机可读介质,其中,当所述处理器执行所述指令时,进一步使处理器:
接收3D点云数据;和
分割3D点云数据以产生第一3D表面数据,所述第一3D表面数据包括3D点云数据的子集。
24.根据权利要求22所述的非暂时性计算机可读介质,其中,当所述处理器执行所述指令时,进一步使处理器:
选择2D对象模板;
比较2D对象模板和2D数据;以及
基于2D对象模板与2D数据匹配的确定产生匹配结果数据并计算从2D对象模板到2D数据表示的2D平移和旋转。
25.根据权利要求22所述的非暂时性计算机可读介质,其中,当所述处理器执行所述指令时,进一步使所述处理器基于3D位姿数据分割第一3D表面数据以产生第二3D表面数据。
26.根据权利要求22所述的非暂时性计算机可读介质,其中,第二3D表面数据包括第一3D表面数据的子集。
27.根据权利要求22所述的非暂时性计算机可读介质,其中,当所述处理器执行所述指令时,进一步使处理器:
选择3D对象模板;
使用第二3D表面数据和3D对象模板执行双向迭代最近点(ICP)操作;和
基于ICP操作输出3D位姿。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/912,290 US10671835B2 (en) | 2018-03-05 | 2018-03-05 | Object recognition |
| US15/912,290 | 2018-03-05 | ||
| PCT/CN2018/078615 WO2019169635A1 (en) | 2018-03-05 | 2018-03-09 | Object recognition |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN109463003A true CN109463003A (zh) | 2019-03-12 |
Family
ID=65616481
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201880000243.1A Pending CN109463003A (zh) | 2018-03-05 | 2018-03-09 | 对象识别 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109463003A (zh) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111080627A (zh) * | 2019-12-20 | 2020-04-28 | 南京航空航天大学 | 一种基于深度学习的2d+3d大飞机外形缺陷检测与分析方法 |
| CN111462141A (zh) * | 2020-05-19 | 2020-07-28 | 北京爱笔科技有限公司 | 点云平面的获取方法及装置、设备、计算机可读存储介质 |
| CN112352262A (zh) * | 2020-04-14 | 2021-02-09 | 香港应用科技研究院有限公司 | 候选六维位姿假设选择 |
| CN113190120A (zh) * | 2021-05-11 | 2021-07-30 | 浙江商汤科技开发有限公司 | 位姿获取方法、装置、电子设备及存储介质 |
| CN113538566A (zh) * | 2021-07-15 | 2021-10-22 | 武汉港迪智能技术有限公司 | 基于激光雷达的货船舱口位置获取方法及系统 |
| CN115690111A (zh) * | 2021-07-22 | 2023-02-03 | 西门子公司 | 平面对象分割 |
| CN119152074A (zh) * | 2024-11-18 | 2024-12-17 | 杭州海康机器人股份有限公司 | 一种模板生成方法、装置、电子设备以及存储介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100166294A1 (en) * | 2008-12-29 | 2010-07-01 | Cognex Corporation | System and method for three-dimensional alignment of objects using machine vision |
| US20130250042A1 (en) * | 2012-03-21 | 2013-09-26 | Sony Computer Entertainment Europe Limited | System and method of imaging |
| US20140204088A1 (en) * | 2013-01-18 | 2014-07-24 | Microsoft Corporation | Surface codec using reprojection onto depth maps |
| CN106530297A (zh) * | 2016-11-11 | 2017-03-22 | 北京睿思奥图智能科技有限公司 | 基于点云配准的物体抓取区域定位方法 |
| CN106842216A (zh) * | 2017-02-13 | 2017-06-13 | 大连理工大学 | 一种基于Kinect与三维激光协同的工件位姿在线检测方法 |
| CN107507167A (zh) * | 2017-07-25 | 2017-12-22 | 上海交通大学 | 一种基于点云平面轮廓匹配的货物托盘检测方法及系统 |
-
2018
- 2018-03-09 CN CN201880000243.1A patent/CN109463003A/zh active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100166294A1 (en) * | 2008-12-29 | 2010-07-01 | Cognex Corporation | System and method for three-dimensional alignment of objects using machine vision |
| US20130250042A1 (en) * | 2012-03-21 | 2013-09-26 | Sony Computer Entertainment Europe Limited | System and method of imaging |
| US20140204088A1 (en) * | 2013-01-18 | 2014-07-24 | Microsoft Corporation | Surface codec using reprojection onto depth maps |
| CN106530297A (zh) * | 2016-11-11 | 2017-03-22 | 北京睿思奥图智能科技有限公司 | 基于点云配准的物体抓取区域定位方法 |
| CN106842216A (zh) * | 2017-02-13 | 2017-06-13 | 大连理工大学 | 一种基于Kinect与三维激光协同的工件位姿在线检测方法 |
| CN107507167A (zh) * | 2017-07-25 | 2017-12-22 | 上海交通大学 | 一种基于点云平面轮廓匹配的货物托盘检测方法及系统 |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111080627A (zh) * | 2019-12-20 | 2020-04-28 | 南京航空航天大学 | 一种基于深度学习的2d+3d大飞机外形缺陷检测与分析方法 |
| CN112352262A (zh) * | 2020-04-14 | 2021-02-09 | 香港应用科技研究院有限公司 | 候选六维位姿假设选择 |
| CN111462141A (zh) * | 2020-05-19 | 2020-07-28 | 北京爱笔科技有限公司 | 点云平面的获取方法及装置、设备、计算机可读存储介质 |
| CN111462141B (zh) * | 2020-05-19 | 2024-01-12 | 北京爱笔科技有限公司 | 点云平面的获取方法及装置、设备、计算机可读存储介质 |
| CN113190120A (zh) * | 2021-05-11 | 2021-07-30 | 浙江商汤科技开发有限公司 | 位姿获取方法、装置、电子设备及存储介质 |
| CN113538566A (zh) * | 2021-07-15 | 2021-10-22 | 武汉港迪智能技术有限公司 | 基于激光雷达的货船舱口位置获取方法及系统 |
| CN115690111A (zh) * | 2021-07-22 | 2023-02-03 | 西门子公司 | 平面对象分割 |
| CN119152074A (zh) * | 2024-11-18 | 2024-12-17 | 杭州海康机器人股份有限公司 | 一种模板生成方法、装置、电子设备以及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10671835B2 (en) | Object recognition | |
| CN109463003A (zh) | 对象识别 | |
| Guo et al. | Efficient center voting for object detection and 6D pose estimation in 3D point cloud | |
| JP6216508B2 (ja) | 3dシーンにおける3d物体の認識および姿勢決定のための方法 | |
| Aldoma et al. | CAD-model recognition and 6DOF pose estimation using 3D cues | |
| Rock et al. | Completing 3d object shape from one depth image | |
| JP5677798B2 (ja) | 3次元シーンにおける3次元物体の認識及び位置姿勢決定方法 | |
| JP4865557B2 (ja) | 有界三次元対象物の分類と空間ローカライゼーションのためのコンピュータ視覚システム | |
| Rodrigues et al. | 6D pose estimation of textureless shiny objects using random ferns for bin-picking | |
| CN107038751A (zh) | 从2d图像进行3d建模对象的识别 | |
| CN109544599B (zh) | 一种基于相机位姿估计的三维点云配准方法 | |
| CN112712062A (zh) | 基于解耦截断物体的单目三维物体检测方法和装置 | |
| CN116883463B (zh) | 一种基于多域多维特征图的三维配准重建方法 | |
| CN109886297A (zh) | 一种用于从二维图像识别三维模型对象的方法 | |
| CN113168729A (zh) | 一种基于局部参考坐标系的3d形状匹配方法及装置 | |
| Sølund et al. | A large-scale 3D object recognition dataset | |
| CN116110040A (zh) | 一种基于shot特征和esf特征结合的变电站设备识别方法及装置 | |
| Zhou et al. | Histograms of Gaussian normal distribution for 3D feature matching in cluttered scenes | |
| CN105844290B (zh) | 匹配图像中多个相同对象的方法及装置 | |
| Ward et al. | A model-based approach to recovering the structure of a plant from images | |
| CN115578391B (zh) | 一种基于全局环境感知的特征快速识别方法 | |
| JP6355372B2 (ja) | 三次元モデル特徴抽出方法、及び三次元モデル・アノテーションシステム | |
| CN116664690A (zh) | 一种基于点云配准的自适应目标定位方法 | |
| You et al. | Improved boundary identification of stacked objects with sparse LiDAR augmentation scanning | |
| JP7265143B2 (ja) | 表示制御方法、表示制御プログラムおよび情報処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190312 |