Graspnet复现笔记

前言

参考文章: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 pointnet2python 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.mzph.cn/bicheng/39105.shtml

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

相关文章

mysql8 锁表与解锁

方法1不行,就按方法2来执行; (一) 解锁方法1 连接mysql ,直接执行UNLOCK TABLES,细节如下: – 查询是否锁表 SHOW OPEN TABLES WHERE in_use >0 ; – 查询进程 show processlist ; – 查询到相对应的进程&#xf…

第26集《大乘起信论》

请大家打开《讲义》第五十五页,癸二、释发心。 在大乘的修学当中,我们成就的第一个功德是信成就发心。信成就发心前面一科,先讲到信心的成就,就是我们依止内外善根的熏习,成就所谓的菩萨种性,对于大乘菩萨…

固态硬盘好用,还是机械硬盘好用?

在当前的电脑存储设备市场中,固态硬盘(SSD)和机械硬盘(HDD)是两种最主流的选择。它们各有优缺点,适用于不同的使用场景和需求。本文将详细对比固态硬盘和机械硬盘的性能、价格、耐用性等方面,并…

C# 验证PDF数字签名的有效性

数字签名作为PDF文档中的重要安全机制,不仅能够验证文件的来源,还能确保文件内容在传输过程中未被篡改。然而,如何正确验证PDF文件的数字签名,是确保文件完整性和可信度的关键。本文将详细介绍如何使用免费.NET控件通过C#验证PDF签…

2024年特种设备作业人员考试题库及答案(流动式起重机Q2)

一、单选题 201、起重机制动器的制动带磨损超过原厚度的()时,应更换。 A.0.4 B.0.5 C.0.6 答案:B 202、履带式起重机自行转移时,每行驶()小时,应对行走机构进行检查和润滑。 …

js制作随机四位数验证码图片

<div class"lable lable2"><div class"l"><span>*</span>验证码</div><div class"r"><input type"number" name"vercode" placeholder"请输入验证码"></div>&l…

window系统openssl开发环境搭建(VS2017)

window系统openssl开发环境搭建 VS2017 一、下载openssl二、安装openssl三、openssl项目配置3.1 配置include文件3.2 配置openssl动态库四、编写openssl测试代码五、问题总结5.1 问题 一5.2 问题二一、下载openssl https://slproweb.com/products/Win32OpenSSL.html 根据自己…

2024年地球生态学与绿色发展国际会议 (EEGD 2024)

2024年地球生态学与绿色发展国际会议 (EEGD 2024) International Conference on Earth Ecology and Green Development in 2024 【重要信息】 大会地点&#xff1a;济南 大会官网&#xff1a;http://www.iceegd.com 投稿邮箱&#xff1a;iceegdsub-conf.com 【注意&#xff1a…

【docker】容器内配置环境变量

背景&#xff1a; 我要把下面的环境变量写到bash脚本里&#xff0c;起名叫environment_start.sh。 目的&#xff1a; 用于每次进入容器dev_into.sh的时候&#xff0c;让系统获取到环境变量。 先进入容器找个合适的位置写环境变量bash脚本&#xff0c;environment_start.sh …

当下环境下如何提升自己以拥抱未来的机会-程序员的自我提升

一、前言 看看今年的行情,无论是国内还是国外,仿佛都没有什么活力,经济下行压力越来越大,企业经营越来越困难。对于程序员的工作机会越来越少。这可能是现阶段乃至几年内的现象。现在是现金为王,拥有其他资产仿佛没有多大的增值空间,经济一片惨淡,消费不活跃,我看到的…

电脑重启后,不能远程连接服务器,该如何解决

文章目录 前言&#xff1a;系统情况&#xff1a;情况一&#xff1a;先检查网络连接情况情况二&#xff1a;检查服务器的 ssh 服务器转态情况三&#xff1a; 检查防火墙设置情况四&#xff1a;检查 SSH 配置文件情况五&#xff1a;其他可能性 前言&#xff1a; 电脑重启后&…

LLM RAG with Agent

题意&#xff1a;基于代理的LLM检索增强生成 问题背景&#xff1a; I was trying the application code in the link. 我正在尝试链接中的应用程序代码。 I am using the following Llang Chain version 我正在使用以下Llang Chain版本 langchain 0.0.327 langchain-commun…

云数据中心运维新纪元:让Linux服务器如虎添翼

文章目录 一、Linux系统管理的高级技巧1. 性能调优与监控&#xff1a;2. 自动化与脚本编写&#xff1a;3. 文件系统与存储管理&#xff1a; 二、服务器配置优化的策略1. 硬件选型与配置&#xff1a;2. 网络配置与优化&#xff1a;3. 应用部署与调优&#xff1a; 三、安全策略的…

极速升级:MacOS系统中Pip源的切换指南

极速升级&#xff1a;MacOS系统中Pip源的切换指南 在MacOS系统中&#xff0c;Python的包管理工具Pip是我们管理和安装Python库的得力助手。然而&#xff0c;默认的Pip源在国外&#xff0c;对于国内用户来说&#xff0c;访问速度可能较慢。因此&#xff0c;更换Pip源以提高下载…

工厂模式-实现

一.工厂模式 通过使用工厂模式&#xff0c;可以将对象的创建逻辑封装在一个工厂类中&#xff0c;而不是在客户端代码中直接实例化对象&#xff0c;这样可以提高代码的可维护性和可扩展性 Demo:以协议为例 1.抽象接口 public interface IProtocolGateWay{string ProtocolType{…

SMARTFORMS

page&#xff08;节点&#xff09;-> wondows(容器)

OpenCV 车牌检测

OpenCV 车牌检测 级联分类器算法流程车牌检测相关链接 级联分类器 假设我们需要识别汽车图像中车牌的位置&#xff0c;利用深度学习目标检测技术可以采取基于锚框的模型&#xff0c;但这需要在大量图像上训练模型。 但是&#xff0c;级联分类器可以作为预训练文件直接使用&…

go使用grpc编辑器 windows

先看最后效果&#xff1a; 当我执行 protoc --go_out. proto.proto 会生成proto.pb.go文件&#xff0c;主要存储的是封装好的结构体 执行 protoc --go-grpc_out. proto.proto 会生成对应的方法 那么现在提供解决方案&#xff1a; https://github.com/protocolbuffers…

MongoDB数据库 MQL (MongoDB Query Language)语句大全

基本命令 连接到 MongoDB mongo显示所有数据库 show dbs选择&#xff08;或创建&#xff09;数据库 db集合操作 显示当前数据库中的所有集合 show collections创建集合 db.createCollection("myCollection")删除集合 db.myCollection.drop()文档操作 插入文…

新手教程系列 -- SQLAlchemy对同一张表联表两次

在开发过程中&#xff0c;我们经常会遇到对同一张表进行多次联表查询的需求。比如在查询航线时&#xff0c;我们希望将起飞和降落的机场名称代入结果中。为了实现这一目标&#xff0c;机场名称统一存放在 AirPort 表中。下面&#xff0c;我们将介绍如何通过 SQLAlchemy 实现这一…