METHOD FOR INDEXING ATOMIC PATTERNS OF A CRYSTALLINE STRUCTURE AND COMPUTER PROGRAM PRODUCT
Patent Information
- Application Number
- DE602022009325
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-11-23
- Filing Date
- 2022-11-23
- Publication Date
- 2025-01-01
- Estimated Expiration
- 2042-11-23
AI Technical Summary
Current methods for indexing atomic patterns in crystal structures are complex, computationally expensive, and prone to errors due to their reliance on geometric phase analysis and nearest neighbor search algorithms, which fail to accurately handle curved directions and irregularities in crystal structures.
A method involving image processing to acquire and triangulate points representing atomic patterns, determining direction vectors through statistical analysis of triangle properties, and iteratively indexing points using a Delaunay triangulation algorithm and geometric transformation to align with orthonormal vectors, reducing algorithmic cost and improving accuracy.
This approach simplifies the indexing process, reduces computational complexity, and enhances accuracy by using a linear algorithmic cost and effectively handling irregularities, providing precise indexing of atomic patterns in crystal structures.
Description
[0001] The present invention relates to a method for indexing the atomic patterns of a crystal structure. The field of the invention is that of microscopy image processing and the invention is similar to an image processing method.
[0002] For example, in order to study the stresses in a crystal structure from images of this structure, precise spatial location of the atoms relative to each other must be achieved by means of a plurality of indices, each index relating to one of the main crystallographic directions of the crystal structure. Such location is called "indexing" of the crystal. An example of an indexing algorithm is given in the document "Integration, scaling, space-group assignment and post-refinement", KABSCH W., Acta Ccrystallographica Section D, vol. 66, no. 2, February 1, 2010 (2010-02-01), pages 133-144.
[0003] An algorithm is also known for performing automatic indexing of atoms in a crystal structure. For example, for a two-dimensional structure, the direction vectors A and B characterizing the main crystallographic directions of the material to be studied are first determined by a geometric phase analysis procedure - GPA (Geometrical phase analysis), according to which the image resulting from the illumination of a sample is transposed from physical space to reciprocal space (spatial Fourier transform) in order to identify the vectors A and B. Once the vectors A and B are known, by returning to the physical space, the indexing is performed following a procedure for minimizing the distance between the real position of an atom to be indexed and that of a node of a regular mesh constructed from the vectors A and B.The indices [i, j] according to the principal directions defined by the vectors A and B of the atom are then those of the nearest node.
[0004] This state-of-the-art method is based on a GPA procedure which remains complex to implement and which does not necessarily give good results for all types of crystal structure.
[0005] But most importantly, it is ultimately a nearest neighbor search algorithm which is an n 2 < algorithm, where n denotes the number of atoms to index. It is therefore a high algorithmic cost.
[0006] Finally, comparing the actual structure to a regular mesh can lead to indexing errors, for example when a main direction of the material is curved under the effect of deformation or when the crystal has irregularities.
[0007] The purpose of the present invention is to solve these problems.
[0008] For this purpose, the invention relates to a method for indexing the atomic patterns of a crystal structure, characterized in that the method comprises the steps of: acquiring an image of the crystal structure, said image representing a plurality of atomic patterns; processing the acquired image to obtain a set of points, each point of the set of points being associated with an atomic pattern of the acquired image and each point of the set of points being located in a reference frame; applying a triangulation algorithm to the set of points to obtain a triangular mesh, each vertex of a triangle of the triangular mesh being a point of the set of points, a particular point of the set of points being connected to a point said to be neighboring said particular point by a side of a triangle;determining the direction vectors A and B of the crystal structure from the properties of the triangles of the triangular mesh, a direction vector defining a principal direction of the crystal structure, an index being associated with each principal direction;and indexing each point of the set of points, by successive iterations from a point selected as the origin point and whose indices according to each of the principal directions are zero, by selecting a point indexed at the previous iteration as the central point, by checking whether a point neighboring said central point corresponds to a translation of the central point according to a translation vector equal to one of the direction vectors, respectively to one of their opposites, and, if so, incrementing, respectively decrementing, the index of the central point according to the principal direction associated with the translation vector to index said neighboring point from the indices of the central point.;
[0009] According to particular embodiments, the method comprises one or more of the following characteristics, taken in isolation or in all technically possible combinations: The triangulation algorithm is a Delaunay triangulation algorithm. The step of determining the direction vectors of the crystal structure from the properties of the triangles of the triangular mesh involves the application of a statistical treatment on the angles and lengths of the triangles of the triangular mesh. The statistical treatment involves an estimation of the angles of the direction vectors from a histogram of the angles on each side of the triangles of the triangular mesh, then an estimation of the length of each direction vector from a histogram of the lengths on each side of the triangles of the triangular mesh whose angles are close to the angle estimated for the direction vector considered.the method comprises a step of applying, to the set of points, a geometric transformation making it possible to move from a reference frame defined by the direction vectors A and B of the crystal structure to a reference frame defined by orthonormal vectors I and J, in order to obtain a set of transformed points. a point of a set of points is characterized by a unique identifier, a plurality of spatial coordinates, and, at the end of the implementation of the indexing method, a plurality of indices. all the points of the set of points belong to the same XY plane, the crystal structure having two main directions, that is to say two direction vectors.the step of processing the acquired image is carried out by applying a template matching process to obtain a correlation value between the acquired image and a thumbnail representative of an atomic pattern for different relative positions of the thumbnail on the acquired image, each local maximum of the correlation value corresponding to a point of the set of points. the acquisition of the image is carried out by transmission electron microscopy, such as for example the HAADF-STEM, STEM, EDS, EDX, EELS techniques, or by scanning tunneling microscopy - STM.
[0010] The invention also relates to a computer program product comprising software instructions which, when executed by a computer, implement the preceding method.
[0011] The invention and its advantages will be better understood upon reading the following detailed description of a particular embodiment, given solely as a non-limiting example, this description being made with reference to the appended drawings in which: There figure 1 is an image of a sample of a crystal structure on which a “Template Matching” procedure is applied to obtain a point file; The figure 2 is a representation in a frame of the image, of a correlation function, of a point file and of a triangular mesh corresponding to the image of the figure 1 ; There figure 3 is a histogram of the angles of the triangles of the triangular mesh of the figure 2 allowing the determination of the angles of the direction vectors of the crystal structure; The figure 4 is a representation in an orthonormal frame of reference of the point file of the figure 2 once indexed; The figure 5 is a block representation of an embodiment of the indexing method according to the invention; and, The figure 6 is a block representation of an embodiment of the indexing procedure of the method of the figure 5 .
[0012] In the present description, for reasons of clarity of the presentation, the case of a two-dimensional - 2D - crystal structure is more particularly presented, but the invention applies to the case of a three-dimensional - 3D - crystal structure.
[0013] An atomic pattern is an elementary pattern repeated in space, this elementary pattern comprising one or more atoms. When it comprises several atoms, these can be associated to form a molecule, or can be independent. This is for example the case of a metal atom trapped in the center of a crystal lattice defined by several atoms. The atomic pattern that it is then relevant to index is the set formed by this crystal lattice and this metal atom.
[0014] A preferred embodiment of the indexing method is shown in figure 5 .
[0015] The indexing method according to the invention uses a set of points, each point of which corresponds to an atomic pattern of the crystal structure to be studied. In the following, the preparatory steps for obtaining such a set of points are presented. These preparatory steps are part of the indexing method according to the invention.
[0016] Thus, the indexing method 100 begins with a preparatory step 102, during which a technician prepares a sample of a crystalline material to be studied. The sample is prepared so that its surface corresponds to a characteristic cutting plane of the crystal.
[0017] In this section plane, defined by the two directions X and Y, the atomic pattern of the crystal is repeated along two preferred directions, called principal directions, of the crystal. Each principal direction is associated with an index. It is according to each of these principal directions that a pair of indices, [i,j], should be assigned to an atomic pattern.
[0018] The prepared sample is then imaged to obtain an image of the crystalline material in the XY cutting plane.
[0019] The indexing method 100 continues with a step 104 of acquiring an image of the surface of the sample to be studied. Preferably, this step uses an imaging technique such as high-angle annular dark-field imaging - Scanning Transmission Electron Microscopy - HAADF-STEM.
[0020] There Figure 1 illustrates an image 10 of a portion of a crystal sample obtained by the HAADF-STEM technique.
[0021] Alternatively, other imaging techniques are possible to obtain an image of the crystalline material, such as for example: transmission electron microscopy - TEM ("Transmission Electron Microscopy"), in particular scanning transmission electron microscopy - STEM ("Scanning Transmission Electron Microscopy"), of which the HAADF-STEM technique is a variation, possibly associated with an energy dispersive X-ray spectroscopy technique - EDS or EDX ("Energy Dispersive X-Ray Spectroscopy"), or an electron energy loss spectroscopy technique - EELS ("electron energy loss spectroscopy"); scanning tunneling microscopy - STM ("scanning tunneling microscope").
[0022] The method 100 then comprises a step 108 consisting of processing the image obtained in order to associate a localized point with each atomic pattern visible on the image. All of the points obtained are advantageously stored in a point file.
[0023] For example, a template matching process is implemented. Template matching is a classic technique in digital image processing that allows you to find parts of an image that resemble a template thumbnail.
[0024] To process image 10, we define a thumbnail 12. It has a center C.
[0025] We then perform a convolution operation of image 10 with thumbnail 12 while its center C is placed at the point with coordinates (x, y) of image 10. By repeating the convolution for different points of image 10, we obtain a measure of the correlation, Corr(x,y), of image 10 and thumbnail 12 for each point (x, y) in the XY plane. This correlation measure is represented on the figure 2 in grayscale.
[0026] Then, we search for the different local maxima of the correlation measure Corr(x,y). Each time a local maximum is identified, a new point is entered into the point file.
[0027] This point receives a unique identifier. It is located with the position coordinates (x, y) of the corresponding local maximum.
[0028] We thus obtain a point file which contains N points P n , identified by the integer n.
[0029] For example, on the figure 2 , the first point P 1 of the file is located at position x 1 along the X direction and y, along the Y direction.
[0030] It should be noted that the position of a point is given in a reference frame of the image.
[0031] Then, in a step 110, a triangulation algorithm is applied to all the points in the point file, to obtain a triangular mesh.
[0032] A triangulation of a set of points in a plane allows this plane to be covered with a plurality of adjacent triangles, so that all the points of the set of points constitute the vertices of these triangles. A second point is said to be neighboring a first point, when these two points are connected by the side of a triangle.
[0033] Advantageously, a Delaunay triangulation is applied which has the consequence of avoiding having triangles with angles that are too open (i.e. triangles that are too flattened).
[0034] So, as illustrated on the figure 1 , the points P 4 , P 5 , and P 7 constitute the vertices of a triangle T 1 and the points P 5 , P 6 , and P 7 constitute the vertices of a triangle T 2 .
[0035] Alternatively, other types of triangulation can be implemented.
[0036] In the next step, 120, the triangular mesh is analyzed by applying a suitable statistical treatment.
[0037] For example, as shown in the figure 3 , a histogram of the angles α that each side of a triangle forms with the X direction is constructed. Then, a Gaussian function is fitted to each peak of this histogram that exceeds a predetermined threshold S.
[0038] On the figure 3 , thresholding makes it possible to avoid considering the accumulation of angles around the value d, which is due to triangles with an open angle.
[0039] The value of the maximum of each Gaussian gives an angle value. For example, on the figure 3 we obtain three values angles a (approximately 35°), b (approximately 90°) and c (approximately 125°).
[0040] Among these angles, we isolate the two angles a and b of the two direction vectors A and B of the crystalline material (the angle c being only the complementary angle at 180° of the angles a and b).
[0041] We then produce a histogram of the lengths of the sides of the triangles of the mesh that make an angle close to angle a with the X direction. Among the most probable lengths, we isolate the length mod(A) of the direction vector A. Similarly, we then produce a histogram of the lengths of the sides of the triangles of the mesh that make an angle close to angle b with the X direction. Among the most probable lengths, we isolate the length mod(B) of the direction vector B of the crystalline material.
[0042] Alternatively, all triangles in the triangulation are analyzed to construct a histogram of the angles of the sides of the triangles. Then, a maxima detection algorithm is applied to the histogram to detect the list of angles associated with peaks (advantageously, a distance of at least 10° is imposed between two consecutive peaks). Taking into account the constraints on the angles of a triangle, two angle values are retrieved from this list of angles (here, for example, 88° and 33°). Then, two populations of sides are defined, the first grouping the sides making an angle of 88°±10° with the reference direction X and the second grouping the sides making an angle of 33°±10° with the reference direction X (the tolerance on the value of an angle being adjustable). For each of these two populations, successively and independently, an average angle and an average length of the sides are then calculated.Which gives, for the first population, the angle and to the length of the direction vector A (a = 89.09 and mod(A) = 79.85) and, for the second population, the angle and to the length of the direction vector B (b = 31.49 and mod(B) = 40.80).
[0043] Thus, at the end of step 120, a first direction vector A and a second direction vector B are obtained. They each carry information on the orientation of the crystal in the XY plane, and on the pitch between two patterns of the consecutive crystal when moving either in the first main direction defined by the first vector A, or in the second main direction defined by the second vector B.
[0044] Advantageously, to simplify the indexing step 140 to follow, a step 130 is implemented consisting of applying a geometric transformation to the point file to move from the XY plane in which the crystal is oriented according to the direction vectors A and B into an X'Y' plane in which the crystal is oriented according to orthonormal vectors I and J.
[0045] It is therefore a geometric transformation of the plane allowing us to move from the basis of vectors A and B to the basis of vectors I and J.
[0046] Applying this geometric transformation to the point file produces a transformed point file in which the position of each point is now expressed with coordinates along the X' and Y' directions.
[0047] The transformed file is shown on the figure 4 . The points are substantially aligned with the X' and Y' directions. The points are substantially spaced from each other in the X' direction or in the Y' direction by a unit step.
[0048] Step 140 is the actual indexing step of the points in the file, preferably transformed.
[0049] A preferred embodiment of this indexing step is illustrated in the figure 6 .
[0050] Step 142 is an initialization step, in particular of a list of points indexed at iteration m, L m . For m=0, L 0 is initialized with any point of the transformed file, this point constituting the origin point P 0 indexed by the pair of indices [0, 0]. The point P 0 is represented on the figure 4 .
[0051] At step 143, for the current iteration m, we select the list L m-1 of points indexed at the previous iteration m-1. At the first iteration, the list L 0 only includes the origin point P 0 .
[0052] In step 144, a point P l from the list L m-1 is selected as the central point P c (l is an integer between 1 and L, where l is the total number of points in the list L m-1 ). The central point has been indexed by the pair of indices [i, j].
[0053] In step 146, the list V l of neighboring points P k of the central point P c is determined (k is an integer between 1 and K, where K is the total number of neighboring points). A neighboring point of the central point is a point connected to the central point by the side of a triangle of the triangular mesh.
[0054] For each neighboring point P k of the list V l , we check at step 148 whether this point has not already been indexed.
[0055] If so, the procedure proceeds to step 154.
[0056] If not, step 150 allows the following relevant quantities to be calculated: mod(P c P k ), which is the distance between points P c and P k evaluated in the X'Y' plane; S1 = P c P k .I / mod(P c P k ), which depends on the angle between vector P c P k and vector I; and, S2 = P c P k .J / mod(P c P k ), which depends on the angle between vector P c P k and vector J.
[0057] Then, in step 152, we determine whether the vector P c P k is close: of the vector I, that is, if S1 is close to 1, and then we increment the index i of the central point P c by one unit, and the neighboring point P k is indexed by [i+1, j]; or of the vector -I, that is, if S1 is close to -1, and then we decrement the index i of the central point P c by one unit, and the neighboring point P k is indexed by [i-1, j]; or of the vector J, that is, if S2 is close to 1, and then we increment the index j of the central point P c by one unit, and the neighboring point P k is indexed by [i, j+1]; or of the vector -J, that is, if S2 is close to -1, and then we decrement the index j of the central point P c by one unit, and the neighboring point P k is indexed by [i, j-1].
[0058] If the vector P c P k is not close to any of the first and second direction vectors or their opposites, the neighboring point P k is not indexed.
[0059] The proximity criterion is for example a percentage Δ adjustable on the value of S1 or S2.
[0060] Alternatively, other proximity criteria can be used such as finding whether the neighboring point is inside a circle of predefined diameter around a point resulting from a translation along vector I, vector -I, vector J, or vector -J of the central point P c .
[0061] If the neighboring point P k receives an indexing, it is recorded in the list L m of points indexed at iteration m.
[0062] In step 154, the next neighboring point in the list of neighboring points of the central point P c is selected to carry out steps 148 to 152, unless all the neighboring points in this list have been reviewed, in which case the procedure proceeds to step 156.
[0063] In step 156, another point from the list L m-1 of points indexed in the previous iteration is selected as the new center point for application of steps 146 to 154, unless all the points in the list L m-1 have been reviewed, in which case the procedure proceeds to step 158.
[0064] In step 158, the integer m is incremented by one unit and it is checked whether the list of points indexed in the previous step L m-1 is empty. If not, the process is iterated from step 143.
[0065] If not, we consider that all N points in the point file have been indexed.
[0066] The automatic indexing step is therefore complete.
[0067] Alternatively, the previous algorithm is simplified by implementing nested function calls, which make it possible to substitute steps 143 and 144 and the associated loops, the algorithm exiting by itself when there are no more points to process.
[0068] The indexing step 140 is for example illustrated in the figure 4 for the first iteration, m=1.
[0069] The list of points indexed in the previous iteration, L 0 , contains the only origin point. The origin point is then selected as the center point.
[0070] The list of neighboring points of point P 0 is made up of points P 11 , P 12 , P 13 , P 14 and P 15 actually connected to point PC .
[0071] We consider each of these neighboring points in turn: The point P 11 being substantially aligned with the first direction vector I, it is indexed by the pair [1,0]. The point P 12 forming an angle of approximately 45° with the first direction vector I and the opposite of the second director J, it is not indexed. The point P 13 being substantially aligned with the opposite of the second director vector J, it is indexed by the pair [0,-1]. The point P 14 being substantially aligned with the opposite of the first director vector Î, it is indexed by the pair [-1,0]. The point P 15 forming an angle of approximately 45° with the opposite of the first direction vector I, and the second director J, it is not indexed.
[0072] Thus, at iteration m=1, points P 11 , P 13 and P 14 have been indexed.
[0073] The procedure then moves on to a second iteration m=2. The points P 11 , P 13 and P 14 are successively selected as the central point.
[0074] The search for the neighbors of point P 11 considered as the central point allows access to point P 21 to index it, but also to point P 12 (rejected during the first iteration) to index it...
[0075] Step by step, each point of the plan is indexed.
[0076] At the end of the implementation of the method, a table of indexed points is obtained, in which each point has, in addition to an identifier and a position in the XY plane, a pair of identifiers. This table is advantageously stored in a file of indexed points.
[0077] The procedure just presented can advantageously be applied to images of the same sample when it is, for example, subjected to different mechanical constraints. The different indexed point files obtained can then be compared and the position of a correctly indexed point of the crystalline medium can be followed from one file to another. Variantes
[0078] If geometric transformation step 130 is omitted, the indexing step applies but considering vectors A, B instead of vectors I, J.
[0079] The present indexing method applies to a point file not of two dimensions, but of three dimensions. Such a file can be obtained by stacking in a third direction two-dimensional point files. Such a file can be obtained by imaging techniques allowing to observe not only the cutting plane forming the surface of the analyzed sample, but also the planes located behind the cutting plane, on a certain depth.
[0080] The present method can be implemented by a computer suitably programmed by a suitable computer program, at least to carry out the steps once the image of the crystal structure has been acquired. Avantages
[0081] The present method constitutes a simple approach allowing a fast indexing. The connectivity between nodes allows to reduce the search space of neighboring atoms drastically, having a linear algorithmic cost in n, of the order of -6n in 2D.
[0082] In addition to its reduced computational cost, this approach manages to correctly handle mesh irregularities, particularly at the edge of the sample. The absence of an atom in the lattice is not detrimental to good indexing with this approach.
[0083] This method does not require a priori knowledge of the crystallographic structure.
[0084] It avoids having to go into Fourier space to determine the mesh parameters before carrying out the actual indexing.
Claims
1. A method of indexing (100) atomic units of a crystal structure, characterized in that the method comprises the steps of: - acquiring (104) an image (10) of the crystal structure, the image representing a plurality of atomic patterns; - processing (108) the acquired image to obtain a set of points, each point (Pn) of the set of points being associated with an atomic pattern of the acquired image and each point of the set of points being located in a reference coordinate frame; - application (110) of a triangulation algorithm to the set of points to obtain a triangular mesh, each vertex of a triangle (Tn) of the triangular mesh being a point of the set of points, a particular point of the set of points being linked to a so-called adjacent point by one side of a triangle; - determination of the direction vectors (A, B) of the crystal structure from the properties of the triangles of the triangular mesh, a direction vector defining a main direction of the crystal structure, an index being associated with each main direction; and, - indexing (140) of each point of the set of points, by successive iterations starting from a point selected as the origin point (P0) and whose indices along each of the main directions are zero, by selecting a point indexed at the preceding iteration as the central point (Pc), by checking whether a neighbor point (Pk) of said central point corresponds to a translation of the central point according to a translation vector equal to one of the direction vectors, or one of the opposite vectors thereof, and, if so, incrementing or decrementing, respectively, the index of the central point along the main direction associated with the translation vector so as to index said neighbor point from the indices of the central point.
2. The method according to claim 1, wherein the triangulation algorithm is a Delaunay triangulation algorithm.
3. The method according to claim 1 or claim 2, wherein the step of determining the direction vectors of the crystal structure from the properties of the triangles of the triangular mesh includes the application of a statistical processing to the angles and the lengths of the triangles of the triangular mesh.
4. The method according to claim 3, wherein the statistical processing includes an estimation of the angles of the direction vectors from a histogram of the angles on each side of the triangles of the triangular mesh, then an estimation of the length of each direction vector from a histogram of the lengths of each side of the triangles of the triangular mesh the angles of which are close to the estimated angle for the direction vector considered.
5. The method according to one of the preceding claims, further including a step (130) of applying, on the set of points, a geometrical transformation for changing from a coordinate frame defined by the direction vectors (A, B) of the crystal structure to a coordinate frame defined by orthonormal vectors (I,J), in order to obtain a set of transformed points.
6. The method according to any of the preceding claims, wherein a point of a set of points is characterized by a unique identifier, a plurality of spatial coordinates, and, after the implementation of the indexing method, a plurality of indices.
7. The method according to any of the preceding claims, in which all the points of the set of points belong to the same plane (XY), the crystal structure having two main directions, i.e. two direction vectors.
8. The indexing method according to any one of the preceding claims, characterized in that the step consisting in processing the acquired image is carried out by applying a pattern matching processing for obtaining a correlation value between the acquired image (10) and a thumbnail (12) representative of an atomic pattern for different relative positions of the thumbnail on the acquired image, each local maximum of the correlation value corresponding to a point of the set of points.
9. The indexing method according to any of the preceding claims, wherein the acquisition of the image (10) is carried out by transmission electron microscopy (HAADF, STEM, EDS, EDX, EELS) or by scanning tunneling microscopy (STM).
10. A computer program product including software instructions which, when executed by a computer provided with means of acquisition of a crystal structure, implement an indexing method according to any of the preceding claims.
