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,一经查实,立即删除!

相关文章

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

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

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

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

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 【重要信息】 大会地点:济南 大会官网:http://www.iceegd.com 投稿邮箱:iceegdsub-conf.com 【注意&#xff1a…

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

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

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

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

LLM RAG with Agent

题意:基于代理的LLM检索增强生成 问题背景: 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. 性能调优与监控:2. 自动化与脚本编写:3. 文件系统与存储管理: 二、服务器配置优化的策略1. 硬件选型与配置:2. 网络配置与优化:3. 应用部署与调优: 三、安全策略的…

SMARTFORMS

page(节点)-> wondows(容器)

OpenCV 车牌检测

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

go使用grpc编辑器 windows

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

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

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

[漏洞分析] CVE-2024-6387 OpenSSH核弹核的并不是很弹

文章目录 漏洞简介漏洞原理补丁分析漏洞原理 漏洞利用漏洞利用1: SSH-2.0-OpenSSH_3.4p1 Debian 1:3.4p1-1.woody.3 (Debian 3.0r6, from 2005) [无ASLR无NX]漏洞利用原理漏洞利用关键点 漏洞利用2: SSH-2.0-OpenSSH_4.2p1 Debian-7ubuntu3 (Ubuntu 6.06.1, from 2006) [无ASLR…

PD/PPS适配器/充电器高频快速AC-DC充电器芯片

概述 PC1067 是一款集成 GaN 功率器件的高频准谐振反激控制器,适合设计在离线式 USB-PD和USB Type-C 等快速充电器和电源供应器方案,待机功耗小于 75mW。 PC1067 集成全面的保护功能,包括逐周期过流保护(OCP)&#x…

library source does not match the bytecode for class SpringApplication

library source does not match the bytecode for class SpringApplication 问题描述:springboot源码点进去然后download source后提示标题内容。spring版本5.2.8.RELEASE,springboot版本2.7.18 解决方法:把spring版本改为与boot版本对应的6.…

一键搞定长图处理:高效精准,轻松实现按固定高度像素切割

在数字时代,图像已经成为我们日常生活中不可或缺的一部分。无论是网页设计、广告海报,还是社交媒体分享,图像都在扮演着至关重要的角色。但是,当你面临一张长长的图片,需要按照特定的尺寸进行切割时,你是否…

物流行业:智能物流跟踪

在现代物流中,RFID技术的应用已经成为提高运输效率和安全性的重要手段。RFID标签可以被轻松地附加到货物上,并能够实时记录物品的位置和状态。通过这些标签,物流公司可以实时追踪货物的运输路径,监控货物的运输状况,确…

Docker 部署 Minio 对象存储服务器

文章目录 Github官网文档简介dockerdocker-compose.ymlmc 客户端mc 基础命令Golang 示例创建 test 账号密钥文件上传示例 Github https://github.com/minio/minio 官网 https://min.io/https://www.minio.org.cn/ 文档 https://www.minio.org.cn/docs/minio/kubernetes/up…

hamibot 学习

1.参考文档: https://blog.csdn.net/zxl0428/article/details/1285318731.参考官网 快速入手步骤:注册,安装客户端,添加设备,开发脚本,运行脚本 https://hamibot.com/guide1.安装客户端 2.添加设备 …

如何为董事会会议做准备?【会前会后】

召开一场富有成效的董事会会议需要花费大量的时间,可能要进行数周的沟通和拉扯,这些对董事做好充分准备至关重要。真实情况下的董事会会议往往需要大量的时间来准备,使用董事会会议工具能有效节省董事会会议准备时间、提高效率,保…