网页对于网站有多重要,建筑工程公司管理制度,景区网站建设材料,wordpress单页面✨✨ 欢迎大家来访Srlua的博文#xff08;づ#xffe3;3#xffe3;#xff09;づ╭❤#xff5e;✨✨ #x1f31f;#x1f31f; 欢迎各位亲爱的读者#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢#xff0c;在这里我会分享我的知识和经验。づ3づ╭❤✨✨ 欢迎各位亲爱的读者感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢在这里我会分享我的知识和经验。 希望在这里我们能一起探索IT世界的奥妙提升我们的技能。 记得先点赞后阅读哦~ 所属专栏传知代码论文复现 欢迎访问我的主页Srlua小谢 获取更多信息和资源。✨✨
目录
概述
模型结构
模型总览图
点云的投影
视图间适配器
演示效果
零样本投影
少样本投影
核心逻辑
使用方式
部署方式
参考文献 本文所有资源均可在该地址处获取。
概述
CLIP模型学习将图像与其在开放词汇设置中的相应文本进行匹配获得了良好的效果研究人员开始逐渐探索在2D中通过大规模图像文本对预训练好的模型是否能普适到3D知识中。PointCLIP在没有渲染的情况下将点云投影到多视角深度图中来编码点云并聚合视图层面的零样本预测以实现从2D到3D的知识转移是在低资源成本和数据体制下通过CLIP进行有效三维点云理解的一种很有前途的代替方案。
模型结构
模型总览图 PointCLIP模型首先将点云投影到不同视图下形成M个深度图作为图像信息。之后采用CLIP模型对图像信息和文本信息进行编码。计算两者的余弦相似度得到零样本输出结果。当进行少样本输出时设计了一个轻量级的视图间适配器来聚合多视图表示并生成自适应特征通过微调这样的适配器并冻结所有其他的模态PointCLIP的性能得到了很大的提高。
点云的投影 为了将点云转换为CLIP可访问的表示从多个视图生成投影图像以消除3D和2D之间的差距。以俯视图为例针对点云中的某个点x,y,z它在俯视图下的坐标为[x/z,y/z],z为深度此时满足近大远小的特点。即z越远物体越小和现实生活中的照片一致
视图间适配器 对整个模型进行微调巨大的参数和不充分的样本很容易会导致过拟合视图间适配器时一个三层感知机模型增加该结构可以在少样本设置下进一步提高模型的性能采用残差结构将CLIP的2D知识与适配器新学习的3D少样本知识进行融合进一步的促进了跨模态的知识转移同时可以更好的进行视图预测。
演示效果
零样本投影 少样本投影 核心逻辑
# PointCLIP主体结构
# 目的是为了获得图像和文本之间匹配的概率是多少
def forward(self, pc, labelNone): # Project to multi-view depth mapsimages self.mv_proj(pc).type(self.dtype)# Image featuresimage_feat self.visual_encoder(images)image_feat self.adapter(image_feat)image_feat image_feat / image_feat.norm(dim-1, keepdimTrue) # Store for the best ckptif self.store:self.feat_store.append(image_feat)self.label_store.append(label)# Text featurestext_feat self.textual_encoder()text_feat text_feat / text_feat.norm(dim-1, keepdimTrue)# Classification logitslogit_scale self.logit_scale.exp()logits logit_scale * image_feat text_feat.t() * 1.return logits# Adapter的主体结构def forward(self, feat):img_feat feat.reshape(-1, self.num_views, self.in_features)res_feat feat.reshape(-1, self.num_views * self.in_features)# Global featureglobal_feat self.global_f(img_feat * self.fusion_ratio.reshape(1, -1, 1))# View-wise adapted featuresview_feat self.view_f(global_feat)# 将全局特征和局部特征进行相加img_feat view_feat * self.adapter_ratio res_feat * (1 - self.adapter_ratio)return img_feat使用方式
可视化时修改需要读入的文件路径可以查看不同文件下的点云形式以零样本方式进行训练 cd scripts bash zeroshot.sh以少样本方式训练 cd scripts bash fewshot.sh
部署方式
git clone https://github.com/ZrrSkywalker/PointCLIP.git
cd PointCLIPconda create -n pointclip python3.7
conda activate pointclippip install -r requirements.txt
pip install open3d
pip install opencv-python
pip install matplotlib# Install the according versions of torch and torchvision
conda install pytorch torchvision cudatoolkit
wget https://download.pytorch.org/whl/cu116/torch-1.13.0%2Bcu116-cp37-cp37m-linux_x86_64.whl
pip install torch-1.13.0cu116-cp37-cp37m-linux_x86_64.whl
wget https://download.pytorch.org/whl/cu116/torchvision-0.13.0%2Bcu116-cp37-cp37m-linux_x86_64.whl
pip torchvision-0.13.0cu116-cp37-cp37m-linux_x86_64.whl# Install the modified dassl library (no need to re-build if the source code is changed)
cd Dassl3D/
python setup.py developcd ..参考文献
pointclip论文github地址
希望对你有帮助加油
若您认为本文内容有益请不吝赐予赞同并订阅以便持续接收有价值的信息。衷心感谢您的关注和支持