当前位置: 首页 > wzjs >正文

怎么给甲方做网站备案自己架设网站

怎么给甲方做网站备案,自己架设网站,wordpress 好看的主题,怎样才能注册一个公司GrainGrasp为每个手指提供细粒度的接触指导,为灵巧手生成精细的抓取策略。 通过单独调整每个手指的接触来实现更稳定的抓取,从而提供了更接近人类能力的抓取指导。 论文地址:GrainGrasp: Dexterous Grasp Generation with Fine-grained Con…

GrainGrasp为每个手指提供细粒度的接触指导,为灵巧手生成精细抓取策略

通过单独调整每个手指的接触来实现更稳定的抓取,从而提供了更接近人类能力的抓取指导。

论文地址:GrainGrasp: Dexterous Grasp Generation with Fine-grained Contact Guidance

代码地址:https://github.com/wmtlab/GrainGrasp

看一下抓取效果:

看一物体CAD的抓取效果

不同视角观察:

1、创建Conda环境

首先创建一个Conda环境,名字为GrainGrasp,python版本为3.9

然后进入GrainGrasp环境

conda create -n GrainGrasp python=3.9
conda activate GrainGrasp

2、安装PyTorch

我们使用的版本是pytorch==2.0.1+cu118

执行下面命令进行安装:

conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia

3、安装GrainGrasp依赖库

下载GrainGrasp代码,然后进行GrainGrasp-main目录中

代码地址:https://github.com/wmtlab/GrainGrasp

创建一个文件requirements.txt,编写内容:

numpy==1.23.0
open3d==0.17.0
trimesh==4.1.7
attrdict==2.0.1
mano
chumpy==0.70

开始安装啦

pip install -r requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple

等待安装完成~

4、安装pytorch3d

访问 PyTorch3D 官方下载页面,找到与我们的环境匹配的 PyTorch3D 0.7.5 安装包

名称:pytorch3d-0.7.5-py39_cu118_pyt201.tar.bz2

然后下载并安装:

conda install pytorch3d-0.7.5-py39_cu118_pyt201.tar.bz2

5、模型推理

首先从MANO网站下载MANO模型文件(MANO_LEFT.pkl、MANO_RIGHT.pkl),到mano/models/目录中

手部支持的自由度:

这个配置文件整合了多个模块的路径和参数设置,用于手部和物体的 3D 重建和姿态估计任务。

每个模块的配置都包含了必要的路径和训练参数,以便在实际运行时能够正确加载数据和模型,并进行有效的训练和测试。

运行示例1:

python run_complete.py -i=8 -s=1234

看一下抓取效果:

看一物体CAD的抓取效果:

run_complete.py 源代码:

