尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【深度学习】PointSIFT尝鲜
之前也做过点云处理但用的都是传统的方法比如说进行平面拟和有很老的region grow random seed或者利用层次聚类进行计算对应法线之类的这个PointSIFT首先比较吸引LZ的是好多公众号都在报导在Scannet数据集上效果非常好。二来也有一定时间没接触深度学习了tensorflow之类的了找一个开源的代码读读回忆回忆。有可能再修改改贴出具体论文的信息论文PointSIFT: A SIFT-like Network Module for 3D Point Cloud Semantic Segmentation论文作者Mingyang Jiang、Yiran Wu、Cewu Lu 通讯作者阅读论文arXiv:1807.00652, 2018https://arxiv.org/abs/1807.00652论文主页http://www.mvig.org/publications/pointSIFT.html代码链接https://github.com/MVIG-SJTU/pointSIFT放张论文的效果图先吸引下眼球首先要进行安装基本的环境得有啊看到PointSIFT不禁吸了一口气怕是没有GPU是扛不住了。。。有些README.md有的 LZ就直接粘贴了但是有不一致的地方LZ也会进行补充说明的好久没用tensorflow了好激动O(∩_∩)O哈哈~InstallationIn our experiment, All the codes are tested in Python3.5(If you use Python 2.7, please add some system paths), CUDA 8.0 and CUDNN 5.1. 之前运气很好配置的环境基本都是相同的。正常的安装CUDA 8.0和CUDA 5.1这个是基本配置啦好多博客都有介绍LZ就不再赘述了。唯一不同的是LZ使用的是Python2.7版本的。因为在跑程序所以内存用的比较多Install TensorFlow (We use v1.4.1).安装tensorflow这个很简单因为LZ是python2.7还是习惯使用1.2.0版本的所以安装的是1.2.0.具体的显示如图sudo pip install tensorflow-gpu1.2.0可能会报如下的问题Could not find any downloads that satisfy the requirement tensorflow这个很方便解决的update一下对应的pippip install -U pipInstall other python libraries likeh5py这个看着安装就行缺什么sudo pip install就行了Compile TF operator (Similar to PointNet). Firstly, you should find Tensorflow include path and library paths.importtensorflowastf# include pathprint(tf.sysconfig.get_include())# library pathprint(tf.sysconfig.get_lib())这个主要是查找一下你的机器上tensorflow的路径的。Then, change the path in all the complie file, liketf_utils/tf_ops/sampling/tf_sampling_compile.shFinally, compile the source file, we use tf_sampling as example.cdtf_utils/tf_ops/samplingchmodx tf_sampling_compile.sh ./tf_sampling_compile.sh然后对应改就行了查一下有多少个*.sh,把里面对应的tensorflow的路径改一下就行了这里贴出其中一个tf_sampling_compile.sh#/bin/bash /usr/local/cuda-8.0/bin/nvcc tf_sampling_g.cu -o tf_sampling_g.cu.o -c -O2 -DGOOGLE_CUDA1 -x cu -Xcompiler -fPIC # TF1.2 g -stdc11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I /usr/local/lib/python2.7/dist-packages/tensorflow/include -I /usr/local/cuda-8.0/include -lcudart -L /usr/local/cuda-8.0/lib64/ -O2 -D_GLIBCXX_USE_CXX11_ABI0 # TF1.4 #g -stdc11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I /home/jmydurant/anaconda3/envs/pointsift/lib/python3.5/site-packages/tensorflow/include -I /usr/local/cuda-8.0/include -I /home/jmydurant/anaconda3/envs/pointsift/lib/python3.5/site-packages/tensorflow/include/external/nsync/public -lcudart -L /usr/local/cuda-8.0/lib64/ -L/home/jmydurant/anaconda3/envs/pointsift/lib/python3.5/site-packages/tensorflow -ltensorflow_framework -O2 -D_GLIBCXX_USE_CXX11_ABI0在运行./*.sh如果报找不到tensorflow的头文件的时候就要考虑一下你的路径写对了O(∩_∩)O哈哈~如报如下的错误tf_grouping.cpp:6:42: fatal error: tensorflow/core/framework/op.h: No such file or directory #include tensorflow/core/framework/op.h全部完成后就可以进行使用了UsageIf you want use our model in your own project. After compiling the TF operator, you can import it easily. Here shows a simple case.(we takebatch_size * num_point * input_dimas input and getbatch_size * num_point * output_dimas output)importtensorflowastf# import our modulefromtf_utils.pointSIFT_utilimportpointSIFT_module# input coordinatesxyztf.tf.placeholder(tf.float32,shape(batch_size,num_point,3))# input featurespoint_featuretf.tf.placeholder(tf.float32,shape(batch_size,num_point,input_dim)# setting phasesis_trainingtf.placeholder(dtypetf.bool,shape())# setting searching radius (0.1 as an example)radius0.1_,out_feature,_pointSIFT_module(xyz,point_feature,radius,output_dim,is_training)LZ暂时还没想好使用这个既然给出了在ScanNet上的train_and_eval_scannet.py那就试一下吧Training and evaluating on ScanNetAll the data can be download from here. They are the same as PointNet.下载对应的数据集比起图片动辄几十个G1.8G对网速的要求还是很仁慈的。解压后如下图所示Train the data:python train_and_eval_scannet.pyIf you have multiple GPU:CUDA_VISIBLE_DEVICES0,1,2,3 python train_and_eval_scannet.py--gpu_num4其实在运行上述脚本还是会出现各种问题No module named tf_utils.provider认真的嘛认真真的会报错LZ估计刚开始这些代码是在一个文件夹下的后来代码公布总得整齐点让小伙伴们也好知道每块代码的作用所以分到不同的文件夹下但是却没有加一个__init__py的文件所以导致tf_utils.provider这个模块没法找到。LZ不会说自己傻傻的一直在pip中找这个模块后来恍然大悟这模块自己文件夹里就有啊( ⊙ o ⊙ )啊Couldn’t import dot_parser, loading of dot files will not be possible.这个是pyparsing和pydot版本不兼容的问题直接卸载了重新安装一下就行//卸载 sudo pip uninstall pyparsing sudo pip uninstall pydot //安装 sudo pip install pyparsing sudo pip install pydot还有有TypeError: load() got an unexpected keyword argument ‘encoding’修改部分python代码修改部分如下import cPickle as pickle #self.scene_points_list pickle.load(fp, encodingbytes) #self.semantic_labels_list pickle.load(fp, encodingbytes) self.scene_points_list pickle.load(fp) self.semantic_labels_list pickle.load(fp)然后就应该没有了至少ScanNet的training和Evaluation是可以跑通的了Resource exhausted: OOM when allocating tensor with shape[32,1024,8,256]报这个错误字面上就可以理解资源耗尽把batch size改小点就行了电脑跑了一下午还在训练中没法给效果啦(≧▽≦)/啦啦啦参考博客1.https://stackoverflow.com/questions/15951748/pydot-and-graphviz-error-couldnt-import-dot-parser-loading-of-dot-files-will2.https://blog.csdn.net/csdn_lisword/article/details/555067653.https://stackoverflow.com/questions/43895013/pickle-loading-cifar-100-data4.https://blog.csdn.net/zsg2063/article/details/74332487
RELATED

