同步操作将从 sun_6s/Fast_RNRR 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
This repository includes the source code of the paper "Quasi-Newton Solver for Robust Non-Rigid Registration", (CVPR2020), https://arxiv.org/abs/2004.04322.
Authors: Yuxin Yao, Bailin Deng, Weiwei Xu and Juyong Zhang.
This code is protected under patent. It can be only used for research purposes. If you are interested in business purposes/for-profit use, please contact Juyong Zhang (the corresponding author, email: juyong@ustc.edu.cn).
The code is compiled using CMake and tested on Ubuntu 16.04 (gcc5.4.0) and on Windows with Visual Studio 2015. Follow the following steps to compile the code:
Make sure Eigen and OpenMesh is installed.
Create a build folder 'build' within the root directory of the code
Run cmake to generate the build files inside the build folder, and compile the source code:
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make
Afterwards, there should be an executable Fast_RNRR
generated.
The program is run with four input parameters:
$ Fast_RNRR <srcFile> <tarFile> <outPath> <landmarkFile>
1.<srcFile>
: an input file storing the source mesh;
2.<tarFile>
: an input file storing the target mesh or point cloud;
3.<outPath>
: an output file storing the path of registered source mesh;
4.<landmarkFile>
: an landmark file (nx2 matrix, first column includes the indexes in source file, second column includes the indexes in target file, each row is a pair correspondences separated by space).
<landmarkFile>
can be ignored, our robust non-rigid registration method without landmarks will be used in this case.
This code supports non-rigid registration from a triangle mesh to a mesh or a point cloud.
SHOT
feature and diffusion pruning
, you can also use PCL to precompute initial correspondences if necessary. The old version move to the src_cvpr
folder.regularization term
and rotation term
can be set in paras.alpha
and paras.beta
in main.cpp
respectively. You can increase them to make the model more maintain the original characteristics, and decrease them to make deformed model closer to the target model.paras.distance_threshold
and paras.normal_threshold
in main.cpp
.R=5l
(paras.uni_sample_radio = 5
in main.cpp
) by default. If you want to reduce the number of graph nodes, increase this value, otherwise, reduce it. When the vertices in the source model are not very uniform and the sampling radius is small, some graph nodes are not covered by any mesh vertices, and it will cause the error "Some points cannot be covered under the specified radius, please increase the radius". It can be solved by increasing the sampling radius(paras.uni_sample_radio
). It is worth noting that the input source model must have no isolated points.Please cite the following papers if it helps your research:
@InProceedings{Yao_2020_CVPR,
author = {Yao, Yuxin and Deng, Bailin and Xu, Weiwei and Zhang, Juyong},
title = {Quasi-Newton Solver for Robust Non-Rigid Registration},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2020}
}
This work was supported by the National Natural Science Foundation of China (No. 61672481), and Youth Innovation Promotion Association CAS (No. 2018495).
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。