Method of evaluating 3D objects

By receiving triangular grid data and calculating the size layer perimeter of 3D objects, the problem of difficulty in effectively managing and retrieving 3D object data in the prior art is solved, and efficient comparison and retrieval of similar three-dimensional object models is achieved.

CN119888150APending Publication Date: 2025-04-25PHYSNA INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411970019.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2017-05-08
Filing Date
2018-05-08
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

The prior art is difficult to effectively manage and retrieve large amounts of 3D object data, especially in comparing and retrieving similar three-dimensional object models.

Method used

By receiving triangular mesh data, the size layer of the 3D object is obtained, the perimeter length value of each layer is calculated, and compared with the stored perimeter length value of the reference object to determine the degree of match. The method is able to change the search range in terms of size and topology to identify objects similar to a predetermined shape.

Benefits of technology

It realizes efficient comparison and retrieval of two or more three-dimensional object models, and can identify similar objects with different sizes and topological structures, improving the efficiency of data management and retrieval.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119888150A_ABST
    Figure CN119888150A_ABST
Patent Text Reader

Abstract

A method obtains a size layer of triangular mesh data of a 3D object from a slicing program in each of three orthogonal directions. A perimeter length value for each layer of each of the three orthogonal directions is obtained and compared to a stored perimeter length value of the reference object to determine a degree of matching. Measurement data can be simplified by processing through CNC / 3D printing software. A smaller one of the 3D objects is also analyzed. For a more robust approach, values are assigned to analyze each triangle in the triangular mesh data by aggregating the perimeter of the surrounding triangles. And matching with the reference object according to the distributed total perimeter value. The 3D object may be scaled in one, two, or three orthogonal dimensions to match the reference object.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application based on the patent application of the applicant Fisner Co., Ltd., whose application date is May 8, 2018, application number is CN201880045270.0 (international application number is PCT / US2018 / 031554) and invention name is "System and method for evaluating 3D models". Technical Field

[0002] The technical field disclosed herein relates to a three-dimensional data processing device, a three-dimensional data processing method and a three-dimensional data processing program. More specifically, the present invention relates to a device, a method or a program, which has the ability to search for an object similar to a predetermined shape from an input shape model (CAD model or mesh model) and can change the search range in size and / or proportion. Background Art

[0003] Generally, the present disclosure relates to computer-aided design, drafting, manufacturing, and visualization systems (individually and collectively, "CAD systems"). CAD systems typically use a database of two-dimensional (2D) and three-dimensional (3D) geometric models.

[0004] In recent years, object data representing 3D objects, not only conventional CAD data but also 3D object data about commodities, has been widely used. In addition, the practice of digitizing objects into 3D object data to build digital archives has become popular. The amount of these types of data has been steadily increasing, and therefore, the demand for efficient data management and efficient retrieval of data requested by users has been growing. In order to meet these demands, various technologies have been proposed. Regarding the technology of retrieving similar objects, many retrieval methods have been proposed, which calculate the features of multimedia objects in feature values ​​represented by digital values ​​and use multidimensional vectors composed of feature values.

[0005] In addition, various products have been designed using CAD today. A system has been proposed that registers 3D table data and the constituent parts of a product into a database and retrieves similar products and parts. For example, in US2002 / 0004710A1, the disclosure of which is incorporated herein in its entirety, a system is proposed that retrieves objects that partially overlap with a 3D table model composed of polygons. In this system, a table analysis tree is constructed with adjacent nodes as parent nodes and nodes based on polygons, and the consistency of the nodes in the table analysis tree is evaluated to determine the similarity of the 3D table. By this method, for example, a mechanical part made by CAD can be used as a search keyword for searching, and then an object containing a part can be obtained, which is obtained as a sub-element by additional processing of the part. In view of the system disclosed in the prior art, it is believed that the present invention now provides a novel system and method for comparing two or more three-dimensional (3D) object models. Summary of the invention

[0006] In one aspect, the present disclosure provides a novel system and method for comparing two or more three-dimensional (3D) object models. In one embodiment, the present invention provides a method, comprising: (i) receiving triangular mesh data describing a 3D object; (ii) obtaining a dimensional layer of the 3D object from a slicing procedure in each of three orthogonal orientations; (iii) obtaining perimeter length values ​​for each layer in each of the three orthogonal orientations; (iv) comparing the obtained perimeter length values ​​with stored perimeter length values ​​of a reference object; and (v) determining whether there is a match between the 3D object and the reference object based on the amount of match between the obtained and stored perimeter values.

[0007] In one aspect, the present disclosure provides a method, comprising: receiving triangular mesh data describing a three-dimensional (3D) object. For each 3D triangle in the received triangular mesh data of the 3D object as a reference triangle, the method comprises: (i) identifying three adjacent triangles that share edges with the reference triangle; (ii) calculating a total perimeter value of the perimeter lengths of the three adjacent triangles; (iii) assigning the total perimeter value to the reference triangle. The method comprises comparing the total perimeter value assigned to the 3D object with the total perimeter value assigned to the reference object; and determining whether there is a match between the 3D object and the reference object based on the amount of matches between the obtained and stored total perimeter values.

[0008] These and other features are more fully described in the embodiments shown below. It should be understood that, in general, features of one embodiment can also be used in combination with features of another embodiment, and these embodiments are not intended to limit the scope of the invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Various exemplary embodiments of the present invention are described in the following detailed description in conjunction with the accompanying drawings, which will become more apparent as the description proceeds, in which:

[0010] Figure 1 is a block diagram of an apparatus for matching a three-dimensional (3D) object with a reference object according to one or more embodiments;

[0011] Figure 2 is a flow chart of a method of matching a 3D object with a reference object according to one or more embodiments;

[0012] Figures 3A-3C is an isometric orthographic view of an exemplary 3D object having a keyhole according to one or more embodiments;

[0013] Figure 4 is a diagram of a reference triangle surrounded by three adjacent triangles according to one or more embodiments;

[0014] Figure 5 is a graph of a reference triangle surrounded by three adjacent triangles and other triangles that share vertices according to one or more embodiments;

[0015] Figure 6 A flow chart illustrating an exemplary method for fast matching using slice perimeter measurement according to one or more embodiments is shown;

[0016] Figure 7 A flowchart illustrating an example method of strictly matching each reference triangle of a 3D triangle mesh to a perimeter sum of adjacent triangles according to one or more embodiments;

[0017] Figure 8 A block diagram illustrating an exemplary computer-readable medium or computer-readable device including processor-executable instructions configured to embody one or more provisions set forth herein according to one or more embodiments; and

[0018] Fig. 9 A scene is shown of an aerial drone 3D scanning a communication tower as part of a routine inspection in accordance with one or more embodiments. DETAILED DESCRIPTION

[0019] The present invention generally relates to a novel system and method for comparing two or more three-dimensional (3D) object models. The present invention relates to a 3D data processing device, a 3D data processing method and a 3D data processing program. More specifically, the present invention relates to a device, a method or a program, which has the ability to search for parts similar to a predetermined shape from an input shape model (CAD model or mesh model) and can change the search range in terms of size and / or topology.