相关推荐

Gemini 4 Argon 深度解析:Android 开发者的端侧推理与多模态实战

Gemini 4 Argon 深度解析:Android 开发者的端侧推理与多模态实战

1. 这次更新到底动了哪些底层能力1.1 从开发者视角看“Argon”这个版本号先把话说在前头:网上关于“Gemini 4 Argon”的讨论,一半是参数党在比跑分,一半是营销号在喊“安卓要变天了”。但作为一个天天跟Android工程打交道的人,我更…

📅 2026/10/22 12:05:59
DeepAgents插槽化设计:Agent的模型、工具、记忆等五大扩展点解析

DeepAgents插槽化设计:Agent的模型、工具、记忆等五大扩展点解析

1. 从散件到整机:DeepAgents 与 Agent 身上为什么要预留“插槽”1.1 DeepAgents 视角下的 Agent 到底是什么?组装过台式机的朋友都知道,整机体验的好坏往往不取决于单个配件有多顶级,而在于每一块配件是不是留对了接口。内存条有标…

📅 2026/10/22 12:05:59
数学建模竞赛实战:学生面试问题的组合优化建模与算法解析

数学建模竞赛实战:学生面试问题的组合优化建模与算法解析

2006年研究生建模D题“学生面试问题”是我印象很深的一道题。当年做这道题时,我们队一度以为它就是个排队问题,画出几张甘特图就能交差。结果越做越发现,题目表面上是“排一排面试顺序”,实际上塞进了约束满足、多目标优化和算法工…

📅 2026/10/22 12:05:59
MORE NEWS

更多资讯

📰

MachineY Engine:两分钟在Windows上搭建AI Agent运行环境

看到这个标题我第一反应是,Windows上跑AI Agent,很多人的印象还停留在“配环境两小时,跑通五分钟”的阶段。Python版本冲突、依赖地狱、模型下载卡住,每个坑都能劝退一批人。MachineY Engine这个开源项目就是冲着这个痛点来的&…

📰

微信小程序+云开发:校园二手交易平台源码设计与实战

简介:这一份基于微信小程序的校园二手物品交易平台设计源码,面向需要完成毕业设计、课程项目或小程序开发练手的计算机专业学生与开发者。系统采用Java与JavaScript技术栈,结合微信小程序前端、HTML/CSS以及SQL数据库,完整覆盖用户…

📰

AI驱动商业智能落地指南:从数据治理到决策闭环

先说一个我观察到的现象:很多团队把AI和BI放在一起谈,最后做出来的东西既不是AI,也不算BI,只是一个用大模型套了一层壳的旧报表系统。我参与过几个数据基础还不错的企业项目,也旁观过一些从零开始搭的团队,…

📰

专科生降AIGC实测:10个工具让AI辅助写作更像自己写的

前几天一个专科在读的学弟发了一篇结课报告给我,说是自己写的。我只扫了一眼开头三段就笑了——“首先需要明确的是……其次……综上所述……”这种整齐划一到极点的排比,再加上满屏“赋能”“闭环”“抓手”,根本不需要任何检测系统&#xf…

📰

基于Matlab的UPFC统一潮流控制器仿真建模与调参实战

做柔性交流输电系统(FACTS)仿真的朋友应该都有体会:UPFC(Unified Power Flow Controller,统一潮流控制器)是这一类装置里最不好啃的模型。它和SVC、STATCOM不一样,SVC本质上是并联阻抗补偿&…

📰

eNSP综合组网实验:VLAN、单臂路由与静态路由全流程

准备HCIA/HCIP认证的朋友,十有八九都跟eNSP这个模拟器打过交道。但说实话,很多人练的都是"单点"实验:今天配个VLAN,明天配个静态路由,真正把二层交换、VLAN划分、单臂路由、直连路由和静态路由串成一张完整组…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