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

yolo-world踩坑指南

官方源码: https://github.com/AILab-CVC/YOLO-World

1 安装

安装这一块的坑很多,这一块的安装指导非常混乱,很容易把环境搞崩, 建议conda 新建一个环境。

pip install -e . 直接安装的话, 会报各种版本的错。 另外还有一些依赖未包含, 运行时会报错。

索性手动安装了所需要的依赖包。

最终安装的可以使用的版本:

torch                                    1.13.1+cu117
torchvision                              0.14.1+cu117
transformers                             4.40.0
openmim                                  0.3.9
openmim                                  0.3.9
mmcv-lite                                2.2.0
mmdet                                    3.0.0           
mmengine                                 0.10.3
mmcv                                     2.1.0
mmcv-lite                                2.2.0
mmyolo                                   0.6.0
lvis                                     0.5.3

注意。 上面安装的mmcv的版本不满足要求,会报错, 具体报错如下:

File "/data/joyiot/leo/codes/YOLO-World/yolo_world/__init__.py", line 10, in <module>from .models import *  # noqaFile "/data/joyiot/leo/codes/YOLO-World/yolo_world/models/__init__.py", line 2, in <module>from .backbones import *  # noqaFile "/data/joyiot/leo/codes/YOLO-World/yolo_world/models/backbones/__init__.py", line 5, in <module>from .mm_backbone import (File "/data/joyiot/leo/codes/YOLO-World/yolo_world/models/backbones/mm_backbone.py", line 8, in <module>from mmyolo.registry import MODELSFile "/home/pinefield/anaconda3/envs/leo_py38/lib/python3.8/site-packages/mmyolo/__init__.py", line 22, in <module>assert (mmcv_version >= digit_version(mmcv_minimum_version)
AssertionError: MMCV==2.2.0 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.1.0.

是因为版本不满足要求, 目标版本装了好久没装上, 最后的解决办法简单粗暴, 直接吧报错的版本检查部分删除, 实测没什么问题。

手动安装好依赖后, 把pyproject.toml文件中的依赖部分都删除, 然后再运行pip install -e .
如果不执行pip install -e . 的话, yolo-world就不是一个python包,代码中的很多路径需要修改, 比较麻烦。

2 运行

运行image_demo.py

config 文件用 configs/pretrain/yolo_world_v2_x_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py
checkpoint 用checkpoints/yolo_world_v2_x_obj365v1_goldg_cc3mlite_pretrain_1280ft-14996a36.pth

这一点比较坑, demo中没有给出示例, 也没有给出下载地址。我是通过issue中其他人的指导找到的。checkpoint 可以在https://huggingface.co/wondervictor/YOLO-World/tree/main 下载。

另外, clip 模型名字是openai/clip-vit-base-patch32,代码中给的有误。
对应代码是:

text_model_name = 'openai/clip-vit-base-patch32'

这会在huggingface上下载对应模型权重, 如果无法访问, 可以修改为国内源。

export HF_ENDPOINT=https://hf-mirror.com

还有lvis_v1_minival_inserted_image_name.json 这个文件依赖, 需要自行下载, 直接google 搜索即可找到。

最后就是configs/pretrain/yolo_world_v2_x_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py 中的一些文件地址, 需要根据实际情况修改。

最后终于成功运行:

(leo_py38) pinefield@edge-gpu-01:/data/joyiot/leo/codes/YOLO-World/demo$ python3 image_demo.py   --image  ./sample_images/bus.jpg   --config  ../configs/pretrain/yolo_world_v2_x_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py    --checkpoint ../checkpoints/yolo_world_v2_x_obj365v1_goldg_cc3mlite_pretrain_1280ft-14996a36.pth
SupervisionWarnings: BoundingBoxAnnotator is deprecated: `BoundingBoxAnnotator` is deprecated and has been renamed to `BoxAnnotator`. `BoundingBoxAnnotator` will be removed in supervision-0.26.0.
Loads checkpoint by local backend from path: ../checkpoints/yolo_world_v2_x_obj365v1_goldg_cc3mlite_pretrain_1280ft-14996a36.pth
[                                                  ] 0/1, elapsed: 0s, ETA:UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:3190.)
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 1/1, 1.8 task/s, elapsed: 1s, ETA:     0s

在这里插入图片描述

http://www.xdnf.cn/news/2654.html

相关文章:

  • 服务器数据备份,服务器怎么备份数据呢?
  • 【Google Colab】利用unsloth针对医疗数据集进行大语言模型的快速微调(含跑通原代码)
  • 实现一个瀑布流布局
  • 文章记单词 | 第48篇(六级)
  • 【计算机组成原理实验】实验一 运算部件实验_加法器及计算机性能指标
  • 每日算法-250427
  • java异常
  • C++中的继承
  • 前端面试高频算法
  • 从增量式到绝对式 —— 深度理解编码器的原理与选型
  • 香港GPU显卡服务器与GPU云服务器的区别
  • linux blueZ 第六篇:嵌入式与工业级应用案例——在 Raspberry Pi、Yocto 与 Buildroot 上裁剪 BlueZ 并落地实战
  • 【遥感科普】不同波段的卫星影像分别有什么实际应用场景?
  • C语言内敛函数
  • Linux 进程替换
  • 深度解析 `FOR UPDATE`:数据库行锁的精准掌控之道
  • G1(Garbage-First)垃圾回收器与JVM内存
  • http://noi.openjudge.cn/_2.5基本算法之搜索_2152:Pots
  • C++ 数组长度sizeof(a)/sizeof(a[0])(易错)
  • 《代码整洁之道》第6章 对象和数据结构 - 笔记
  • 【第三十三周】BLIP论文阅读笔记
  • 如何将数据输入到神经网络中
  • I2S音频模块结构设计
  • 【GESP】C++三级练习 luogu-B2114 配对碱基链
  • flutter实践:比例对比线图实现
  • 第35课 常用快捷操作——用“鼠标左键”拖动图元
  • 集成方案 | Docusign + 甄零科技,赋能企业海外业务高效增长!
  • 第十三步:vue
  • 【实战篇】数字化打印——打印格式设计器的功能说明
  • 学习笔记2(Lombok+算法)