[0020] In one or more aspects, a method obtains dimension layers of triangular mesh data of a 3D object from a slicing program in each of three orthogonal directions. Perimeter length values ​​for each layer in each of the three orthogonal directions are obtained and compared to stored perimeter length values ​​of a reference object to determine a match. The measured data can be simplified by processing through CNC / 3D printing software. Smaller objects in the 3D object are also analyzed. For a more robust method, each triangle in the triangular mesh data is analyzed by summing the perimeters of surrounding triangles to assign a value. A match is made to a reference object based on the assigned total perimeter value. The 3D object can be scaled in one, two, or three orthogonal dimensions to match the reference object.

[0021] In one or more embodiments, various methods are utilized depending on the average processing time required for the calculation. In another embodiment, the methods and processing steps are not co-dependent and can be used in almost every conceivable combination to evaluate similarities and differences between two or more three-dimensional (3D) object models. The analysis method can be performed independently, in conjunction with one or more other analyses, in any given order, and the analysis method can include other processes to further data collection as appropriate.

[0022] The present invention relates to a similar shape comparison and retrieval device 100, which includes: (i) a reference shape model input unit 102, used to provide a reference shape model; (ii) a test shape model input unit 104, used to provide a test shape model; (iii) a comparison and retrieval unit 106, used to search for a shape model similar to the test shape model; and (iv) a display unit 108, used to display any one of the test shape models determined to be similar to the reference shape model.

[0023] The comparison and retrieval unit ideally includes: (i) a file conversion module (optional) 110; (ii) a mesh generation module (optional) 112, for meshing the shape model to obtain a shape mesh model; (iii) an object slicing module 114, for slicing the shape model to obtain slice parameters of the shape model; (iv) a parameter calculation module 116, for calculating parameters of a local shape model; (iv) an object extraction module 118, for dividing the shape model into one or more local shape models; (v) a comparison calculation module 120, for comparing the similarity between the parameter features of the shape model and the parameter features of the reference shape model.

[0024] The novel design can be implemented in a variety of configurations, depending on the intended use of the system. All configurations can contain at least the following components: (a) file conversion module (optional); (b) mesh generation module (optional); (c) object slicing module; (d) parameter calculation module; (e) object extraction module; (e) comparison calculation module; and (f) comparison output display.

[0025] The shape model data is converted into triangular mesh data, and triangular mesh data groups are extracted and classified. The shape model data is divided into "components" with certain characteristics. These are the triangular mesh data conversion process and the local feature shape extraction process. The feature quantity of the triangular mesh data group representing the classified local feature shape is calculated, and then the difference between the feature quantity of the calculated triangular mesh data group and the feature quantity of the reference shape is calculated. Based on the difference in the feature parameter quantity, a candidate list of similar shapes is displayed.

[0026] Figure 2 A method 200 is shown, which includes preliminary steps in preparation for processing:

[0027] (1) Generate a digital 3D model using commercial computer-aided design software such as SolidWorks (Dassault Systemes SolidWorks Corp., Waltham, Mass.) or AutoCAD (Autodesk, Inc., San Rafael, Calif.);

[0028] (2) In step 202, the model is uploaded to the database. Various types of files that can be uploaded to the server for visualization may include, but are not limited to, .asm files, STL files, IGES files, STEP files, Catia files, SolidWorks files, ProE files, 3D Studio files, and / or Rhino files.

[0029] (3) In step 204, the files are converted to the same format. An example of a format is .stl format. In an exemplary embodiment, all files are converted to STL format, although other formats may be used. Commercial software such as NuGraf and PolyTrans Pro Translation System from Okino Computer Graphics in Ontario, Canada can be used for the conversion. The system can take any existing 3D model, such as a scan from a computerized tomography (CT) scan, a CAD file, etc., and convert the scan to an STL file.

[0030] (4) In step 206, upload the .stl file to a processing queue with the same all-dimensional units (eg, all metric or all-English).

[0031] (5) In step 208, check whether repair is needed. If repair is needed, the uploaded file is sent to a repair module (step 210), such as a well-known slicing program.

[0032] STL (STereoLithography) is a file format native to the stereolithography CAD software created by 3D Systems. STL has some new meanings, such as "Standard Triangle Language" and "Standard Subdivision Language". Many other software packages also support this file format; it is widely used in rapid prototyping, 3D printing, and computer-aided manufacturing.

[0033] In an exemplary embodiment of the first stage, the method 200 for processing an uploaded file includes a first step (step 212) of reading a .stl file and storing vertices in SQL data. A vertex is the location of each point of a triangle in three-dimensional space. Therefore, the data is stored as three-dimensional reference points of the three points of the triangle. The length of the side is calculated from these three points. The reference data and measurements are associated with the assigned identifiers of the triangles based on the processing order. The scanned object can have 500,000 or more triangles. The .stl file provides curved triangles and solid pyramids. The surface definition of the object is obtained by a file conversion module, which: (a) imports the .stl file; (b) orients the object in three orthogonal axes {x, y, z}; (c) orients / rotates 2x 90° back and 90° left to obtain three orthogonal directions to present to the slicer. These three directions provide every combination regardless of the original orientation of the object. The .stl provides the software to always treat plane "1" as the face facing the slider. The other two directions implement an orthogonal set of slices.

[0034] In the second stage of step 214, the method includes recreating the .stl file from the SQL version in three orthogonal axes {x, y, z} by rotating 90 degrees to the left and 90 degrees backward. In the third stage, this includes slicing each of the three directions with MATTERSLICE to obtain three sets of G codes. Slicing programs (such as slic3r, MatterSlice, craftware, matter control, etc.) can produce a result, which is then separated as a perimeter number by generating G code. G code is a machine language for computer numerical control (CNC) or 3D printers that can be used to manufacture objects. Using G code, the method includes measuring the perimeter of all slices. For example, assuming that the G code provides 400 slices, 400 perimeters will be generated for comparison. Find a match that matches these 400 perimeters in any order. Due to different directions, slice 1 does not have to match slice 1. A score is obtained based on the number of layers. For example, in the case of no matching slices, the match can be 0, and in this example, the match can be 400 to achieve a perfect match.

[0035] In one or more embodiments, the 3D table data is brought into a situation where the longest coordinate is maximized. A method may be used to set such a coordinate system: maximize x, y and z coordinates, calculate the similarity in each situation, and output the situation with the highest similarity as the search result.

[0036] In one or more embodiments, one or more data acquisition devices may be used to generate raw 3D data about an object and input the raw 3D data to a server. Some examples of suitable data acquisition devices include laser scanners for acquiring 3D surface data and MM scanners, CAT scanners, or laser confocal microscopes for acquiring 3D volume data. However, it should be understood that the data acquisition device may include any device that generates digitized 3D data from an object. The acquired 3D data may be 3D surface data, such as 3D surface data generated by optically scanning the surface of an object, or 3D volume data, including information about the interior of the object, such as volume data obtained from an MM scan, a CAT scan, or a laser confocal microscope.

