Pointnet(part_seg)部件分割网络代码解析:test.py(三)

本文详细介绍PointNet部件分割网络的测试流程,包括测试集准备、模型加载及测试代码解析。通过对PointNet网络进行部件级别的精确分割,展示了如何利用深度学习进行三维点云数据的处理。

论文地址:PointNet网络
代码地址:https://github.com/charlesq34/pointnet
windows10环境配置可参考这篇文章:windows下运行pointnet(全)

网络图示:

在这里插入图片描述

一、训练模型

1)下载测试集
数据下载:PartAnnotation(注意该链接中对应的数据集有两部分,因此下载时两部分务必都要下载)
存放位置:…/part_seg/PartAnnotation。
HDF5文件解压放在pointnet-master/part_seg/hdf5_data。
2)训练模型
可参考Pointnet(part_seg)部件分割网络代码解析:train.py(二)文章,里面有代码详解,以及训练模型的获取。
3)测试集数据解析
在这里插入图片描述

二、test.py代码详解

1、选择第80个训练模型进行测试在这里插入图片描述

parser = argparse.ArgumentParser()
parser.add_argument('--model_path', default='train_results/trained_models/epoch_80.ckpt', help='Model checkpoint path')
FLAGS = parser.parse_args()

2、setting

parser = argparse.ArgumentParser()
# 自行定义命令参数获取 model_path ,保存的训练模型
parser.add_argument('--model_path', default='train_results/trained_models/epoch_80.ckpt', help='Model checkpoint path')
FLAGS = parser.parse_args()


# DEFAULT SETTINGS
pretrained_model_path = FLAGS.model_path # 获取保存好的模型
hdf5_data_dir = os.path.join(BASE_DIR, './hdf5_data') # 获取h5数据集
ply_data_dir = os.path.join(BASE_DIR, './PartAnnotation') # 导入测试数据集
gpu_to_use = 0
output_dir = os.path.join(BASE_DIR, './test_results')
output_verbose = True   # If true, output all color-coded part segmentation obj files

# MAIN SCRIPT
point_num = 3000            # the max number of points in the all testing data shapes
batch_size = 1

test_file_list = os.path.join(BASE_DIR, 'testing_ply_file_list.txt')
""" testing_ply_file_list.txt为从PartAnnotation数据集中采样出的2874个数据,分别包括
    点云数据 / 分割数据 / 实例类别编号"""

oid2cpid = json.load(open(os.path.join(hdf5_data_dir, 'overallid_to_catid_partid.json'), 'r'))
"""oid2cpid读取物体零件编号
   [["02691156", 1], ["02691156", 2],....]"""

object2setofoid = {
   
   } # oid对象集
for idx in range(len(oid2cpid)):
    objid, pid = oid2cpid[idx] # oid对象标识符  pid编号
    if not objid in object2setofoid.keys():
        object2setofoid[objid] = []
    object2setofoid[objid].append(idx) # 创建一个字典,将每个物体编号按顺序0-49索引排序
'''{‘02691156’:[0,1,2,3],'02247898':[4,5],....}'''

''' 获取16类物体和编号的文件,并划分到两个列表中'''
all_obj_cat_file = os.path.join(hdf5_data_dir, 'all_object_categories.txt')
fin = open(all_obj_cat_file
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值