📄 readme
字号:
This is a README file for Iterative Closest Reciprocal Point algorithm packageWhat is ICRP?ICRP is a new algorithm used for 3D point sets matching/registration.The input to this algorithm is a set of 3D points called model and anotherset of 3D points called data. Both sets represent a surface of some 3Dshape. The output of the algorithm is a geometricaltransformation (rotation and translation) that, applied to data, yields the best possible match with model, measured by some kind of error criteria function, for example the sum of squares of the distances between model anddata. It is perfectly concievable that some part of the model have nocorrespondence in data and vice versa. The ICRP algorithm tries to determinethe corresponding points and disregards the rest.AcknowledgementThe implementation of the ICRP comes from the diploma thesis project of Ing. Pavel Kucera at the Faculty of Electrical Engineering, Czech TechnicalUniversity. The algorithm for computing 2D Delaunay triangulation comes fromSteve J. Fortune: A Sweepline Algorithm for Voronoi Diagrams, Algorithmica2, p.153-174 (1987). Principles of the algorithmThe algorithm works iteratively. At each step there is a preliminarycorrespondence between the points of data and model. Then using thequaternions method, roughly equivalent of least square method, it finds theoptimum transformation of data. Finally, new corespondence is calculated by finding the closest member of model for each point of data and viceversa. The key to eliminating not corresponding points is to find the closest pointX from the set P to the point Y from the set Q. Then call Z the closest pointfrom Q to X. If the distance between Y and Z is bigger than a limit, point Ywill be marked as having no correspondence.Shape representations The classical representation of 3D shapes is a set of points. Besides this,ICRP can also make use of a represantion of the shape as a set of triangles.The algorithm than takes into account no longer just isolated points but allthe triangles as a whole. This improves the behaviour of the algorithm,mainly eliminates the need for too high a scanning resolution and prevents thealgorithm from terminating prematurely by finding some local minumum due tothe discrete nature of the point representation. The price to pay is anincreased time of the calculation.Auxiliary programs are provided to construct a triangular representationfrom a set of points treated as vertexes of the triangles. The method is toproject the 3D file into a plane using some randomly chosen vector and thenfind the Delaunay triangulation. Installation and usageUntar the tar-file in a suitable place. Edit the main Makefile and theMakefiles in the subdirectories, should some changes be needed on yoursystem. Edit the register script in the top directory. If you are usingbash shell, all you need to do is to set BASE (the base directory),DATATYPE and MODELTYPE. If not, other changes might be necessary.For the first testing, set DATATYPE=PSET and MODELTYPE=PSET. From the toplevel directory, type make. After everything is correctly build, go to thedata directory and type '../register cuthar2 cuthar1'The registration process should start and after about a minute, depending onthe speed of your computer, you should get the results. As both sets ofpoints come from the same measurement, you should get the identitytransformation: translation: 0 0 0 0 rotation: 1 0 0 0Parameters of the process are sent to the program match, performing theactual matching, through a parameter file match.prm. There is a templatefile template.prm that you can use to set various parameters.Further information can be found in the source code as well as in the thesiswork.Data formats:The vtx files have a simple format - 1 line per point, 3 real numbersrepresenting the x y z coordinates. The tri files describe one triangle per line, giving the indices of thevertex points.Interpreting of the results:The algorithm gives us the translation and rotation. Rotation by angle faround an axis n is described by a vector( cos(f/2) , sin(f/2)nx , sin(f/2)ny , sin(f/2)nz )After rotating the data points, apply the translation simply by adding thegiven vector.Literature:Kucera Pavel, Registrace prostorovych ploch, diploma thesis, FEL CVUTBesl, McKay, A Method for Registration of 3D Shapes, IEEE Transactions on Pattern analysis and Machine Inteligence, Feb 1992Pajdla, Van Gool, matching of 3D curves using semidifferential invariants, 5th conference on computer vision, Cambridge, MA, Jun 95Pajdla Tomas, Reconstruction of Solid Shape, Tech. Rep. K335-1995-100, CVUT, Praha 1995Sabata, Aggarwat, Estimation of Motion from a Pair of Range Images. Computer Vision Graphics and Image Processing, Image Understanding, Oct 95Horn, B.K.P, Closed-form solution of absolute orientation using unit quaternions
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -