System and method for measuring the dimensions of a target object
By dynamically adjusting error thresholds based on sensor distance, the method improves the accuracy of object dimension measurements, particularly near the edges of the sensor's field of view, where inaccuracies are more pronounced.
Patent Information
- Application Number
- JP2024504162
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-07-23
- Filing Date
- 2022-07-21
- Publication Date
- 2025-06-18
- Estimated Expiration
- 2042-07-21
AI Technical Summary
Existing sample consensus model fitting methods for determining object dimensions using depth sensors often rely on fixed error bounds, which fail to account for sensor inaccuracies, especially near the edges of the sensor's field of view.
The method involves controlling a depth sensor to determine depth data, selecting an object model, defining a ray from the sensor to each data point, determining errors based on the distance to the object model intersection, accumulating these errors, and selecting the object model when the depth data meets a similarity threshold, thus accounting for varying sensor accuracy.
This approach effectively addresses the issue of sensor inaccuracies by dynamically adjusting error thresholds based on the distance from the sensor, leading to more accurate dimension measurements of target objects.
Smart Images

Figure 0007695466000001 
Figure 0007695466000002 
Figure 0007695466000003
Abstract
Description
Background Art
[0001] Sample consensus model fitting can be used to determine a model for a target object. Such model fitting methods often use fixed error bounds to classify data points as inliers or outliers of the model. However, these methods may not take into account the inaccuracies of the sensors used to acquire the data, particularly near the edges of the sensor's field of view.
Summary of the Invention
[0002] The accompanying drawings, together with the following detailed description, are incorporated in and form a part of this specification, and serve to further explain embodiments of concepts including the claimed invention, and also serve to explain various principles and advantages of those embodiments. In the accompanying drawings, like reference numerals refer to the same or functionally similar elements throughout the separate drawings.
Brief Description of the Drawings
[0003]
Figure 1
[0004]
Figure 2
[0005]
Figure 3
[0006]
Figure 4
[0007]
Figure 5
[0008]
Figure 6
[0009] Those skilled in the art will understand that the elements in the drawings are shown simply and clearly and are not necessarily drawn to scale. For example, the dimensions of some elements in the drawings may be exaggerated compared to other elements to help improve the understanding of the embodiments of the present invention.
[0010] The components of the apparatus and method are, where appropriate, indicated in the drawings by conventional reference numerals, and the drawings show only those specific details relevant to understanding the embodiments of the present invention so as not to obscure the disclosure of the details, and the disclosure of these details will be readily apparent to those skilled in the art who benefit from the description herein.
[0011] The examples disclosed herein are methods for measuring the dimensions of a target object, comprising the steps of controlling a depth sensor to determine depth data representing the target object, selecting an object model based on the depth data, defining a ray from the position of the sensor to each data point of the depth data, determining an error based on the distance from the data point to the intersection of the ray and the object model, accumulating one or more determined errors, selecting the object model as representing the target object when the depth data meets a similarity threshold of the object model, and determining the dimensions of the object based on the selected object model.
[0012] Further embodiments disclosed herein include a depth sensor configured to acquire depth data representing a target object, a memory, and a processor interconnected with the depth sensor and the memory. The processor controls the depth sensor to determine depth data representing the target object, selects an object model based on the depth data, defines a ray from the position of the sensor to each data point of the depth data, determines an error based on the distance from the data point to the intersection of the ray and the object model, accumulates one or more determined errors, and when the depth data meets a similarity threshold of the object model, selects the object model as representing the target object, and is configured to determine the dimensions of the object based on the selected object model.
[0013] FIG. 1 shows a system 100 for measuring (determining) the dimensions of a target object in accordance with the teachings of the present disclosure. The system 100 includes a server 101 that communicates with a computing device 104 (also referred to herein as a detection device 104 or simply device 104) via a communication link 107 shown as including a wireless link in this embodiment. For example, the link 107 may be provided by a wireless local area network (WLAN) deployed by one or more access points (not shown). In other embodiments, the server 101 is located remotely from the device 104, and thus the link 107 may include one or more wide area networks such as the Internet or a mobile network.
[0014] System 100, and more specifically device 104, is deployed to measure (determine) the dimensions of one or more objects such as the space 112 (including the walls and floor of the space), structural features within the space 112 such as the shelf 116, or an object within the space 112 such as the box 120, etc. The device 104 can be a navigation device that allows a mobile automation system to traverse the space 112, or a component of a navigation device. For example, a mobile automation system may traverse the aisles of a retail facility to update prices, check inventory, etc. Accordingly, the device 104 can detect and model the shelf 116 or other aisle features, as well as the walls and floor of the space 112, to allow navigation within the space 112. Further, the device 104 can detect and model obstacles such as the box 120 and allow the mobile automation system to navigate to avoid such obstacles. In other embodiments, the device 104 can be a dimensional measurement device or a component of a dimensional measurement device for determining the size and shape of an obstacle such as the box 120. For example, the device 104 can be deployed (installed) in a transportation and logistics facility and determine the dimensions of a package before shipment. As will be understood, the device 104 can also be deployed (installed) in other use cases to accurately detect and model target objects.
[0015] To detect and model a target object, device 104 may adopt the Random Sample Consensus (RANSAC) method, or other suitable sample consensus fitting methods, to model the target object using relevant data points, while ignoring outer data points so as not to affect the selection of the final model. Traditionally, such methods can select an object model and determine the error of a given data point using the orthogonal distance from each data point to the model. However, depth sensors generally have higher accuracy near the center of the field of view but lower accuracy at the edges or periphery of the field of view. Therefore, such error determination may include data points to be excluded near the outer range of the depth sensor's field of view.
[0016] Therefore, as will be described in more detail below, device 104 determines the error of each data point along a ray (half-line) defined from the position of the sensor to the data point. Therefore, error determination using the same threshold will be more stringent near the edges of the depth sensor's field of view to account for the reduced accuracy of the depth sensor in these regions.
[0017] Next, referring to FIG. 2, specific internal components of computing device 104 are illustrated. Device 104 includes a processor 200 interconnected with a non-transitory computer-readable storage medium such as memory 204. Memory 204 includes a combination of volatile memory (random access memory, i.e., RAM, etc.) and non-volatile memory (read-only memory, i.e., ROM, electrically erasable programmable read-only memory, i.e., EEPROM, flash memory, etc.). Processor 200 and memory 204 may each have one or more integrated circuits.
[0018] Memory 204 stores (stores in memory) computer-readable instructions for execution by processor 200. In particular, memory 204 stores dimensioning application 208, which configures processor 200 to perform various functions related to the target dimensioning operation of device 104, which will be described in more detail below, when executed by processor 200. The application 208 may also be implemented as a suite of separate applications.
[0019] Those skilled in the art will understand that the functions implemented by processor 200 may also be implemented by one or more specially designed hardware components and firmware components, such as field programmable gate arrays (FPGAs) and application specific integrated circuits (ASICs), in other embodiments. In one embodiment, processor 200 may be a dedicated processor that may be implemented via a dedicated logic circuit such as an ASIC or FPGA, respectively, to increase the processing speed of the dimensioning operations described herein.
[0020] Memory 204 also stores a repository 212 that stores (stores in memory) rules and data for the target dimensioning operation. For example, repository 212 may store error thresholds, inlier percentage thresholds, and other relevant data for the target dimensioning operation.
[0021] Device 104 also includes a communication interface 216 that enables the device 104 to exchange data with other computing devices such as server 101. The communication interface 216 is interconnected with the processor 200 and includes appropriate hardware (e.g., a transmitter, a receiver, a network interface controller, etc.) that permits the device 104 to communicate with other computing devices such as server 101 via the link 107. The specific components of the communication interface 216 are selected based on the type of network or other link through which the device 104 communicates. The device 104 may be configured to communicate with the server 101 via the link 107 using the communication interface, for example, to transmit data to the server 101.
[0022] Device 104 further includes a depth sensor 220 interconnected with the processor 200. The processor 200 is activated to control the depth sensor 220 to capture data representing targets such as the space 112, the shelf 116, the box 120, etc. For example, the depth sensor 220 may be a 3D digital camera capable of capturing depth data, one or more LIDAR sensors, a stereoscopic image system, etc.
[0023] Device 104 may further include one or more input and / or output devices 224. The input device 224 may include one or more buttons, a keypad, a touch-sensitive display screen, etc. for receiving input from an operator. The output device 224 may further include one or more display screens, a sound generator, a vibrator, etc. for providing output or feedback to the operator.
[0024] In some embodiments, device 104 may further include additional modules (not shown) to use the selected object model of the target object for further operations. For example, device 104 may include a navigation module configured to determine a path that the mobile automation system should navigate considering the selected object model. Alternatively or additionally, device 104 may include a dimension determination module configured to further determine the dimensions of the target object based on the selected object model.
[0025] Next, referring to FIG. 3, the functions implemented by device 104 are described in more detail. FIG. 3 shows a method 300 for determining (measuring) the dimensions of a target object. The method 300 is described in connection with the execution of the method via the execution of application 208 in system 100, particularly by device 104. In particular, method 300 is described with reference to the components of FIGS. 1 and 2. In other embodiments, method 300 may be executed by other suitable devices or systems such as server 101.
[0026] Method 300 begins at block 305 where sensor 220 obtains depth data representing a scene that includes the target object whose dimensions are to be determined. For example, the target object may be a wall and / or floor of space 112, the surface of shelf 116, or box 120. The depth data may be a point cloud, i.e., a set of data points each representing the distance or depth of that data point from sensor 220. The depth data includes not only data points related to the detection and modeling of the target object but also additional data points representing the surrounding environment of the target object that do not contribute to the modeling of the target object.
[0027] In block 310, the processor 200 selects an object model that fits (matches) the depth data obtained in block 310. That is, the processor 200 selects an object model that roughly matches the data points to the object model. The object model can be, for example, a line, a plane, a cuboid, or other geometric shapes that fit the overall shape of the point cloud. In other embodiments, instead of selecting an object model based on all the data points in the depth data, the processor 200 may first select a subset of the depth data and select an object model based on the subset.
[0028] After selecting the object model, the processor 200 may determine the overall similarity of the object model to the depth data and determine whether the selected object model sufficiently represents the depth data. In particular, to determine the overall similarity, the processor 200 may first determine the error of each data point with respect to the object model.
[0029] Accordingly, in block 315, the processor 200 selects data points from the depth data. In particular, the processor 200 selects data points for which the error has not yet been calculated.
[0030] In block 320, the processor 200 defines a ray (half-line) from the position of the sensor 220 to the selected data point. That is, the processor 200 may obtain the position of the sensor 220 from the memory 204 based on the known spatial relationship between the detected data point and the sensor 220. Then, the ray may be defined from the obtained position and the selected data point.
[0031] In some embodiments, the depth data may be obtained from a plurality of sensors 220. For example, the device 104 itself may include a plurality of sensors 220, or the depth data may be an accumulation of data points from a plurality of different devices 104 in, for example, a simultaneous localization and mapping (SLAM) implementation. In such embodiments, before defining a ray, the processor 200 may first identify the source sensor of the selected data point. Next, the processor 200 may define a ray from the position of the source sensor to the data point.
[0032] In block 325, the processor 200 determines the error of the data point based on the distance from the data point along the ray defined in block 320 to the object model. That is, the processor 200 may first determine the intersection between the ray and the object model. Next, the processor 200 calculates the distance between the intersection and the data point, for example, based on the Euclidean distance between two points. This distance may be defined as the error of the data point. The processor 200 may store (store) the determined error in the repository 212 for further processing.
[0033] For example, FIG. 4 shows exemplary depth data 400 captured by the sensor 220. The depth data 400 includes (a plurality of) data points 404, three of which, exemplary data points 404-1, 404-2, 404-3 (collectively referred to as (a single) data point 404 and collectively as (a plurality of) data points 404, this nomenclature is also used elsewhere in this specification) are particularly noted. The processor 200 fits the object model 408 to the depth data 400. In this embodiment, the object model 408 is a line. For example, the depth data 400 and the object model 408 may represent an edge of an object or a surface. As will be appreciated, in other embodiments, other object models are contemplated, such as a plane representing a floor, wall, or other surface, a rectangular prism representing a box, or other geometric objects.
[0034] Based on the known configuration of sensor 220 and the detected depth data 400 for sensor 220, processor 200 may determine that sensor 220 is located at position 412. Accordingly, in block 320, processor 200 defines ray 416 from position 412 to the selected data point. In this example, three rays 416-1, 416-2, 416-3 corresponding to data points 404-1, 404-2, 404-3 respectively are illustrated. Next, processor 200 may determine the distance between data point 404 and each intersection of ray 416 and object model 408. These distances respectively represent errors 420-1, 420-2, 420-3 of data points 404-1, 404-2, 404-3.
[0035] In some embodiments, in addition to determining the error of the data points selected in block 325, processor 200 may additionally classify the data points as inliers or outliers of the object model selected in block 310. For example, the data points may be classified as inliers or outliers based on the determined error of the data points. Processor 200 may compare the error of the data points with an error threshold (e.g., obtained from memory 204). If the error exceeds the error threshold, processor 200 classifies the data point as an outlier. If the error is below the error threshold, processor 200 classifies the data point as an inlier.
[0036] Since the error is defined along the ray from the position of sensor 220 to the data point, the envelope of inliers is narrow near the edge of the field of view of sensor 220 and widens towards the center of the field of view of sensor 220. For example, referring to FIG. 5, a schematic diagram of envelope 500 representing the error threshold is shown. Data points (represented by black circles) within envelope 500 are classified as inliers, and data points outside the envelope (represented by the outline of the circle) are classified as outliers.
[0037] Therefore, data points having a predetermined orthogonal distance from an object model near the center of the field of view of sensor 220 can be classified as inliers, while data points having the same orthogonal distance from the object model but near the edge of the field of view of sensor 220 can be classified as outliers. That is, the ray tracing error provides a higher orthogonal distance error threshold near the center of the field of view of sensor 220 and a lower orthogonal distance error threshold near the edge of the field of view of sensor 220. This is consistent with the accuracy of the depth measurements detected by sensor 220. Generally, sensor 220 is more accurate the closer it is to the center of its field of view and less accurate the closer it is to the edge of its field of view.
[0038] In other embodiments, rather than having a predetermined (constant) error threshold used to classify data points, the error threshold can be dynamically selected based on the distance of the data point from sensor 220. For example, processor 200 can select a higher error threshold for data points that are farther from sensor 220. Accordingly, memory 204 can store an association between a range of distances of data points and the corresponding error thresholds to be used for data points within that range. Thus, before classifying a data point as an inlier or an outlier, processor 200 obtains an error threshold based on the distance of the data point from sensor 220. Next, processor 200 compares the obtained error threshold with the error of the data point to classify the data point as an inlier or an outlier.
[0039] Referring to FIG. 6, exemplary depth data 600 captured by a plurality of sensors is illustrated. The sensors are located at positions 604-1, 604-2, 604-3. As will be appreciated, for a given data point, processor 200 defines a ray from the position of each source sensor 604 of the data point to the data point. Next, the error of each data point is calculated along these rays. Accordingly, each of the sensors can have its own error threshold and envelope for classifying data points.
[0040] Returning to FIG. 3, after determining the error of the data points, in block 330, the processor 200 determines whether there are additional data points in the depth data or a subset of the depth data for which the error is to be determined. If the determination is affirmative, the processor 200 returns to block 315, selects the next data point, and determines its error.
[0041] If the determination in block 330 is negative, the processor 200 proceeds to block 335. In block 335, the processor 200 determines whether the depth data and the object model selected in block 310 satisfy a similarity threshold based on the error determined for the data points. That is, the processor 200 determines whether the selected object model sufficiently represents the depth data.
[0042] To determine whether the depth data and the object model satisfy a similarity threshold, the processor 200 may use the classification of the data points as inliers and outliers. In particular, if at least a threshold percentage of the data points in the depth data are inliers, the processor 200 may make an affirmative decision in block 335. If fewer data points than the threshold percentage in the depth data are inliers, the processor 200 may make a negative decision in block 335. In other embodiments, other similarity thresholds may be used. For example, instead of using the classification of the data points as inliers and outliers, the processor 200 may use the error values themselves to determine whether the depth data and the object model satisfy a similarity threshold.
[0043] If the determination at block 335 is negative, the processor 200 proceeds to block 340. At block 340, the processor 200 selects a new object model for the depth data, returns to block 310, fits the new object model to the depth data, and repeats the error determination of the depth data based on the new object model. In particular, the new object model can be selected based on a subset of the depth data. The subset can be a randomly selected subset or, alternatively, a set of data points classified as inliers.
[0044] At block 335, if the processor 200 determines that the depth data meets the similarity threshold for the object model, the processor 200 proceeds to block 345. At block 345, the processor 200 selects the object model as representing the target object. Then, the selected object model representing the target object is used to determine the object dimensions of the target object. Additionally, the object model can be used for further output. For example, the processor 200 can display the object model representing the target object on the display of device 104.
[0045] In other embodiments, the object model can be sent to other operation modules for further processing and / or other operations. For example, the object model can be sent to a navigation module, allowing the mobile automation system to map the target object and navigate around or through the target object accordingly. Alternatively, the model can be sent to a dimension measurement module, allowing the dimension measurement device to accurately measure the dimensions of the target object.
[0046] Additionally, method 300 can include other stopping conditions, such as the number of iterations to be attempted. If a threshold number of iterations of the selection of a new model is attempted, the processor 200 can end method 300 and output an error notification.
[0047] In the foregoing specification, specific embodiments have been described. However, those skilled in the art will recognize that various modifications and changes can be made without departing from the scope of the invention as set forth in the following claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a limiting sense, and it is intended that all such modifications be included within the scope of the present teachings.
[0048] Benefits, advantages, solutions to problems, and any element that may give rise to or make more prominent any benefit, advantage, or solution should not be construed as a decisive, required, or essential feature or element in any or all of the claims of the claims. The present invention is defined only by the appended claims and includes any amendments made during the pendency of this application and all equivalents of the claims as issued.
[0049] Moreover, in this document, relative terms such as first and second, upper and lower, etc. may be used only to distinguish one entity or action from another entity or action, and may not necessarily require or imply an actual such relationship or order between such entities or actions. The terms "comprises", "comprising", "has", "having", "include", "including", "contains", "containing", or any other variations thereof are intended to cover non-exclusive inclusion. A process, method, article, or apparatus that comprises, has, includes, or contains a listing of elements does not include only those elements, but may also include other elements not expressly listed or other elements inherent to such process, method, article, or apparatus. Elements following "comprises...a", "has...", "includes...a", or "contains...a" do not, without further limitations, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, or contains such element. The terms "a" and "an" are defined as one or more unless expressly stated otherwise. The terms "substantially", "essentially", "approximately", "about", or any other variations thereof are defined as being near in state as would be understood by one of ordinary skill in the art, and in one non-limiting embodiment, the terms are defined as within 10%, in another embodiment within 5%, in another embodiment within 1%, and in another embodiment within 0.5%. The term "coupled" as used herein is defined as connected, but may not necessarily be direct and may also not necessarily be mechanical. A device or structure "configured" in a certain way is at least configured in that way, but may also be configured in ways not recited.
[0050] Some embodiments may include one or more dedicated processors (or "processing devices"), such as a microprocessor, digital signal processor, customized processor, and field programmable gate array (FPGA), and specific stored program instructions (including both software and firmware) that control the one or more processors to implement some, most, or all of the functions of the methods and / or apparatuses described herein in conjunction with certain non-processor circuits. Alternatively, some or all of the functions may be implemented by a state machine without stored program instructions, or in one or more application specific integrated circuits (ASICs) implemented as custom logic for each function or some combination of specific functions. Of course, a combination of the two approaches may be used.
[0051] Furthermore, embodiments may be implemented as a computer-readable storage medium having stored computer-readable code for programming a computer (e.g., including a processor) to perform the methods described and claimed herein. Examples of such computer-readable storage media include, but are not limited to, hard disks, CD-ROMs, optical storage devices, magnetic storage devices, ROM (read only memory), PROM (programmable read only memory), EPROM (erasable programmable read only memory), EEPROM (electrically erasable programmable read only memory), and flash memory. Further, it is expected that one of ordinary skill in the art will be able to readily generate such software instructions and programs and ICs with minimal experimentation when guided by the concepts and principles disclosed herein, despite any potentially significant effort and many design choices motivated, for example, by available time, current technology, and economic considerations.
[0052] The summary of the present disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is presented with the understanding that it is not used to interpret or limit the scope or meaning of the claims of the patent claims. Also, in the foregoing detailed description, for the purpose of streamlining the disclosure, it may be recognized that various features are grouped together in various embodiments. This method of disclosure should not be construed as reflecting an intention that the claimed embodiments require more features than those expressly recited in each claim. Rather, as reflected in the following claims, the subject matter of the present invention exists in less than all of the features of a single disclosed embodiment. The following claims are hereby incorporated into the detailed description, and each claim stands on its own as a separately claimed subject matter. Note that the claims at the time of filing are as follows. <Claim 1> A method for measuring the dimensions of a target object, controlling a depth sensor to determine depth data representing the target object; selecting an object model based on the depth data; defining, for each data point of the depth data, a ray from the position of the sensor to the data point, and determining an error based on the distance from the data point to the intersection of the ray and the object model; accumulating one or more determined errors; selecting the object model as representing the target object when the depth data meets a similarity threshold of the object model; determining the dimensions of the object based on the selected object model; and a method characterized by comprising the steps of. <Claim 2> The model is selected based on a subset of the depth data The method according to claim 1, characterized in that. <Claim 3> classifying each data point as an inlier or an outlier based on the error threshold and the error of the data point The method according to claim 1, further comprising <Claim 4> selecting the error threshold for the data point based on the distance of the data point from the sensor The method according to claim 3, further comprising <Claim 5> when the threshold percentage of the depth data is classified as an inlier, the depth data is determined to satisfy the similarity threshold The method according to claim 3, characterized in that <Claim 6> the new model is selected based on a subset of the depth data classified as inliers The method according to claim 3, characterized in that <Claim 7> obtaining further depth data representing the target object from one or more additional sensors; for each data point, determining the source sensor for that data point; further comprising the ray is defined from the position of the source sensor for the data point The method according to claim 1, characterized in that <Claim 8> the step of outputting the model further comprises displaying the selected model; transmitting the selected model to a navigation module to allow a mobile automation system to navigate taking into account the target object; including one or more of The method according to claim 1, characterized in that <Claim 9> If the depth data does not meet the similarity threshold of the object model based on the accumulated one or more determined errors, select a new object model and repeat the determination of the error for each data point of the depth data based on the new object model. The method according to claim 1, further comprising the above. <Claim 10> A depth sensor configured to acquire depth data representing a target object, A memory, A processor interconnected with the depth sensor and the memory, Comprising: The processor is Controlling the depth sensor to determine depth data representing the target object, Selecting an object model based on the depth data, For each data point of the depth data, defining a ray from the position of the sensor to the data point, and determining an error based on the distance from the data point to the intersection of the ray and the object model, Accumulating one or more determined errors, When the depth data meets the similarity threshold of the object model, selecting the object model as representing the target object, Determining the dimensions of the object based on the selected object model Is configured as An apparatus characterized by the above. <Claim 11> The model is selected based on a subset of the depth data The apparatus according to claim 10, characterized by the above. <Claim 12> The processor is further configured to classify each data point as an inlier or an outlier based on an error threshold and the error of the data point. The apparatus according to claim 10, characterized by the above. <Claim 13> The processor is further configured to select the error threshold for the data points based on the distances of the data points from the sensor The apparatus according to claim 12, characterized in that <Claim 14> When the threshold percentage of the depth data is classified as an inlier, the depth data is determined to satisfy the similarity threshold The apparatus according to claim 12, characterized in that <Claim 15> The new model is selected based on a subset of the depth data classified as inliers The apparatus according to claim 12, characterized in that <Claim 16> The processor is further configured to obtain depth data representing the target object from one or more additional sensors and to determine, for each data point, the source sensor for that data point, wherein the ray is defined from the position of the source sensor for the data point The apparatus according to claim 10, characterized in that <Claim 17> A navigation module configured to receive the selected model and to determine a path for the mobile automation system to navigate considering the selected model The apparatus according to claim 10, further comprising <Claim 18> Based on the integrated one or more determined errors, if the depth data does not meet the similarity threshold of the object model, the processor is further configured to select a new object model and to repeat the determination of the error for each data point of the depth data based on the new object model The apparatus according to claim 10, characterized in that
Claims
1. A method for measuring the dimensions of a target object, comprising: controlling a depth sensor to determine depth data representing the target object; selecting an object model based on the depth data; for each data point of the depth data, defining a ray from the position of the sensor to the data point, and determining an error based on the distance from the data point to the intersection of the ray and the object model; accumulating a plurality of determined errors; when the depth data meets a similarity threshold of the object model, selecting the object model as representing the target object; determining the dimensions of the object based on the selected object model; and whether the depth data meets the similarity threshold is determined based on the plurality of determined errors. A method characterized by the above.
2. The method according to claim 1, wherein the model is selected based on a subset of the depth data.
3. The method according to claim 1, further comprising classifying each data point as an inlier or an outlier based on an error threshold and the error of the data point.
4. The method according to claim 3, further comprising selecting an error threshold for the data point based on the distance of the data point from the sensor.
5. obtaining additional depth data representing the target object from one or more additional sensors; for each data point, determining a source sensor for the data point; and The ray is defined from the position of the source sensor for the data point The method according to claim 1, characterized in that
6. Based on the integrated one or more determined errors, if the depth data does not meet the similarity threshold of the object model, selecting a new object model and repeating the determination of the error for each data point of the depth data based on the new object model The method according to claim 1, further comprising the above
7. A depth sensor configured to acquire depth data representing a target object, A memory, A processor interconnected with the depth sensor and the memory, Comprising The processor is Controlling the depth sensor to determine depth data representing the target object, Selecting an object model based on the depth data, For each data point of the depth data, defining a ray from the position of the sensor to the data point and determining an error based on the distance from the data point to the intersection of the ray and the object model, Accumulating a plurality of determined errors, When the depth data meets the similarity threshold of the object model, selecting the object model as the one representing the target object, Determining the dimensions of the object based on the selected object model Configured as Whether the depth data meets the similarity threshold is determined based on the plurality of determined errors The device is characterized in that
8. The model is selected based on a subset of the depth data The device according to claim 7, characterized in that
9. The processor is further configured to classify each data point as an inlier or an outlier based on an error threshold and the error of the data point The apparatus according to claim 7, characterized in that
10. The processor is further configured to select the error threshold for the data point based on the distance of the data point from the sensor The apparatus according to claim 9, characterized in that
11. The new model is selected based on a subset of the depth data classified as inliers The apparatus according to claim 9, characterized in that
12. The processor is further configured to obtain depth data representing the target object from one or more additional sensors and determine, for each data point, the source sensor for that data point, The ray is defined from the position of the source sensor for the data point The apparatus according to claim 7, characterized in that
13. A navigation module configured to receive the selected model and determine a path for the mobile automation system to navigate considering the selected model The apparatus according to claim 7, further comprising
Citation Information
Patent Citations
Image processing device, driving support device, image processing method, and image processing program
JP2013114610A
Hand recognition method, hand recognition program, and hand recognition apparatus
JP2019096119A
Systems and methods for augmented reality preparation, processing, and application
US20190080516A1
Method and System for Remote Clothing Selection
US20210049811A1
Plane-fitting edge detection
US9607207B1