Feature measurement for gemstone identification
Patent Information
- Application Number
- CN202580017001.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-31
- Filing Date
- 2025-01-31
- Publication Date
- 2026-09-22
AI Technical Summary
然而,没有一个实现了广泛的使用,主要是由于使用它们所需的高成本和繁琐的装备或规程,或当使用不同的装备或在不同的环境条件下时缺乏再现性
Smart Images

Figure CN122804151A_ABST
Abstract
Description
[0001] Related applications This application claims the benefit of U.S. Provisional Patent Application No. 63 / 627,699, filed January 31, 2024, pursuant to 35 USC §119(e), which is incorporated herein by reference. Technical Field
[0002] This disclosure covers systems and methods for analyzing, comparing, and / or identifying diamonds or other gemstones or other polyhedral articles by utilizing the characteristics of measurements. Background Technology
[0003] Gemstones are typically classified and graded based on characteristics such as carat weight, color, cut, and clarity. These characteristics can be accurately determined by trained gemologists and recorded for grading purposes and future reference. However, this set of characteristics is insufficient to uniquely distinguish a particular gemstone from all others, as many gemstones share the same set of these characteristics.
[0004] Historically, efforts have been made to create unique records that distinguish gemstones from all others. These records include detailed information on the gemstone's classifiable characteristics (weight, color, cut, clarity, etc.) and a list of inclusions and other defects observed by gemologists, which provide a fingerprint of the gemstone. However, such detailed analysis is time-consuming, these records are difficult to search, and not all gemstones have obvious defects. Some gemstones, especially diamonds, have a unique serial number or authentication number engraved (e.g., by laser) along their girdle, recorded in a database, often serving as an index to the record of the gemstone's characteristics. However, not all gemstones are engraved in this way, and engraved gemstones have various drawbacks. For example, the inscription can be removed or forged.
[0005] Many other techniques have been proposed in the past for identifying gemstones based on reflection and light scattering measurements, ion implantation, etc. However, none have achieved widespread use, mainly due to the high cost and cumbersome equipment or procedures required to use them, or their lack of reproducibility when using different equipment or under different environmental conditions.
[0006] For example, US Patent Application Publication No. 2018 / 0082116 A1 describes capturing a representative set of images of a gemstone from different perspectives, generating a set of rotation-invariant values containing information characterizing the rotational cross-correlation relationships of the images, and using the generated set of rotation-invariant values to generate a unique identifier associated with the gemstone. The described method involves creating a synthetic image from which cross-correlation relationships can be derived, and can be computationally and memory-intensive, especially as the number of gemstones contained in the database increases.
[0007] There is still a need for an improved, systematic, and easily reproducible gem identification system and method that facilitates reliable matching of gems with the unique historical records of the same gem in a relatively compact database.
[0008] The applicant believes that a new system and method that can reliably match gemstones with previous records of gemstones in a database of measured shape characteristics of gemstones will greatly improve the ability to identify and grade gemstones. Summary of the Invention
[0009] This article describes the identification of gemstones, as well as the systems and methods for creating and searching databases of gemstones and their characteristics for matching and probable matching, thereby identifying gemstones.
[0010] The systems and methods for identifying gemstones described herein may involve identifying gemstones using measured shape features, and methods for creating and searching databases of gemstones and their measured features to identify matches or potential matches.
[0011] The systems and methods for identifying gemstones described herein may include obtaining a set of measurements of the gemstone, such as a set of relevant shape measurements. This set of shape measurements may include measurements of the gemstone's vertices, edges, and / or facets, such as the position (coordinates) of vertices, distances between vertices, the position of facets, angles between facets, relationships between vertices, relationships between facets, and relationships between vertices and facets. The step of obtaining the set of measurements of the gemstone may include obtaining measurements of the relative or absolute positional or angular relationships between the gemstone's vertices, edges, and / or facets. This set of measurements may be obtained by capturing images of the gemstone at various angles using a digital camera or by capturing images of the gemstone with a digital camera as it rotates relative to the digital camera via a rotating stage. This set of measurements may be derived from one or more pixelated images of the gemstone, and the method or system may include detecting multiple edges and / or vertices in the pixelated images of the gemstone. The detected edges and / or vertices may be used to generate a three-dimensional model of the gemstone. In some embodiments, the method or system may involve deriving distances between vertices and angles between facets from the three-dimensional model.
[0012] The system or method may also include generating at least one feature from a set of measurements within a region of the gemstone. For example, the feature may include one or more shape measurement elements, such as distance measurements between two or more adjacent vertices and / or angles between adjacent facets along the edges between adjacent vertices. The feature may include one or more different shape measurement elements, and typically may include two, three, four, five, or six different shape measurement elements.
[0013] The system or method may include grouping subsets of shape measurements into multiple feature sets, each feature set defining a feature of the gemstone. At least some feature sets may include at least the length of a first edge and the angle between adjacent facets that meet along the first edge. Each feature may include one or more values specifying the measurements for the feature set corresponding to the feature. The value may be a range of numbers representing a range of measurements. Each of the features may be part of a feature classification scheme that categorizes each feature by feature type. In some embodiments of the system and method, a subset of the measurements constituting each of the feature sets may not include measurements of edges or facets of the gemstone that are not adjacent to at least one other edge or facet, at least one measurement of which is included in the subset.
[0014] The system or method may also include identifying matching gem records in a database by comparing features of the gem with one or more gem records stored in the database. Each gem record may include a plurality of recorded features representing a set of recorded features consisting of one or more measurements. Comparing the features of the gem with one or more gem records may include comparing each feature of the gem with at least one of the recorded features in the database to identify multiple matching features. Each of the recorded features in the database may include a set of recorded features stored in the database, wherein each of the recorded feature sets is associated with at least one gem record. Each of at least some of the recorded feature sets may be associated with multiple gem records in the database. Identifying one or more matching gem records may also include defining a metric for determining which of the recorded features in the database are within a threshold similarity to each of the features of the gem. The metric may be a Manhattan metric or a Euclidean metric that is pre-scaled such that, in coordinate space, the distance between one of the feature sets and the corresponding recorded feature set is below a threshold.
[0015] Each gem record in the database has a corresponding control number or other unique identifier stored in the database, which is stored in relation to the recorded features and / or the set of recorded features of the gem record.
[0016] The system or method may also include scoring at least some of the gem records based on the similarity between the gem record and the gem to generate a similarity score. The similarity score may be based on the number of matched features relative to the total number of recorded features in the corresponding gem record in the database. Alternatively, a relative score may be generated for at least some of the gem records based on the similarity scores of multiple gem records in the database.
[0017] The system and method can populate a list with control numbers from at least some of the gem records, or with matching gem records or subsets thereof. The list can be ranked based on similarity scores, such as similarity scores. For each control number populated in the list, the method or system can assign a label indicating whether the corresponding gem record is predicted as the best-matching gem record based on the calculated similarity score. The list can be displayed along with the label.
[0018] The system or method may also include omitting one or more measurements from the features, or omitting features containing certain measurements. Omitted measurements or features may include features covering the girdle of the gemstone, distance or angle measurements of girdle facets, or measurements of angles between two facets within a threshold plane similarity. For example, the system or method may exclude a set of features having side length measurements below a predetermined minimum length threshold and / or angle measurements within a predetermined coplanarity threshold. In some embodiments of the system and method, none of the generated features include distance or angle measurements of any portion of the gemstone's girdle.
[0019] The system and method may also include storing one or more features as part of a searchable database of wireframe models of the gemstone being evaluated (also referred to herein as “test wireframes”), the searchable database being configured to store wireframe feature data for multiple gemstones.
[0020] In some embodiments of the system and method, the database includes a gemstone record consisting of recorded features, which represent or comprise a recorded feature set consisting of one or more measurements. Each of the recorded feature sets may include a predetermined number of measurements, which may correspond to a feature classification system. The step of grouping subsets of gemstone measurements into feature sets may include grouping multiple such measurements corresponding to a predetermined number of measurements in at least one of the recorded feature sets. In some embodiments, the predetermined number of measurements for each of the recorded feature sets does not exceed six measurements.
[0021] In another embodiment, a non-transitory computer-readable medium having computer-executable instructions thereon can be configured to instruct a processor to perform a series of steps, including obtaining a set of measurements of a gemstone, grouping a subset of the measurements into multiple sets of features defining characteristics of the gemstone, and identifying one or more matching gemstone records in a database by comparing the features of the gemstone with gemstone records in a database. Each of the gemstone records may include multiple recorded features representing a recorded set of features consisting of one or more measurements, and comparing the features of the gemstone with one or more gemstone records may include comparing each feature of the gemstone with at least one of the recorded features in the database to identify multiple matching features.
[0022] Each of the recorded features in the database may include a set of recorded features stored in the database, which is associated with at least one gem record. Each of at least some of the recorded feature sets may be associated with multiple gem records in the database.
[0023] Instructions for identifying one or more matching gemstone records may include: for each of the gemstone's features, identifying all recorded feature sets in the database that match the feature set of the feature within a threshold similarity range. The instructions may be further operable to cause a processor to calculate a similarity score for each of the plurality of gemstone records based on the number of gemstone features that match the recorded features of said gemstone record. The instructions may also be operable to further instruct the processor to populate a list with control numbers of at least some of the plurality of gemstone records based on the similarity scores.
[0024] The method may further include: for a specified or identifier feature of the gemstone being evaluated, identifying all matching features searchable in a database. Matching features can be sorted using database wireframes. The method may further include scoring each matching feature based on its similarity to a specified or identifier feature in a test wireframe. The method may further include populating a table with multiple database wireframes based on the score of each matching feature in each database wireframe.
[0025] In some instances, each feature includes one or more values that specify a measurement associated with the feature.
[0026] In some instances, one or more features are part of a feature classification system that categorizes each feature by feature type. The features of a particular gemstone can be defined by its classification in the system and the values of the corresponding measurements of the shape elements of the specified features.
[0027] In some instances, identifying matches in a searchable database also includes defining a metric to determine whether each feature in the searchable database falls within a threshold similarity to a specified (measured) feature. The metric can be any transformation of the measurement data.
[0028] In some instances, the metric includes either the Manhattan metric or the Euclidean metric, which is pre-scaled such that the distance between sets of measurements in the coordinate space is below a threshold to be considered a match.
[0029] In some instances, the method may also include assigning a label to each wireframe populated in the table (the label indicating whether the wireframe is predicted as a match based on the score of each matching feature of each database wireframe), and enabling the display of a table with labels associated with each of the multiple wireframes.
[0030] In some instances, the score is the product of all matching features of each database wireframe relative to the total features of both the database wireframe and the test wireframe.
[0031] In some instances, the method may also include generating a relative score for each database wireframe, based on the score of the matched features of each database wireframe relative to another score of the features of another database wireframe.
[0032] In some instances, a set of measurements of a gemstone is obtained through one or more images of the gemstone. One or more images can be captured by rotating the gemstone on a stage and capturing one or more images of the gemstone with a digital camera as the gemstone rotates relative to the digital camera on the stage.
[0033] In some instances, deriving a set of measurements from one or more pixelated images of a gemstone also includes determining the edges of the gemstone, generating a 3D model of the gemstone using the determined edges, and deriving the distances and angles of facets, vertices, and edges from the generated 3D model. The set of measurements can be derived from the derived distances and angles of facets, vertices, and edges.
[0034] In another example embodiment, a non-transitory computer-readable medium is provided having computer-executable instructions configured to instruct a processor to perform a series of steps. The series of steps may include obtaining a set of measurements of a gemstone, the set of measurements including at least the distance between vertices, the position of facets, and the angle between facets. The series of steps may also include generating at least one feature from a portion of the set of measurements within a region of the gemstone, such as depicted in one or more pixelated images.
[0035] This series of steps may also include searching the database for all matching features for a specified feature identifier. Matching features can be sorted using database wireframes. This series of steps may also include scoring each of the matching features based on its similarity to a specified feature. This series of steps may further include populating a table with multiple database wireframes based on the score of each matching feature for each database wireframe.
[0036] In some instances, the instructions also instruct the processor to perform a step including removing one or more measurements from the features, wherein the one or more measurements include distance or angle measurements of the waist facets, or measurements of the angle between two facets within a threshold plane similarity.
[0037] In some instances, each feature includes one or more values of each measurement that specify a set of measurements associated with the feature.
[0038] In some instances, one or more features are part of a feature taxonomy that categorizes each feature by feature type.
[0039] In some instances, identifying matches in a searchable database also includes defining a metric for determining whether each feature in the searchable database is within a threshold similarity to a specified feature. This metric includes either a Manhattan metric or an Euclidean metric, which is pre-scaled such that the distance between sets of measurements in coordinate space is below a threshold to be considered a match.
[0040] In some instances, the instructions also instruct the processor to perform steps including: assigning a label to each wireframe populated in the table (the label specifying whether the wireframe is predicted as a match based on the score of each matching feature of each database wireframe) and causing the display of a table with labels associated with each of the multiple wireframes.
[0041] In some instances, the score is the product of all matching features of each database wireframe relative to the total features of both the database wireframe and the test wireframe.
[0042] In some instances, the instructions also instruct the processor to perform the following steps: for each database wireframe, generate a relative score based on the score of the matching features of each database wireframe relative to another score of the features of another database wireframe.
[0043] In another example embodiment, a system for analyzing gemstones is provided. The system may include a digital camera configured to capture multiple images of the gemstones and a computer having a processor and memory that communicates with the digital camera.
[0044] The computer is configured to acquire multiple images of the gemstone from a digital camera. The computer is also configured to derive a set of measurements from one or more images of the gemstone, the set of measurements measuring at least the distance between vertices, the position of facets, and the angle between facets. The computer is further configured to generate at least one feature from a portion of the set of measurements within a region of the gemstone.
[0045] The computer is also configured to remove one or more measurements from the features, wherein the one or more measurements include distance or angle measurements of the waist facets, or measurements of the angle between two facets within a threshold plane similarity. The computer is also configured to store at least one feature, as part of a test wireframe, in a searchable database configured to store features associated with wireframes of one or more other gemstones. The computer is also configured to identify all matching features in the searchable database for a specified feature, wherein the matching features are sorted by database wireframes. The computer is also configured to score each of the matching features based on its similarity to a specified feature in the test wireframe. The computer is also configured to populate a table with multiple database wireframes based on the score of each of the matching features in each database wireframe.
[0046] In some instances, the computer is also configured to assign a label to each wireframe populated in the table (the label indicating whether the wireframe is predicted as a match based on the score of each matching feature of each database wireframe), and to display a table with labels associated with each of the multiple wireframes. Attached Figure Description
[0047] To better understand the embodiments described in this application, reference should be made to the following detailed description in conjunction with the accompanying drawings, wherein the same reference numerals refer to corresponding parts throughout the drawings.
[0048] Figure 1 This is an explanation of the comparison of gemstones based on certain aspects described in this article; Figure 2 This is an explanation of gem analysis based on certain aspects described in this article; Figure 3 This is an explanation of certain aspects of the characteristics of the gem database described in this article; Figure 4 This is an explanation based on the analysis of certain aspects of gemstone characteristics described in this article; Figure 5 This is another explanation based on the analysis of certain gemstone characteristics described in this article; Figure 6 This is another illustration of the analysis of the characteristics of separated gemstones based on certain aspects described in this article; Figure 7This is another illustration of the characteristics of separated gemstones based on certain aspects described in this article; Figure 8 This is an explanation of the gem database search architecture based on certain aspects described in this article; Figure 9 This is an explanation of the results from a gem database based on certain aspects described in this article; Figure 10 This is an explanation based on the analysis of certain aspects of the gem database described in this article; Figure 11 This is another illustration based on the results of the gem database, which are based on certain aspects described in this article; Figure 12 This is a flowchart illustrating example method steps according to certain aspects described herein; and Figure 13 This is an illustration of an example computer system based on certain aspects described in this article. Detailed Implementation
[0049] Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. Numerous specific details are set forth in the following detailed description in order to provide a full understanding of the subject matter presented herein. However, it will be apparent to those skilled in the art that the subject matter can be practiced without these specific details. Furthermore, the specific embodiments described herein are provided by way of example and are not intended to limit the scope of the particular embodiments. In other instances, well-known data structures, timing protocols, software operations, procedures, and components have not been described in detail so as not to unnecessarily obscure aspects of the embodiments herein.
[0050] Overview The system and methods described here can be used to measure various aspects of any kind of polyhedron (including but not limited to gemstones), analyze the measurements of the polyhedron, quantify the features on those polyhedra, and input those quantified values into a database for later comparison. Such databases can be searched using the analytical and quantified features of new sample polyhedra to allow matching with previously analyzed polyhedra in the database.
[0051] In the first example, the polyhedron is a gemstone. Various aspects of the gemstone can be measured, and these measurements can be used to generate a wireframe that uniquely represents the gemstone's features. The wireframe quantifies the gemstone's aspects by identifying features such as facets, edge positions, and angles between facets and edges.
[0052] Wireframes can be further stored in a searchable database for further analysis. For example, wireframes for multiple gemstones can be stored in a database and used for further gemstone analysis, such as identifying the frequency of specific feature types within the multiple wireframes, or, for example, the correlation between features of different gemstones.
[0053] Example steps that can be used to achieve these objectives may include acquiring measurement data. Measurement information can come from any of multiple sources or programs. For example, measurement information can be obtained from a system that includes an imaging apparatus that captures images of the gemstone and / or a stage rotating the gemstone. Alternatively, the system may include a computer or computer program capable of determining measurement information from images captured by the imaging apparatus. Measurement information may also be obtained from another information source, such as from another computer that transmits measurements of the gemstone for use in the analysis described herein.
[0054] The steps may also include extracting features from the measurement data that describe the polyhedral geometry of the gemstone's surface. For example, features may include adjacent edges, adjacent facets, and measurements of the locations of these features.
[0055] In some instances, the steps may also include generating a set of features, which includes wireframes or wireframe files that uniquely identify the polyhedral features of the gemstone's measurements. The wireframes may be represented as data structures (e.g., half-sided data structures) that include multiple features derived from various shape measurements of the gemstone.
[0056] The steps may also include storing the feature data of the wireframe in a database associated with the gemstone's identifier. The database may store feature data (e.g., wireframes) for multiple gemstones and can be used to process the features of multiple gemstones as described herein.
[0057] In some instances, when measuring a new polyhedron, each of its features can be searched in a database. For example, a new gemstone can be measured, and the measurement data can be compared with other wireframes in the database to determine if a match exists. The gemstone in the database with the largest number of matching features can be considered a candidate to match the gemstone being evaluated. The confidence level of this set of possible matches can be further analyzed.
[0058] As a non-limiting example, gemstones can be analyzed and stored in this way for comparison and subsequent identification purposes. Figure 1Examples of how such systems and methods can be used are shown by illustrating table-side views of two gemstones 102 and 104, which may be the same gemstone analyzed at two different times or two different gemstones. Different gemstones may look similar and, in fact, may share many of the same characteristics, such as carat weight, cut, color, and / or clarity grade, but may still be two different gemstones. When the same gemstone is analyzed later, a more accurate set of measurements can be used to make a definitive match with the gemstone's stored records. One such example may include the analysis of the gemstone's facets 120 or the polished flat surfaces on the gemstone. Such analysis may also include the analysis of vertices 130, which are points where three or more facets meet. In some examples, both facet and vertex analysis may be utilized, as explained herein.
[0059] For example, the system and method described herein can be used to store wireframe data of gemstones (also referred to herein as “stones”) in a database by converting wireframe data files into internal half-side data structures, calculating all features within the wireframe, and storing the feature data along with the unique identification code or other identifier (ID) of the corresponding gemstone in a database.
[0060] Once the wireframe and feature data are stored, the system and method described herein can be used to identify stored wireframes that match the wireframe of the gem being evaluated (test stone) by converting its wireframe file into an internal half-side data structure. This can include computing all features in the wireframe of the gem being evaluated, and for each feature, searching the database for all wireframes that include that feature, and storing the results in a table in memory. In some examples, this table may include: a tally of the number of matching features for each gem ID identified in the database; determining which gems in the database are matches of the gem being evaluated based on how many features are found for each gem ID; and generating outputs of gem IDs (if any) found to have matching wireframes.
[0061] Wireframe Data Acquisition As mentioned, wireframe models of any kind of polyhedron can be used in the systems and methods described herein. The source of such wireframes can be from many sources, such as computer programs or image acquisition sources. However, in one such example embodiment, a cut gemstone can be measured to determine the number, size, and relative positions of the facets, the angles between adjacent facets, the vertices where three or more facets meet, and the distances between adjacent vertices. In some embodiments, only some of this information about the cut gemstone can be acquired, for example, only over a selected area of the gemstone, and only a partial wireframe can be generated.
[0062] The systems and methods described here can utilize various data formats for each wireframe. Such data formats can be inputs for feature recognition and data storage for future matching purposes, and can be any of a variety of formats.
[0063] One such example format is a point-polygon representation using a subset of the DirectX file format. Another example is a plane equation representation using the GemCAD file format. Other data formats may also be used, but in any case, the data is converted to the internal storage format by the systems and methods described here.
[0064] Many different methods can be used to create line drawings of facets on a cut gemstone, and the methods for facet determination and matching are agnostic to how the wireframe of any polyhedron can be determined. One such non-limiting example of such measurement could include using a visible light camera and a white background light to capture images of the cut gemstone to measure and quantify the measurements for analysis. Figure 2 A gemstone 202 is shown placed on a stage 210. In some examples, the gemstone 202 is placed on the stage 210 with the tableside 220 facing down and the apex 222 facing up. The X, Y, and Z coordinate system 250 can then define the size and angle of the gemstone 202.
[0065] A camera 230 can be placed on one side, and a light 232 can be placed on the other side of the diamond 202. In this way, due to the backlighting arrangement, the camera 230 can view the diamond 202 as a silhouette. However, such an arrangement allows the digital images captured by the camera to measure the angles and dimensions of the gemstone 202 using pixels in the images. The gemstone 202 can then be rotated by rotating the stage 210, allowing the camera 230 to capture numerous images of the gemstone's silhouette. Once the digital images are captured, a computer can detect the gemstone's silhouette or edges in the pixelated images. In some examples, this may include an image processing step called edge detection. The equations for the detected edges can then be incorporated into a generated 3D model of the gemstone 202. In such examples, where the distances and angles required for analysis do not appear in the profile view, the distances and angles can be derived from the 3D model instead of the profile view. In some examples, the distances and angles of the edges can be determined by counting pixels in the image and extrapolating the distances and angles using an algorithm that combines the counted pixels. Using the known size of each pixel, the computer can assign the size to the gem to generate the coordinates of each facet and the coordinates of each of the vertices at the intersection of the facets as an angle.
[0066] The girdle 240 of gemstone 202 forms a narrow band encircling gemstone 202 between crown 242 and pavilion 244. The girdle 240 can be a rounded or faceted area, but with facets so small that measuring them individually in the identification systems and methods described herein may be of no value. For example, when measuring the profile with camera 230, the measurement system can approximate or assign facets to the girdle portion 240 of gemstone 202, but such measurements may ultimately only be approximations or mathematical estimates because the small size and / or shape of the girdle is a rounded or curved facet rather than a flat facet. In such examples, and for these reasons, the systems and methods herein may or may not include measurements of the girdle for database storage and / or identification comparison.
[0067] Extract features and feature types from wireframe examples In some examples, a subset of measurements is grouped into multiple feature sets, each representing or defining a feature. This feature is used for comparison and matching for identification as described herein. A feature can refer to a set of relevant measurements acquired or derived from a region of a wireframe model. Such features can be one or more measurements from locations on the surface of a gemstone or polyhedron. Each feature can include multiple measurements, such as distance measurements (distance between two vertices) and angle measurements (angle between two facets). Thus, in some examples, the measurements of a feature could include the length of an edge, the angle between two facets (measured at the edge between the two facets), the distance between a vertex and a reference plane, and / or the angle between a facet and a reference plane.
[0068] In some instances, features may include a set of measurements acquired from a region of the wireframe. Measurements may include distances between vertices and / or angles between facets. In some instances, measurements may also include distances between vertices and the stage of the measuring device, and angles between facets and the plane of the stage.
[0069] There are different ways to select which distance and angle measurements are used to define a feature, and this embodiment may include features containing 1 to 12 different measurements. In some instances, a feature may include 2 or 6 measurements per feature.
[0070] Alternatively, a feature-based classification method could be considered, which could, for example, be used in... Figure 7 The examples of features can include 0az, 0bz, 1, 1z, 2, 2z, 3a, 3az, 3b, 3bz, which will be described in more detail below.
[0071] When determining which features to measure and utilize, reviewing common gemstone shapes and cuts can be helpful. For example, diamond measuring instruments may have a natural reference plane: the plane of the stage on which the diamond is placed. Most diamond cutting tools have table facets that are placed on the stage to perform measurements. Figure 2 (220). However, if example measurements are used for the distance between a feature vertex and the reference plane and / or the angle between a feature facet and the reference plane, these values may change if the facet is refaced. This could reduce the validity of subsequent comparisons. Therefore, one example reason for using example measurements for the length of the feature edge and / or the angle between two facets (measured at the edge between the two facets) is that if the stone (gem) is refaced elsewhere, the measurements will remain unchanged, allowing the stone wireframe to still match in database comparisons. Another example measurement is the internal facet angle. The internal facet angle can be determined by the distance between vertices and therefore does not provide new information.
[0072] Feature types can be defined by a specific set of measurements. All measurements collected within a small area can be stored together in the database as a single feature.
[0073] Example feature types may include those where the number in the feature type indicates how many edges are used in the feature type definition. The letters "a" or "b" distinguish between two feature types with the same number of edges. The letter "z" indicates that the feature type utilizes measurements relative to a reference plane.
[0074] Feature type 0az - Select Vertex. This feature consists of a single measurement: the distance between the vertex and the reference plane.
[0075] Feature type 0bz - Select facet. This feature consists of a single measurement: the angle between the facet and the reference plane.
[0076] Feature Type 1 - Edge Selection. This feature consists of two measurements: the distance between vertices at each end of the edge, and the angle between facets on each side of the edge.
[0077] Feature type 1z - Selected edge. This feature consists of six measurements: the distance between vertices (v1, v2) at each end of the edge, the distance between vertex v1 and the reference plane, the distance between vertex v2 and the reference plane, the angle between facets (f1, f2) on each side of the edge, the angle between facet f1 and the reference plane, and the angle between facet f2 and the reference plane.
[0078] Feature Type 2 - Select facet (f1) and two of its interconnected edges (e1, e2). The invention also imposes the following constraint: when viewed from outside the wireframe, e2 immediately follows e1 in a counter-clockwise direction. When moving counter-clockwise, the first vertex of e1 is (v1), the vertex shared by e1 and e2 is (v2), and the final vertex of edge e2 is (v3). Facet f1 is located to the left of edge e1 and also to the left of edge e2. Facet (f2) is located to the right of e1, and facet (f3) is located to the right of e2. This feature consists of six measurements: the distance between vertices v1 and v2, the distance between vertices v2 and v3, the distance between vertices v3 and v1, the angle between facets f1 and f2, the angle between facets f3 and f1, and the angle between facets f2 and f3.
[0079] Feature type 3a - Select facet (f1) and three of its edges, which are connected sequentially in a clockwise direction around the facet. The edges are (e1, e2, e3). They connect four vertices (v1, v2, v3, v4) and three additional facets (f2, f3, f4). There are a total of twelve measurements: the first six distances between each pair of vertices, and the last six angles between each pair of facets.
[0080] Feature type 3b - Select vertex (v1) and three edges that are sequentially connected to that vertex. The edges are (e1, e2, e3). The other vertices of these edges are (v2, v3, v4). Generally, there are four facets (f1, f2, f3, f4) where the three edges intersect. There are a total of twelve measurements: the first six distances between each pair of vertices, and the six angles between each pair of facets.
[0081] Figure 3 An example of data collected from a sample gemstone is shown, defining the coordinates of facets and angled vertices. Such data can be stored in any computerized storage device, local, distributed, database, table, or any other structure disclosed herein.
[0082] In this example, the first set of numbers relates to the measured vertices. For this example, the data indicates that 534 vertices were found on this particular sample gemstone 310. For each of the measured vertices, the coordinates of each of vertices 312, 314, 316, etc., are listed. In some examples, the first number 322 of the row simply indicates which vertex is being referenced, and coordinate 324 indicates the X, Y, Z coordinates in a Cartesian reference system, in micrometers or any other unit (such as, but not limited to, millimeters). This example is not intended to be limiting, and some embodiments may utilize different coordinate reference systems (such as polar coordinates), different benchmarks, and / or coordinate units different from micrometers or millimeters.
[0083] Next, the data stored for example gem facet 320 is shown. This example includes 269 facets 322, including facet coordinates for the girdle in this case, even though such data points may not ultimately be used for identification or matching analysis. Each facet of the girdle is also shown in this example. Figure 2 (240 on the surface), but such facets are usually mathematical estimates and are not used for identification because they represent small example facets that are only approximations of the facets and are therefore inaccurate.
[0084] The data shows the number of vertices 322 (269) and a list of measured values for the number of vertices. Different rows 320 count the number of vertices 326 and the coordinates of each vertex 324. In some examples, coordinate units different from micrometers or millimeters may be used; this example is not intended to be limiting.
[0085] Example of using wireframe features After capturing the raw data of a polyhedron (such as a gemstone), a computer system can calculate the angles of its vertices, the coordinates of its facets, and the dimensions of its edges. Using these coordinates and dimensions, they can be grouped into a set of features and used to help identify the gemstone from other measurements of other stones. Such features can utilize measurements that are not easily altered or manipulated. In some examples, these can be considered invariant features unless the gemstone is recut or repolished to change its dimensions.
[0086] For example, Figure 4 A set of such data is shown, one feature of which can refer to the Z-coordinate of each vertex in gemstone 402. If gemstone 402 is set on stage 410 with its tableside 420 facing downwards, then each vertex can have its own Z-distance 412 to stage 410. In this way, if the tableside 420 is not repolished, the distance between stage 410 and each vertex 412 will remain the same. However, based solely on these factors, the Z-coordinates of the gemstone vertices may not be sufficient to distinguish it from other gemstones.
[0087] Another example feature that can be found on a gemstone can be an angle. Such an angle 522 can be measured as the angle of a flat, polished facet 520 of gemstone 502 relative to the horizontal plane of table 510. Similarly, such an angle cannot be manipulated without repolishing gemstone 502 to change it. Other angles can be used, but measuring angle 522 relative to an easily identifiable and constant surface such as a horizontal table 510 may be useful in this analysis. Vertices can be three numbers, facets can be a list of vertices, and both sets can be inputs to the process. Distances and angles can be single numbers, but they can be concatenated to form features. For example, feature 1 can consist of a single distance and a single angle, feature 2 can consist of three distances and three angles, and features 3a and 3b can each consist of six distances and six angles, and so on; features are central to the process. Features can be stored in a database as described herein, and the results of a database lookup of features in a stone can lead to a list of potential feature matches, which can be the output of the process.
[0088] Using the above information, the system can then infer that any given edge on a gemstone may include the dimensional distance along that edge and the angle between the two facets that make up that edge. Figure 6 These two measurements are shown: two facets 602 and 604 form an edge 606, where edge 606 may include a measurable distance 608 calculated using the vertex coordinates described above. Furthermore, the two facets 602 and 604 can be combined to form an angle 610 measured between the two facets 602 and 604. This angle 610 can be... Figure 5 The angles relative to the horizontal stage are measured differently. Figure 6 In the example, the angle is formed by the two facets 602 and F04 that form the edge, and is not measured relative to the horizontal plane.
[0089] In this way, each edge 606 can have two invariants associated with it: the distance d of edge 608, and the angle Ɵ 610 between the two facets 602 and 604. Such quantities can be grouped into feature sets to be stored in a database, associated with the identifier of the gem (from which these quantities were measured), for future comparison and reference as described herein.
[0090] Then, through examples, not only can... Figure 6 The analysis uses two quantities to measure a single edge, but alternatively or additionally, even more quantities can be used to compute other, more complex feature sets for analysis. Figure 7 It shows a ratio Figure 6 More complex example features, and Figure 6 The one-sided example 702 discussed in [the text]. Figure 7The diagram shows a single-sided feature 702, a two-sided feature 704, a three-sided feature 706, and a three-sided intersection feature 708.
[0091] In explaining the two quantities that are measurable and storable for unilateral features (such as 702) Figure 6 After (in the middle), Figure 7 Example 704 of two side features is shown. In 704, two sides 714 and 716 intersect. These two sides 714 and 716 can form a feature with six different quantities for measurement and storage. For example, the distance of one side 714, the distance of the second side 716, and the total distance 718 between the farthest points of the two sides. Additionally, angles can be calculated; for example, the angle between the two facets constituting the first side 714 can form angle 720. Similarly, the angle between the two facets constituting the second side 716 can form angle 724. Angle 722 between the two sides 714 and 716 from a top / bottom view can also be calculated. Each of these calculated dimensions can be collected and stored for comparative analysis, as described herein.
[0092] Examples such as 706 and 708, and even more complex ones, can generate features of even more quantities for measurement, analysis, and storage for comparison. While more complex examples can provide more points of analysis, they may require commensurate computational power to perform the analysis and comparison at the database level to find potential matches. Therefore, in some examples, simpler features can be utilized to facilitate analysis and minimize computational resources. However, in other examples, more complex features may lead to more accurate comparisons, which may be necessary for proper comparison of smaller stones.
[0093] In some instances, various features can be removed from consideration when generating wireframes as described herein. For example, features more likely to contain spurious measurements can be removed or otherwise omitted, such as features containing distance or angle measurements from waist facets, or features with small distances or angles between nearly coplanar facets. Removing certain features can improve the performance of generating and analyzing wireframes as described herein.
[0094] When calculating features from a wireframe, all possible locations within the wireframe that conform to the definition of the feature type can be selected. For example, feature type 1 requires the selection of edges. One edge selection produces one feature. Selecting different edges produces different features. Therefore, selecting all edges one at a time produces a complete list of features within the wireframe. In some examples, feature type 3b can have different uses than feature type 3a, where features including waist faceted edges can be eliminated because they are artificial products of the measurement process (i.e., not real). In this case, feature type 3b may allow the measurement of more features than feature type 3a.
[0095] Example implementation of pseudocode for feature type 2: count = 0 for e1 in wireframe_edges / / Set e1 to the value of each edge one at a time. e2 = next(e1) / / Edge e2 is the next edge in the sequence around facet f1. v1 = vertex(e1) / / Vertex v1 is the starting vertex of edge e1 v2 = vertex(e2) / / Vertex v2 is the initial vertex of edge e2 v3 = vertex(opposite(e2)) / / Vertex v3 is the terminating vertex of edge e2 f1 = facet(e1) / / Facet f1 is located to the left of edge e1 f2 = facet(opposite(e1)) / / Facet f2 is located to the right of e1. f3 = facet(opposite(e2)) / / Facet f3 is located to the right of e2. feature[count] = { dist(v1,v2), dist(v2,v3), dist(v3,v1), dot(f1,f2), dot(f3,f1), dot(f2,f3)} count++ In the above implementation, "opposite" returns the same side in opposite directions within the half-side data structure. "dist" is the distance between the two vertices. "dot" is the dot product of the normal vectors of the two facets. This returns the cosine of the angle between the facets. In some examples, the cosine of the angle can be used directly from the database without solving for the angle itself.
[0096] Database storage example The system and method described in this paper can be used not only to capture the distinguishing features of gemstones, but also to store gemstone records that include such features, and then search them later to find potential matches (for the case of analyzing the same stone at two different times).
[0097] For example, if the distance and angle measurements in the features are independent and normally distributed, then the features from the new polyhedron can be compared with the features in the database by calculating the chi-square value. If the chi-square value is less than a cutoff value, then the features from the new polyhedron can be considered to match the features in the database.
[0098] On the other hand, if the distance and angle measurements in the features are not independent and / or not normally distributed, the same technique can still be used.
[0099] For example, distance and angle measurements are pre-divided by the variances in the substitution (formula), which are empirically determined to give the expected matching performance (Type I vs. Type II error). They are also scaled so that the chi-square cutoff becomes one.
[0100] The database can be searched by features or the measurements that make up those features. Since there is usually a certain amount of error in the measurements, a metric can be defined to determine whether the difference between a feature from the test wireframe and a feature in the database is small enough that the feature is considered a match. Such metrics can include Manhattan metrics or Euclidean metrics, which can be based on a chi-square distribution of measurement errors. Euclidean metrics can be pre-scaled such that a distance between the sets of measurements (considered points in 6D space) less than a value (e.g., 0.5) is considered a match.
[0101] In some instances, the measurements of the features constituting a gemstone can be computed as hash functions (i.e., via hash functions) to directly find matches with features recorded in a database, where the database includes hash tables that cover previously collected data on a large number of gemstones and their features. In some cases, the database may allow direct Euclidean searches.
[0102] As background for database search Figure 8 An example of a database search method is shown, in which a query such as a number is compared with the numbers previously recorded in a database file to see if a match exists. In this example, 802 illustrates a flat file search, where database file 804 is searched sequentially from one end to the other 806 until a match is found 808. Such examples demonstrate the simplest search method, but such simple searches have both advantages and disadvantages. If database 804 is large and no match is found, or if a match is not found until the end of file 804, then such a search can take a long time because searching 806 would have to examine each file sequentially. However, due to the simple nature of comparing only with each file in database 804, such searches can be easily adopted.
[0103] The next example, 810, illustrates a tree-structured database search method. In this example, the contents of database file 812 consist of values arranged in some order, such as numbers in ascending order. The search begins by dividing the numbers in database file 812 into two halves, 814 and 816, and comparing the search query against these two halves: the number in the query must have a value higher than or lower than breakpoint 818, and thus, if it exists in database file 812, it resides in one of the two halves, 814 or 816. By comparing the search against decision tree higher or lower queries, the number of search queries can be fewer than in other databases. Figure 8 In the example, the query falls within the range of the second half, 816, thus reducing the number of database entries to be compared by half. Next, another midpoint breakpoint, 820, is found in the remaining part of database 816 and compared with the query. Again, the query number must fall within one of the two halves, 822 and 824, of that portion of database file 816. These comparisons continue until two data entries in databases 826 and 828 are compared with the query, and one of them will match or neither will match.
[0104] Tree-structured database query methods like those shown in 810 have the following advantages: compared to a flat file 802 where every number in the file must be compared, the number of files searched is reduced, thus reducing the computational power required to find matches or non-matches. Another advantage of using a tree structure is that computers using this search method can include the first few database comparison breakpoints in a memory (RAM) cache, allowing those query comparisons to be performed quickly without requiring new disk I / O requests for each and every comparison. This also speeds up the process and reduces the computational burden of finding matches. Yet another characteristic of using tree-structured database searches is that if the goal of the search is to find a match or a number closest to a match, then such queries will allow finding the two database entries closest to the query. However, if seeking an actual match, this may be useless unless rounding errors or measurement errors can explain the difference between the query and the search results.
[0105] A third example of database searching is hash table lookup method 830. In hash table lookup, query 834 (hash key) is run using an algorithm (hash function) to determine a hash value that corresponds to an index in the hash table in database 836. Database 836 is created by running the value of database entry 832 through the same hash function to create a hash table. The hash value of query 834 is then searched, and it is located in database entry 836 by performing only one comparison (i.e., lookup via hash table index). This single comparison (one-to-one correspondence) has a clear advantage in terms of computing resources. However, such advantages may be partially offset by the computing resources required to run the query through the hash function.
[0106] Some databases may include a hybrid of hash data (hash tables) that links feature data to gems and tree data structures to facilitate the identification of a specific gem from a set of multiple features. In one embodiment, hash tables may be used to identify the appropriate tree for lookup, where the trees are stored on different servers. In other embodiments, multiple hash tables may be accessible (e.g., on different servers).
[0107] Database feature search example In the comparative example, once the new gemstone has been analyzed and its feature data stored, the following steps are taken: Figure 9 The example data structure shown may be useful. To search for the characteristics of a gemstone's measurements, the data collected during the measurements may need to be structured in a way that allows it to be transformed into searchable data.
[0108] In the example, data from previously measured stones can be loaded or stored in a database. In such an example, when measured again, the new wireframe feature measurements should match the measurements already existing in the database. However, due to measurement errors, the features may differ slightly each time they are measured. In such an example, a single feature “t” from the test stone can be compared with the same feature “x” from the database stones. In the example, we can assume that each measurement in the feature is normally distributed with a mean mu_i and a standard deviation sigma_i. Typically, the measurements can be correlated with each other. Eigensystem analysis of the covariance matrix of the features will produce a matrix “T” that transforms the features such that the covariance matrix is an identity matrix, i.e., the standard deviations of the measurements are all one and they are uncorrelated. Then x’ = (x-mu)T and t’ = (t-mu)T can both be random variables with a standard normal distribution. If we calculate (x’-t’) / sqrt(2), then it can also have a standard normal distribution. And if we sum the squares of these elements, then it has a chi-square distribution.
[0109] It has a chi-square distribution.
[0110] Rejecting a feature match that should be accepted may be a Type II error. The probability of a Type II error can be set directly using percentile values from a table of chi-square values. If a 10% probability of a Type II error is desired, then the 90th percentile of a chi-square distribution with an appropriate number of degrees of freedom can be used.
[0111] In such examples, the measurement errors may not be normally distributed. Instead of calculating the transformation matrix T, the distance measurements can be divided by the assumed standard deviation sigma_d, and all angle measurements can be divided by the assumed standard deviation sigma_a. These standard deviations can be assumed to be constant for all characteristics. Furthermore, it can be assumed that all measurements are uncorrelated with each other. In such examples, a cutoff value that gives the expected Type II error can be determined. Additionally, it can be determined what cutoff value gives us the expected balance between Type I and Type II errors.
[0112] Figure 9 An example of measurement data that can be stored in a database for searching is shown. In this example, control number 902 can be assigned to each sample gemstone. Figure 9 In this example, each data entry is the same block, for illustrative purposes only, with control number "110107935652" 902. The next column is the key 904 for the entry. The key can be a set of numbers corresponding to the measured values of the feature in question. Figure 9 In the example, a feature with a single edge having two corresponding facets is used. Therefore, the key represents two values, as this is how many values feature 1 has, where the first value is the distance and the second value is the angle, referenced to a range of numbers, such as (0, 375). As described, the rounded measurements of the actual measurements produce numbers that the system can expect to match precisely in the database. If the interval size is too small, the measurement of a matching feature might fall into a different interval, and it wouldn't be counted as a match. If the interval size is too large, it might increase the likelihood of counting a feature that shouldn't actually be a match as a match. The interval numbers have no units, and the interval size can be related to the overall performance of the system. In one example, the database controlling number 902, key 904, and the interval numbers of the feature measurement values could include a hash table. More examples and descriptions of the intervals used in the systems and methods described herein are included below. Figure 6 Similar examples are shown. In some examples, angle and / or linear measurements can be rounded to standardize the data. In some examples, any kind of unit can be used to measure and store data corresponding to angle and / or linear measurements, such as, but not limited to, (alone or in combination) degrees, radians, linear distances in nanometers, millimeters, centimeters, or any other measurement.
[0113] Figure 9The next column in the example shows a repetition count of 906. In some examples, a single stone may include multiple features, such as edges and facets with the same or substantially the same measurements. This is because some gemstones are cut so that the faceted pattern can be polished in a repeating manner throughout the stone. Figure 9 In the example, the repetition count 906 records the number of duplicate values found in a single gem. Using such a repetition count saves computational resources instead of saving the same key value multiple times. The last column in the example is the number 908 of features measured on individual stones. The number 908 of features measured will depend on the type of feature chosen for analysis (see...). Figure 6 and Figure 7 (and the specific gem being analyzed.) These values can be used, as described in this article, to determine the gem's score and / or relative score in a matching exercise.
[0114] Database range example In the example where gem features are used for searching and matching, database management can depend on what features are being analyzed and the number of numbers or measurements associated with each set of features being analyzed. Figure 10 The data shows two measurements, 1002 and 1004, stored in the database.
[0115] In such examples, systems and methods may include arranging a database using pre-defined intervals (1010) or ranges of results to store feature results for access by the database. Using appropriately sized intervals, the range of various feature measurements can be captured while maintaining statistical accuracy later when used to identify matching feature measurements. However, interval division can cause measurements of matching features to fall into different intervals due to measurement errors or insufficient precision, resulting in those matching features being counted as non-matches. In some examples, the effect of matching features being counted as non-matches can be overcome or reduced by including enough features from the sample gemstones so that the vast majority of matching features are counted as matches. This underscores the importance of setting well-defined interval sizes. Without result intervals, the probability of matching measurements is very small (e.g., close to zero), and rounding and measurement errors may never produce enough matches to be practical.
[0116] exist Figure 10In the diagram, a predetermined interval 1010 is shown graphically, with stored numerical representations of statistical curves 1002 and 1004 above interval 1010, and actual measured values 1006 and 1008. In this example, a set of the two characteristic measurements 1006 both fall within the same interval 1012. This situation does not pose a problem for storing the characteristic measurement and comparing it with subsequent samples. However, in another analysis, the two measurements 1008 fall into different intervals 1014 and 1016. If the average value 1004 stored in the database for this feature actually spans both intervals 1014 and 1016, this situation could cause problems for later comparisons. To address this, selecting interval 1010 with a statistically useful interval size can reduce the number of sets of measurements falling into multiple intervals. Figure 10 The formula shown can be used to determine the size of the interval used for data storage.
[0117] exist Figure 10 Equation 1020 is shown, which can be used to predict the probability of a bell curve based on a specific standard deviation and the standard deviation of the interval size. That is, when using intervals, efforts can be made to minimize the probability of the same measurement size or feature being recorded twice in different intervals (e.g., due to measurement inaccuracies). As part of this analysis, these formulas help determine the probability that two measurements of the same size or feature fall into the same interval as the interval size b changes. Furthermore, instead of changing the interval size b, what is the probability p, in units of standard deviation, that two different measurements of the same size or feature fall into the same interval? By selecting an appropriate interval size for storing the data set of features, they can be searched and matched using a database and corresponding computer assets. While the intervals may be one-dimensional for illustrative purposes, in practice they can be two-dimensional or six-dimensional, depending on the type and complexity of the features.
[0118] Matching example In some examples, it may be useful to utilize measurements of the sample being analyzed and compare those measurements to a database of previously measured samples in an attempt to determine a match. This can be useful in cases where samples are sent to the lab for grading, returned to the customer after grading, and then sent back again for re-grading. Even if stones have been slightly manipulated, polished, or brightened, it may be useful to identify stones that have been previously graded. Scores and / or relative scores, as described herein, can be used to compare the sample under analysis with a database of previously measured samples to determine a match.
[0119] Therefore, once stored in a database, systems and methods can look up stored features for comparison and identification. Multiple features (such as six features) can serve as a single numeric index for lookups. In such an example, after the measurements are scaled, an index can be created by rounding or truncating each number to the nearest integer. Continuing this example, if six of these integers exist, and the bits of the binary representations of these integers are interleaved to create a single integer with six times the number of bits, this becomes the database key for the lookup feature. Due to the interleaved bits, this key has the property that adjacent measurements rounded to integers differing by one tend to have keys that are numerically close to this key.
[0120] In this example embodiment, the test wireframe may have multiple features, and specific features can be searched in a database to find all features that match (i.e., within a threshold similarity). In this example embodiment, each feature may have approximately 50,000 such matches.
[0121] Figure 11 An example dataset of features used for matching measurements is shown. For example, a dataset recording the measurements of a stone is shown. Figure 9 , Figure 11 The data in the image shows the results of an attempt to match the measured stones with data in a database.
[0122] exist Figure 11 The image shows the matching results for a specific stone 1102 in the analysis of control number 110107935652. The first column 1104 shows the different stone control numbers that have been shown as potentially matching the features preserved with the gem 1102 in the analysis. In some examples, the database may contain thousands of control numbers and corresponding underlying feature data for each control number. Only a few examples are shown to highlight the following: as described herein, the top data calculation results are considered as matches, where control numbers are sorted in a list according to their scores and relative scores as described. The next column shows the number 1106 of features 1106 that each stone in the first column 1104 matches with stone 1102 in the analysis. The next column shows the calculated score 1108 for each of these stones, as described herein. The last column 1110 shows the relative score of each stone 1104 compared to stone 1102 in the analysis, as described herein. Matching of stone 1102 in the analysis can be performed by selecting a match from the first column 1104 using the highest score 1108 and / or the relative score 1110. Such matching can be performed even if the gemstone is slightly adjusted or polished between measurements. In this way, the system and method described herein can be used to determine whether stone 1102 in the analysis was previously measured and is now matched.
[0123] exist Figure 11 In the example, only one direction of matching is shown. Furthermore, since not all features of a gemstone are sometimes measured, the measured features can still be used to match gemstones. In such an example, if 77 out of the 150 features of the first stone 110207988676 match the stone 110107935652 under analysis, that stone may have fewer measured features. In this example, 77 out of the 129 features of stone 11010793562 match stone 110207988676. Even if a different number of features are analyzed in each stone, these stones can still be compared.
[0124] Score Example In some examples, the score of 1108 used for matching can be determined as the percentage of matching features in the two stones multiplied together. For example, if 77 out of 150 features match one stone and 77 out of 129 features match another, then multiplying them together will yield ( 77 / 150 = 0.5133333 and 77 / 129 = 0.59689922, therefore 0.513333 × 0.59689922 = 0.30640824, which is the score for this gemstone match. A theoretical score of 1.0 would be a perfect match. The scores 1108 for each match of gemstone 1102 in the analysis can be listed in rank order.
[0125] In some examples, additionally or alternatively, once all the lists of comparisons have been compiled and ranked from highest to lowest, a relative score of 1110 can be calculated based on the score of the stone and the score of another gem later in the ranking list of gem scores. This relative score of 1110 can provide a perspective on how much a match is better than other scores below the chart. For example, the number of scores can be two, five, six, eight, ten, twelve, or fifteen. Then, in some examples, the relative score of 1110 can be the sum of the scores of the first stone 1104 being analyzed and the eleventh stone being analyzed (ten down the list). The relative score of 1110 for the second stone would be the score of the second stone divided by the score of the twelfth stone. In some examples, a score of 1.5 can be a very high score. Once determined, the relative score of 1110 can help rank stone 1104 to obtain the best match relative to gem 1102 in the analysis.
[0126] In some instances, matching features can be sorted by wireframe ID, so that all matching features from database wireframes are grouped together. Due to symmetry, for a given feature in the test wireframe, there may be more than one matching feature in the database wireframe, but it can only be counted as one match.
[0127] Similarly, multiple features in a test wireframe may match a single feature in a database wireframe, but this only counts as one match. If multiple test wireframe features match multiple database wireframe features, then the set of matching features from the test wireframe can be assigned to the database wireframe, maximizing the match count.
[0128] If the test wireframe has “nt” features, the database wireframe has “nd” features, and there are a total of “m” matching features between the wireframes, then the raw score of the database wireframe can be expressed as (m / nt). (m / nd).
[0129] Additionally or alternatively, another way to score matches may include a validation step, where the entire wireframe of the top potential matches is compared to see if the features are in the same relative orientation. If they are, this may provide a definitive match.
[0130] In some instances, database wireframes can be sorted by score. In the example, the top 10 or 20 scored wireframes could be provided in a table. Additionally, rules can be used to assign labels to each wireframe, such as assigning "match," "likely match," or "no match" to each wireframe in the table. These rules could be based on the number of feature matches of the database wireframe, the wireframe's original score, and a comparison between that original score and the original scores of the database wireframes below it in the table.
[0131] In some instances, the system can calculate a relative score by dividing the raw score by the raw score of the wireframe in the lower 10 positions of the table. If this value is at least 1.5, then the wireframe can be matched. In particular, if the raw score is very low, then the wireframe will generally not match even if the relative score is greater than 1.5.
[0132] Example analysis and comparison steps According to the description in this article, Figure 12 Example method steps that can be performed using the system described herein are shown. For example, Figure 12 The first step in analyzing, identifying, and then matching a gemstone can be placing the gemstone in front of a digital camera so that its outline can be captured in a digital image 1202. Next, the gemstone can be rotated on a stage or table, allowing the digital camera to capture many digital images of the gemstone's outline from many angles 1204. These steps are... Figure 2This is explained in detail in the accompanying description.
[0133] Images can be sent and / or stored on a computer with a processor and memory, and identified 1206 using an identification number, symbol, name, or other identifier and searchable tag. The computer can then generate a 3D model to calculate distance measurements of edge features and angle measurements of edges, vertices, and facets 1208. The analysis of distances and angles can be determined by the computer analyzing the digitized image and the coordinates of vertices and angles determined from the digital image composed of pixel groups. The computer can be programmed with a distance conversion standard used by the camera arrangement to capture digital images and count pixels to convert them into linear distances and / or angles, or any other measurements programmed by the system. Once a certain number of measurements have been taken on the gem, the set of edge and angle measurements can be grouped into a feature set 1210 assigned to the gem for storage. These steps are performed in... Figure 4 , Figure 5 , Figure 6 , Figure 7 This is explained in detail in the accompanying description.
[0134] Once each of the combinations of features has been determined, and each has a measured value given its transformation, the various values and features can be stored and associated with gem identifiers in the database.1212 These steps are... Figure 9 This is explained in detail in the accompanying description.
[0135] Once a database of gemstones and their measurement standards is established, it can be used to compare newly measured gemstones for potential matching. In such cases, stones can be sent to the laboratory multiple times for analysis, and the matching described herein allows for correlation between earlier and later analyses of the same gemstone.
[0136] In such examples, new feature measurements are performed on the gemstone as described above. The system can then use the measured features of the new stone to compare it with a database of previously measured and stored gemstones.1214 In some embodiments, this may include calculating scores and / or relative scores as described herein. These steps are described in… Figure 11 This is detailed in the accompanying description. In some example embodiments, various database structures (such as...) Figure 8 and Figure 10 (And those described in the accompanying description) can be used for searches as described in this article.
[0137] Example computer devices Figure 13An example computing device 1300 that can be used in the systems and methods described herein is shown. In the example computer 1300, a CPU or processor 1310 communicates with a user interface 1314 via a bus or other communication means 1312. The user interface includes example input devices such as a keyboard, mouse, touchscreen, buttons, joystick, or one or more other user input devices. The user interface 1314 also includes a display device 1318 such as a screen. Figure 13 The illustrated computing device 1300 also includes a network interface 1320 for communicating with the CPU 1320 and other components. The network interface 1320 allows the computing device 1300 to communicate with other computers, databases, networks, user equipment, or any other computing-capable device. In some examples, the communication method may be via Wi-Fi, cellular, Bluetooth Low Energy, wired communication, or any other type of communication. In some examples, the example computing device 1300 includes a peripheral device 1324 that also communicates with the processor 1310. In some examples, the peripheral device includes an antenna 1326 for communication. In some examples, the peripheral device 1324 may include camera equipment 1328. In some examples, the computing device 1300 includes a memory 1322 that communicates with the processor 1310. In some examples, the memory 1322 may include instructions for executing software such as an operating system 1332, a network communication module 1334, other instructions 1336, an application 1338, an application for digitizing images 1340, an application for processing image pixels 1342, a data storage device 1358, data (such as a data table 1360), a transaction log 1362, sample data 1364, encrypted data 1370, or any other type of data.
[0138] in conclusion As disclosed herein, features consistent with these embodiments can be implemented via computer hardware, software, and / or firmware. For example, the systems and methods disclosed herein can be embodied in various forms, including, for example, data processors, computers that also include databases, digital electronic circuit systems, firmware, software, computer networks, servers, or combinations thereof. Furthermore, while some of the disclosed embodiments describe specific hardware components, systems and methods consistent with the inventives herein can be implemented with any combination of hardware, software, and / or firmware. Moreover, the foregoing features and other aspects and principles of the inventives herein can be implemented in a variety of environments. Such environments and associated applications can be specifically constructed to perform various routines, processes, and / or operations according to the embodiments, or they may include computers or computing platforms that are selectively activated or reconfigured by code to provide the necessary functionality. The processes disclosed herein are independent of any particular computer, network, architecture, environment, or other device and can be implemented by suitable combinations of hardware, software, and / or firmware. For example, various machines can be used with programs written according to the teachings of the embodiments, or it may be more convenient to build dedicated devices or systems to perform the required methods and techniques.
[0139] The aspects of the methods and systems described herein, such as logic, can be implemented as functionalities programmed into any of a variety of circuit systems, including programmable logic devices (“PLDs”), such as field-programmable gate arrays (“FPGAs”), programmable array logic (“PAL”) devices, electrically programmable logic and memory devices, and standard cell-based devices, as well as application-specific integrated circuits (ASICs). Some other possibilities for implementing aspects include memory devices, microcontrollers with memory (such as 5PROMs), embedded microprocessors, firmware, software, etc. Furthermore, aspects can be embodied in microprocessors with software-based circuit emulation, discrete logic (sequential and combinational), custom devices, fuzzy (neural) logic, quantum devices, and any hybrid of the above device types. The underlying device technologies can be provided in various component types, such as metal-oxide-semiconductor field-effect transistor (“MOSFET”) technologies, complementary metal-oxide-semiconductor (“CMOS”) technologies, bipolar technologies such as emitter-coupled logic (“ECL”), polymer technologies (e.g., silicon conjugated polymers and metal conjugated polymer-metal structures), hybrid analog and digital, etc.
[0140] It should also be noted that the various logics and / or functions disclosed herein may be implemented, in terms of behavior, register transfers, logical components, and / or other characteristics, using hardware, firmware, and / or as any number of combinations of data and / or instructions embodied in various machine-readable or computer-readable media. Such computer-readable media that may embody this formatted data and / or instructions include, but are not limited to, various forms of non-volatile storage media (e.g., optical, magnetic, or semiconductor storage media) and carrier waves that can be used to transmit such formatted data and / or instructions via wireless, optical, or wired signaling media or any combination thereof. Examples of transmitting such formatted data and / or instructions via carrier waves include, but are not limited to, transmissions (uploads, downloads, emails, etc.) over the Internet and / or other computer networks via one or more data transmission protocols (e.g., HTTP, FTP, SMTP, etc.).
[0141] Unless the context explicitly requires it, throughout the specification and claims, the words “comprise”, “comprising,” etc., should be interpreted as encompassing, not exclusive or exhaustive; that is, “including but not limited to.” The use of singular or plural terms also includes both singular and plural forms, respectively. Furthermore, the terms “this article,” “in the following,” “above,” “below,” and similar terms refer to the entire application and not any particular part thereof. When the word “or” is used to refer to a list of two or more items, the word encompasses all of the following interpretations: any item in the list, all items in the list, and any combination of items in the list.
[0142] Although certain currently preferred embodiments have been specifically described herein, it will be apparent to those skilled in the art to which this specification pertains that variations and modifications can be made to the various embodiments shown and described herein without departing from the spirit and scope of the embodiments. Therefore, the embodiments are intended to be limited to the extent required by applicable legal rules.
[0143] This embodiment can be embodied in the form of methods and apparatus for practicing those methods. This embodiment can also be embodied in the form of program code embodied in a tangible medium such as a floppy disk, CD-ROM, hard disk, or any other machine-readable storage medium, wherein when the program code is loaded into and executed by a machine such as a computer, the machine becomes an apparatus for practicing the embodiment. This embodiment can also be in the form of program code, whether stored in a storage medium, loaded into a machine and / or executed by a machine, or transmitted via some transmission medium (such as via wires or cables, through optical fibers, or via electromagnetic radiation), wherein when the program code is loaded into and executed by a machine (such as a computer), the machine becomes an apparatus for practicing the embodiment. When implemented on a processor, the program code segments are combined with the processor to provide a unique apparatus similar to the operation of a specific logic circuit.
[0144] Software is stored in a machine-readable medium, which can take many forms, including but not limited to tangible storage media, carrier media, or physical transmission media. Non-volatile storage media include, for example, optical discs or disks, any storage device such as any (one or more) computers. Volatile storage media include dynamic memory, such as the main memory of a computer platform. Tangible transmission media include coaxial cables; copper wires and optical fibers, including the wires that form buses within a computer system. Carrier transmission media can take the form of electrical or electromagnetic signals, or sound or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Therefore, common forms of computer-readable media include, for example: disks (e.g., hard disks, floppy disks, retractable disks) or any other magnetic media, CD-ROMs, DVDs or DVD-ROMs, any other optical media, any other physical storage media, RAM, PROMs and EPROMs, FLASH-EPROMs, any other memory chips, carriers for transmitting data or instructions, cables or links for transmitting such carriers, or any other medium from which a computer can read program code and / or data. Many of these forms of computer-readable media may involve passing one or more sequences of one or more instructions to a processor for execution.
[0145] For illustrative purposes, the foregoing description has been illustrated with reference to specific embodiments. However, the illustrative discussion above is not intended to be exhaustive or to limit the embodiments to the precise forms disclosed. Many modifications and variations are possible in light of the teachings above. The embodiments were chosen and described in order to best explain the principles of the embodiments and their practical application, thereby enabling others skilled in the art to best utilize the various embodiments with various modifications suitable for the intended particular use. Therefore, the scope of the invention should be determined only by the appended claims.
Claims
1. A method for identifying gemstones, the method comprising: A set of measurements of the gemstone, including measurements of the gemstone's vertices, edges, and / or facets; A subset of the measured values is grouped into multiple feature sets, each of which defines a feature of the gemstone; as well as One or more matching gem records in a database are identified by comparing the features of the gem with one or more gem records stored in the database, each of the gem records including a plurality of recorded features representing a set of recorded features consisting of one or more measurements, and wherein comparing the features of the gem with the one or more gem records includes comparing each of the features of the gem with at least one of the recorded features in the database to identify a plurality of matching features.
2. The method according to claim 1, wherein: Each of the recorded features in the database includes a set of recorded features stored in the database, each of the recorded feature sets being associated with at least one of the gemstone records, and each of at least some of the recorded feature sets being associated with multiple gemstone records in the database; and Each gem record in the database has a corresponding control number stored in the database; and also includes: At least some of the matched gem records are scored based on the similarity between the matched gem records and the gems to generate a similarity score; as well as Based on the similarity score, the list is populated with the control number of at least some of the plurality of gem records.
3. The method according to claim 1 or 2, wherein the step of obtaining the measurement value of the gemstone comprises: For each of the multiple pairs of adjacent facets of the gemstone, obtain the angle between the adjacent facets; as well as For each of the multiple pairs of adjacent vertices of the gemstone, obtain the distance between the adjacent vertices.
4. The method according to any one of the preceding claims, wherein the step of obtaining the measurement value of the gemstone includes obtaining the measurement value of the relative or absolute position or angular relationship between the vertices, edges and / or facets of the gemstone.
5. The method according to any one of the preceding claims, wherein the features of the gemstone exclude a set of features having side length measurements below a predetermined minimum length threshold or angle measurements within a predetermined coplanar threshold.
6. The method according to any one of the preceding claims, wherein none of the features includes a distance measurement or angle measurement of any portion of the girdle of the gemstone.
7. The method according to any one of the preceding claims, wherein each of at least some of the feature set includes the length of the first edge of the edge and the angle between adjacent facets that meet along the first edge of the edge.
8. The method of claim 7, wherein the subset of measurements constituting each of the feature set does not contain measurements of an edge or facet of the gemstone that is not adjacent to at least one other edge or facet, wherein at least one measurement of the at least one other edge or facet is included in the subset.
9. The method according to any one of the preceding claims, wherein none of the recorded feature sets in the database includes more than six measurements.
10. The method according to any one of the preceding claims, wherein each of the recorded feature sets includes a predetermined number of measurements, and wherein the step of grouping a subset of the measurements of the gemstone into a feature set includes grouping a plurality of such measurements corresponding to the predetermined number of measurements of at least one of the recorded feature sets.
11. The method of claim 10, wherein the predetermined number of measurements for each of the recorded feature sets does not exceed six measurements.
12. The method according to any one of the preceding claims, wherein each feature includes one or more values specifying a measurement of the feature set corresponding to the feature.
13. The method according to any one of the preceding claims, wherein each of the features is part of a feature classification method that classifies each feature according to feature type.
14. The method according to any one of the preceding claims, wherein identifying the one or more matching gemstone records further comprises defining a metric for determining which of the features recorded in the database are within a threshold similarity to each of the features of the gemstone.
15. The method of claim 14, wherein the metric comprises either a Manhattan metric or an Euclidean metric, the metric being prescaled such that, in coordinate space, the distance between one of the feature sets and the corresponding recorded feature set is below a threshold.
16. The method of claim 2, further comprising: For each control number populated in the list, a label is assigned, the label indicating whether the corresponding gem record is predicted to be in the matching gem record based on the calculated similarity score; as well as This will cause the list to be displayed with the stated labels.
17. The method of claim 2 or 16, wherein the similarity score is based on the number of matched features relative to the total number of recorded features in the corresponding gem record.
18. The method according to any one of claims 2, 16, or 17, further comprising: For each gem record, a relative score is generated based on the similarity scores of multiple gem records in the database.
19. The method according to any one of the preceding claims, wherein the set of measurements of the gemstone is obtained from one or more images of the gemstone, wherein the one or more images of the gemstone are captured by rotating the gemstone on a stage and capturing the one or more images of the gemstone with the digital camera as the gemstone rotates relative to the stage.
20. The method according to any one of the preceding claims, wherein the set of measurements is derived from one or more pixelated images of the gemstone, comprises the following steps: Detect multiple edges and / or vertices in the pixelated image of the gemstone; A 3D model of the gemstone is generated using the detected edges and / or vertices; as well as From the generated 3D model, derive the distances between vertices and the angles between facets.
21. A non-transitory computer-readable medium having computer-executable instructions thereon, the computer-executable instructions being configured to instruct a processor to perform a series of steps, the series of steps including: A set of measurements of the gemstone, including measurements of the gemstone's vertices, edges, and / or facets; A subset of the measured values is grouped into multiple feature sets, each of which defines a feature of the gemstone; as well as One or more matching gem records in a database are identified by comparing the features of the gem with one or more gem records stored in the database, each of the gem records including a plurality of recorded features representing a set of recorded features consisting of one or more measurements, and wherein comparing the features of the gem with the one or more gem records includes comparing each of the features of the gem with at least one of the recorded features in the database to identify a plurality of matching features.
22. The non-transitory computer-readable medium of claim 21, wherein... Each of the recorded features in the database includes a set of recorded features stored in the database, each of the recorded feature sets being associated with at least one of the gemstone records, and each of at least some of the recorded feature sets being associated with multiple gemstone records in the database; and Each gem record in the database has a corresponding control number stored in the database; and The steps to identify matching gem records include: For each of the features of the gemstone, identify all recorded feature sets in the database that match the feature set of the feature within a threshold similarity, and A similarity score is calculated for each of the plurality of gem records based on the number of features of the gem that match the recorded features of the gem record; and The instructions also instruct the processor to populate the list with the control numbers of at least some of the plurality of gem records based on the similarity score.
23. A system for analyzing gemstones, the system comprising: A computer having a processor and memory, the computer being configured to: Obtain multiple images of the gem; A set of measurements is derived from the image of the gemstone, including measurements of the gemstone's vertices, edges, and / or facets; A subset of the measured values is grouped into multiple feature sets, each of which defines a feature of the gemstone; as well as One or more matching gem records in a database are identified by comparing the features of the gem with one or more gem records stored in the database, each of the gem records including a plurality of recorded features representing a set of recorded features consisting of one or more measurements, and wherein comparing the features of the gem with the one or more gem records includes comparing each of the features of the gem with at least one of the recorded features in the database to identify a plurality of matching features.
24. The system of claim 23, further comprising: A digital camera configured to capture the image of the gemstone.
25. The system according to claim 23 or 24, wherein: Each of the recorded features in the database includes a set of recorded features stored in the database, each of the recorded feature sets being associated with at least one of the gemstone records, and each of at least some of the recorded feature sets being associated with multiple gemstone records in the database; Each gem record in the database has a corresponding control number stored in the database; and The computer is also configured to populate a list with the control numbers of at least some of the plurality of gem records based on the similarity score.
Citation Information
Patent Citations
System and method of unique identifying a gemstone
US20180082116A1