Method and device for edge detection of contact surfaces

The method and system use depth sensors and image controllers to select and process measurements based on proximity and orientation to accurately detect shelf edges, improving inventory management by identifying product status and generating status messages.

DE102018120487B4Active Publication Date: 2026-02-12SYMBOL TECHNOLOGIES LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
DE102018120487
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-09-07
Filing Date
2018-08-22
Publication Date
2026-02-12
Estimated Expiration
2038-08-22

AI Technical Summary

Technical Problem

Identifying shelf edges in retail environments is complicated by factors such as diverse product shapes and orientations, variations in lighting, and obstructions, making it difficult to accurately detect structural features like shelf edges for inventory management.

Method used

A method and system using depth sensors and image controllers to obtain and process depth measurements, selecting a suitable set of measurements based on proximity and orientation, and generating a guide element to detect shelf edges by evaluating these measurements against the guide element.

Benefits of technology

Accurately identifies shelf edges, enabling effective inventory management by determining product status and generating status messages for out-of-stock or incorrectly placed items.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Method for detecting an edge (118) of a support surface (117) by means of an image control (120), comprising: Obtaining a multitude of depth measurements, which are acquired by a depth sensor (209) and correspond to an area containing the support surface (117); Selecting a suitable set of depth measurements by the image control (120) based on at least one of (i) an expected proximity of the edge (118) of the support surface (117) to the depth sensor (209), and (ii) an expected orientation of the edge (118) of the support surface (117) relative to the depth sensor (209); Adapting a guide element to the appropriate set of depth measurements by image control (120); and Capturing, by means of the image control (120), an initial set of depth measurements corresponding to the edge (118) from the suitable set of depth measurements, according to a proximity between each suitable depth measurement and the guide element.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] Environments where inventories of objects are managed, such as products for purchase in a retail setting, can be complex and volatile. For example, a given environment might contain a variety of objects with different sizes, shapes, and other characteristics. Such objects may be stored on shelves in various positions and orientations. The variable position and orientation of the objects, along with variations in lighting and the placement of labels and other markings on the objects and shelves, make it difficult to identify structural features such as shelf edges.

[0002] US 2015 / 0352721A1 describes methods, devices, systems and non-volatile, processor-readable storage media for a computer device of a robotic carton unloader for identifying items to be unloaded from an unloading area in pictures.

[0003] US 9,740,937 B2 describes a method and system for monitoring a retail environment by performing video content analysis based on two-dimensional image data and depth data. Analyzing videos with two-dimensional image data and associated depth data can, for example, improve the accuracy of customer actions regarding assistance, modification of marketing strategies, and security and theft prevention. Height data can be derived from depth data to support object detection, object classification (e.g., customer or inventory identification), and / or event detection.

[0004] US 2015 / 0052029 A1 describes a method, a non-volatile, computer-readable medium, and an inventory management device. According to the method, an area of ​​interest is monitored to determine inventory levels based on a depth image captured by a depth sensor. BRIEF DESCRIPTION OF THE DIFFERENT VIEWS OF THE FIGURES

[0005] The accompanying figures, in which the same reference numerals denote identical or functionally similar elements in the individual views, together with the following detailed description, form part of the disclosure and serve to further illustrate embodiments of concepts comprising the claimed invention and to explain various principles and advantages of these embodiments. Fig. Figure 1 is a diagram of a mobile automation system. Fig. Figure 2A shows a mobile automation device in the system of Fig. 1. Fig. 2B is a block diagram of certain internal hardware components of the mobile automation device in the system of Fig. 1. Fig. 2C is a block diagram of certain internal hardware components of the server in the system. Fig. 1. Fig. Figure 3 is a flowchart of a process for surface edge detection. Fig. 4 shows the recording of the data in the procedure of Fig. 3. Data used according to a first sensor technology. Fig. 5 shows the recording of the data in the procedure of Fig. 3. Data used according to a second sensor technology. Fig. Figures 6A-6B show embodiments of methods for carrying out step 310 of the method of Fig. 3. Fig. 7A-7B show the results of carrying out the procedures of Fig. 6A-6B. Fig. Figures 8A-8B show embodiments of methods for carrying out step 315 of the method of Fig. 3. Fig. 9A-9B show the results of the implementation of the procedure of Fig. 8A. Fig. 10A-10C show the results of carrying out the procedure of Fig. 8B. Fig. Figures 11A-11B show embodiments of methods for carrying out step 320 of the method of Fig. 3. Fig. Figures 12A-12B show the results of the execution of the procedure of Fig. 8B.

[0006] Experienced professionals will recognize that elements in the figures are presented for the sake of simplicity and clarity and are not necessarily drawn to scale. For example, the dimensions of some elements in the figures may be exaggerated relative to other elements to improve the understanding of embodiments of the present invention.

[0007] The apparatus and the process steps have been represented, where appropriate, by conventional symbols in the drawings, which show only those specific details relevant to understanding the embodiments of the present invention, so as not to obscure the disclosure with details that are readily apparent to those skilled in the field who refer to the present description. DETAILED DESCRIPTION

[0008] In retail environments where a large number of products are displayed on shelves, systems can be configured to capture images of the shelves and extract various pieces of product information from these images. For example, price tags can be placed within the image and decoded to ensure that products are correctly priced. Additionally, gaps between products on the shelves can be identified as an indication that one or more products are out of stock and need to be restocked. The above requirements may necessitate the identification of distances between the scanning device and the shelf edges to describe the three-dimensional structure of the shelf edges, for use as reference structures for identifying labels, products, gaps, and the like.

[0009] Identifying shelf edges from depth measurements is complicated by a variety of factors, including the proximity of products with diverse shapes and orientations to the shelf edges. Other factors include variations in light, reflections, obstructions caused by products or other objects, and the like.

[0010] The examples shown here relate to a method for detecting the edge of a support surface by an image controller. The method comprises: obtaining a plurality of depth measurements acquired by a depth sensor and corresponding to an area containing the support surface; selecting a suitable set of depth measurements by the image controller based on at least one of (i) an expected proximity of the edge of the support surface to the depth sensor, and (ii) an expected orientation of the edge of the support surface relative to the depth sensor; matching a guide element to the suitable set of depth measurements by the image controller; and acquiring, by the image controller, an output set of depth measurements corresponding to the edge from the suitable set of depth measurements according to a proximity between each suitable depth measurement and the guide element.

