Graspnet复现笔记

news2025/1/16 5:48:18

前言

参考文章:Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020).[paper] [dataset] [API] [doc]

代码仓库:https://github.com/graspnet/graspnet-baseline

一、确定配置

  1. Ubuntu18.04

  2. CUDA版本(作者使用的是10.2)

  3. 根据CUDA版本确定cudnn()版本

  4. 根据CUDA和cudnn版本下载对应的pytorch版本

  5. python==3.7(必须大于等于3.6)

  6. pytorch==1.6.0(需求文档里的pytorch是1.6.0版本,这里作者和需求文档保持一致)

  7. 显卡:NVIDIA 2080

二、基础配置环境

1.首先使用

nvidia-smi

查看当前电脑所能运行的CUDA最高的版本,在下载CUDA时,要选择版本号低于这个的版本

2080显卡最高支持的CUDA版本为11.6,这里本人选择的CUDA版本为10.2

CUDA下载地址:https://developer.nvidia.com/cuda-toolkit-archive

cudnn下载地址:https://developer.nvidia.cn/rdp/cudnn-archive

如何下载CUDA可以参考这篇文章:环境配置之CUDA与pytorch版本问题以及多CUDA版本安装及切换

pytorch下载地址:https://pytorch.org/get-started/previous-versions/

2.创建conda环境然后下载pytorch(注意创建之后要进入环境之后再下载pytorch)

conda create --name py37 python=3.7
source activate py37      # py37 就是环境的name

3.下载pytorch==1.6.0 对应 #CUDA 10.2

pip install torch==1.6.0 torchvision==0.7.0

三、graspnet环境配置

3.1 安装graspnet文件
git clone https://github.com/graspnet/graspnet-baseline.git
​
cd graspnet-baseline
​
pip install -r requirements.txt
3.2 编译安装pointnet2
cd pointnet2

python setup.py install

这一步可能会报错:

“subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1”

解决方法:

将setup.py中的

“cmdclass={'build_ext': BuildExtension}”

这一行改为

“cmdclass={'build_ext': BuildExtension.with_options(use_ninja=False)}”

pytorch默认使用ninjia作为backend,这里把它禁用掉就好了;

参考文章:出现错误“subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1”解决方法

3.3 编译安装knn
cd ..
cd knn
python setup.py install
3.4 安装graspnetAPI
git clone https://github.com/graspnet/graspnetAPI.git

将下载好的graspnetAPI文件移动到graspnet-baseline的目录下

cd ..
cd graspnetAPI
pip install .
3.5 手动构建文档
cd docs
pip install -r requirements.txt
bash build_doc.sh

这里可能会报错1:

latexmk -pdf -dvi- -ps- 'graspnetapi.tex'

make: latexmk: Command not found

Makefile:29: recipe for target 'graspnetapi.pdf failed

make: *** [graspnetapi.pd] Error 127

解决方法:

sudo apt-get install latexmk

报错2:

OSError: libc++.so.1: cannot open shared object file: No such file or directory

解决方法:

sudo apt-get update
sudo apt-get install libc++1
export LD_LIBRARY_PATH=/usr/lib/x86_64-1inux-gnu:$LD_LIBRARY_PATH

四、下载label和weight

从 Google Drive/Baidu Pan 下载

下载到graspnet-baseline目录下:

mv tolerance.tar dataset/
cd dataset
tar -xvf tolerance.tar

预训练权重可以从以下位置下载:

  • checkpoint-rs.tar [谷歌云端硬盘] [百度盘]
  • checkpoint-kn.tar [谷歌云端硬盘] [百度盘]

checkpoint-rs.tarcheckpoint-kn.tar是分别使用 RealSense 数据和 Kinect 数据进行训练。

在graspnet-baseline目录下,新建目录/logs/log_kn,将权重移动到这个目录下

mkdir -p ./logs/log_kn
mv ./checkpoint-rs.tar ./logs/log_kn/checkpoint.tar

运行代码

sh command_demo.sh

大功告成

配置过程中遇到的其他错误:

1.问题:

解决方法:

这是因为command_demo.sh中权重的文件名是checkpoint.tar

因此上面我们下载完权重,放到/logs/log_kn时,检查一下权重文件名,将名字重命名为checkpoint.tar就可以了。

2.问题:

ImportError: cannot import name 'NDArray' from 'numpy.typing'

解决方法:更新numpy版本

pip uninstall numpy
pip install numpy

3.问题:

ModuleNotFoundError:No module named 'plyfile'

解决方法:

pip install plyfile

4.问题:

cannot import name ‘environmentfilter‘ from ‘jinja2‘

解决办法:降低jinja2版本

pip install jinja2==3.0

参考:cannot import name ‘environmentfilter‘ from ‘jinja2‘ 问题解决办法

5.问题:

解决方法:

sudo apt install doxygen-latex

6.问题:

解决方法:

sudo apt-get install sphinx-doc
export PATH=$PATH:/path/to/sphinx
source ~/.bashrc

7.问题:The command could not be located because '/usr/bin' is not included in the PATH environment variable.

