The present disclosure is related to computing systems and methods for performing or facilitating physical edge detection.
As automation becomes more common, robots are being used in more environments, such as in warehousing and retail environments. For instance, robots may be used to interact with objects in a warehouse. The movement of the robot may be fixed, or may be based on an input, such as information generated by a sensor in the warehouse.
One aspect of the present disclosure relates to a computing system or a method performed by the computing system. The computing system may include a communication interface and at least one processing circuit. The communication interface may be configured to communicate with a robot and with a camera having a camera field of view. The at least one processing circuit may be configured, when a group of objects are in the camera field of view, to perform the following: receiving image information representing the group of objects, wherein the image information is generated by the camera; identifying, from the image information, a plurality of candidate edges associated with the group of objects, wherein the plurality of candidate edges are or include respective sets of image locations or physical locations that form respective candidates for representing physical edges of the group of objects; determining, when the plurality of candidate edges include a first candidate edge which is formed based on a border between a first image region and a second image region, whether the image information satisfies a defined darkness condition at the first candidate edge, wherein the first image region is darker than the second image region, wherein the first image region and the second image region are respective regions described by the image information; selecting a subset of the plurality of candidate edges to form a selected subset of candidate edges for representing the physical edges of the group of objects, wherein the selecting includes: determining, based on whether the image information satisfies the defined darkness condition at the first candidate edge, whether to retain the first candidate edge as a candidate for representing at least one of the physical edges of the group of objects by including the first candidate edge in the selected subset of candidate edges.
One aspect of the present disclosure relates to using image information that represents a group of objects to detect or otherwise identify physical edges of the group of objects. For instance, the 2D image may represent a group of boxes, and may include candidate edges that potentially represent physical edges of the group of boxes. A computing system may use the candidate edges in the image information to distinguish between the individual objects represented in the image information. In some instances, the computing system may use information identifying the individual boxes to control robot interaction involving the individual boxes. For example, the robot interaction may include a de-palletization operation in which a robot's end effector apparatus approaches one of the objects, picks up the object, and moves the object to a destination location.
In some scenarios, a 2D image or other image information may include a candidate edge which is a false edge, which may be a candidate edge that does not correspond to any actual physical edge of objects in a camera field of view. Thus, one aspect of the present disclosure relates to evaluating a candidate edge to determine a confidence level that the candidate edge corresponds to an actual physical edge, as opposed to being a false edge. In an embodiment, such a determination may be based on an expectation or prediction regarding how certain physical edges will likely appear in an image. More particularly, such a determination may be based on an expectation that if a physical edge is associated with a physical gap between objects (e.g., the physical edge forms one side of the physical gap), such a physical gap may appear very dark in an image, and/or may have an image intensity profile that features a spiked reduction in image intensity in an image region corresponding to the physical gap. Thus, a method or computing system of the present disclosure may operate based on an expectation that a physical gap between objects, especially a narrow physical gap, will likely be represented by an image which has certain characteristics relating to how dark the physical gap may appear in the image. Such characteristics or features of the image may be referred to as a dark prior, and the present disclosure may relate to detecting a dark prior, wherein presence of the dark prior may increase a confidence level regarding whether a candidate edge corresponds to an actual physical edge.
In an embodiment, a method or system of the present disclosure may determine whether an image satisfies a defined darkness condition at a candidate edge, wherein the defined darkness condition may be related to detecting a dark prior. More particularly, the defined darkness condition may be defined by a darkness threshold criterion, and/or a spiked intensity profile criterion, which are discussed below in more detail. In this embodiment, if the computing system or method determines that the image satisfies the defined darkness condition at a candidate edge, there may be a greater confidence level that the candidate edge corresponds to an actual physical edge, such as a physical edge forming one side of a physical gap between two objects. In some instances, if the image does not satisfy the defined darkness condition at a candidate edge, there may be a greater likelihood that the candidate edge is a false edge.
One aspect of the present disclosure relates to using 2D image information to compensate for limitations in 3D image information, and vice versa. For example, if multiple objects, such as two or more boxes, are placed closely next to each other, and are separated by a narrow physical gap, the 3D image information may not have a sufficiently high level of resolution to capture or otherwise represent the physical gap. Thus, the 3D image information may have limitations in its ability to be used for distinguishing among individual objects of the multiple objects, especially if the multiple objects have the same depth relative to a camera that generated the 3D image information. In such an example, the physical gap between the multiple objects may be represented in the 2D image information. More particularly, the physical gap may be represented by an image region which may satisfy the defined darkness condition. A candidate edge associated with such an image region may thus represent, with a high level of confidence, a physical edge of an object. In such a situation, the candidate edge in the 2D image information may be useful in distinguishing among individual objects of a group of objects. Thus, the 2D image information may provide an increased ability to distinguish among the individual objects in certain circumstances.
In certain situations, the 3D image information may compensate for limitations in the 2D image information. For instance, a 2D image may not satisfy a defined darkness condition at a certain candidate edge in the 2D image. In such instances, the candidate edge may have a low confidence level for corresponding to any actual physical edge objects in the camera field of view. The 3D image information may be used to compensate for this limitation in the 2D image information if the candidate edge in the 2D image information corresponds to a candidate edge in the 3D image information. More particularly, the candidate edge in the 2D image information may map to a location or set of locations in the 3D image information at which there is a sharp change in depth. In such a situation, the 3D image information may be used to increase a confidence level by which a candidate edge in the 2D image information corresponds to an actual physical edge.
In an embodiment, the 3D image information may be used to identify a surface (e.g., top surface) of an object, and a candidate edge may be identified based on a location at which there is a transition between two surfaces. For example, the surface may be identified based on a set of locations which have respective depth values in the 3D image information that do not deviate from each other by more than a defined measurement variance threshold. The defined measurement variance threshold may describe an effect of imaging noise, manufacturing tolerance, or other factor which may introduce random fluctuation in depth measurements in the 3D image information. A surface which is identified may be associated with a depth value which is an average of the respective depth values. In some implementations, a candidate edge may be detected in the 3D image information based on identifying a transition in depth, between two surfaces identified in the 3D image information, that is more than a defined depth difference threshold.
In an embodiment, the camera 1200 (also referred to as an image sensing device) may be a 2D camera and/or a 3D camera. For example,
In an embodiment, the system 1000 may be a robot operation system for facilitating robot interaction between a robot and various objects in the environment of the camera 1200. For example,
In an embodiment, the computing system 1100 of
In an embodiment, the computing system 1100 may form or be part of a vision system. The vision system may be a system which generates, e.g., vision information which describes an environment in which the robot 1300 is located, or more specifically describes an environment in which the camera 1200 is located. The vision information may include the 3D image information and/or the 2D image information discussed above, or some other image information. In some scenarios, if the computing system 1100 forms a vision system, the vision system may be part of the robot control system discussed above, or may be separate from the robot control system. If the vision system is separate from the robot control system, the vision system may be configured to output information describing the environment in which the robot 1300 is located. The information may be outputted to the robot control system, which may receive such information from the vision system and performs motion planning and/or generates robot interaction movement commands based on the information.
In an embodiment, the computing system 1100 may communicate with the camera 1200 and/or with the robot 1300 via a direct connection, such as a connection provided via a dedicated wired communication interface, such as a RS-232 interface, a universal serial bus (USB) interface, and/or via a local computer bus, such as a peripheral component interconnect (PCI) bus. In an embodiment, the computing system 1100 may communicate with the camera 1200 and/or with the robot 1300 via a network. The network may be any type and/or form of network, such as a personal area network (PAN), a local-area network (LAN), e.g., Intranet, a metropolitan area network (MAN), a wide area network (WAN), or the Internet. The network may utilize different techniques and layers or stacks of protocols, including, e.g., the Ethernet protocol, the internet protocol suite (TCP/IP), the ATM (Asynchronous Transfer Mode) technique, the SONET (Synchronous Optical Networking) protocol, or the SDH (Synchronous Digital Hierarchy) protocol.
In an embodiment, the computing system 1100 may communicate information directly with the camera 1200 and/or with the robot 1300, or may communicate via an intermediate storage device, or more generally an intermediate non-transitory computer-readable medium. For example,
As stated above, the camera 1200 may be a 3D camera and/or a 2D camera. The 2D camera may be configured to generate a 2D image, such as a color image or a grayscale image. The 3D camera may be, e.g., a depth-sensing camera, such as a time-of-flight (TOF) camera or a structured light camera, or any other type of 3D camera. In some cases, the 2D camera and/or 3D camera may include an image sensor, such as a charge coupled devices (CCDs) sensor and/or complementary metal oxide semiconductors (CMOS) sensor. In an embodiment, the 3D camera may include lasers, a LIDAR device, an infrared device, a light/dark sensor, a motion sensor, a microwave detector, an ultrasonic detector, a RADAR detector, or any other device configured to capture depth information or other spatial structure information.
As stated above, the image information may be processed by the computing system 1100. In an embodiment, the computing system 1100 may include or be configured as a server (e.g., having one or more server blades, processors, etc.), a personal computer (e.g., a desktop computer, a laptop computer, etc.), a smartphone, a tablet computing device, and/or other any other computing system. In an embodiment, any or all of the functionality of the computing system 1100 may be performed as part of a cloud computing platform. The computing system 1100 may be a single computing device (e.g., a desktop computer), or may include multiple computing devices.
In an embodiment, the non-transitory computer-readable medium 1120, which is part of the computing system 1100, may be an alternative or addition to the intermediate non-transitory computer-readable medium 1400 discussed above. The non-transitory computer-readable medium 1120 may be a storage device, such as an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof, for example, such as a computer diskette, a hard disk drive (HDD), a solid state drive (SSD), a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, any combination thereof, or any other storage device. In some instances, the non-transitory computer-readable medium 1120 may include multiple storage devices. In certain implementations, the non-transitory computer-readable medium 1120 is configured to store image information generated by the camera 1200 and received by the computing system 1100. In some instances, the non-transitory computer-readable medium 1120 may store one or more object recognition templates used for performing an object recognition operation. The non-transitory computer-readable medium 1120 may alternatively or additionally store computer readable program instructions that, when executed by the processing circuit 1110, causes the processing circuit 1110 to perform one or more methodologies described here, such as the operations described with respect to
In an embodiment, as depicted in
In an embodiment, the processing circuit 1110 may be programmed by one or more computer-readable program instructions stored on the non-transitory computer-readable medium 1120. For example,
In an embodiment, the physical edge detection module 1125 may be configured to determine which candidate edge(s), from among a plurality of candidate edges appearing in image information representing a group of objects, should be used to represent physical edges of the group of objects. In some implementations, the physical edge detection module 1125 may make such a determination based on whether a defined darkness condition is satisfied, and/or whether a depth discontinuity condition is satisfied, as discussed below in more detail. In some instances, the physical edge detection module 1125 may also be also configured to identify the plurality of candidate edges from the image information. In some instances, the physical edge detection module 1125 may be configured to perform image segmentation (e.g., point cloud segmentation), which may involve distinguishing between individual objects represented by the image information. For example, the module 1125 may extract or otherwise identify an image segment (also referred to as image portion) of the image information that represents one object of the group of objects. In some implementations, the image segmentation may be performed based on, e.g., candidate edges which the module 1125 has determined should be used to represent physical edges of the group of objects.
In an embodiment, the object recognition/registration module 1128 may be configured to perform an object recognition operation or object registration module based on a result from the physical edge detection module 1125. For instance, if the physical edge detection module 1125 identifies an image segment that represents one object of the group of objects, the object recognition/registration module 1128 may be configured to, e.g., determine whether the image segment sufficiently matches an object recognition template, and/or generate a new object recognition template based on the image segment.
In an embodiment, the motion planning module 1129 may be configured to perform robot motion planning based on a result of the physical edge detection module 1125 and/or based on a result of the object recognition/registration module 1128. As stated above, the robot motion planning may be for robot interaction between a robot (e.g., 1300) and at least one object of the group of objects. In some instances, the robot motion planning may involve, e.g., determining movements by a component of the robot (e.g., end effector apparatus) for picking up an object, and/or a trajectory for the component to follow after picking up the object.
In various embodiments, the terms “computer-readable instructions” and “computer-readable program instructions” are used to describe software instructions or computer code configured to carry out various tasks and operations. In various embodiments, the term “module” refers broadly to a collection of software instructions or code configured to cause the processing circuit 1110 to perform one or more functional tasks. The modules and computer-readable instructions may be described as performing various operations or tasks when a processing circuit or other hardware component is executing the modules or computer-readable instructions.
The objects 3510-3540 are also depicted in
In an embodiment, an object in a camera field of view may have visual detail (also referred to as visible detail), such as visual markings, on an outer surface of the object. For example, as illustrated in
In an embodiment, the system 3000 of
In an embodiment, as illustrated in
In the example of
As discussed above, one aspect of the present disclosure relates to performing or facilitating detection of one or more physical edges of a group of objects, such as a group of boxes, based on image information that represents the one or more objects.
In an embodiment, the method 4000 may be performed by, e.g., the computing system 1100 of
In an embodiment, one or more steps of the method 4000 may be performed when a group of objects (e.g., 3510-3550) are currently in a camera field of view (e.g., 3210/3210A/3210B) of the camera (e.g., 3200/3200A/3200B). For instance, one or more steps of the method 4000 may be performed immediately after the group of objects are in the camera field of view (e.g., 3210/3210A/3210B) or, more generally, while the group of objects are in the camera field of view. In some scenarios, the one or more steps of the method 4000 may be performed when the group of objects have been in the camera field of view. For example, when the group of objects are in the camera field of view (e.g., 3210/3210A/3210B), the camera (e.g., 3200/3200A/3200B) may generate image information representing the group of objects, and may communicate the image information to the computing system (e.g., 1100). The computing system may perform one or more steps of the method 4000 based on the image information, while the group of objects are still in the camera field of view, or even when some or all of the group of objects are no longer in the camera field of view.
In an embodiment, the method 4000 may begin with or otherwise include a step 4002, in which the computing system 1100 receives image information representing a group of objects in a camera field of view (e.g., 3210/3210A/3210B) of a camera (e.g., 3200/3200A/3200B). The image information may be generated by the camera (e.g., 3200/3200A/3200B) when the group of objects is (or has been) in the camera field of view, and may include, e.g., 2D image information and/or 3D image information. For instance,
In an embodiment, step 4002 may involve receiving both 2D image information and 3D image information. In some instances, the computing system 1100 may use the 2D image information to compensate for limitations of the 3D image information, and vice versa. For instance, when multiple objects in a camera field of view are placed close to each other, and have substantially equal depth relative to a camera (e.g., 3200B), the 3D image information (e.g. 5700) may describe a plurality of locations with substantially equal depth values, and may lack detail for distinguishing between individual objects represented in the 3D image information, especially if spacing between the objects are too narrow for a resolution of the 3D image information. In some instances, the 3D image information may have erroneous or missing information due to noise or other source of error, which may further increase a difficulty of distinguishing between individual objects. In this example, the 2D image information may compensate for this lack of detail by capturing or otherwise representing physical edges between individual objects. In some instances, however, the 2D image information may include false edges, as discussed below, which may be candidate edges that do not correspond to any actual physical edges. In some implementations, the computing system 1100 may evaluate the likelihood that a candidate edge is a false edge, by determining whether the 2D image information satisfies a defined darkness condition at the candidate edge, as discussed below with respect to step 4006. In some implementations, the computing system 1100 may determine whether that candidate edge corresponds to a physical edge in the 3D image information, such as when the candidate edge corresponds to physical locations at which the 3D image information describes a sharp change in depth. In such a scenario, the 3D image information may be used to check whether a candidate edge is a false edge, and may supplement or replace the use of the defined darkness condition, thus providing a more robust manner of determining whether a candidate edge is a false edge or whether the candidate edge corresponds to an actual physical edge.
Returning to
In an embodiment, image information may include some candidate edges which correspond to actual physical edges, and include some candidate edges which are false edges. For instance, the candidate edges 56011, 56012, 56015, 56016 in
In one example, if the image information includes 3D information, a candidate edge may refer to a set of image locations or a set of physical locations. As an example, if the image locations are pixel locations, they may correspond to a set of pixels that appear like a physical edge. In another example, if the 3D image information includes a depth map, a candidate edge may include a set of pixel locations that define, e.g., a line or line segment, which may form a border at which there is a sharp change in depth in the depth map. If the 3D image information describes 3D coordinates of physical locations on an object's surface (e.g., via a point cloud), a candidate edge may include a set of physical locations that also define, e.g., an imaginary line or line segment, which may also form a border at which there is there is a sharp change in depth in the point cloud or other 3D image information. For instance,
In an embodiment, if the computing system 1100 identifies both 2D candidate edges and 3D candidate edges, the computing system 1100 may be configured to determine whether any of the 2D candidate edges (e.g., 56015) represent a common physical edge with one of the 3D candidate edges (e.g., 57011), or vice versa. In other words, the computing system 1100 may determine whether any of the 2D candidate edges maps to one of the 3D candidate edges, or vice versa. The mapping may be based on, e.g., converting coordinates of a 2D candidate edge from being expressed in a coordinate system of the 2D image information to being expressed in a coordinate system of the 3D image information, or converting coordinates of a 3D candidate edge from being expressed in the coordinate system of the 3D image information to being expressed in the coordinate system of the 2D image information. Mapping from 2D candidate edges to 3D candidate edges is discussed in more detail in U.S. patent application Ser. No. 16/791,024 (Atty Dkt. MJ0049-US/0077-0009US1), entitled “METHOD AND COMPUTING SYSTEM FOR PROCESSING CANDIDATE EDGES,” the entire content of which is incorporated by reference herein.
As stated above, the computing system 1100 may identify a candidate edge from a 2D image or other 2D image information by identifying image locations (e.g., pixel locations) in the 2D image information at which there is a sharp change in image intensity (e.g., pixel intensity). In some implementations, the sharp change may occur at a border between two image regions in which one image region is darker than the other image region. For instance, the two image regions may include a first image region and a second image region. The first image region may be a region of the 2D image that is darker than one or more immediately adjacent regions, which may include the second image region. The darkness of an image region may be indicative of how much reflected light from a corresponding physical region is detected or otherwise sensed by a camera (e.g., 3200/3200A) which generated the image information (e.g., 5600). More particularly, a darker image region may indicate that the camera sensed a relatively small amount of reflected light (or no reflected light) from the corresponding physical region. In some implementations, the darkness of an image region may indicate how close is image intensity in the image region to a minimum possible image intensity value (e.g., zero). In these implementations, a darker image region may indicate that an image intensity value(s) of the image region is closer to zero, while a less dark image region may indicate that an image intensity value(s) of the image region is closer to a maximum possible image intensity value.
In an embodiment, the second image region may have an elongated shape, such as a rectangular band or a line or line segment. As an example,
In an embodiment, the computing system 1100 may detect or otherwise identify a candidate edge, such as one of the candidate edges 56011-56016, based on an image edge detection technique, which may detect, e.g., a sharp change in image intensity. For instance, the computing system 1100 may be configured to detect a candidate edge in a 2D image or other image information by applying a Sobel operator, a Prewitt operator, or other technique for determining intensity gradient in the 2D image, and/or by applying a Canny edge detector or other edge detection technique.
In an embodiment, if a computing system 1100 identifies an image region in a 2D image that is a band of pixels which is darker than one or more immediately adjacent image regions, the image region may in some circumstances be wide enough to form more than candidate edge. For instance,
Returning to
In step 4006, the computing system 1100 may determine whether the image information (e.g., 2D image 5600) satisfies a defined darkness condition at the first candidate edge (e.g., 56012). Such a determination may more specifically include, e.g., determining whether the first image region (e.g., 56032) satisfies the defined darkness condition. In an embodiment, the defined darkness condition may be used to determine whether the first candidate edge (e.g., 56012) likely corresponds to an actual physical edge of an object (e.g., 3510) in a camera field of view (e.g., 3210/3210A), or whether the first candidate edge is likely a false edge.
In an embodiment, the defined darkness condition may be used to detect an image prior, or more specifically a dark prior. An image prior may refer to an image feature which has some likelihood of appearing in an image during certain circumstances, or which may be expected in the image. More specifically, the image prior may correspond to an expectation, anticipation, or prediction of what image feature(s) will be in an image that is generated in such circumstances, such as a circumstance in which the image is being generated to represent a group of boxes or other objects that are placed next to each other in a camera field of view. In some instances, a dark prior may refer to an image feature which has a high level of darkness, and/or has a spike-shaped image intensity profile (e.g., pixel intensity profile). The spike-shaped image intensity profile may involve a spiked increase in darkness and/or a spiked reduction in image intensity. The dark prior may correspond to a circumstance in which a group of boxes or other objects in a camera field of view are placed sufficiently close to each other such that there is only a narrow, physical gap between some or all of the objects. More particularly, the dark prior may correspond to an expectation, anticipation, or prediction that when an image is generated in such a circumstance to represent the group of objects, the physical gap will appear very dark in the image. More specifically, the dark prior may correspond to an expectation or prediction that an image region in the image which represents the physical gap will have a high level of darkness, and/or may have a spike-shaped image intensity profile, as discussed below in more detail. In some implementations, the dark prior may be used to determine whether a candidate edge likely corresponds to a physical edge, by evaluating whether an image region associated with the candidate edge corresponds to a physical gap between two objects.
In an embodiment, the defined darkness condition, which may in some scenarios be a condition for detecting a dark prior, may be based on a model of how a physical gap between two objects (e.g., 3510 and 3520 of
As an example of how the Lambertian model applies to a group of objects (e.g., 3510-3550 of
In some situations, a physical gap may appear darker at its middle than at its periphery. That is, if any reflected light leaves the physical gap, more reflected light may come from a periphery of the physical gap than from a middle of the physical gap. The periphery may refer to, e.g., locations in the physical gap which are closer to the physical edge 3520D or the physical edge 3510B. In some scenarios, a peak level of darkness may occur at the middle of the physical gap. Thus, an image region which represents a physical gap may have a spike-shaped image intensity profile (e.g., pixel intensity profile), in which the image intensity profile has a spiked increase in darkness or a spiked reduction in image intensity within the image region. Thus, the defined darkness condition in step 4006 may in some circumstances include a defined spiked intensity profile criterion, to evaluate whether the image region has, e.g., a spike-shaped image intensity profile (as opposed to, e.g., a step-shaped image intensity profile).
In an embodiment, the defined darkness condition may be defined by one or more rules, criteria, or other information which are stored in, e.g., the non-transitory computer-readable medium 1120 or elsewhere. For instance, the information may define whether the darkness condition is satisfied only by satisfying a darkness threshold criterion, only by satisfying a spiked intensity profile criterion, only by satisfying both criteria, or by satisfying any of the darkness threshold criterion or the spiked intensity profile criterion. In some instances, the information may be manually or otherwise predefined and stored in the non-transitory computer-readable medium 1120, such that the defined darkness condition may be a predefined darkness condition. In some instances, the information for the darkness condition may be dynamically defined.
In an embodiment, the defined darkness threshold criterion and/or the defined spiked intensity profile criterion may be defined by information which is stored on the non-transitory computer-readable medium 1120 or elsewhere. The information may be predefined, such that the defined darkness threshold criterion and/or the defined spiked intensity profile criterion may be a predefined criterion or predefined criteria. In an embodiment, various defined thresholds or other defined values in this disclosure may defined as stored values on the non-transitory computer-readable medium 1120 or elsewhere. For instance, a defined darkness threshold or a defined depth difference threshold, which are discussed below, may be values stored on the computer-readable medium 1120. They may be predefined values, or may be dynamically defined.
In an embodiment, if a candidate edge is formed based on a border between a first image region and a second image region, wherein the first image region is darker than the second image region, the computing system 1100 may determine that the defined darkness condition is satisfied if the first image region satisfies a defined spiked intensity profile criterion. More particularly, the computing system may determine that the first image region (e.g., 56032) satisfies the defined spiked intensity profile criterion if the first image region has a particular shape for its image intensity profile (e.g., pixel intensity profile), such as a shape in which the image intensity increases in darkness within the first image region toward a peak level of darkness at a location within the first image region, and then decreases in darkness. Such a criterion may be consistent with a spike-shaped intensity profile, in which an image intensity profile has a spiked increase in darkness within an image region, or a spiked reduction in intensity within the image region. Such a criterion may be associated with detecting a dark prior in which any physical gap appearing in an image is expected to appear darker at a middle of the gap relative to a periphery of the gap.
In an embodiment, the computing system 1100 may determine whether the image region 56032 satisfies the defined spiked intensity profile criterion by determining whether the image region 56032 has a pixel intensity profile (e.g., 9001) which includes: (i) a first profile portion (e.g., 9011) in which image intensity (e.g., pixel intensity) increases in darkness within the first image region as a function of location along a first direction (e.g., a positive direction along axis 5609), to reach a peak level of darkness (e.g., 9002) at a location u1 within the first image region, followed by (ii) a second profile portion (e.g., 9012) in which image intensity decreases in darkness within the first image region, away from the peak level of darkness, as a function of location along the same direction (e.g., positive direction). The image intensity profile 9001 in
In some implementations, an image intensity profile that increases in darkness may correspond to the image intensity profile having values that are decreasing in image intensity. For example, an image (e.g., 5600) may have pixel intensity values that are in a range from a minimum possible pixel intensity value (e.g., zero) to a maximum possible pixel intensity value (e.g., 255 for pixel intensity values encoded with 8 bits). In this example, lower pixel intensity values may represent lower levels of brightness, and thus higher levels of darkness, while higher pixel intensity values may represent higher levels of brightness, and thus lower levels of darkness. Further in this example, a peak level of darkness (e.g., 9002) of an image intensity profile may correspond to a minimum image intensity value of the image intensity profile (e.g., 9001).
In the above example, the computing system 1100 may determine whether an image region satisfies a defined spiked intensity profile criterion by determining whether the image intensity profile has a shape in which image intensity values (e.g., pixel intensity values) begin by decreasing in image intensity toward a minimum image intensity value, and then switches to increasing in image intensity away from the minimum image intensity value. For instance, the image intensity profile 9001 in
In an embodiment, if a candidate edge is formed based on a border between a first image region and a second image region, wherein the first image region is darker than the second image region, satisfying the defined darkness threshold criterion may involve comparison with a defined darkness threshold. Such a criterion may correspond with detecting a dark prior in which any physical gap which appears in an image is expected to be extremely dark in appearance.
In an embodiment, the computing system 1100 may determine that the defined darkness condition is satisfied for a candidate edge and/or image region if at least one of the defined darkness threshold criterion or the defined spiked intensity profile criterion is satisfied, such that any one of the above criteria may be used to satisfy the defined darkness condition. In an embodiment, the computing system 1100 may determine that the defined darkness condition is satisfied only in response to a determination that the defined spiked intensity profile criterion is satisfied (regardless of whether the defined darkness threshold criterion is satisfied), only in response to a determination that the defined darkness threshold criterion is satisfied (regardless of whether the defined spiked intensity profile criterion is satisfied), or only in response to a determination that both the defined darkness threshold criterion and the defined spiked intensity profile criterion are satisfied.
In an embodiment, the computing system 1100 may identify a candidate edge (e.g., 56012) based on 2D image information, such as the 2D image 5600, and determine whether the candidate edge satisfies a defined darkness condition. As stated above, if the computing system 1100 receives both 2D image information and 3D image information, the computing system 1100 may use the 2D image information to compensate for limitations in the 3D image information or for missing 3D image information, and vice versa. For instance, when a camera (e.g., 3200B) generates 3D image information to represent a group of objects, the 3D image information may lack information to distinguish between individual objects within the group, especially if the group of objects have equal depth values relative to the camera. More particularly, the 3D image information may lack information for detecting a narrow physical gap between objects, and thus may have limited usefulness in identifying a physical edge associated with the physical gap.
As an example,
In an embodiment, an image region may have a width which is too small for a reliable assessment of whether the image region satisfies the defined spiked intensity profile criterion. For instance, the image region may have a width of only a single pixel, or only a few pixels. In some instances, the computing system 1100 may determine that such an image region does not satisfy the defined darkness condition. In other instances, the computing system 1100 may determine whether the image region satisfies the defined darkness condition based on whether the image region satisfies the defined darkness threshold criterion. In some instances, the computing system 1100 may decide not to evaluate such an image region or associated candidate edge with respect to the defined darkness condition.
As stated above, one aspect of the present disclosure relates to a situation in which the computing system 1100 identifies a plurality of candidate edges based on at least 2D image information, such as the 2D image 5600. In such an embodiment, the plurality of candidate edges may include at least a first candidate edge (e.g., 56011/56012/56013/56014) that is identified based on the 2D image. For example, the first candidate edge may be formed based on a border between two image regions of the 2D image. In some instances, the computing system 1100 may identify the plurality of candidate edges based on 2D image information and 3D image information. In such instances, the plurality of candidate edges may include the first candidate edge which is from the 2D image information, as discussed above, and further include a second candidate edge (e.g., 57011 of
As an example,
In an embodiment, the computing system 1100 may identify the candidate edge 57011 of
In an embodiment, the computing system 1100 may identify a candidate edge by identifying, based on the 3D image information, two surfaces which have a depth difference that exceeds the defined depth difference threshold. For example, as illustrated in
In this embodiment, the defined measurement variance threshold may describe an effect of imaging noise, manufacturing tolerance, or other factor which may introduce random fluctuation in depth measurements made by a camera (e.g., 3200B). Such sources of random fluctuation cause depth values of various locations to have some natural variance, even if the various locations are part of a common surface and actually have the same depth relative to the camera. In some instances, the defined measurement variance threshold may be equal to or based on a nominal standard deviation that is used to describe the expected random fluctuation in the depth measurements, or more generally how susceptible the camera is to noise or other source of error. The nominal standard deviation may describe a baseline standard deviation or other form of variance that is expected for depth values or other depth information generated by the camera. The nominal standard deviation, or more generally the defined measurement variance threshold, may be a value which is stored in, e.g., the non-transitory computer-readable medium 1120, and may be a predefined value or a dynamically defined value. In an embodiment, if a set of locations have respective depth values which do not deviate from each other by more than the defined measurement variance threshold, the computing system 1100 may determine that the set of locations are part of a common surface. In a more specific embodiment, the computing system 1100 may determine that the set of locations are part of a common surface if a standard deviation (e.g., Std5710 or Std5750) of their respective depth values is less than the defined measurement variance threshold.
In the above embodiment, the computing system 1100 may identify a candidate edge from 3D image information based on two surfaces which have a sufficient depth difference. For example, the first set of locations in
As stated above, one aspect of the present disclosure relates to using 2D image information and 3D image information to compensate for each other, such that the 3D image information may compensate for limitations in the 2D image information (and vice versa). In some instances, physical edges detected from the 3D image information may be associated with a higher level of confidence than physical edges detected solely from the 2D image information. In some instances, if a physical edge (e.g., 3510A of
In such circumstances, the computing system 1100 may use the 3D image information to provide additional input. More particularly, the computing system 1100 may identify the candidate edge 57011 based on the 3D image information, as discussed above with respect to
Returning to
As stated above, the plurality of candidate edges (e.g., 56011 to 5601n, or 56011 to 5601n and 57011 to 5701n) may include at least a first candidate edge (e.g., 56011 or 56014) which is formed based on a border between a first image region and a second image region darker than the first image region. Further, the first candidate edge may be identified from the 2D image information. In an embodiment, step 4008 may involve determining whether to include the first candidate edge in the subset (also referred to as a subset of candidate edges). Including the first candidate edge (e.g., 56011) in the subset may allow the first candidate edge to be used to represent at least one physical edge (e.g., 3510B) of a group of objects in a camera field of view. More specifically, if the first candidate edge (e.g., 56011) is included in the subset, such an inclusion may be an indication that the first candidate edge (e.g., 56011) is still a candidate that remains under consideration for representing at least one of the physical edges of the group of objects. In other words, the computing system 1100 may determine whether to retain the first candidate edge as a candidate for representing the at least one physical edge. If the computing system 1100 determines to retain the first candidate edge as such a candidate, it may include the first candidate edge in the subset (which may also be referred to as a selected subset of candidate edges). This determination may be part of the step of selecting the subset of the plurality of candidate edges, and may be performed based on whether the image satisfies the defined darkness condition at the first candidate edge. In some instances, inclusion of the first candidate edge in the subset may be an indication that the first candidate edge has a sufficiently low likelihood of being a false edge. In some instances, inclusion of the first candidate edge in the subset may be an indication that the first candidate edge (e.g., 56011) has a sufficiently high confidence level of corresponding to an actual physical edge of the group of objects, such that the computing system 1100 will use the first candidate edge for representing at least one physical edge of the group of objects, or will at least continue to consider the first candidate edge for representing at least one physical edge of the group of objects. If the computing system 1100 determines not to include the first candidate edge (e.g., 56014) in the subset, such that the first candidate edge (e.g., 56014) is filtered or otherwise excluded from the subset, such an exclusion may be an indication that the first candidate edge (e.g., 56014) is no longer a candidate for representing at least one of the physical edges of the group of objects. In some instances, exclusion of the first candidate edge from the subset may be an indication that the first candidate edge (e.g., 56014) is likely a false edge.
In an embodiment, the determining of whether to include the first candidate edge in the selected subset of candidate edges may be based on whether the image information (e.g., 5600) satisfies the defined darkness condition at the first candidate edge, as stated above. In some implementations, if the image information satisfies the defined darkness condition at the first candidate edge, such a result may indicate that the first candidate edge has a sufficiently low likelihood of being a false edge, because the first candidate edge in such a situation is likely associated with an image region that represents a physical gap between two objects. Thus, the first candidate edge may likely represent a physical edge which forms one side of the physical gap. In such a situation, the computing system 1100 may determine to include the first candidate edge in the selected subset. In some instances, if the image information does not satisfy the defined darkness condition at the first candidate edge, the computing system 1100 may determine not to include the first candidate edge in the selected subset. In some instances, if computing system determines that 2D image information does not satisfy the defined darkness condition at the first candidate edge, the computing system 1100 may use 3D image information to further evaluate the first candidate edge. For instance, if the computing system 1100 determines that the 2D image 5600 does not satisfy the defined darkness condition at the candidate edge 56015, the computing system 1100 may determine whether that candidate edge 56015 maps to a candidate edge 57011 described by the 3D image information and whether the candidate edge 57011 in the 3D image information indicates a depth change which is greater than a defined depth difference threshold, as discussed above with respect to
In an embodiment, the method 4000 may perform steps 4006 and/or 4008 multiple times (e.g., via multiple iterations) to determine whether the image information satisfies the defined darkness condition at multiple candidate edges, and to select the subset discussed above based on these determinations. As an example, if the plurality of candidate edges includes at least candidate edges 56011 through 5601n, the computing system 1100 may perform step 4006 multiple times to determine whether the 2D image 5600 satisfies the defined darkness condition at, e.g., candidate edges 56011 through 5601n. The computing system 1100 may further perform step 4008 multiple times to determine which of these candidate edges will be included in the subset and remain candidates for representing physical edges, and which of these candidate edges will be excluded from the subset and thus are no longer candidates for representing physical edges. For instance, the computing system 1100 may determine that the subset will include candidate edges 56011 and 56012 because the 2D image 5600 satisfy the defined darkness condition at those candidate edges, and that the subset will not include candidate edges 56013 and 56014, because the 2D image does not satisfy the defined darkness condition at those candidate edges. In some situations, the computing system 1100 may determine not to include a candidate edge 56015 in the subset, because the 2D image 5600 does not satisfy the defined darkness condition at the candidate edge. In some situations, the computing system 1100 may determine to still include the candidate edge 56015 in the subset if the candidate edge 56011 maps to a candidate edge 57011 in the 3D image information that indicates a depth change which exceeds the depth difference threshold.
In an embodiment, the method 4000 may include a step in which the computing system 1100 outputs a robot interaction movement command. The robot interaction movement command may be used for robot interaction between a robot (e.g., 3300) and at least one object of the group of objects (e.g., 3510-3550). The robot interaction may involve, e.g., the robot (e.g., 3300) performing a de-palletization operation or other operation in which the robot picks up an object (e.g., box) from a pallet and moves the object to a destination location.
In an embodiment, the robot interaction movement command may be generated based on the selected subset of candidate edges of step 4008. For example, the computing system 1100 may use the selected subset of candidate edges to distinguish between individual objects from among the group of objects described by the image information. In some instances, the computing system 1100 may use the selected subset to perform segmentation of the image information. For instance, if the image information includes a point cloud, the computing system may use the selected subset of candidate edges to perform point cloud segmentation, which may involve identifying a portion of the point cloud that corresponds to an individual object among a group of objects. Point cloud segmentation is discussed in more detail in U.S. patent application Ser. No. 16/791,024 (Atty Dkt. MJ0049-US/0077-0009US1), the entire content of which is incorporated by reference herein. In one example, if the image information includes 2D image information, the computing system 1100 may use the selected subset of candidate edges to isolate a portion of the 2D image information that corresponds to an individual object among a group of objects. The isolated portion may, e.g., be used as a target image or target image portion, which is used to perform an object recognition operation or an object registration operation (e.g., by module 1128). Object registration and object recognition are discussed in more detail in U.S. patent application Ser. No. 16/991,466 (Atty Dkt. No. MJ0054-US/0077-0012US1), and in U.S. application Ser. No. 17/193,253 (Atty Dkt. MJ0060-US/0077-0017US1), the entire contents of which are incorporated by reference herein. In such an example, the robot interaction movement command may be generated based on a result of the of the object recognition operation or object registration operation. For instance, the object recognition operation may yield a detection hypothesis, which may be an estimate of what object or object type is represented by the image information, or by a portion thereof. In some instances, the detection hypothesis may be associated with an object recognition template, which may, e.g., include information which describes a physical structure of one of the objects 3510-3540. This information may be used by the computing system 1100 to plan movement of the robot (e.g., 3300) for picking up and moving the object (e.g., via module 1129).
While the above steps of method 4000 are illustrated with respect to the objects 3510-3550 of
In an embodiment, the computing system 1100 may determine that the 2D image 12600 does not satisfy a defined darkness condition at the first candidate edge 126011. For instance, the computing system 1100 may determine that the 2D image 12600 has an image intensity profile 12001 which has a step-shaped change in image intensity at the first candidate edge 126011. The image intensity profile may be measured along an axis 12609 that extends along a u-axis of the image. In some implementations, the computing system 1100 may determine that the image intensity profile 12001, or more specifically the image regions 12603 and 12605, do not satisfy the spiked intensity profile criterion. The computing system 1100 may further determine that the defined darkness condition is not satisfied at the first candidate edge 126011. As a result, the computing system 1100 may filter out the first candidate edge 126011 from edge detection information 1126.
In the embodiment of
As illustrated in
Embodiment 1 includes a computing system or a method performed by the computing system. The computing system may comprise a communication interface and at least one processing circuit. The communication interface may be configured to communicate with a robot and with a camera having a camera field of view. The at least one processing circuit may be configured, when a group of objects are in the camera field of view, to perform the following: receiving image information representing the group of objects, wherein the image information is generated by the camera; identifying, from the image information, a plurality of candidate edges associated with the group of objects, wherein the plurality of candidate edges are or include respective sets of image locations or physical locations that form respective candidates for representing physical edges of the group of objects; determining, when the plurality of candidate edges include a first candidate edge which is formed based on a border between a first image region and a second image region, whether the image information satisfies a defined darkness condition at the first candidate edge, wherein the first image region is darker than the second image region, wherein the first image region and the second image region are respective regions described by the image information; selecting a subset of the plurality of candidate edges to form a selected subset of candidate edges for representing the physical edges of the group of objects, wherein the selecting includes: determining, based on whether the image information satisfies the defined darkness condition at the first candidate edge, whether to retain the first candidate edge as a candidate for representing at least one of the physical edges of the group of objects by including the first candidate edge in the selected subset of candidate edges; and outputting a robot interaction movement command, wherein the robot interaction movement command is for robot interaction between the robot and at least one object of the group of objects, and is generated based on the selected subset of candidate edges. In this embodiment, the at least one processing circuit is configured to determine that the image information satisfies the defined darkness condition at the first candidate edge in response to a determination that the first image region satisfies at least one of a defined darkness threshold criterion or a defined spiked intensity profile criterion. Further in this embodiment, the at least one processing circuit is configured to determine whether the first image region satisfies the defined darkness threshold criterion by determining whether the first image region has at least one portion which is darker in image intensity than a defined darkness threshold. Further in this embodiment, the at least one processing circuit is configured to determine whether the first image region satisfies the spiked intensity profile criterion by determining whether the first image region has an image intensity profile which includes: (i) a first profile portion in which image intensity increases in darkness within the first image region as a function of location, to reach a peak level of darkness at a location within the first image region, followed by (ii) a second profile portion in which image intensity decreases in darkness within the first image region, away from the peak level of darkness, as a function of location.
Embodiment 2 includes the computing system of embodiment 1, wherein the first image region is a first pixel region that forms a band of pixels which represents a physical gap between a first object and a second object of the group of objects, wherein the second image region is a second pixel region immediately adjacent to the first pixel region, such that the border which forms the first candidate edge is between the first pixel region and the second pixel region.
Embodiment 3 includes the computing system of embodiment 2, wherein the at least one processing circuit is configured to determine whether the first image region satisfies the defined darkness threshold criterion by determining whether the first image region has pixel intensity values that are less than the defined darkness threshold.
Embodiment 4 includes the computing system of embodiment 2 or 3, wherein the image intensity profile of the first image region describes respective pixel intensity values for a series of pixels extending across a width dimension of the first image region, and wherein the at least one processing circuit is configured to determine whether the first image region satisfies the spiked intensity profile criterion by determining whether the image intensity profile has a shape in which the respective pixel intensity values decrease toward a minimum pixel intensity value in the first image region, and then switches to increase away from the minimum pixel intensity value, wherein the minimum pixel intensity value is associated with the peak level of darkness in the first image region.
Embodiment 5 includes the computing system of any one of embodiments 1 to 4, wherein the at least one processing circuit is configured to determine that the first image region satisfies the defined darkness condition only in response to a determination that the first image region satisfies the spiked intensity profile criterion.
Embodiment 6 includes the computing system any one of embodiments 1 to 5, wherein the at least one processing circuit is configured to determine that the first image region satisfies the defined darkness condition only in response to a determination that the first image region satisfies the defined darkness threshold criterion.
Embodiment 7 includes the computing system of embodiment 1, wherein the at least one processing circuit is configured to determine that the first image region satisfies the defined darkness condition only in response to a determination that the first image region satisfies both the defined darkness threshold criterion and the defined spiked intensity profile criterion.
Embodiment 8 includes the computing system of any one of embodiments 1-7, wherein the at least one processing circuit is configured, when the image information includes 2D image information and 3D image information, to identify the first candidate edge, which is formed based on the border between the first image region and the second image region, based on the 2D image information, wherein the 3D image information includes depth information for locations in the camera field of view.
Embodiment 9 includes the computing system of embodiment 8, wherein the at least one processing circuit is configured to perform the determining of whether to retain the first candidate edge as a candidate for representing at least one of the physical edges of the group of objects when: (i) the 3D image information is missing depth information for one or more locations corresponding to the first candidate edge, or (ii) a portion of the 3D image information that corresponds to the first candidate image is affected by a level of imaging noise which is greater than a defined noise tolerance threshold.
Embodiment 10 includes the computing system of embodiment 8 or 9, wherein the at least one processing circuit is configured to perform the determining of whether to retain the first candidate edge as a candidate for representing at least one of the physical edges of the group of objects when: the 3D image information does not satisfy a defined depth discontinuity condition at one or more locations corresponding to the first candidate edge.
Embodiment 11 includes the computing system of embodiment 10, wherein the at least one processing circuit is configured to determine that the 3D image information does not satisfy the defined depth discontinuity condition at one or more locations corresponding to the first candidate edge in response to a determination that the 3D image information does not describe a depth change at the one or more locations which exceeds a defined depth difference threshold.
Embodiment 12 includes the computing system of any one of embodiments 8-11, wherein the at least one processing circuit is configured to identify a second candidate edge of the plurality of candidate edges based on the 3D image information.
Embodiment 13 includes the computing system of claim 12, wherein the at least one processing circuit is configured to identify the second candidate edge based on the 3D image information by: identifying a first surface of the group of objects based on a first set of locations described by the 3D image information which have respective depth values that do not deviate from each other by more than a defined measurement variance threshold; identifying a second surface of the group of objects based on a second set of locations described by the 3D image information which have respective depth values that are within the defined measurement variance threshold; determining, as a first average depth value, an average depth value associated with the first surface; determining, as a second average depth value, an average depth value associated with the second surface; identifying, in response to a determination that a difference between the first average depth value and the second average depth value exceeds a defined depth difference threshold, the second candidate edge based on a location at which there is a transition between the first surface and the second surface.
Embodiment 14 includes the computing system of embodiment 12 or 13, wherein the at least one processing circuit is configured to identify the second candidate edge based on the 3D image information when the second candidate edge maps to a candidate edge which is in the 2D image information and which is formed based on a border between two image regions that do not satisfy the defined darkness condition.
Embodiment 15 includes the computing system of embodiments 1-14, wherein the at least one processing circuit is configured to perform an object recognition operation or object registration operation based on the selected subset of candidate edges, wherein the robot interaction movement command is generated based on a result of the object recognition operation or object registration operation.
Embodiment 16 includes the computing system of any one of embodiments claim 1-15, wherein the at least one processing circuit is configured to selecting the subset of the plurality of candidate edges by determining which candidate edges to filter from the plurality of candidate edges, wherein the plurality of candidate edges, after being filtered, forms the subset of candidate edges.
It will be apparent to one of ordinary skill in the relevant arts that other suitable modifications and adaptations to the methods and applications described herein can be made without departing from the scope of any of the embodiments. The embodiments described above are illustrative examples and it should not be construed that the present invention is limited to these particular embodiments. It should be understood that various embodiments disclosed herein may be combined in different combinations than the combinations specifically presented in the description and accompanying drawings. It should also be understood that, depending on the example, certain acts or events of any of the processes or methods described herein may be performed in a different sequence, may be added, merged, or left out altogether (e.g., all described acts or events may not be necessary to carry out the methods or processes). For instance, method 4000 may be modified to omit step 4002. While various embodiments discussed above relate to steps 4002-4008 of method 4000, another method of the present disclosure may include identifying a candidate edge based on 3D image information, as discussed above with respect to
The present application claims the benefit of U.S. Provisional Appl. No. 63/034,403, entitled “ROBOTIC SYSTEM WITH VISION MECHANISM” and filed Jun. 4, 2020, the entire content of which is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
63034403 | Jun 2020 | US |