[0011] Further examples shown herein relate to a computing device for detecting an edge of a support surface, comprising: a memory; and an image controller comprising: a preprocessor configured to obtain a plurality of depth measurements acquired by a depth sensor and corresponding to an area containing the support surface; a selection unit configured to select an appropriate set of depth measurements based on at least one of (i) an expected proximity of the edge of the support surface to the depth sensor, and (ii) an expected orientation of the edge of the support surface relative to the depth sensor; a guide generator configured to adapt a guide element to the appropriate set of depth measurements;and an output detector configured to detect an output set of depth measurements corresponding to the edge from the suitable set of depth measurements according to a proximity between each suitable depth measurement and the guide element.

[0012] Fig. Figure 1 shows a mobile automation system 100 according to the teachings of this disclosure. The system 100 comprises a server 101 communicating with at least one mobile automation device 103 (here also simply referred to as the device 103) and at least one client computing device 105 via communication links 107, which in this example are represented as wireless links. In this example, the links 107 are provided via a wireless local area network (WLAN) provided within the retail environment via one or more access points. In other examples, the server 101, the client device 105, or both are located outside the retail environment, and the links 107 therefore include supra-regional networks such as the internet, mobile networks, and the like. As will be described in more detail below, the system 100 also has a port 108 for the device 103.Port 108 communicates with server 101 via connection 109, which in this example is a wired connection. In other examples, however, connection 109 is a wireless connection.

[0013] The client computing device 105 is in Fig. 1 is represented as a mobile computing device, such as a tablet, a smartphone, or the like. In other examples, the client device 105 comprises computing devices such as a desktop computer, a laptop computer, another server, a compact workstation, a monitor, or another suitable device. The system 100 can have a variety of client devices 105, each communicating with the server 101 via appropriate connections 107.

[0014] In the illustrated example, System 100 is used in a retail environment with a variety of shelf modules 110-1, 110-2, 110-3, etc. (collectively referred to as shelves 110 and generally as shelf 110 – this nomenclature is also used for other elements described here). Each shelf module 110 supports a variety of products 112. Each shelf module 110 includes a shelf back panel 116-1, 116-2, 116-3 and a support surface (e.g., support surface 117-3 as shown in [reference missing]). Fig. (1 shown), extending from the shelf back panel 116 to a shelf edge 118-1, 118-2, 118-3. The shelf modules 110 are typically arranged in a multitude of aisles, each comprising a multitude of modules arranged in a row. In such arrangements, the shelf edges 118 face into the aisles through which customers can move in the retail environment as well as the device 103. As shown in Figure 1, Fig. As can be seen from Figure 1, the term "shelf edge" 118 used here, which can also be described as the edge of a support surface (e.g., the support surfaces 117), refers to a surface that is bounded by adjacent surfaces with different angles of inclination. In the Fig. In the example shown, the shelf edge 118-3 is at an angle of approximately 90 degrees relative to the support surface 117-3 and to the underside (not shown) of the support surface 117-3. In other examples, the angle between the shelf edge 118-3 and the adjacent surfaces, such as the support surface 117-3, is more or less than 90 degrees.

[0015] More precisely, the device 103 is used in a retail environment and communicates with the server 101 (e.g., via the link 107) to navigate autonomously or semi-autonomously over the length 119 of at least a portion of the shelves 110. The device 103 is equipped with a variety of navigation and data acquisition sensors 104, such as image sensors (e.g., one or more digital cameras) and depth sensors (e.g., one or more light detection and ranging (LIDAR) sensors, one or more depth cameras with structured light patterns, e.g., infrared light), and is further configured so that the sensors are used to acquire shelf data. In the present example, the device 103 is configured to acquire a variety of depth measurements corresponding to the shelves 110, each measurement defining a distance from the depth sensor to a point on the shelf 110 (e.g.,an object 112 arranged on the shelf 110 or a structural component of the shelf 110, such as a shelf edge 118 or a shelf back panel 116).

[0016] The server 101 includes a special controller, such as a processor 120, specifically designed to control the mobile automation device 103 for data acquisition (e.g., the depth measurements mentioned above), receiving the acquired data via a communication interface 124, and storing the acquired data in an archive 132 of a memory 122. The server 101 is further configured to perform various post-processing operations on the acquired data and to detect certain structural features—such as shelf edges 118—within the acquired data. The post-processing of the acquired data by the server 101 is explained in more detail below. The server 101 can also be configured to determine product condition data, partly based on the shelf edge detection mentioned above, and to generate status messages (e.g.,Messages indicating that products are out of stock, nearly out of stock, or incorrectly placed) are sent to the mobile device 105 in response to the determination of product status data.

[0017] The processor 120 is connected to a non-volatile, computer-readable storage medium, such as the memory 122 mentioned above, on which computer-readable instructions for executing the control of the device 103 for data acquisition and the aforementioned post-processing operations are stored, as will be explained in more detail below. The memory 122 contains a combination of volatile (e.g., random access memory or RAM) and non-volatile memory (e.g., read-only memory or ROM, electrically erasable programmable read-only memory or EEPROM, flash memory). The processor 120 and the memory 122 each comprise one or more integrated circuits. In one embodiment, the processor 120 further comprises one or more central processing units (CPUs) and / or graphics processing units (GPUs).In one embodiment, a specially designed integrated circuit, such as a field-programmable gate array (FPGA), is configured to perform the shelf edge detection described herein, either as an alternative to or in addition to the imaging controller / processor 120 and memory 122. As those skilled in the art will recognize, the mobile automation device 103 also includes one or more controllers or processors and / or FPGAs communicating with the controller 120, which are specifically configured to control navigation and / or data acquisition aspects of the device 103. The computing device 105 also includes one or more controllers or processors and / or FPGAs communicating with the controller 120, which are specifically configured to process (e.g., display) messages received from the server 101.

[0018] Server 101 also includes the aforementioned communication interface 124, which is connected to processor 120. Communication interface 124 comprises suitable hardware (e.g., transmitters, receivers, network interface controllers, and the like) that enables server 101 to communicate with other computing devices—specifically device 103, computing device 105, and port 108—via connections 107 and 109. Connections 107 and 109 can be direct connections or connections that traverse one or more networks, including local and regional networks. The specific components of communication interface 124 are selected according to the type of network or other connections through which server 101 necessarily communicates.In the present example, as already mentioned, a wireless local area network is implemented within the retail environment through the use of one or more wireless access points. The connections 107 therefore comprise one or both wireless connections between the device 103 and the mobile device 105 and the aforementioned access points, as well as a wired connection (e.g., an Ethernet-based connection) between the server 101 and the access point.

[0019] Memory 122 stores a variety of applications, each containing a variety of computer-readable instructions that can be executed by Processor 120. The execution of these instructions by Processor 120 configures Server 101 to perform various actions described herein. The applications stored in Memory 122 include a Control Application 128, which may also be implemented as a sequence of logically distinct applications. Typically, Processor 120 is configured to implement various functionalities through the execution of Control Application 128 or its subcomponents. Processor 120, as configured through the execution of Control Application 128, is also referred to here as Controller 120.As will now be shown, some or all of the functionality implemented by the controller 120 described below can also be realized by pre-configured hardware elements (e.g., one or more Application-Specific Integrated Circuits (ASICs)) and not by the execution of the control application 128 by the processor 120.