解决方法:也可以用gedit ~/.bashrc 添加环境变量,在~/.bashrc的最后添加以下内容然后保存,效果一样。

nano ~/.bashrc

在文件末尾添加下面这行代码:

export PATH=/usr/bin:$PATH

保存并关闭文件,按Ctr+X保存文件,它将要求更改文件,按y并按Enter

让更改生效

source ~/.bashrc

参考:The command could not be located because '/bin' is not included in the PATH environment variable.

8.问题:sudo: command not found

解决方法:

9.问题:error: [Errno 2] No such file or directory: 'which': 'which'

解决方法:

pip install sh

10.问题:

解决方法:

sudo apt-get install latexmk

11.【Bug解决】nvcc fatal : Unsupported gpu architecture ‘compute_86‘

解决参考:【Bug解决】nvcc fatal : Unsupported gpu architecture ‘compute_86‘

12.ImportError: libtorch cuda cu.so: cannot open shared object file: Nosuch file or directory

参考:ImportError: libtorch cuda cu.so: cannot open shared object file: Nosuch file or directory

13.问题:“no kernel image is available“

参考:“no kernel image is available“

14.问题:CommandNotFoundError: Your shell has not been properly configured 

参考:Ubuntu 使用 conda activate 虚拟环境是报错:CommandNotFoundError: Your shell has not been properly configured t

15.问题:FileNotFoundError: [Errno 2] No such file or directory: ‘:/usr/local/cuda-11.8/bin/nvcc‘

参考:(已解决)FileNotFoundError: [Errno 2] No such file or directory: ‘:/usr/local/cuda-11.8/bin/nvcc‘

16.问题:报错: make: pdflatex: Command not found

解决方案:

sudo apt install doxygen-latex

参考:报错: make: pdflatex: Command not found

17.from torch._six import container_abcs ImportError: cannot import name ‘container_abcs‘

参考:from torch._six import container_abcs ImportError: cannot import name ‘container_abcs‘

参考的文章:

1.ubuntu18.04复现yolo v8环境配置之CUDA与pytorch版本问题以及多CUDA版本安装及切换

2.【GraspNet复现】

3.graspnet-baseline 复现问题总结

4.graspnet复现保姆级教程

5.复现运行GraspNet中的demo.py

6.复现GraspNet遇到的问题-解决方法!

7.ubuntu配置多版本cuda+cudnn环境,及版本切换方法

8.Ubuntu20.04下GraspNet复现流程

9.graspnet+Astra2相机实现部署

10.复现graspnet并使用自己的数据实现(pycharm)

11.Ubuntu安装Pycharm并配置Python解释器

12.ROS1的一键安装(全)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot的校园商铺管理系统

功能结构图: 实现图: 后台功能: 商品管理 公告管理 前台页面 详情 订单 我的订单

【热门会议|稳定检索】2024年食品安全与生物技术国际会议(ICFSB 2024)

2024年食品安全与生物技术国际会议(ICFSB 2024) 2024 International Conference on Food Safety and Biotechnology 【重要信息】 大会地点:贵阳 大会官网:http://www.icicfsb.com 投稿邮箱:icicfsbsub-conf.com 【注…

从深度学习到音乐创作:AI如何重新定义音乐行业

📑引言 近一个月来,随着几款音乐大模型的轮番上线,AI在音乐产业的角色迅速扩大。这些模型不仅将音乐创作的门槛降至前所未有的低点,还引发了一场关于AI是否会彻底颠覆音乐行业的激烈讨论。从初期的兴奋到现在的理性审视&#xff0…

ShareSDK HarmonyOS NEXT集成指南

集成前准备 注册账号 使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查看注册流程 ShareSDK流程图 集成配置 添加依赖 在Terminal窗口中,执行如下命令进行安装 ohpm …

书城在线系统:基于Java和SSM框架的高效信息管理平台

开头语:你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:SSM框架(Spring, Spring MVC, Mybatis) 工具&…

Mysql查询IFNULL和想象的不一样

select sum(ifnull(a,0)) aaa,ifnull(sum(a),0) bbb from (select g.goodsid a from goods g where g.goodsid 601 ) tmp #注意 goodsid 601 的不存在 ​​​ 返回的结果和想象中不同,解释如下 在您SQL查询中,创建了一个子查询(别名为tmp&a…

JVM原理(七):JVM虚拟机的内存分配与回收策略

Java技术体系的自动内存管理,最根本的目标是自动化解决两个问题:自动给对象分配内存和 自动回收分配给对象的内存 1. 对象优先在Eden分配 参数解释-Xms初始堆大小-Xmx最大堆大小-XX:NewSizen设置年轻代大小-XX:NewRation设置年轻代和年老代的比值。如:为…

JavaScript常见数组方法的详细用法及示例

1.filter():检测数值元素&#xff0c;并返回符合条件所有元素的数组(具体要符合什么条件的的元素的函数方法需要我们自己去写)。示例如下 </head> <body><button id"but" onclick"test(arr)">点击出结果</button><div id"…

【开源合规】开源许可证基础知识与风险场景引入