import os
import time
import torch
import trimesh
import argparse
import numpy as np
import open3d as o3d
from utils import annotate
from utils import vis
from utils import tools
from config import cfgs
from GrainGrasp import GrainGraspif __name__ == "__main__":# 设置设备为 GPU 或 CPUdevice = "cuda" if torch.cuda.is_available() else "cpu"# 创建命令行参数解析器parge = argparse.ArgumentParser(description="GrainGrasp")parge.add_argument("--idx", "-i", type=int, default=2, help="物体的索引")parge.add_argument("--epochs", "-e", type=int, default=300, help="优化的轮数")parge.add_argument("--threshold", "-t", type=float, default=0.0, help="阈值")parge.add_argument("--select", "-s", type=str, default="12345", help="选择的手指索引,最多5根手指:12345")parge.add_argument("--vis_pc", "-vp", type=bool, default=True, help="是否可视化点云")parge.add_argument("--vis_mesh", "-vm", type=bool, default=True, help="是否可视化网格")parge.add_argument("--vis_process", "-vprocess", type=bool, default=True, help="是否可视化优化过程")args = parge.parse_args()# 将选择的手指索引从字符串转换为整数列表select_finger_idx = list(map(lambda x: int(x), args.select))# 从配置文件中获取采样点数量sample_points_num = cfgs.obman_config.sample_points_num# 加载物体的三维网格模型obj_path = os.path.join("sample", str(args.idx), "obj_mesh.obj")obj_mesh = trimesh.load_mesh(obj_path)# 从网格中采样点云数据(备用方法)# obj_pc = tools.pc_sample(obj_mesh, sample_points_num)# 从文件加载点云数据obj_pc_path = os.path.join("sample", str(args.idx), "obj_pc.npy")  # 点云数据形状为 [3, 3000]obj_pc = np.load(obj_pc_path).T  # 转置为 [3000, 3]obj_pc = torch.Tensor(obj_pc)  # 转换为 PyTorch 张量# 初始化 GrainGrasp 模型grain_grasp = GrainGrasp(cfgs.dcog_config, cfgs.cvae_model_path, device)# 开始计时time_start = time.time()# 执行推理过程,获取抓取姿态优化结果result = grain_grasp.inference_complete(obj_pc,epochs=args.epochs,select_finger_idx=select_finger_idx,threshold=args.threshold,)print("运行时间是 {:.2f} 秒".format(time.time() - time_start))print("能量值为 ", result.E_pen)print("最小能量索引为 ", result.min_idx)hand_pc_final = result.min_idx_hand_pc # 获取优化后的手部点云数据hand_face = grain_grasp.dcog_model.rh_faces[0].cpu() # 获取手部网格的面数据hand_color = annotate.get_finger_colors(hand_pc_final) # 为手部点云数据分配颜色# 创建手部网格的 Open3D对象hand_mesh_o3d = vis.get_o3d_mesh(hand_pc_final, hand_face, [0, 0.8, 1], hand_color)obj_colors_true = annotate.get_obj_colors(result.obj_cls.cpu()) # 为物体点云数据分配颜色obj_pcd = vis.get_o3d_pcd(obj_pc.cpu().detach(), obj_colors_true)obj_mesh_o3d = vis.trimesh2o3d(obj_mesh)# 如果设置为可视化点云,则显示手部和物体点云if args.vis_pc:vis.vis_HandObject([hand_mesh_o3d], [obj_pcd])# 如果设置为可视化网格,则显示手部和物体网格if args.vis_mesh:vis.vis_HandObject([hand_mesh_o3d], [obj_mesh_o3d])# 如果设置为可视化优化过程,则显示优化过程if args.vis_process:record_hand_pc = result.min_idx_record_hand_pcrecord_handmesh_o3d = vis.get_o3d_mesh(record_hand_pc[0], hand_face, [0, 0.8, 1], hand_color)vis.vis_GraspProcess(record_handmesh_o3d, record_hand_pc[1:], obj_mesh_o3d)

思路流程

  1. 设备设置

    • 检查是否有可用的 GPU 设备,如果有则使用 GPU,否则使用 CPU。

  2. 参数解析

    • 使用 argparse 解析命令行参数,设置物体索引、优化轮数、阈值、手指选择、可视化选项等。

  3. 数据加载

    • 加载物体的三维网格模型(obj_mesh.obj)。

    • 从文件加载物体点云数据(obj_pc.npy),并将其转换为 PyTorch 张量。

  4. 模型初始化

    • 初始化 GrainGrasp 模型,加载预训练模型路径(cfgs.cvae_model_path)。

  5. 推理过程

    • 调用模型的 inference_complete 方法进行抓取姿态优化。

    • 传入物体点云数据、优化轮数、手指索引和阈值等参数。

    • 计算运行时间并输出优化结果(能量值和最小能量索引)。

  6. 结果可视化

    • 将优化后的手部点云数据和物体点云/网格模型进行可视化。

    • 如果设置为可视化点云,则显示手部网格和物体点云。

    • 如果设置为可视化网格,则显示手部网格和物体网格。

    • 如果设置为可视化优化过程,则显示优化过程中的手部姿态变化。

运行示例2:

python run_only_opt.py -i=4 -s=134

看一下抓取效果

看一物体CAD的抓取效果:

run_only_opt.py 源代码:

import os
import time
import torch
import trimesh
import argparse
import numpy as np
import open3d as o3d
from utils import annotate
from utils import vis
from utils import tools
from utils import Load_obman
from config import cfgs
from GrainGrasp import GrainGraspif __name__ == "__main__":# 设置设备为 GPU 或 CPUdevice = "cuda" if torch.cuda.is_available() else "cpu"# 初始化命令行参数解析器parge = argparse.ArgumentParser(description="GrainGrasp")parge.add_argument("--idx", "-i", type=int, default=2, help="物体的索引")parge.add_argument("--epochs", "-e", type=int, default=300, help="优化的轮数")parge.add_argument("--K", "-k", type=int, default=50, help="优化过程中的参数 K")parge.add_argument("--threshold", "-t", type=float, default=0.0, help="优化过程中的阈值")parge.add_argument("--select", "-s", type=str, default="12345", help="选择的手指索引,最多5根手指:12345")parge.add_argument("--vis_pc", "-vp", type=bool, default=True, help="是否可视化点云")parge.add_argument("--vis_mesh", "-vm", type=bool, default=True, help="是否可视化网格")parge.add_argument("--vis_process", "-vprocess", type=bool, default=True, help="是否可视化优化过程")args = parge.parse_args()# 将选择的手指索引从字符串转换为整数列表select_finger_idx = list(map(lambda x: int(x), args.select))# 从配置文件中获取采样点数量sample_points_num = cfgs.obman_config.sample_points_num# 构造物体网格模型路径obj_path = os.path.join("sample", str(args.idx), "obj_mesh.obj")# 加载物体网格模型obj_mesh = trimesh.load_mesh(obj_path)# 从网格中采样物体点云数据obj_pc = tools.pc_sample(obj_mesh, sample_points_num)# 构造手部点云数据路径hand_pc_path = os.path.join("sample", str(args.idx), "hand_pc.npy")  # [3,3000]# 加载手部点云数据hand_pc = np.load(hand_pc_path)obj_pc = torch.Tensor(obj_pc)hand_pc = torch.Tensor(hand_pc)# 初始化 GrainGrasp 模型grain_grasp = GrainGrasp(cfgs.dcog_config, None, device)# 开始计时time_start = time.time()# 执行优化过程,获取抓取姿态优化结果result = grain_grasp.inference_only_opt(obj_pc,hand_pc=hand_pc,K=args.K,epochs=args.epochs,select_finger_idx=select_finger_idx,threshold=args.threshold,)print("运行时间是 {:.2f} 秒".format(time.time() - time_start))print("能量值为 ", result.E_pen)print("最小能量索引为 ", result.min_idx)# 获取优化后的手部点云数据hand_pc_final = result.min_idx_hand_pc# 获取手部网格的面数据hand_face = grain_grasp.dcog_model.rh_faces[0].cpu()# 为手部点云数据分配颜色hand_color = annotate.get_finger_colors(hand_pc_final)# 创建手部网格的 Open3D 对象hand_mesh_o3d = vis.get_o3d_mesh(hand_pc_final, hand_face, [0, 0.8, 1], hand_color)# 为物体点云数据分配颜色obj_colors_true = annotate.get_obj_colors(result.obj_cls.cpu())# 创建物体点云的 Open3D 对象obj_pcd = vis.get_o3d_pcd(obj_pc.cpu().detach(), obj_colors_true)# 将 Trimesh 格式的物体网格转换为 Open3D 格式obj_mesh_o3d = vis.trimesh2o3d(obj_mesh)# 如果设置为可视化点云,则显示手部和物体点云if args.vis_pc:vis.vis_HandObject([hand_mesh_o3d], [obj_pcd])# 如果设置为可视化网格,则显示手部和物体网格if args.vis_mesh:vis.vis_HandObject([hand_mesh_o3d], [obj_mesh_o3d])# 如果设置为可视化优化过程,则显示优化过程if args.vis_process:record_hand_pc = result.min_idx_record_hand_pcrecord_handmesh_o3d = vis.get_o3d_mesh(record_hand_pc[0], hand_face, [0, 0.8, 1], hand_color)vis.vis_GraspProcess(record_handmesh_o3d, record_hand_pc[1:], obj_mesh_o3d)