[0020] Regarding the Fig. 2A and Fig. Figure 2B describes the mobile automation device 103 in more detail. The device 103 has a chassis 201 with a locomotive mechanism 203 (e.g., one or more electric motors that drive wheels, rails, or the like). The device 103 also has a sensor mast 205 supported by the chassis 201, which in this example extends upwards (e.g., essentially vertically) from the chassis 201. The mast 205 supports the sensors 104 already mentioned. The sensors 104 include, in particular, at least one image sensor 207, such as a digital camera, and at least one depth sensor 209, such as a 3D digital camera. The device 103 also includes additional depth sensors, such as LiDAR sensors 211. In other examples, the device 103 has additional sensors, such as... B. one or more RFID readers, temperature sensors and the like.

[0021] In the present example, the mast 205 carries seven digital cameras 207-1 to 207-7 and two LiDAR sensors 211-1 and 211-2. The mast 205 also carries a plurality of lighting arrangements 213, which are configured to illuminate the fields of view of the respective camera 207. That is, the lighting arrangement 213-1 illuminates the field of view of camera 207-1, and so on. The sensors 207 and 211 are oriented on the mast 205 such that the fields of view of each sensor face a shelf 110, along the length 119 of which the device 103 moves. The device 103 is configured to track a position of the device 103 (e.g., a position of the center of the chassis 201) in a common reference frame (reference frame) previously defined in the sales facility, so that the data acquired by the mobile automation device can be entered into the common reference frame.

[0022] For this purpose, the mobile automation device 103 has a special control system, such as a processor 220, as shown in Fig. 2B is shown, which is connected to a non-volatile, computer-readable storage medium, such as a memory 222. The memory 222 comprises a combination of volatile (e.g., Random Access Memory or RAM) and non-volatile memory (e.g., Read Only Memory or ROM, Electrically Erasable Programmable Read Only Memory or EEPROM, Flash memory). The processor 220 and the memory 222 each have one or more integrated circuits. Memory 222 stores computer-readable instructions for execution by processor 220. In particular, memory 222 stores a control application 228 which, when executed by processor 220, configures processor 220 to perform various functions related to the navigation of the device 103 (e.g., by controlling the locomotive mechanism 202) and the detection of shelf edges in data acquired by the sensors (e.g., depth cameras 209 or LiDAR sensors 211).Application 228 can also be implemented as a sequence of different applications in other examples.

[0023] When configured by executing application 228, processor 220 can also be referred to as controller 220 or, in the context of shelf edge detection based on the acquired data, as image controller 220. Those skilled in the art will recognize that the functionality implemented by processor 220 through the execution of application 228 can also be realized in other embodiments by one or more specially designed hardware and firmware components, such as FPGAs, ASICs, and the like.

[0024] The memory 222 can also store an archive 232, which, for example, contains a map of the environment in which the device 103 operates, for use during the execution of the application 228. The device 103 can be communicated via a communication interface 224 via the in Fig. The connection 107 shown in Figure 1 allows the device 103 to communicate with the server 101, for example, to receive instructions for initiating data acquisition operations. The communication interface 224 also enables the device 103 to communicate with the server 101 via port 108 and connection 109.

[0025] In the present example, as explained below, one or both servers 101 (as configured via the execution of the control application 128 by the processor 120) and the mobile automation device 103 (as configured via the execution of the application 228 by the processor 220) are configured to process the depth measurements acquired by the device 103 in order to identify portions of the acquired data that represent the shelf edges 118. In other examples, the data processing described below can be performed on a computing device other than server 101 and the mobile automation device 103, such as the client device 105. The data processing described above is further detailed in the context of its execution on server 101 by the execution of application 128.

[0026] Regarding the Fig. 2C, before describing the operation of application 128 for identifying shelf edges 118 from the captured image data, some components of application 128 are described in more detail. As experts will recognize, in other examples the components of application 128 can be divided into different applications or combined into other sets of components. Some or all of the in Fig. The components shown in Figure 2C can also be implemented as dedicated hardware components, such as one or more ASICs or FPGAs. For example, in one embodiment, to improve reliability and processing speed, at least some of the components of Fig. 2C is programmed directly into the image controller 120, which can be an FPGA or an ASIC with a circuit and memory configuration specifically designed to optimize the image processing of a large volume of sensor data received from the mobile automation device 103. In such an embodiment, part or all of the control application 128, as described below, is an FPGA or an ASIC chip.

[0027] The control application 128 includes a preprocessor 200 configured to receive depth measurements corresponding to the shelves 110 and the items 112 carried on them, and to preprocess the depth measurements, for example, by filtering them before further processing operations. The control application 128 also includes a selection unit 204 configured to select a suitable set of depth measurements from the preprocessed depth measurements (i.e., the output of the preprocessor 200). As explained below, these depth measurements are those likely to correspond to the shelf edges 118. The control application 128 also includes a guide generator 208 configured to generate a guide element (e.g., a guide rail).a curve or a plane) is generated, against which the above-mentioned suitable set of depth measurements is evaluated by an output detector 212 to identify an output set among the suitable set of depth measurements. The output set of depth measurements comprises the depth measurements with the highest probability of corresponding to the shelf edges 118.

[0028] The functionality of control application 128 will now be described in more detail. Regarding the Fig. Section 3 shows a method 300 for detecting an edge of a support surface. The method 300 is described in conjunction with its implementation on system 100 and with reference to the information in Fig. The components shown in Figure 2C are described. In other words, in the following description, the contact surface is a contact surface 117 as shown in Figure 2C. Fig. 1 shown, and the edge to be measured is therefore a shelf edge 118 as in Fig. Figure 1 is shown. In other examples, other contact surfaces and their edges can also be captured by carrying out method 300. As already mentioned, in other examples, method 300 is additionally partially or completely replaced by the methods shown in Fig. The components shown in 2B were carried out.

[0029] In step 305, the controller 120, specifically the preprocessor 200, is configured to receive a multitude of depth measurements acquired by a depth sensor and corresponding to an area containing the aforementioned support surface. In other words, in this example, the depth measurements correspond to an area comprising at least one shelf support surface 117 and one shelf edge 118. The depth measurements obtained in step 305 are, for example, acquired by the device 103 and stored in the archive 132. Therefore, in the above example, the preprocessor 200 is configured to obtain the depth measurements by retrieving them from the archive 132.