[0037] In the example of 3D surface data, when an object is scanned using a laser scanner, tens or hundreds of thousands of point coordinates are generated, each representing a location on the object. The collection of these points is called a "point cloud". It has no structure, just a file containing point coordinate data (such as x, y, z values). As is well known in the art, point cloud information can also be generated interactively or automatically from mathematical functions using computer programs. In either case, to use the point cloud, it must be structured or modeled.

[0038] One advantageous method for modeling 3D data is to triangulate a point cloud to generate a triangular mesh with digitized points as vertices. 3-D triangle meshes are well-known surface modeling primitives, widely used to represent real-world and synthetic surfaces in computer graphics. Each triangle "knows" its neighbors, which are triangles that can quickly process the geometry represented by the triangulation. It is important to emphasize that the same set of vertices or data points may have multiple triangulations. Therefore, the focus is on the vertices themselves, not the "surface" represented by the triangles. The triangle mesh contains a representation of information about the geometry and connectivity, also known as topology. The geometry defines the location of the vertices in the (Euclidean) coordinate system. They are represented as triples (x, y, z). Connectivity defines the set of points that are connected into triangles or mesh faces. A triangle is given by three index values, which identify the three vertices that enclose the triangle.

[0039] In one or more embodiments, one or more data compression modules may be used to compress certain data to enhance storage and transmission.

[0040] In early prototypes, the open source Slic3r product was used. To better handle lower resolution situations, the MatterSlice open source product was used in updated versions. The slicer parameters are set as follows:

[0041] In step 216, the slicer parameters are set: (1) unit measurement of the layer (0.1); (2) remove all solids between the perimeters and do not fill any solids or fills, thereby providing only a shell with all content size of 1 unit; and (3) provide the material size being input to fill the shell. The layer perimeters are automatically calculated, including the outer layer and possibly also the inner layer for holes or objects in the model. The data for each layer is compared to the data layers in the database. The matches are ranked based on the percentage of matches to the models in our database, including matches to the perimeters within the given model.

[0042] In stage 3, the layers are processed: three evaluations are performed on the object in three different directions. Figures 3A-3C 102a-102c, respectively, as described in the drawings. Note that a rotation of 180° from one of these orientations will produce the same results. Therefore, it is not necessary to rotate the model 300 in all possible orientations. The orientations 300a-300c allow the model 300 to be analyzed using all possible layerings that differ by 90° from the initial orientation of the model 300.

[0043] In one example, the layers are calculated to be 0.1mm in height. The outer perimeter of each layer is calculated. Each layer is assigned a value corresponding to its perimeter. The layers can be 1, 0.5, 0.1 units. Note that the program "assumes" that everything is in units of measure, so regardless of the units the STL file is actually measured in, it is assumed to be in units of measure of 0.1mm. Also note that when a search is performed, the closest matches are displayed in order. In step 1 here, the object is identified among other objects and its perimeter is calculated for matching before step 2 (extraction).

[0044] In stage 4 of step 216, the processed G-code is stripped of unnecessary information, thereby speeding up processing by retaining only the length of each layer. In stage 5 of step 218, a thumbnail image is generated to enable the user to easily and quickly view the scanned and processed model, object or part. In one embodiment, POV-ay software is used based on the first image presented (e.g., the front camera view). "POV-Ray" or "Persistence of Vision Raytracer" is provided by Vision Raytracer Pty. Ltd of Williamstown, Victoria, Australia.

