代码和数据地址见最后
1.数据读取
数据读取需要构建sourse点云数据和经过变换的reference点云数据。其流程为:
- 首先,读取训练集/测试集类别信息,选择数据集的部分类别,可能有些类别不适用于点云配准任务
- 根据不同的数据变换的方式执行数据变换,以clean模式为例,首先,原始点云数据比较多,进行采样,并复制得到sourse和reference
- 对reference进行平移和旋转操作得到变换后的reference点云数据
def get_train_datasets(args: argparse.Namespace):
# 读取训练集/测试集类别信息
train_categories, val_categories = None, None
if args.train_categoryfile:
train_categories = [line.rstrip('\n') for line in open(args.train_categoryfile)]
train_categories.sort()
if args.val_categoryfile:
val_categories = [line.rstrip('\n') for line in open(args.val_categoryfile)]
val_categories.sort()
# 定义一个数据变换顺序,主要为平移和旋转
train_transforms, val_transforms = get_transforms(args.noise_type, args.rot_mag, args.trans_mag,
args.nu