Project Icon

SparseTransformer

PyTorch库实现可变长度稀疏Transformer用于3D点云处理

SparseTransformer (SpTr)是一个PyTorch库,专门用于实现可变长度稀疏Transformer,主要应用于3D点云数据处理。该库具有快速、内存高效和易用的特点,支持窗口Transformer等技术。SpTr已在多个计算机视觉研究中应用,包括LiDAR的球形Transformer和3D点云分割的分层Transformer。它能够轻松集成到基于Transformer的3D点云网络中,仅需少量修改即可使用。

SpTr: PyTorch空间稀疏Transformer库

SparseTransformer (SpTr) 为具有可变token数量的稀疏transformer(例如用于3D点云的窗口transformer)提供了快速内存高效易于使用的实现。

SpTr 已被以下工作采用:

安装

安装依赖

pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install torch_scatter==2.0.9
pip install torch_geometric==1.7.2

编译sptr

python3 setup.py install

使用

SpTr可以轻松应用于当前大多数基于transformer的3D点云网络中,只需进行几处小修改。首先,定义注意力模块sptr.VarLengthMultiheadSA。然后,将输入特征和索引包装成sptr.SparseTrTensor,并将其传入模块。就这么简单。下面是一个简单的示例。对于更复杂的用法,您可以参考上述工作的代码(例如SphereFormer、StratifiedFormer)。

示例

import sptr

# 定义模块
dim = 48
num_heads = 3
indice_key = 'sptr_0'
window_size = np.array([0.4, 0.4, 0.4])  # 对于基于体素的方法也可以是整数
shift_win = False  # 是否采用移位窗口
self.attn = sptr.VarLengthMultiheadSA(
    dim, 
    num_heads, 
    indice_key, 
    window_size, 
    shift_win
)

# 将输入特征和索引包装成SparseTrTensor。注意:索引可以是基于体素方法的整数,也可以是基于点的方法的浮点数(即xyz)
# feats: [N, C], indices: [N, 4],第0列为批次索引
input_tensor = sptr.SparseTrTensor(feats, indices, spatial_shape=None, batch_size=None)
output_tensor = self.attn(input_tensor)

# 从输出张量中提取特征
output_feats = output_tensor.query_feats

作者

Xin Lai(香港中文大学计算机科学与工程系博士生,xinlai@cse.cuhk.edu.hk) - 初始CUDA实现,维护。

Fanbin Lu(香港中文大学计算机科学与工程系博士生) - 改进CUDA实现,维护。

Yukang Chen(香港中文大学计算机科学与工程系博士生) - 维护。

引用

如果您发现本项目有用,请考虑引用

@inproceedings{lai2023spherical,
  title={Spherical Transformer for LiDAR-based 3D Recognition},
  author={Lai, Xin and Chen, Yukang and Lu, Fanbin and Liu, Jianhui and Jia, Jiaya},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  year={2023}
}
@inproceedings{lai2022stratified,
  title={Stratified transformer for 3d point cloud segmentation},
  author={Lai, Xin and Liu, Jianhui and Jiang, Li and Wang, Liwei and Zhao, Hengshuang and Liu, Shu and Qi, Xiaojuan and Jia, Jiaya},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={8500--8509},
  year={2022}
}

许可证

本项目采用Apache License 2.0许可证。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号