[0030] The depth measurements can take various forms depending on the depth sensor used (e.g., by the device 103). For example, the device 103 may have a LiDAR sensor, and the depth measurements therefore comprise one or more LiDAR scans acquired while the device 103 moves along the length of an aisle (i.e., a set of adjacent shelf modules 110). The device 103's LiDAR sensor acquires depth measurements by scanning a line of laser light across the shelves 110 through a predetermined set of sweep angles and determining a group of depth measurements along the line for each sweep angle.

[0031] Fig. Figure 4 shows a simplified acquisition of depth measurements by the device 103 using a LiDAR sensor. In particular, since the device 103 moves along the shelves 110 (shelf 110-3 is in Fig. (Figure 4 shown for illustration) in a direction of movement 400 that is essentially parallel to the shelf 110, a LIDAR sensor 404 of the device 103 guides a line (e.g., laser light) 408 through an angular range, e.g., in the direction 412. In the example of Fig. In Figure 4, line 408 is depicted as essentially vertical. In other examples, line 408 may be inclined relative to the vertical. For each angle, a set of depth measurements along line 408 is determined by sensor 404. Once the line has traversed the entire angular range, the device 103 can be configured to initiate another search operation as soon as it is determined that the device 103 has traveled a predetermined distance along the shelf 110.

[0032] Thus, in the Fig. In the example shown in Figure 4, four LIDAR scans 416-1, 416-2, 416-3, and 416-4 were acquired by the device 103, each containing groups of depth measurements for each of the sets of slew angles. As shown in connection with scan 416-1, the plurality of depth measurements comprises a group (shown as columns) for each of a set of slew angles. Each group comprises a number of depth measurements (each in its own row of the column shown in Figure 4). Fig. 4 arrays shown), which correspond to different points along the length of line 408. The depth measurements do not need to be in the Fig. The table format shown in section 4 can be used. For example, sensor 404 can also generate measurements in polar coordinates.

[0033] In other examples, the device 103 acquires the depth measurements using a depth camera, such as a stereoscopic camera with a structured light projector (e.g., one that projects a pattern of infrared light onto the shelves 110). In such examples, which relate to Fig. Referring to point 5, the device 103 travels along the shelves 110 in the direction of travel 500 and uses a depth camera 504 with a field of view 508 to capture a sequence of images 516-1, 516-2, 516-3, 516-4 of the shelf 110. The images each contain an array (arrangement) of pixels, each pixel having a depth measurement (e.g., a value in meters or another suitable unit). The pixels can also have intensity values ​​(e.g., a value from 0 to 255) that are mapped to depth values, rather than the depth values ​​themselves. In Fig. Figure 5 shows an example pixel array for image 516-1, where the darker pixels are further away from sensor 504 and the lighter pixels are closer to sensor 504.

[0034] In order to Fig. Returning to section 3, the preprocessor 200 can also be configured to perform one or more filter operations on the depth measurements. For example, depth measurements greater than a predefined threshold can be discarded from the data acquired in step 305. Such measurements might indicate areas outside the shelf back panels 116 (e.g., a ceiling or a wall behind a shelf back panel 116). The predefined threshold could, for example, be the sum of the known depth of a shelf 110 and the known width of an aisle. In other examples, measurements from data acquired with a LiDAR sensor that correspond to a swivel angle beyond a predefined threshold can be excluded.The predefined angle limit is selected based on one or more of the heights at which the sensor 404 is mounted on the device 103, the height of the shelf module 110, and the nearest distance from the shelf module 110 at which the device 103 can pass through the shelf module 110. For example, in a configuration where the sensor 404 is mounted on the device 103 at a height of approximately 1 m and where the device 103 can pass through the shelf 110 at a minimum distance of approximately 0.55 m, the predefined angle limit can be set to approximately + / - 60 degrees.

[0035] The control application 128 is then configured to proceed to step 310. In step 310, the control application 128, more precisely the selection unit 204, is configured to select a suitable set of depth measurements obtained in step 305. The suitable set of depth measurements is selected based on at least one of the expected proximity of the shelf edge 118 to the depth sensor and an expected orientation of the shelf edge 118 relative to the depth sensor. As explained in more detail below, the selection unit 204 assumes that the device 103 moves in a direction that is substantially parallel to the shelf edge 118. As a result, the distance between the sensor (e.g., LiDAR sensor 404 or depth camera 504) is therefore expected to remain largely constant throughout the entire data set.Furthermore, since the support surfaces 117 extend from the shelf back walls 116 to the aisle in which the device 103 travels, the shelf edges 118 are expected to be closer to the device 103 than other structures represented in the acquired data (e.g., objects 112). Additionally, a known orientation is assumed for each shelf edge 118. For example, each shelf edge 118 can be assumed to be a substantially vertical surface. As will be shown below, when the data acquired in step 305 are acquired with the LIDAR sensor 404, the appropriate set of measurements is selected based on an expected proximity to the depth sensor, and when the data acquired in step 305 are acquired with the depth camera 504, the appropriate set of measurements is selected based on an expected orientation to the depth sensor.

[0036] In Fig. Figure 6A describes a procedure 600 for selecting a suitable set of depth measurements (i.e., for performing step 310 of procedure 300). In particular, the selection unit 204 is configured to perform procedure 600 when the depth measurements are acquired in step 305 using a LiDAR sensor.

[0037] In step 605, the selection unit 204 is configured to select a swivel angle. As in Fig. As can be seen in connection with Scan 416-1, the depth measurements each comprise a group of measurements for each of a multitude of swivel angles. In the example of Fig. 4. The swivel angles cover a range of approximately 120 degrees; in other examples, other swivel angle ranges can be implemented. For a first case of step 605, the selection unit 204 is configured to select a first swivel angle (e.g., the one in Fig. 4 angles shown -60 degrees).