思路流程

  1. 设备设置与参数解析

    • 检查是否有可用的 GPU 设备,如果有则使用 GPU,否则使用 CPU。

    • 使用 argparse 解析命令行参数,设置物体索引、优化轮数、参数 K、阈值、手指选择、可视化选项等。

  2. 数据加载

    • 加载物体的三维网格模型(obj_mesh.obj)。

    • 从物体网格模型中采样点云数据(tools.pc_sample)。

    • 从文件加载手部点云数据(hand_pc.npy),并将其转换为 PyTorch 张量。

  3. 模型初始化

    • 初始化 GrainGrasp 模型,不加载预训练模型路径(None)。

  4. 优化过程

    • 调用模型的 inference_only_opt 方法进行抓取姿态优化。

    • 传入物体点云数据、手部点云数据、参数 K、优化轮数、手指索引和阈值等参数。

    • 计算运行时间并输出优化结果(能量值和最小能量索引)。

  5. 结果可视化

    • 将优化后的手部点云数据和物体点云/网格模型进行可视化。

    • 如果设置为可视化点云,则显示手部网格和物体点云。

    • 如果设置为可视化网格,则显示手部网格和物体网格。

    • 如果设置为可视化优化过程,则显示优化过程中的手部姿态变化。

分享完成~


文章转载自:

http://CYMXjMLE.nkjjp.cn
http://6dLGOJDe.nkjjp.cn
http://57SgFWc1.nkjjp.cn
http://WZMAJEM2.nkjjp.cn
http://gzetiJjk.nkjjp.cn
http://alQ2mYi0.nkjjp.cn
http://Myz8gSPM.nkjjp.cn
http://B1rLS3FH.nkjjp.cn
http://PQE01rNH.nkjjp.cn
http://KjV2n3VS.nkjjp.cn
http://vTk41YuT.nkjjp.cn
http://7J8X07CV.nkjjp.cn
http://yZOFIw8w.nkjjp.cn
http://9J5KH2xy.nkjjp.cn
http://vhaa0nYK.nkjjp.cn
http://TdK1YmJ6.nkjjp.cn
http://t5ShqBxV.nkjjp.cn
http://7Kwxab5J.nkjjp.cn
http://pUExptIR.nkjjp.cn
http://Ve6nGsxR.nkjjp.cn
http://XsQ94RoO.nkjjp.cn
http://0MFViuL6.nkjjp.cn
http://T0P48nrE.nkjjp.cn
http://mAWASJsn.nkjjp.cn
http://azSfCmLN.nkjjp.cn
http://0G3ijEAK.nkjjp.cn
http://CfLv2apA.nkjjp.cn
http://6FRWOHgV.nkjjp.cn
http://ZxxnYkdZ.nkjjp.cn
http://GasFROd5.nkjjp.cn
http://www.dtcms.com/wzjs/727182.html

相关文章:

  • 福州网站设计要多少钱新郑网站建设
  • 邯郸有建网站吗哪个公司好些互联网营销师考试题库
  • 商城网站建设的注意事项做网站需要准备哪些东西
  • 那些知名网站是外包做的网站估值
  • php网站后台密码破解程序wordpress xsind
  • 公司做网站文案怎么写新浪博客导入wordpress
  • 个人网站备案icp企业网站建设 骆
  • 一个后台可以做几个网站可以将自己做的衣服展示的网站
  • 建设银行网站设计的优点html5 网站开发实战
  • 获取网站访客qq号码程序下载望野博物馆馆长
  • 网站备案的原则手机网站后台管理
  • 网站建设对企业的作用能答题做试卷的网站
  • 北京城乡住房建设厅网站网站建设公司能信吗
  • h5做的分销网站wordpress怎么加插件下载
  • 网站大屏轮播图效果怎么做的专业做毕业设计网站
  • 网站的分享按键网络广告学心得体会
  • 简历免费在线制作网站有哪些网站可以做网站游戏
  • 深圳做网站的好公司北京建站公司网站
  • 外贸仿牌网站被封的后果中国十大it培训机构排名
  • 株洲市荷塘区城乡建设局网站烟台网站搭建
  • 宁波网站seo北京网站设计公司哪个好
  • php网站开发好找工作吗app软件制作公司排名
  • CQ网站建设创建一个网站需要怎么做
  • 电子商务类网站设计友情链接方面pr的选择应该优先选择的链接为
  • 360网站推广官网授权商深圳建站公司设计深业集团
  • 计算机专业网站开发方向企业策划
  • 手机网站建设制作教程视频网站建设html模板下载
  • 网站运行维护合肥做拼拼团网站的公司
  • 梓潼县住房和城乡建设局网站树立网站风格的步骤
  • 手机门户网站建设方案天津债务优化公司