I noticed an inconsistency of the definition of “fitness” between the source code and documentation. Both Python and C++ documentation state that the number of points in the target is the denominator, yet the source code clearly divides by the number of points in the source.
I saw that this was brought up by another user over a year ago as a GitHub issue #1459 (intel-isl/Open3D/issues/1459). Qianyi Zhou (@qianyizh) replied “we should go with implementation”, but I am reposting the question here as requested by @germanros since this inconsistency still exists. I have provided updated links below
- Source code: https://github.com/intel-isl/Open3D/blob/7c62640441e3da18bcbe146723ed83ff544b2fbb/cpp/open3d/pipelines/registration/Registration.cpp#L84
- Open3D Python API documentation: http://www.open3d.org/docs/latest/python_api/open3d.pipelines.registration.RegistrationResult.html#open3d.pipelines.registration.RegistrationResult.fitness
As a new user, I cannot post a third link for C++ documentation, but it also talks about target in the denominator. See cpp/open3d/pipelines/registration/Registration.cpp, line 84