[0038] In step 610, selection unit 204 is configured to select the minimum depth measurement corresponding to the chosen swivel angle. Therefore, with respect to scan 416-1, selection unit 204 is configured to select the minimum depth measurement below the values ​​d -60-1 , d -60-2 , d -60-3 , ...., d -60-19 and d -60-20 selects. In the present example, if the depth measurements obtained in step 305 comprise a large number of LiDAR scans (e.g., those in Fig. In the four scans shown (416-1 to 416-4), the selection of a minimum depth measurement in step 610 is performed from all available depth measurements for the current pan angle. That is, scans 416-2, 416-3, and 416-4 also contain groups of depth measurements for the angle -60 degrees, and in step 610, the selection unit 204 is configured to select a single minimum depth measurement from the groups of measurements corresponding to -60 degrees from all four scans 416. In other examples, the selection unit 204 is configured to repeat the selection of the minimum depth measurements for each scan 416 separately, thus generating a one-dimensional array for each scan. In still other examples, the selection unit 204 is configured to combine the above approaches and generate a one-dimensional array for each scan 416, as well as a single overall array across all scans 416.As shown below, the generation of a guide element in step 315 can be performed with respect to the single overall array, while the acquisition of output depth measurements in step 320 can be performed with respect to the individual scan-specific arrays.

[0039] In some examples, the selection unit 204 is configured not to select the minimum depth in step 610, but to select a representative sample for each swivel angle other than the minimum depth measurement. For example, the selection unit 204 can be configured to select the median of the depth measurements for each swivel angle. Such an approach can be used by the selection unit 204 in some embodiments when the depth measurements acquired by the device 103 exhibit a noise level above a predefined threshold.

[0040] After the minimum depth measurement for the current swivel angle is selected in step 610, the selection unit is configured to add the selected depth measurement to the appropriate set, along with a note that the swivel angle corresponds to the minimum depth measurement (i.e., the angle selected in step 605). In step 615, the selection unit 204 is then configured to determine if there are any swivel angles left to process. If the determination is positive, the execution of procedure 600 returns to step 605, and step 610 is repeated for the next swivel angle (e.g., -55 degrees, as in Fig. 4 shown). When all swivel angles have been processed, the determination in step 615 is negative, and the selection unit 204 passes the selected suitable set of depth measurements to the guide generator 208 for the execution of step 315 of the procedure 300. The suitable set of depth measurements comprises a single depth measurement for each swivel angle and can therefore be represented by a one-dimensional array whose structure is similar to a single row of the array shown in Fig. 4 scans shown resemble 416-1. Fig. Figure 7A illustrates an exemplary suitable set of depth measurements obtained by carrying out procedure 600, plotted as a single line (i.e. a one-dimensional data set), specifying the minimum distance chosen for each swivel angle.

[0041] Fig. Figure 6B shows an implementation of step 310 in another embodiment, in which the depth measurements obtained in step 305 are acquired using a depth camera. In this embodiment, the selection unit 204 is configured to implement step 310 of method 300 by performing a method 650 to select the appropriate set of depth measurements.

[0042] In step 655, the selection unit 204 is configured to divide the image containing the depth measurements into a multitude of overlapping regions. For example, each region can be 3 x 3 pixels in size and overlap adjacent regions by 2 pixels both vertically and horizontally. That is, the regions are chosen such that each pixel in the depth image is the center of a region. In other examples, larger region dimensions (e.g., 5 x 5 pixels) can be used, with a greater degree of overlap to create a region centered on each pixel. In further examples, the overlap between regions can be reduced to lessen the computational load caused by performing procedure 650, at the cost of a reduced resolution of the appropriate set, as will be shown below.

[0043] In step 655, where an area was selected (e.g., the upper left area of ​​3 x 3 pixels of image 516-1 in Fig. 1) Selection unit 204 is configured to generate a normal vector for the selected region. The normal vector is a vector extending from the central pixel of the region and perpendicular to a plane defined by the depth measurements in the region. Therefore, selection unit 204 is configured to apply a suitable plane-fitting operation to the depth measurements contained in the selected region to generate the normal vector. An example of a suitable plane-fitting operation involves generating the plane from three non-collinear points. Other examples include orthogonal regression using least squares, RANdom SAmple Consensus (RANSAC), and Least Median of Squares (LMedS).

[0044] In step 660, the selection unit 204 is configured to determine whether the normal vector generated in step 655 has a predefined orientation. As mentioned earlier, when the data acquired in step 305 are acquired with the depth camera 504, the appropriate set of measurements is selected based on an expected orientation to the depth sensor. The expected orientation of the shelf edge 118 relative to the depth sensor (e.g., the camera 504), as described in Fig. Figure 5 points in the direction of the depth sensor. In other words, with reference to Fig. 7B, which represents part 700 of image 516-1, is expected to have normal vectors in the areas of the captured image that represent shelf edges 118 that are oriented substantially in the depth or Z direction, with minimal contribution from the X or Y directions.

[0045] The selection unit 204 is therefore configured to perform the determination in step 660 by comparing the normal vector generated in step 655 with the predefined expected orientation. With reference to Fig. Figure 7B shows some exemplary regions 704, 708, 712, 716, and 720 with their normal vectors. In the present example, the expected orientation is parallel to the Z-axis in the image reference frame (i.e., directly perpendicular to the side of the Fig. 7B). The determination in step 660 may, for example, include determining the components of the normal vector in each of the X, Y, and Z directions and determining whether the magnitude of the Z direction is greater than the X and Y directions by a predetermined factor. In another example, the determination in step 660 includes determining whether the X and Y magnitudes of the normal vector are below predetermined limits. As in Fig. As shown in Figure 7B, the normal vectors of regions 704 and 708 deviate significantly from the Z-direction, while the normal vector of region 712 is essentially parallel to the Z-axis and the normal vectors of regions 717 and 720 are parallel to the Z-axis.

[0046] With reference to Fig. 6B, if the determination at step 660 is negative (as in the case of area 704), the selection unit 204 proceeds directly to step 655. However, if the determination at step 660 is positive, the selection unit 204 is configured to select the central pixel of the current area and add the selected pixel to the set of suitable depth measurements. The selection unit 204 is then configured to proceed to step 665 to determine if there are any further areas to process. If the determination at step 665 is positive, the selection unit 204 repeats steps 655–670 until the determination at step 665 is negative, at which point the selection unit 204 passes the set of suitable depth measurements (indicated, for example, by pixel positions in the reference frame) to the guide generator 208 for use in step 315 of procedure 300.

[0047] Back to Fig. In step 315, the guide generator 208 is configured to adapt a guide element to the appropriate set of depth measurements. The type of guide element depends on the type of depth measurement obtained in step 305. The guide element is generated as a set of parameters that define the element, such as the equation of a curve, plane, or the like, expressed in the reference frame of the acquired data (i.e., the LiDAR data or depth image). For example, a planar guide element can be expressed as a normal vector perpendicular to the plane and a distance parameter that defines the length of the normal from the plane to the origin of the reference frame above. As another example, a linear guide element can be expressed as a vector that defines the orientation of the line in the reference frame above. If the depth measurements in step 305 are LiDAR measurements, step 305 is performed according to step 800 in Fig. 8A is implemented. In particular, the guide generator 208 is configured to fit a curve to the appropriate set of depth measurements (e.g., those selected by performing the procedure 600 described above). The guide generator 208 is configured to produce the aforementioned curve in order to minimize the depth of the curve (i.e., to place the curve as close as possible to the origin in the LiDAR reference frame) and to maximize the number of appropriate depth measurements intersected by the curve (i.e., to maximize the number of inliers of the curve). Fig. 9A will select the appropriate set of depth measurements from Fig. 7A is shown, together with a curve 900 that is adapted to the appropriate set according to step 800. Fig. Figure 9B shows the same suitable set and curve 900 in polar coordinates, with curve 900 appearing as a straight line. After the guide element has been generated in step 800, the guide generator 208 is configured to forward the guide element (e.g., as an equation defining curve 900 in the LiDAR reference frame) and the suitable set of depth measurements to the output detector 212 for use in step 320 of procedure 300.

[0048] With reference to Fig. 8B, if the depth measurements obtained in step 305 are acquired with a depth camera, the guide generator 208 is configured to implement step 315 by performing a procedure 850. In particular, the guide generator 208 is configured to evaluate each of a plurality of depth ranges (which may also be referred to as search volumes), as described below.

[0049] In step 855, the guide generator 208 is configured to select a depth range. In this example, the guide generator 208 is configured to evaluate depth ranges sequentially, starting with a minimum depth (e.g., a depth of zero, indicating a search volume immediately adjacent to the depth sensor at the time of data acquisition) and increasing at predefined intervals. Thus, the evaluated depth ranges can, for example, include a depth range of 0 to 0.2 m, 0.2 m to 0.4 m, 0.4 m to 0.6 m, and so on, up to a predetermined maximum depth (e.g., 2.0 m). Each depth range can be a subset of the suitable set of pixels selected by performing procedure 650. The guide generator 208 can also be configured to determine whether the selected depth range contains any suitable pixels and, if not, immediately move on to the next depth range.

[0050] In step 860, the guide generator 208 is configured to fit a plane to the subset of suitable pixels contained in the current depth range. This subset includes all suitable pixels that have a depth measurement (e.g., along the Z-axis) within the depth range, regardless of the position of such pixels in the image (e.g., their position on the X and Y axes). Fig. Figure 10A shows the original depth image 516-1 together with the appropriate set of 1000 pixels. As explained above, the appropriate sets of 1000 pixels are those with normal vectors that are essentially oriented in the Z direction. Fig. 10B shows a subset 1004 of the suitable pixels 1000 that lie within a first depth range selected in step 855. As in the comparison of Fig. 10A and Fig. As can be seen in 10B, the pixels that correspond to the cylindrical object 112 on the support surface 117 (see e.g. Fig. 1 and Fig. 5) not included in the first depth range, as their depths are greater than the widest extent of the first depth range.

[0051] The guide generator 208 is configured to fit a plane 1008 to subgroup 1004 according to a suitable plane fitting operation. For example, for the execution of step 860, a plane fitting operation can be chosen that maximizes the number of points intersected by the plane in subgroup 1004 (i.e., the inliers of the plane). As in Fig. As can be seen in 10B, layer 1008 contains certain pixels in regions 1012-1 and 1012-2 of subgroup 1004, while others are omitted. In particular, the pixels contained in layer 1008 include those representing shelf edges 118, but omit the remainder of subgroup 1004 that are located at greater depths than the pixels in regions 1012.

[0052] Regarding the Fig. In step 865, guide generator 208 is configured to determine whether the plane generated in step 860 has a predefined orientation. The predefined orientation reflects the expected orientation of the shelf edges 118 relative to the depth camera, as described above. In this example, the predefined orientation is therefore perpendicular to the Z-axis (i.e., parallel to the XY plane in the image reference frame). In step 865, guide generator 208 is thus configured to detect any mismatch between the orientation of plane 1008 and the predefined orientation. The plane orientation and the predefined orientation can be represented by the guide generator as normal vectors to each of the planes, which can be compared as described above in conjunction with step 660.

[0053] If the determination in step 865 is negative, the level generated in step 860 is discarded, and the guide generator 208 determines in step 870 whether there are still depth ranges to be assessed. However, if the determination in step 865 is positive, as in the case of the one in Fig. In Figure 10B, at level 1008, the guide generator 208 is configured to proceed to step 875. In step 875, the guide generator 208 is configured to determine whether the number of suitable sets of depth measurements in the level generated in step 860 is greater than the currently stored best level. In the present example of procedure 850, no best level was stored, and the determination is therefore positive in step 875. The guide generator 208 is therefore configured to proceed to step 880 and update a display of the best level in memory 122 to correspond with the level generated in step 860. The level display stored in memory 122 includes all suitable sets of parameters that define the level (e.g., a normal vector and a depth).

[0054] The guide generator 208 is then configured to determine in step 870 whether there are still depth ranges to be assessed. In the present example implementation, a second depth range still needs to be evaluated, as shown in Fig. 10C is shown using a second subset 1016 of the appropriate set of depth measurements 1000. The guide generator 208 is configured to select the next depth range in step 855 to create another level (represented as a level 1018 in Fig. 10C) to adapt to the subset of suitable depth measurements within the depth range in step 860 and to determine whether plane 1018 in step 865 has the predefined orientation. In the Fig. In the example shown in 10C, layer 1018 does not have the predefined orientation, and the guide generator 208 is therefore configured to discard layer 1018 and proceed to step 870. As also shown in Fig. As can be seen in section 10C, even if plane 1018 has the predefined orientation, the number of suitable depth measurements intersected by plane 1018, specified at 1020, is less than the number of suitable depth measurements intersected by plane 1008. The determination in step 875 would therefore also have been negative, so plane 1018 would have been discarded.

[0055] If all depth ranges have been evaluated, a negative determination in step 870 causes the guide generator 208 to transfer the currently best plane (e.g. as a normal vector and a depth) to the output detector 212 for further processing in step 320 of the procedure 300.

[0056] To Fig. Returning to step 3, the output detector 212 in step 320 is configured to detect an output set of depth measurements that are likely to correspond to the shelf edge 118 from the suitable set of depth measurements. In other words, the output set of depth measurements determined in step 320 identifies the positions of the shelf edges 118 in the acquired data. The output set of depth measurements is determined based on the proximity between each suitable depth measurement and the guide element generated in step 315. With respect to Fig. 11A, when the depth measurements are acquired via the depth camera 504, the acquisition of the output set of depth measurements by the output detector 212 is carried out in step 1100 by selecting the inliers of the best plane determined via procedure 850. That is to say, noting that the plane 1008 in Fig. Since 10B was chosen as the best plane in the present example, the detection of the initial set of depth measurements (i.e., the detection of the shelf edges 118) is performed by the output detector 212, which selects the pixels falling within areas 1012-1 and 1012-2. The output detector 212 is then configured to proceed to step 325, as described below.

[0057] To Fig. Returning to section 12B, when depth measurements are acquired via the LIDAR sensor 404, the output detector 212 is configured to perform step 320 in some examples by executing a procedure 1150. In step 1155, the output detector 212 is configured to select one of the scans processed in steps 305-315, where a variety of scans are available. For example, the output detector 212 can be configured to select scan 416-1. After selecting a scan, the output detector 212 is configured to determine a distance between the guide element (e.g., curve 900) and the previously selected minimum depths for the scan. In other words, curve 900 (generated from the set of scans 416 in step 315) is compared to the minimum depths per sweep angle for each individual scan 416.

[0058] In step 1160, the output detector 212 is configured to select local minima from among the distances determined in step 1155. The local minima can be selected from a preconfigured range of sweep angles (e.g., a minimum distance can be chosen from five consecutive distances). Fig. Figure 12A shows a set of minimum depths per slew angle as selected from a Scan 416 (e.g., Scan 416-1). Exemplary local minimum distances 1204-1 and 1204-2 are also shown between curve 900 and the minimum depth measurement areas 1208-1 and 1208-2. Fig. Figure 12B shows the distances between each of the minimum depth measurements and curve 900 (which is in Fig. (12B itself is not shown), where the aforementioned local minima 1204-1 and 1204-2, as well as further local minima 1204-3, 1204-4, 1204-5, and 1204-6, are shown. As can be seen, additional local minima are also identified, but these are not shown in Fig. 12B are not labelled for the sake of simplicity.

[0059] To Fig. Returning to 11B, the output detector 212 in step 1165 is configured to reject selected minimum distances that exceed a preconfigured distance threshold. The threshold is preconfigured as the distance beyond which the probability of local minima representing a shelf edge 118 is low. For example, the threshold may be preconfigured between zero and approximately ten centimeters. In other examples, the threshold may be preconfigured between zero and approximately five centimeters. In further examples, as in Fig.As shown in Figure 12B, the limit is preconfigured to approximately two centimeters, as indicated by line 1212. Therefore, in step 1165, the output detector 212 is configured to reject local minima 1204-1 to 1204-4 and select local minima 1204-5 and 1204-6.

[0060] In step 1170, the output detector 212 is configured to determine if there are still scans to process. If there are still scans to process, steps 1155-1165 are repeated for each additional scan. If the determination in step 1170 is negative, the output detector 212 proceeds to step 1175. In step 1175, the output detector is configured to discard local minimum distances that do not meet a detection threshold. The detection threshold is a preconfigured number of scans in which a local minimum must be detected at the same slew angle to be retained in the initial set of depth measurements. For example, if the detection threshold is three and local minima for a slew angle of -55 degrees are selected for only two scans (i.e., the remaining scans show no local minima at -55 degrees), these local minima are discarded.Discarding local minima that do not reach the detection threshold can prevent the selection of depth measurements for the initial set that result from measurement artifacts or structural anomalies in the shelf edges 118. In other examples, step 1175 can be omitted.

[0061] After performing step 1175, or after the negative determination in step 1170 if step 1175 is omitted, the output detector 212 is configured to proceed to step 325.

[0062] In step 325, the output detector 212 is configured to store the initial set of depth measurements. This initial set of depth measurements is stored, for example, in the archive in conjunction with the acquired data (e.g., the acquired LiDAR scans 416 or depth images 516) and includes at least identifications of the initial set of depth measurements. For LiDAR data, the initial set is stored as a set of pan angle and line index coordinates that correspond to the local minima selected in step 1160 and maintained through steps 1165 and 1175. For depth image data, the initial set is stored as pixel coordinates (e.g., X and Y coordinates) of the inlier pixels identified in step 1100. The initial set stored in memory 122 can be passed to or retrieved by further downstream functions of the server.

[0063] Specific embodiments have been described in the foregoing description. However, a person skilled in the art will recognize that various modifications and changes can be made without deviating from the scope of the invention as set forth in the following claims. Accordingly, the description and the figures are to be regarded in an illustrative rather than a limiting sense, and all such modifications are to be included within the scope of the present teachings.

[0064] The benefits, advantages, solutions to problems, and all elements that may lead to the occurrence or enhancement of a benefit, advantage, or solution are not to be understood as critical, necessary, or essential features or elements in the claims. The invention is defined exclusively by the attached claims, including any amendments made during the pendency of this application, as well as all equivalents of the claims as granted.

[0065] Furthermore, in this document, relational terms such as first and second, upper and lower, and the like may be used merely to distinguish one entity or action from another, without necessarily requiring or implying any actual relationship or order of such an entity or action between such entities or actions. The expressions "includes," "comprising," "has," "have," "exhibits," "bear," "contains," "include," or any other variation thereof are intended to cover non-exclusive inclusion, such that a process, procedure, product, or device that includes, has, exhibits, or contains a list of elements may not only have those elements but may also have other elements not expressly listed or inherent in such process, procedure, product, or device. An element that "includes," "has," "bears," or "contains"The use of the term "a" does not, without further limitations, preclude the existence of additional identical elements in the process, method, product, or device that comprises, has, features, or contains the element. The terms "a" and "a" are defined as one or more unless expressly stated otherwise herein. The terms "essentially," "generally," "approximately," "about," or any other version thereof are defined in such a way as to be understood by a person skilled in the art in this field, and in one non-restrictive embodiment, the expression is defined as within 10%, in another embodiment as within 5%, in yet another embodiment as within 1%, and in yet another embodiment as within 0.5%. The term "coupled," as used herein, is defined as connected, but not necessarily directly and not necessarily mechanically.A device or structure that is “designed” in a certain way is at least also designed in that way, but may also be designed in ways that are not listed.

[0066] It is understood that some embodiments may include one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, custom processors, and field-programmable gate arrays (FPGAs), and uniquely stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuitry, some, most, or all of the functions of the method and / or device described herein. Alternatively, some or all of the functions may be implemented by a state machine that does not have any stored program instructions, or in one or more application-specific integrated circuits (ASICs) in which each function, or some combinations of certain functions, are implemented as user-defined logic.Of course, a combination of the two approaches can be used.

[0067] Furthermore, an embodiment may be implemented as a computer-readable storage medium on which computer-readable code is stored for programming a computer (which, for example, includes a processor) to execute a method as described and claimed herein. Examples of such computer-readable storage media include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (read-only memory), a PROM (programmable read-only memory), an EPROM (erasable programmable read-only memory), an EEPROM (electrically erasable programmable read-only memory).Furthermore, it is assumed that an average professional, regardless of possible significant effort and many design choices motivated, for example, by available time, current technology, and economic considerations, will be readily able to generate such software instructions, programs, and ICs with minimal experimentation if guided by the concepts and principles disclosed herein.

[0068] The summary of the disclosure is provided to enable the reader to quickly ascertain the essence of the technical disclosure. It is provided with the understanding that it is not intended to be used for interpreting or limiting the scope or meaning of the claims. Furthermore, it can be inferred from the preceding detailed description that various features in different embodiments have been summarized for the purpose of streamlining the disclosure. This type of disclosure is not to be interpreted as reflecting the intention that the claimed embodiments require more features than are expressly stated in each claim. Rather, as the following claims demonstrate, the inventive step lies in fewer than all the features of a single disclosed embodiment.The following claims are hereby incorporated into the detailed description, each claim being a separately claimed subject matter.

Claims

[1] Method for detecting an edge (118) of a support surface (117) by means of an image control (120), comprising: Obtaining a multitude of depth measurements, which are acquired by a depth sensor (209) and correspond to an area containing the support surface (117); Selecting a suitable set of depth measurements by the image control (120) based on at least one of (i) an expected proximity of the edge (118) of the support surface (117) to the depth sensor (209), and (ii) an expected orientation of the edge (118) of the support surface (117) relative to the depth sensor (209); Adapting a guide element to the appropriate set of depth measurements by image control (120); and Capturing, by means of the image control (120), an initial set of depth measurements corresponding to the edge (118) from the suitable set of depth measurements, according to a proximity between each suitable depth measurement and the guide element. [2] Method according to claim 1, wherein obtaining the depth measurements comprises obtaining a LIDAR scan (416) which includes a corresponding group of depth measurements for each of a plurality of swivel angles. [3] Method according to claim 2, wherein the selection of the appropriate set further comprises for each swivel angle a selection of a single minimum depth measurement from the group corresponding to the swivel angle. [4] Method according to claim 3, wherein obtaining the depth measurements comprises obtaining a plurality of LIDAR scans (416), each comprising a corresponding group of depth measurements for each of the plurality of swivel angles; and wherein selecting the appropriate set further comprises selecting, for each swivel angle, a single minimum depth measurement from the plurality of groups corresponding to the swivel angle. [5] Method according to claim 2, wherein the adjustment of the guide element comprises adjusting a curve to the appropriate set of depth measurements. [6] Method according to claim 5, wherein the adaptation of the curve to the suitable set of depth measurements comprises at least one of the following: minimizing a depth of the curve; and maximizing a number of the suitable depth measurements intersected by the curve. [7] Method according to claim 2, wherein capturing the initial set comprises: Determining a distance between the appropriate depth gauge and the guide element for each appropriate depth gauge; Identification of local minima among the distances; and Selecting the appropriate depth measurements that correspond to the local minima. [8] Method according to claim 1, wherein obtaining the depth measurements comprises obtaining a depth image (516) having a plurality of pixels, each containing one of the depth measurements. [9] Method according to claim 8, wherein selecting the appropriate set of depth measurements comprises: Subdividing the depth image (516) into a multitude of areas; Generating normal vectors for each of the regions; and Selecting the depth measurements that are contained in areas with normal vectors with a specified orientation. [10] Method according to claim 8, wherein the adjustment of the guide element comprises: Adapting a plane to the appropriate depth measurements within the depth range for each of a given sequence of depth ranges; and Select one of the planes that intersects the largest number of suitable depth measurements. [11] Method according to claim 10, wherein acquiring the initial set of depth measurements comprises selecting the appropriate depth measurements that are intersected by one of the planes. [12] Method according to claim 1, wherein the support surface (117) is a shelf. [13] Calculating device for detecting an edge (118) of a support surface (117), comprising: a memory (122); and an image control (120) with: a preprocessor (200) configured to obtain a multitude of depth measurements acquired by a depth sensor (209) and corresponding to an area containing the support surface (117); a selection unit (204) configured to select a suitable set of depth measurements based on at least one of (i) an expected proximity of the edge (118) of the support surface (117) to the depth sensor (209), and (ii) an expected orientation of the edge (118) of the support surface (117) relative to the depth sensor (209); a guide generator (208) configured to adapt a guide element to the appropriate set of depth measurements; and an output detector (212) configured to detect an output set of depth measurements corresponding to the edge (118) from the suitable set of depth measurements, according to a proximity between each suitable depth measurement and the guide element. [14] Computing device according to claim 13, wherein the preprocessor (200) is configured to receive the depth measurements by receiving a LIDAR scan (416) which includes a corresponding group of depth measurements for each of a plurality of swivel angles. [15] Computing device according to claim 14, wherein the selection unit (204) is configured to select the appropriate set by selecting a single minimum depth measurement from the group corresponding to the swivel angle for each swivel angle. [16] Computing device according to claim 15, wherein the preprocessor (200) is further configured to obtain the depth measurements by receiving a plurality of LIDAR scans (416), each containing a corresponding group of depth measurements for each of the plurality of swivel angles; and wherein the selection unit (204) is further configured to select the appropriate set by selecting, for each swivel angle, a single minimum depth measurement from the plurality of groups corresponding to the swivel angle. [17] Computing device according to claim 14, wherein the guide generator (208) is configured to adapt the guide element to the appropriate set of depth measurements by adjusting a curve. [18] Computing device according to claim 17, wherein the guide generator (208) is configured to adapt the curve to the appropriate set of depth measurements by at least one of the following steps: Minimizing the depth of the curve; and Maximizing the number of suitable depth measurements intersected by the curve. [19] Computing device according to claim 14, wherein the output detector (212) is configured to detect the output set by: Determining a distance between the appropriate depth gauge and the guide element for each appropriate depth gauge; Identification of local minima among the distances; and Selecting the appropriate depth measurements that correspond to the local minima. [20] Computing device according to claim 13, wherein the preprocessor (200) is configured to receive the depth measurements by receiving a depth image (516) having a plurality of pixels, each containing one of the depth measurements. [21] Computing device according to claim 20, wherein the selection unit (204) is configured to select the appropriate set of depth measurements by: Subdividing the depth image (516) into a multitude of areas; Generating normal vectors for each of the regions; and Selecting the depth measurements that are contained in areas with normal vectors with a specified orientation. [22] Computing device according to claim 20, wherein the guide generator (208) is configured to adapt the guide element by: Adapting a plane to the appropriate depth measurements within the depth range for each of a given sequence of depth ranges; and Select one of the planes that intersects the largest number of suitable depth measurements. [23] Computing device according to claim 22, wherein the output detector (212) is configured to detect the output set of depth measurements by selecting the appropriate depth measurements that are intersected by one of the planes.

Citation Information

Patent Citations

  • Method and apparatus for automated inventory management using depth sensing

    US20150052029A1

  • Truck Unloader Visualization

    US20150352721A1

  • System and method for monitoring a retail environment using video content analysis with depth sensing

    US9740937B2