文章目录 什么是开源许可证(License)?开源许可证有什么用?开源许可证分类开源许可证分类及描述公共代码 (Public Domain)CC0无License宽松型许可证 (Permissive)MITApache 2.0BSD弱互惠型许可证 (Weak Copyleft)LGPLMPLEPL互惠型许可证 (Reciprocal)GPLEUPL强互惠许可证 (Str…

Redis缓存管理机制

在当今快节奏的数字世界中&#xff0c;性能优化对于提供无缝的用户体验至关重要。缓存在提高应用程序性能方面发挥着至关重要的作用&#xff0c;它通过将经常使用或处理的数据存储在临时高速存储中来减少数据库负载并缩短响应时间&#xff0c;从而减少系统的延迟。Redis 是一种…

秒懂设计模式--学习笔记(5)【创建篇-抽象工厂】

目录 4、抽象工厂4.1 介绍4.2 品牌与系列&#xff08;针对工厂泛滥&#xff09;(**分类**)4.3 产品规划&#xff08;**数据模型**&#xff09;4.4 生产线规划&#xff08;**工厂类**&#xff09;4.5 分而治之4.6 抽象工厂模式的各角色定义如下4.7 基于此抽象工厂模式以品牌与系…

51单片机点亮第一个LED灯

欢迎入群共同学习交流 时间记录&#xff1a;2024/7/2 一、电路原理图 二、代码程序 1.项目代码结构 2.主程序代码 #include <reg51.h>sbit ledP1^0;void delay(int ms) {int i0;while(ms--){for(i0;i<110;i);} }int main() {while(1){led 1;delay(1000);led 0;d…

Retrofit源码阅读

动态代理在 Android 中的应用&#xff1a;Retrofit 源码解析 在之前的文章 《Andriod 网络框架 OkHttp 源码解析》 中我们分析了 OkHttp 的源代码。现在我们就来分析一下 OkHttp 的兄弟框架 Retrofit。关于 Retrofit 的注解的使用&#xff0c;可以参考其官方文档&#xff1a;h…

镜像私服Harbor 2.0安装-探索工厂模式:如何优化Harbor项目管理与API集成

文章目录 一、docker-compose1. 下载 Docker Compose&#xff1a;2.添加执行权限&#xff1a;3.验证安装 二、安装harbor 2.01.下载harbor离线包2. 根据需求配置 Harbor3.给harbor创建SSL证书4.预编译harbor5. 安装并启动 Harbor (必须到你安装的目录) 三、登录harbor的web页面…

Java UU跑腿同城跑腿小程序源码快递代取帮买帮送源码小程序+H5+公众号跑腿系统

&#x1f680;【同城生活小助手】&#x1f680; &#x1f3c3;‍♂️【同城跑腿&#xff0c;即刻送达的便利生活】&#x1f3c3;‍♀️ 在快节奏的都市生活中&#xff0c;时间成了最宝贵的资源。UU跑腿小程序&#xff0c;作为同城生活的得力助手&#xff0c;让你轻松解决生活…

208.贪心算法:买卖股票的最佳时机||(力扣)

代码解决 class Solution { public:int maxProfit(vector<int>& prices) {int result 0; // 初始化结果为0&#xff0c;表示初始利润为0// 从第二天开始遍历价格数组for (int i 1; i < prices.size(); i) {// 如果当天价格比前一天价格高&#xff0c;则将差价加…

学习伦敦金技术分析的具体步骤是什么?

技术分析是我们分析伦敦金市场的重要工具&#xff0c;刚入市就面对时涨时跌的市场应该如何交易呢&#xff1f;投资者如果不掌握技术分析的方法&#xff0c;恐怕对这个问题会没有头绪。入场都没有&#xff0c;盈利就更加无从谈起了。而学习技术分析&#xff0c;是有不同的阶段、…

算法-位图与底层运算逻辑

文章目录 1. 位图的理论基础2. 完整版位图实现3. 底层的运算逻辑-位运算 1. 位图的理论基础 首先我们要理解什么是位图, 位图的一些作用是什么 位图法就是bitmap的缩写。所谓bitmap&#xff0c;就是用每一位来存放某种状态&#xff0c;适用于大规模数据&#xff0c;但数据状态又…

让你500平的大别墅网络信号无死角!一文读懂什么是Mesh

最新的路由器往往拥有超快的速度、多天线和对最新Wi-Fi标准的支持。然而&#xff0c;如果你的设备信号微弱或有死角&#xff0c;再强大的路由器也无济于事。虽然Wi-Fi扩展器是增加网络覆盖范围的廉价替代品&#xff0c;但它们效率低下且带宽较低。 相比之下&#xff0c;Mesh网络…

野外/工地车流计数摄像头,单人即可安装,简单低成本

在野外或工地这样的特殊环境中&#xff0c;对车流进行准确计数对于交通管理、资源调配以及安全保障都具有重要意义。而野外/工地车流计数摄像头的出现&#xff0c;以其单人即可安装、简单低成本的特点&#xff0c;为解决这些场景中的车流统计问题提供了理想的解决方案。 一、野…