文章目录
2020年第41周学习小结:
本文为10月5日~10月11日的学习小结。
本周学习的主要内容为PointNet分类以及语义分割部分的代码调试。分类以及语义分割的测试部分都涉及到了点云可视化。零件分割以及语义分割使用到的分割模型也是在分类模型上进行修改得到的,后面将会对其进行分析,同时也对调试过程中遇到的一些问题进行了总结。论文部分看了一下文章末尾的补充材料,文中设计了不同实验来表现模型的性能,这些实验也解释了为何PointNet相比其他已有的方法更加有效。
程序调试
点云分类
- 结果可视化
执行以下语句可以测试模型并输出一些分类错误点云的可视化图像。
python evaluate.py –-visu
分类预测结果保存在dump/pred_label.txt文件中,其中左侧为预测标签,右侧为真实标签。
同时对于分类出错的点云,会输出对应的三视图图像并保存到dump文件夹内。
例如:网络在测试时错误的将书架预测为了门。因此输出了一张图像如下:27_label_bookshelf_pred_door.jpg
图中包含输入点云三个不同视角下的二维图像。
又如下图为梳妆台,而PointNet给出的预测标签为洗碗槽:32_label_dresser_pred_sink.jpg
- 绘制三视图的实现方法
其中绘图部分的实现如下:
当满足特定条件时(可视化参数设为True且预测结果与真实标签不同)会输出当前点云的三视图图像。
#如果满足两个条件则执行可视化:1、预测标签不等于真实标签。2、visu = true。
if pred_val[i-start_idx] != l and FLAGS.visu: # ERROR CASE, DUMP!
#图像文件名为:[编号]_label_[预测标签]_pred_[真实标签].jpg
img_filename = '%d_label_%s_pred_%s.jpg' % (error_cnt, SHAPE_NAMES[l],SHAPE_NAMES[pred_val[i-start_idx]])
img_filename = os.path.join(DUMP_DIR, img_filename)
#绘制预测错误点云的三视图
output_img = pc_util.point_cloud_three_views(np.squeeze(current_data[i, :, :]))
#保存图像
scipy.misc