Real-World Multiobject, Multigrasp Detection的demo复现

论文的资源网址及其意义

https://github.com/ivalab
#论文资源的主网址,其中 grasp_multiObject_multiGrasp 是指导复现 demo的

电脑的环境

python 3.5+tensorflow+cuda9.1+cudnn7

在复现过程中遇到的问题

第一类:缺少easydict, numpy, sharply等等包

解决办法:直接pip install 一下就好,然后如果出错就sudo pip install

第二类:ros和tensorflow的python环境相冲突

_graspRGD.py --net res50 --dataset grasp
Traceback (most recent call last):
  File "./tools/demo_graspRGD.py", line 20, in <module>
    from model.test import im_detect
  File "/home/david/grasping_program/grasp_multiObject_multiGrasp-master/tools/../lib/model/test.py", line 10, in <module>
    import cv2
ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type

解决错误具体参照:
https://blog.youkuaiyun.com/qq_34544129/article/details/81946494

可以在需要运行的python文件(即使用import cv2的python文件)中(注意要找到那个文件,然后在开头添加以下代码),添加以下代码:

import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')

通过这两行代码可以把ROS写入path中的路径给清除,进行可以import anaconda中的cv2包。

第三类:运行过程中的不兼容

1. 找不到目录

直接在主文件夹下面新建一个目录就好,论文作者应该是只把自己做的包的一部分给丢上来啦,所以缺的路径自己建好文件夹,然后丢进去

找不到文件也是一样的,创建目录,然后把下载好的文件放进去

2. TypeError: bottleneck() argument after ** must be a mapping, not tuple

在测试的时候发现
print(type(unit)) #测试格,输出的格式是tuple
print (unit) #输出为(256, 64, 1),是一个元组
所以解决问题的思路应该是把格式从tuple转成mapping,并且还得是变量类型的转换。
在翻上去查到了unit的各个含义以后,见 https://blog.youkuaiyun.com/stesha_chen/article/details/81870591

加了一行转换的代码:

unit={'depth':unit[0],'depth_bottleneck':unit[1],'stride':unit[2]} #强行把格式从tuple改成mapping

然后如果直接用常量类型转换(‘depth’=256)的话,就会出现后面tensor格式不对齐的现象+

总结

下次运行demo可能会更得心应手一些,原来找不到目录和找不到包还有格式不通这种事情都会出现,既然知道了会出现的话下次就不会很慌啦

调程序必须得学会阅读错误,把错误的意思搞明白,不然每次直接百度,一对一的找答案,就很机械,要学会逻辑推理。

然后接下来的工作:

  1. 进一步的阅读论文,学会创建自己的数据集然后用tensorflow训练一遍
  2. 深入理解tensorflow的框架然后改一改框架
### 关于 YOLO-World 的实时开放词汇对象检测 YOLO-World 是一种先进的开放词汇对象检测框架,它结合了预训练的语言模型和视觉特征提取器来实现跨类别的目标识别能力[^1]。该方法的核心在于利用大规模语言模型中的语义信息增强传统计算机视觉模型的表现力。 #### 复现 YOLO-World 的主要步骤概述 为了成功复现 YOLO-World 模型,可以参考以下技术要点: 1. **数据准备** 需要收集并处理用于训练的基础图像数据集以及对应的标签文件。通常使用的公开数据集包括 COCO 和 ImageNet 等。这些数据集提供了丰富的标注信息,有助于构建高质量的训练环境。 2. **模型架构设计** YOLO-World 使用了一个融合模块将 CLIP(Contrastive Language–Image Pre-training)或其他多模态模型生成的文字嵌入向量与卷积神经网络提取的空间特征相结合。这种结构允许系统理解未见过的新类别名称而无需重新训练整个体系。 3. **代码库推荐** GitHub 上存在多个基于 PyTorch 或 TensorFlow 开发的相关项目可供学习借鉴。例如,“openvocabulary-detection”仓库提供了一套完整的解决方案,涵盖了从基础组件搭建到最终推理部署的所有环节。 4. **性能优化技巧** 在实际操作过程中,可以通过调整超参数、引入注意力机制等方式进一步提升检测精度。此外,还可以尝试迁移学习策略以减少计算资源消耗的同时获得更好的泛化效果。 以下是简单的 Python 脚本片段展示如何加载必要的依赖项并与自定义配置一起初始化一个基本版本的对象探测实例: ```python import torch from yoloworld.model import YoloWorldModel device = 'cuda' if torch.cuda.is_available() else 'cpu' model = YoloWorldModel(pretrained=True).to(device) def detect_objects(image_path): image_tensor = preprocess_image(image_path) # 定义自己的图片前处理函数 outputs = model(image_tensor.unsqueeze(0)) predictions = postprocess_outputs(outputs) # 同样需自行编写后置处理逻辑 return predictions ``` > 注:上述仅为示意代码,具体实现细节可能因不同开发者的设计思路有所差异,请参照官方文档或社区贡献者分享的最佳实践案例深入研究。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值