项目描述:将巡检过程中激光雷达所踩得的大场景点云数据进行语义分割(杆塔、导线、建筑物、交跨线,植被等),场景一般长度500米宽度40米高100米左右。
项目职责:算法开发。在选用backbone的时候考虑了如下问题,1)算法需要部署在客户端,故不能把算法设计的过于重型,需要考虑速度问题;2)由于公司内外网问题,训练显卡设备极其简陋(Windows平台下的1660ti)。所以首先想到使用randla-net作为基准网络,但是在实验过程中即使是使用原作的kitti版本参数(相对s3dis版本较小,5层下采样变为4层,点数由65535变为4万多),但是显卡只能承受batchsize最大为2,导致结果太差(BN为eval时仅为23.6,BN为train时反而为62.1)。后面又试验过清华版本的PCT,但是PCT的整体表达能力有点儿不够,在小场景实验的分类细节上不够理想。最后还回到了kpconv,应对计算资源不够时考虑到场景的复杂度没有公开数据集那么高,将整体通道数降低了4倍来换取更大的batchsize;在训练时由于场景样本及其不平衡的关系,如果使用potential采样的话小类的IOU一直为0,我最终人工干预原作中的balance采样方法,让小类能够更多的采集到,提升了整体的IOU,最终整体mIOU能达到75.6%。还尝试将二元交叉熵损失替换成focal-loss,但是实验效果并不好,一样会导致小类的准确率出不来。在预测时使用potential采样方式,为了加快速度,将potential的权重阈值从10降低到2,达到一个投影面积500*40的空间中3分钟预测完毕。