[0045] Phase 6 includes two steps, steps 220 and 222, either or both of which can be performed. The choice can be made based on processing requirements. In step 1 of phase 6, SQL vertices are processed for the keyholes set for the four triangles. Figure 4 Describe the first triangle A200 surrounded by the shared respective sides of triangles B201, C202 and D203. Calculate all three parameters for all 4 triangles = 3D reference points of the three points of the triangle + calculate the length of the side from the three points + read the order (triangles assigned numbers in order, 500,000 + triangles; here just put the information together; already calculated above; now put all 4 together and assign a number.

[0046] To reiterate, in step 1, the edges involve a 4-triangle keyhole. Look at three data (reference point + calculated edges of all 4 triangles). That is, look at the reference triangle A plus the three triangles B, C, and D that touch the three edges of reference triangle A. Each triangle of the object is calculated as triangle #1 of the 4-triangle keyhole. Therefore, if there are 1000 triangles, there are 1000 triangles #1 of the 4-triangle keyhole. In one or more embodiments, four data are considered: (a) look at the edges of triangles A, B, C, D; and (b) determine the allocation order and data sequence of the surrounding triangles B, C, D according to the adopted convention. In one embodiment, the first column of data contains only the perimeter. The second, third, and fourth columns can contain the lengths of the edges shared by each triangle A.

[0047] When measuring the length of a triangle that shares a side with a reference triangle, the default / initial orientation of the model is used and measurements are taken from the reference triangle south (downward). Therefore, the triangle "below" the reference triangle, that is, the triangle below the reference triangle that shares the bottom line of the reference triangle, is the first point measured. The total perimeter is measured and the figure for that triangle is derived. The following triangles are measured in a clockwise direction. In the example above, triangle "5" is below the reference triangle ("1"). The perimeter of "5" is measured, then the perimeter of "4", then the perimeter of "3". The perimeter of "5" is derived as 85mm, the perimeter of "4" is 300mm, and the perimeter of "3" is 65mm.

[0048] Note that the retrieved data results in a numerical value for the reference triangle, which is based on the perimeter of the adjacent triangles. Each triangle in the model is treated as a reference triangle in this manner. This results in overlapping data. The entire model is treated as if it were flat. The topographic relationships between triangles are irrelevant to this process. Although counterintuitive, step 3 achieves superior calculations in terms of speed and accuracy (including reliability) compared to techniques that use simpler, more direct and obvious methods.

[0049] Return to step 2 of stage 6 in step 222, Figure 5Described is the evaluation of the eight (8) vertices of triangle A that are touched by triangle BD. In addition, triangles E–K share at least one vertex with triangle A and are also considered. Each triangle of the object is calculated separately as 8+triangles setting the keyhole's triangle #1. So if there are 1000 triangles, there are 1000 8+triangles setting the keyhole's triangle #1. Taking into account the larger number of triangles, step 2 may be more processor intensive than step 1. Note that these data points are registered in the same way as in step 1. However, in step 2, additional calculations are performed. For the data of the starting triangle A: (1) get the perimeter of triangle A; (2) get the lengths of the three sides of triangle A; (3) observe the sides of triangle A and determine which triangles that share the sides are B–D; (4) get the perimeter of triangles B–D; (5) triangles B–D; (6) determine which triangles E–K, in addition to triangles B–D, are touching three points or vertices of triangle A; (7) get the perimeter of touching triangles E–K; and (8) get the length of touching triangle EK. The perimeter of triangle A + the measurements of the 3 sides = 4 total data points, and then which triangle is touching triangle A.

[0050] In step 224, stage 7 Figure 2 In the Object Extraction step, an object extraction is performed. If the reference model is inside another model in the database, the reference model is extracted and analyzed in this step. The same is true for other models in the database that exist inside the reference model. Objects are derived from the model, i.e. the child model is isolated and analyzed independently of the parent model. The object can be a hole, void or other part.

[0051] In an illustrative example, stage 7 object extraction may detect a short bolt as a reference object, finding that the short bolt is part of a longer but otherwise identical bolt. Conversely, the longer bolt may serve as a reference object. The shorter but otherwise identical bolt will be identified as comprising a corresponding percentage of the longer bolt. Therefore, it will perfectly match that portion of the bolt.

[0052] In a similar example, object extraction can be performed using a specific bolt as a reference object database, while the scanned model database is a jet engine. The .stl file can be an assembly file. In particular, the "jt" file is an open format that allows a large number of notes to be inserted into the file. The same bolt can be extracted from within the jet engine and displayed as a match. The location of each match in the engine can be identified and highlighted. There is no practical limit to the number of such sub-assemblies or parts that can be detected, such as finding 600 bolts in an engine and distinguishing them from 400 screws. The use of such information can include building a bill of materials for a specific object, detecting counterfeit patented parts, diagnosing failure modes of components, and so on.

[0053] Each of the above stages and steps may be performed individually or in various combinations. For example, stage 1 may be performed and then stage 6 may be performed directly. For another example, if there is more than one mesh / object to be analyzed, each mesh / object may be analyzed separately in the model database through each stage.

[0054] The present invention is a basic technology for providing great usability in processing three-dimensional data and covers a wide range of applications. It is expected that the search step can change the recognition mode of similarity between the query shape model and the feature part in terms of size or topology.

[0055] In one or more embodiments of the present invention, shape parts similar to arbitrary query shape data can be flexibly retrieved and displayed in terms of size or topology. One of the basic questions to ask is when two shapes are truly the same. There is no single answer to this, it depends on the aspects of the shapes that you are most interested in. At a basic level, if two shapes are identical, but located in different locations, then in most cases we consider them to be "the same." Topology has a broader concept of sameness than geometry. Here, if one shape can be pulled, stretched, and twisted into another shape, then the two shapes are considered "the same."

[0056] Topologically similar shapes can be retrieved by lowering the threshold of similarity. Lowering the similarity threshold, for example expanding the area of ​​the target shape, allows expanding the range of shapes to be retrieved. The present invention uses mesh information to perform similarity searches. Thus, the present invention allows discovering shapes that are similar but have different topological structures.

[0057] In one or more embodiments, another stage or step may be performed to scale the results. If the number of facets in the model or the objects identified in the model are the same as the reference model, the compared model (or the model found in the database in the case of a search) may be scaled accordingly. After scaling, a layer analysis (step 1) may be performed to identify the extent to which the model has been scaled or stretched. If the model is stretched in one direction, such as after being elongated, the processing in step 1 will produce the extent to which scaling has occurred (e.g., 50% longer) after a matching model is identified in step 5. If the model is stretched in multiple directions, such as due to the scaling process in step 5 that causes the compared model to be the same size as the reference model, the model will be scaled up by 500%, so the layer-based results will result in a 100% match (assuming there are no other differences between the models). In this case, the ratio by which the compared model or the model found in the database must be scaled is proposed: the total size is reduced or expanded by 87%.

[0058] In an exemplary method: (1) perform process 3; (2) get the number of triangles from the stl file and see if they are the same or within 10%; (3) take the first 1, 2, 3, 4 or so triangles from the file and compare them to the first one from the second file and look at the ratio of the side lengths; (4) do this three times with this ratio so that all three sides are seen; (5) process matching for a large number of data points; (6) return to the previous processing step to start processing, while applying the ratio to see if each triangle matches.

[0059] In one or more embodiments, density calculations may be performed as another source of information for matching objects. In addition, artificial intelligence may be incorporated to extend use cases to predictive analysis or even prescriptive analysis. One or more embodiments may employ various artificial intelligence (AI)-based schemes to perform various aspects thereof. One or more aspects may be facilitated by an automatic classifier system or process. A classifier is a function that maps an input attribute vector x = (x1, x2, x3, x4, xn) to a confidence that the input belongs to a certain class. In other words, f(x) = confidence (class). Such classification may employ probabilistic or statistically based analysis (e.g., taking into account analytical utility and cost) to predict or infer actions that a user desires to be automatically performed.

[0060] A support vector machine (SVM) is an example of a classifier that can be used. SVMs operate by finding a hypersurface in the space of possible inputs that attempts to separate triggering conditions from non-triggering events. Intuitively, this allows classification to be correct for test data that may be similar to the training data but not necessarily identical. Other directed and undirected model classification methods that provide different independence patterns can be employed (e.g., Bayes, Bayesian networks, decision trees, neural networks, fuzzy logic models, and probabilistic classification models). Classification as used herein may include statistical regression for developing priority models.

[0061] One or more embodiments may employ classifiers that are explicitly trained (e.g., via common training data) as well as classifiers that are implicitly trained (e.g., by observing user behavior, receiving external information). For example, an SVM may be configured via a learning or training phase within a classifier builder and feature selection module. Thus, a classifier may be used to automatically learn and perform many functions, including but not limited to determining according to predetermined criteria.

[0062] One application is a “Doctor ATM” or “ADM (Automatic Doctor Machine)” using a CT scanner that can look at the entire body, identify individual components such as organs, and compare these to previous scans of known healthy and diseased organs, looking for early indications of disease and cancer. Comparisons can also be made to previous models composed of the same person to detect trends. Regular scans will allow our algorithm to sound the alarm if a known pattern occurs that can indicate the early onset of disease (such as degenerative bone disease), cancer, or an enlarged heart.

[0063] One use for the processing described herein is to match a reference object database for a font to see if letters can be matched from within an object. Once the letters are found, the word or model number of an engraved model can be identified from the object. Another use is to confirm that a product has been assembled using the correct fasteners or components, or to correctly identify which parts should be used in a new or repaired assembly. A series of different versions of a product can be analyzed to identify changes in the parts used over time. An unknown physical part can be scanned and matched to the original .stl version of the CAD / CAM model for other unit replacements. Matching prototypes or parts of prototypes can identify previously designed, tested, and manufactured parts that closely match, avoiding the creation of an unnecessary second supply chain.

[0064] Schools can check whether students who create 3D models for academic exercises are cheating. The present disclosure provides matching to identify parts of models, extended models, or rescaled models, etc. Schools can share a database of known pre-existing models to make duplication more difficult.

[0065] Figure 6 A flow chart of an example method 600 for fast matching using slice perimeter measurements according to one or more embodiments is shown. The method 600 begins by receiving triangulated mesh data describing a three-dimensional (3D) object (step 602). The method 600 includes obtaining dimension layers of the 3D object from a slicer in each of three orthogonal directions (step 604). The method 600 includes obtaining perimeter length values ​​for each layer in each of the three orthogonal directions (step 606). The method 600 includes comparing the obtained perimeter length values ​​with stored perimeter length values ​​of a reference object (step 608). The method 600 includes determining whether there is a match between the 3D object and the reference object based on the amount of match between the obtained and stored perimeter length values ​​(step 610). The method 600 then ends.

[0066] Figure 7A flow chart of an example method 700 for strictly matching each reference triangle of a 3D triangle mesh is shown in accordance with one or more embodiments by associating the perimeter sum of adjacent triangles with each reference triangle of the 3D triangle mesh. The method 700 begins by receiving triangle mesh data describing a three-dimensional (3D) object (step 702). At step 704, for each 3D triangle of the received triangle mesh data of the 3D object, the method 700 includes identifying three adjacent triangles that share an edge with the reference triangle (step 706). The method 700 includes calculating a total perimeter value of the perimeter lengths of the three adjacent triangles (step 708). The method 700 includes assigning a total perimeter value to the reference triangle (step 710). The method 700 includes comparing the total perimeter value assigned to the 3D object with the total perimeter value assigned to the reference object (step 712). The method 700 includes determining whether there is a match between the 3D object and the reference object based on the amount of matches of the obtained and stored total perimeter values ​​(step 714). The method 700 then ends.

[0067] It is expected that aspects of the present invention will find application as follows in three stages of development including product design, production and use.

[0068] These stages include:

[0069] a. Design stage

[0070] i.CAD

[0071] ii.3D Model

[0072] b. Implementation

[0073] i. Production

[0074] ii. Scan 3D parts using laser scanning

[0075] c. Use

[0076] i.Natural loss

[0077] ii. Performance

[0078] iii. Scan 3D parts using laser scanning

[0079] During design phase enhancement / improvement, usage examples include: (i) CAD (SolidWorks, SolidEdge, AutoCAD); (ii) ANSI and other standards compliance; (iii) finding similar models and similar differences; (iv) differences between models or versions; (v) searching for physical properties and in some cases – defined tolerances; (vi) Additions: Quality Control to see if a part (scan or 3D drawing) is not just the same part / designation, but also any changes: (a) + tolerance attachment, e.g. + / -; and (b) e.g., body is x but tolerance is Y.

[0080] Implementation phase enhancements cover 70% of the potential market. Examples include: (i) Quality control, such as (a) comparing a 3D model (CAD) with a scan; (b) comparing a scan of a metal object with a scan of the object to be tested. Examples include: (ii) Automatically identifying "2D" information on PDFs and other documents written by engineers to automatically adjust settings for 3D model analysis.

[0081] Aspects of the present invention seek to improve quality control by increasing speed and efficiency, particularly compared to commonly known visual manual inspections which are slow and expensive and can only be performed a number of times.

[0082] A coordinate measuring machine (CMM) is a device used to measure the physical geometric features of an object. These machines can be controlled manually by an operator or by a computer. The measurements are defined by a probe attached to the third moving axis of the machine. CMM is also a device used during manufacturing and assembly processes to test parts or assemblies against design intent. By accurately recording the X, Y, and Z coordinates of an object, points can be generated, which can then be analyzed by regression algorithms to construct features. These points are collected by using a probe that is placed manually by an operator or automatically through direct computer control (DCC). A DCCMM can be programmed to measure the same part repeatedly; therefore, this can be considered a special form of industrial robot.

[0083] In today's world of manufacturing, it is critical to have a robust inspection process to improve quality control. With accurate 3D scanning and inspection analysis, companies can reduce iteration / adjustment cycles and quickly take appropriate corrective actions without slowing down their time to achieve their goals. In one or more embodiments, a 3D scanner measures the geometry of a physical part and brings it into the digital world. The data output is typically a point cloud represented in an STL (stereolithography) file format. This data is used to compare to the original CAD drawing, or to a previous scan of the metal body part within tolerance.

[0084] A variety of techniques can be used to obtain dimensional data. In order to inspect parts that may be delicate and have steep geometries, non-contact techniques are often used, i.e., no physical probe contacts the part. Non-contact techniques typically detect some form of energy emanating from the sample being detected. Suitable forms of energy include light, heat, and sound. When the energy is in the form of light, the light may include one or more of visible light, infrared (IR) light, near infrared (NIR) light, and ultraviolet (UV) light. Energy detectors suitable for light detection include photodetectors (e.g., photodiodes), position sensitive devices, array detectors, and CCDs (charge coupled devices). Energy detectors suitable for heat detection include infrared imagers. Energy detectors suitable for sound detection include ultrasonic transducers.

[0085] Dimensional measurement equipment can use machine vision, 3D optical scanning, photogrammetry, and / or structured light imaging. Depending on the configuration, dimensional measurement equipment can generate 2D (two-dimensional) and / or 3D geometric measurements of a part. Machine vision is a technology that uses electronic imaging and algorithms to extract geometric information from an image of a part. 3D optical scanning is a technology that typically uses light reflections from a laser to calculate the surface geometry of a part. Photogrammetry is a technology that determines the geometry of a part by analyzing an electronic image, typically multiple images from different angles. Structured light imaging is a technology that projects a pattern of light onto a part and calculates the surface profile based on the detected deformation of the pattern reflected from the surface of the part.

[0086] If the dimensional measurement device includes and uses an energy transmitter, the energy transmitter transfers energy to the part. Typically, for non-contact measurement, the energy is in the form of radiation, such as light, heat and / or sound. Regardless of the form of energy, the energy transmitter generally does not transfer enough energy to damage or interfere with the part. Energy transmitters suitable for light emission include lamps, wide-field illuminators, structured illuminators, lasers, laser scanners, flash lamps, and modulated illuminators. In addition, the dimensional measurement device can be configured to use ambient light as a supplement or alternative to the light energy transmitter. Therefore, the energy detector can be configured to detect ambient light reflected and / or transmitted by the part. Energy transmitters suitable for heat dissipation include heaters. Energy transmitters suitable for sound emission include ultrasonic transducers.

[0087] In one or more embodiments, 3D scanning (e.g., laser scanning) plus auxiliary software (e.g., Polyworks) can be used to measure the physical geometric features of the object. Aspects of the invention include obtaining a 3D laser scan and then comparing it to a CAD standard and / or a laser scan of a gold body.

[0088] In one or more embodiments, 3D scanning equipment can be used on large structures, such as for inspecting cellular towers and military antennas. The 3D scan data can be used for the required two annual inspections to confirm the alignment of the tower and attached antenna to provide the best view / reception. For example, the scan can be performed by an automated drone that scans using lidar, laser, computed tomography (CT), photogrammetry, etc. to obtain a 3D model. Once the 3D scan data is obtained, the present invention can compare relevant aspects of the scanned object to a predetermined gold body (such as a specified CAD drawing or a previously scanned object) based on relevant parameters such as height, centerline, angle, etc. The user can set the tolerance to a default value or set a user setting by a number or percentage, etc.

[0089] In one or more embodiments, a method for modeling a cell tower using an unmanned aerial vehicle (UAV) is provided, wherein the method includes causing the UAV to fly a given flight path around a cell tower at the cell tower; obtaining multiple scans of the cell tower with respect to a flight plane; and obtaining and processing the multiple scans based on one or more location identifiers and / or one or more objects of interest to define a three-dimensional (3D) model of the cell tower.

[0090] In one or more embodiments, an unmanned aerial vehicle (UAV) includes: one or more rotors arranged on a body; one or more scanning devices associated with the body; a wireless interface; a processor and the one or more scanning devices coupled to the wireless interface; and a memory storing instructions that, when executed, cause the processor to: process commands to cause the UAV to fly a given flight path around a cell tower at a cellular base station; and provide multiple scans to a processing system that defines a three-dimensional (3D) model of the cell tower based on associations with one or more location identifiers and one or more objects of interest in multiple photographs.

[0091] In one or more embodiments, a method is performed at a cell tower by using an unmanned aerial vehicle (UAV) communicatively coupled to a controller to perform a cell tower assessment using 3D scanning without having to climb a tower at the cell tower, including causing the UAV to fly substantially vertically to a cell tower component using a controller; collecting data related to the cell tower component by scanning the cell tower component using the UAV; sending and / or storing the collected data; and processing the collected data to obtain information for the cell tower assessment.

[0092] In one or more embodiments, the present disclosure relates to three-dimensional (3D) modeling of a nested base station and a nested tower with an unmanned aerial vehicle. The present disclosure includes a UAV-based system and method for 3D modeling and representing a nested base station and a nested tower. The system and method include: obtaining various three-dimensional scans at the nested base station via a UAV; flying around the nested base station to obtain various scans at different angles at different locations (i.e., scans sufficient to produce an acceptable 3D model); and processing various pictures to enhance the 3D model of the nested base station and the nested tower. In addition, once the 3D model is constructed, the 3D model can be subjected to various measurements, including height, angle, thickness, elevation, and even radio frequency (RF).

[0093] In one or more embodiments, the present disclosure provides a cell-peak base station assessment for determining the downward tilt angle of each antenna of a cell-peak base station component. The downward tilt angle is the mechanical (external) downward tilt angle of the antenna. In the cell-peak base station assessment, the downward tilt angle is compared with an expected value.

[0094] In one or more embodiments, the present disclosure provides a method for verifying an antenna azimuth, such as verifying that the antenna azimuth is oriented within a defined angle. The azimuth (AZ) refers to the compass bearing of a point on the horizon directly below an observed object relative to true (geographic) north.

[0095] 3D scanning sensors enable the system to capture the 3-dimensional geometry and position of an object. The 3D scanning sensor can use any one of the following technologies or a combination of the following technologies to capture 3D position and geometric topology. These 3D scanning technologies may include, but are not limited to, visible and invisible structured light, photogrammetry, laser dynamic range imagers, light detection and ranging (lidar), laser triangulation, stereo and photometric data, polarization of light, etc., and may even use a combination of the above technologies to create textured or textureless 3D scans. These 3D scanners may use visible or invisible light (such as infrared light) to illuminate and capture objects or people. In addition, the sensor assembly can use a camera and lighting system that emits and is sensitive to a range of ultraviolet rays. This can allow the capture and detection of skin age spots. The sensor assembly may also include a light-emitting device that allows the object to be illuminated.

[0096] Another embodiment involves a computer-readable medium comprising processor-executable instructions configured to implement one or more embodiments of the techniques presented herein. Figure 8An embodiment of a computer-readable medium or computer-readable device designed in these ways is shown. Wherein the embodiment 800 includes a computer-readable medium 808, such as a CD-R, DVD-R, flash drive, hard drive disk, etc., having computer-readable data 806 encoded thereon. The computer-readable data 806 (e.g., binary data including a plurality of zeros and ones as shown in 806) in turn includes a set of computer instructions 804, which are configured to operate according to one or more principles set forth herein. In one such embodiment 800, the processor-executable computer instructions 804 may be configured to perform a method 802, such as Figure 6-7 In another embodiment, the processor executable instructions 804 may be configured to implement methods such as Figure 1 A system such as the device 100 of the present invention. Those skilled in the art can design many such computer-readable media that are configured to operate according to the techniques presented herein.

[0097] In one or more embodiments, Fig. 9 An outdoor scene 900 is shown where 3D scanning equipment such as an aerial drone 902 can be used on a large structure, such as for inspecting a cellular tower 904, a broadcast tower 906. The 3D scan data can be used for the required two annual inspections to confirm the alignment of the towers 904, 906 and the attached antennas 908 to provide optimal field of view / reception. The aerial drone 902 can have one or more scanning devices 910 that use lidar, laser, computed tomography (CT), or photogrammetry, etc. to obtain a 3D model. The aerial drone 902 can geospatially orient the new 3D scan data to previous 3D scans 912, 914, respectively. In one or more embodiments, the aerial drone 902 obtains further directional information, such as via a global positioning system (GPS) satellite array 916.

[0098] At least a portion of the devices and / or processes described herein can be integrated into a data processing system by a reasonable amount of experimentation. Those skilled in the art will recognize that a typical data processing system typically includes one or more of a system unit housing, a video display device, a memory, a processor, an operating system, drivers, a graphical user interface and application programs, an interactive device (e.g., a touch pad or screen), and / or a control system including feedback loops and control motors, etc.

[0099] A typical data processing system may be implemented using any suitable commercially available means.

[0100] Thus, the presently described system may include a plurality of various hardware and / or software components, such as those described below. It should be understood that, for ease of description, the various described hardware and software components are described and named according to various functions, which may be performed by one or more software or hardware components within the system. However, it will be understood that the system may incorporate any number of programs configured to perform any number of functions, including but not limited to the programs described below. Furthermore, it should be understood that, although, for ease of description, multiple programs and multiple databases are described, the various functions and / or databases may actually be parts of a single program or multiple programs running in one or more locations.

[0101] Where a database is described, it will be understood by one of ordinary skill in the art that (i) alternative database structures of the described database may be readily adopted, and (ii) other memory structures other than a database may be readily adopted. Any illustration or description of any example database presented herein is an illustrative arrangement of information representations for storage. In addition to arrangements suggested by tables or other places, for example, as shown in the accompanying drawings, any number of other arrangements may be adopted. Similarly, any illustrated entry of a database represents exemplary information only. It will be understood by one of ordinary skill in the art that the number and content of entries may be different from those described herein. In addition, although the database is described as a table, other formats (including relational databases, object-based models, and / or distributed databases) are well known and may be used to store and manipulate the data types described herein. Similarly, the object methods or behaviors of the database may be used to implement various processes, such as described herein. In addition, the database may be stored in a known manner in local or remote storage of any device that accesses data in the database.

[0102] Although processing steps, algorithms, etc. can be described in order, such processing can be configured to work in different orders. In other words, any sequence or order of steps that can be clearly described does not necessarily represent a requirement to perform the steps in that order. On the contrary, the steps of the process described herein can be performed in any actual order. In addition, although described or implied as not occurring simultaneously, some steps can be performed simultaneously (for example, because one step is described after another step). In addition, illustrating the process by depicting it in the accompanying drawings does not mean that the illustrated process does not exclude other variations and modifications, does not mean that the illustrated process or any of its steps are necessary for the present invention, and does not mean that the illustrated process is preferred. Although the process can be described as including multiple steps, this does not mean that all or any steps are essential or necessary. Various other embodiments within the scope of the described invention include other processes that omit some or all of the described steps. Unless otherwise explicitly stated, it is not necessary or required to have any step.

[0103] In an exemplary system within a computing environment for implementing the present invention, a general-purpose computing device in the form of a computing system is included, which is commercially available from Intel, IBM, AMD, Motorola, Cyrix, etc. The components of the computing system may include, but are not limited to, a processing unit, a system memory, and a system bus that couples various system components including the system memory to the processing unit. The system bus may be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The computing system typically includes various computer-readable media. Computer-readable media can be any available media that can be accessed by the computing system, and includes volatile and non-volatile media and removable and non-removable media. As an example and not limitation, computer-readable media may include computer storage media and communication media. Computer storage media include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data.

[0104] Computer memory includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other storage technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassette, magnetic tape, disk storage or other magnetic storage device, or any other medium that can be used to store the required information and can be accessed by the computing system. System memory includes computer storage media in the form of volatile and / or non-volatile memory, such as read-only memory (ROM) and random access memory (RAM). The basic input / output system (BIOS) is usually stored in ROM, and the basic input / output system (BIOS) contains basic routines that help to transfer information between various elements in the computing system (for example, during the startup process). RAM usually contains data and / or program modules that the processing unit can access immediately and / or currently operate on. By way of example and not limitation, operating system, application program, other program modules and program data are shown.

[0105] The computing system may also include other removable / non-removable, volatile / non-volatile computer storage media. As examples only, a hard disk drive that reads or writes non-removable non-volatile magnetic media, a disk drive that reads or writes a removable non-volatile disk, and an optical disk drive that reads or writes a removable non-volatile optical disk (such as a CDROM or other optical media) may be used to store the invention of the present embodiment. Other removable / non-removable, volatile / non-volatile computer storage media that can be used in an exemplary operating environment include, but are not limited to, cassettes, flash memory cards, digital versatile disks, digital videotapes, solid-state RAM, solid-state ROM, etc. The hard disk drive is usually connected to the system bus via a non-removable memory interface such as an interface, and the disk drive and the optical disk drive are usually connected to the system bus via a removable memory interface such as an interface.

[0106] The drives and their associated computer storage media discussed above provide storage of computer-readable instructions, data structures, program modules, and other data for a computing system. For example, a hard disk drive is shown as storing an operating system, application programs, other program modules, and program data. Please note that these components may be the same or different from the operating system, application programs, other program modules, and program data. The operating system, application programs, other program modules, and program data are represented by different numbers, at least, they are different copies.

[0107] A user may enter commands and information into a computing system through input devices such as a tablet or electronic digitizer, a microphone, a keyboard, and a pointing device, commonly referred to as a mouse, trackball, or touchpad. These and other input devices are typically connected to the processing unit through a user input interface coupled to the system bus, but may also be connected through other interfaces and bus structures such as a parallel port, a game port, or a universal serial bus (USB). A monitor or other type of display device is also connected to the system bus through an interface such as a video interface. The monitor may also be integrated with a touch screen panel, etc. Note that the monitor and / or touch screen panel may be physically coupled to a housing in which the computing system is incorporated, such as in a tablet-type personal computer. In addition, a computer such as a computing system may also include other peripheral output devices such as speakers and printers, which may be connected through output peripheral interfaces, etc.

[0108] The computing system can operate in a networked environment using logical connections to one or more remote computers (e.g., remote computing systems). The remote computing system can be a personal computer, server, router, network PC, peer device, or other public network node, and typically includes many or all of the elements described above regarding the computing system, although only storage devices are described. The logical connections described include a local area network (LAN) connected via a network interface and a wide area network (WAN) connected via a modem, but may also include other networks. Such a networked environment is commonplace in offices, enterprise-wide computer networks, intranets, and networks.

[0109] For example, in this embodiment, the computer system may include a source machine from which data is migrated, and the remote computing system may include a target machine. Note, however, that the source and target machines do not have to be connected by a network or any other means, but rather data may be migrated via any medium that can be written by a source platform and read by one or more target platforms.

[0110] A central processor operating according to operating system software such as IBM OS / 2, Linux, UNIX, Microsoft Windows, Apple Mac OSX and other commercially available operating systems provides functionality for the services provided by the present invention. One or more operating systems may reside in a central location or a distributed location (i.e., mirrored or independent). Software programs or modules instruct the operating system to perform tasks, such as but not limited to facilitating client requests, system maintenance, security, data storage, data backup, data mining, document / report generation and algorithms. The functionality provided may be directly embodied in hardware, in software modules executed by a processor, or in any combination of the two. In addition, software operations may be performed in part or in whole by one or more server or client systems through hardware, software modules, or any combination of the two. Software modules (programs or executables) may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, DVD, optical disk, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and can write information to the storage medium. Alternatively, the storage medium may be integrated with the processor. The processor and the storage medium may also reside in an ASIC.The bus may be an optical or conventional bus operating according to various protocols well known in the art.

[0111] All publications, patents, and patent applications cited herein, whether supra or infra, are incorporated herein by reference in their entirety, as if each individual publication, patent, or patent application was expressly and individually indicated as incorporated by reference. It should be understood that any patent, publication, or other public material, in whole or in part, deemed to be incorporated by reference herein is incorporated into the present disclosure only to the extent that the incorporated material does not conflict with existing definitions, statements, or other public materials set forth in the present disclosure. Thus, to the extent necessary, the disclosure expressly set forth in the present disclosure supersedes any conflicting material incorporated herein by reference. Any material or portion thereof that is said to be incorporated herein by reference but conflicts with existing definitions, statements, or other public materials set forth herein is incorporated only to the extent that there is no conflict between the incorporated material and the existing disclosed material.

[0112] It must be noted that, as used in this specification and the appended claims, the singular forms "a," "an," and "the" include plural referents unless the content clearly dictates otherwise. Thus, for example, reference to "a colorant" includes two or more such agents.

[0113] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention belongs. Although many methods and materials similar or equivalent to those described herein can be used in the practice of the present invention, preferred materials and methods are described herein.

[0114] As will be appreciated by those of ordinary skill in the art, the methods and compositions of the present invention substantially reduce or eliminate the disadvantages and drawbacks associated with prior art methods and compositions.

[0115] It should be noted that when employed in this disclosure, the terms "including", "comprising" and other derivatives of the root term "comprising" are open terms that specify the presence of any stated features, elements, integers, steps or components, and are not intended to exclude the presence or addition of one or more other features, elements, integers, steps, components or groups.

[0116] As required, detailed embodiments of the present invention are disclosed herein. However, it should be understood that the disclosed embodiments are merely examples of the present invention, which can be implemented in various forms. Therefore, the specific structural and functional details disclosed herein should not be interpreted as limiting, but only as the basis for the claims and as a representative basis for teaching those skilled in the art to apply the present invention differently with virtually any appropriate detailed structure.

[0117] Although it is obvious that the illustrative embodiments of the present invention disclosed herein achieve the above-mentioned objects, it will be appreciated that a person skilled in the art can design various modifications and other embodiments. Therefore, it will be appreciated that the appended claims are intended to cover all such modifications and embodiments that fall within the spirit and scope of the present invention.

Claims

1. A method for evaluating a 3D object, comprising: Receive triangular mesh data describing a 3D object; In each of three orthogonal directions, a dimension layer of the 3D object is obtained from a slicing procedure; Obtain perimeter length values ​​for each layer in each of three orthogonal directions; comparing the obtained perimeter length value with a stored perimeter length value of a reference object; as well as determining whether there is a match between the 3D object and the reference object based on an amount of match between the acquired and stored perimeter length values, Wherein the method further comprises, in response to a determination of an insufficient match between the obtained and stored perimeter length values: Each 3D triangle from the received triangular mesh data of the 3D object is evaluated as a reference triangle, and for each reference triangle: Identify three adjacent triangles that share edges with the reference triangle; Calculate the total perimeter value of the perimeter lengths of three adjacent triangles; and Assigning a total perimeter value to the reference triangle based on the total perimeter values ​​of the three adjacent triangles; comparing a total perimeter value assigned to the 3D object with a total perimeter value assigned to a reference object; as well as Based on a match amount of the obtained and stored total perimeter values, it is determined whether there is a match between the 3D object and the reference object, wherein the match amount is a difference between the total perimeter value assigned to the 3D object and the total perimeter value assigned to the reference object.

2. The method according to claim 1, wherein: The 3D object includes a smaller 3D object, and the method further includes: For each layer in each of the three orthogonal directions: Configuring the 3D printing application to print a shell surface of the 3D object; Submit the layer to the configured 3D printing application; receiving one or more surfaces defined by a 3D printing application for a submitted layer; a smaller 3D object detected as a smaller perimeter surface within a larger perimeter surface of the 3D object; and Get the inner perimeter length value of the smaller perimeter surface; comparing the obtained inner perimeter length value to a stored smaller reference object perimeter length value; and Based on the amount of match of the obtained and stored interior perimeter length values, it is determined whether there is a match between the interior 3D object and the smaller reference object.

3. The method according to claim 2, wherein: The internal 3D object includes more than one symbol, and the smaller reference object includes a set of fonts, and the method further includes: detecting identification information of the 3D object based on matching each symbol with the set of fonts.

4. The method according to claim 1, further comprising: In response to a determination of an insufficient match between the obtained and stored perimeter length values: For each 3D triangle in the received triangle mesh data of the 3D object evaluated as a reference triangle: Identify the three adjacent triangles that share edges with the reference triangle and any other triangles that share vertices with the reference triangle: Calculate the total perimeter of three adjacent triangles and any other triangles that share a vertex. as well as Assign a total perimeter value to the reference triangle; comparing a total perimeter value assigned to the 3D object with a total perimeter value assigned to a reference object; as well as Based on the amount of match between the obtained and stored total perimeter values, it is determined whether there is a match between the 3D object and the reference object.

5. The method of claim 1, further comprising scaling the 3D object to the reference object in a selected number of one, two, or three orthogonal directions to obtain a three-dimensional match.

6. The method according to claim 5, further comprising: determining a first number of 3D triangles in the 3D object; determining a second number of 3D triangles in the reference object; The 3D object is scaled in response to a percentage difference between the first amount and the second amount being above a threshold.

7. The method according to claim 1, wherein: 3D mesh data including stereolithography CAD software formats; and Each layer in the slicing program includes computer numerical control code.

8. The method according to claim 1, further comprising: At the first time, scanning the communication tower to obtain the first triangulated mesh data; At a second time, scanning the communication tower to obtain second triangular mesh data; as well as Based on the amount of matching of the obtained and stored total perimeter values, it is determined whether there is a match between the 3D object based on the second triangular mesh data and the reference object based on the triangular mesh data.

9. The method of claim 8, further comprising determining an amount of deviation between the 3D objects of the first triangular mesh data and the second triangular mesh data as part of an antenna inspection.

10. A method for evaluating a 3D object, comprising: Receive triangular mesh data describing a 3D object; evaluate each 3D triangle from the received triangular mesh data of the 3D object as a reference triangle, and for each reference triangle: Identify three adjacent triangles that share edges with the reference triangle; Calculate the total perimeter value of the perimeter lengths of three adjacent triangles; and Assigning a total perimeter value to the reference triangle based on the total perimeter values ​​of the three adjacent triangles; comparing a total perimeter value assigned to the 3D object with a total perimeter value assigned to a reference object; as well as Based on a match amount of the obtained and stored total perimeter values, it is determined whether there is a match between the 3D object and the reference object, wherein the match amount is a difference between the total perimeter value assigned to the 3D object and the total perimeter value assigned to the reference object.

11. The method according to claim 10, further comprising: For each 3D triangle in the received triangle mesh data of the 3D object evaluated as a reference triangle: Identify the three adjacent triangles that share edges with the reference triangle and any other triangles that share vertices with the reference triangle: Calculate the total perimeter of three adjacent triangles and any other triangles that share a vertex. as well as Assign a total perimeter value to the reference triangle; comparing a total perimeter value assigned to the 3D object with a total perimeter value assigned to a reference object; as well as Based on the amount of match between the obtained and stored total perimeter values, it is determined whether there is a match between the 3D object and the reference object.

12. The method of claim 10, further comprising scaling the 3D object to the reference object in a selected number of one, two, or three orthogonal directions to obtain a three-dimensional match.

13. The method according to claim 12, further comprising: determining a first number of 3D triangles in the 3D object; determining a second number of 3D triangles in the reference object; The 3D object is scaled in response to a percentage difference between the first amount and the second amount being above a threshold.

14. The method of claim 10, wherein: 3D mesh data including stereolithography CAD software formats; and Each layer in the slicing program includes computer numerical control code.

Citation Information

Patent Citations

  • Shape analysis system, difference detection system for three-dimensional model, similar shape search system, shape analysis method, difference detection method for three-dimensional model, siomilar shape search method, and storage medium and program transmission apparatus therefor

    US20020004710A1