AILab-CVC / YOLO-World

[CVPR 2024] Real-Time Open-Vocabulary Object Detection
https://www.yoloworld.cc
GNU General Public License v3.0
4.4k stars 426 forks source link

image_demo运行起来太慢了,有没有连续快速图片识别的方法 #246

Open rabum opened 5 months ago

rabum commented 5 months ago

有没有能秒出结果的办法?

wondervictor commented 5 months ago

可以采用本地部署或者使用image_demo.py实现,另外,可视化会占用比较多的时间。

rabum commented 5 months ago

可以采用本地部署或者使用image_demo.py实现,另外,可视化会占用比较多的时间。

我就是本地部署用image_demo.py跑的,每次运行到下面这里就会等很久: image 统计了一下,一张图片跑了一分多钟: image

wondervictor commented 5 months ago

可以提供一下命令么

wondervictor commented 5 months ago

以及环境配置

rabum commented 5 months ago

可以提供一下命令么 命令是python image_demo.py ./configs/pretrain/yolo_world_v2_x_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py ./model/yolo_world_v2_x_obj365v1_goldg_cc3mlite_pretrain-8698fbfa.pth ./data/images/IMG_0193.JPG 'person,laptop,paper' --topk 100 --threshold 0.3 --output-dir demo_outputs 环境如下: image 另外我服务器GPU有两个,在image_demo.py里设置了参数'--device' default='cuda:0,1'依然只用一个不知道为什么: image

wondervictor commented 5 months ago
  1. 目前demo是只支持单卡推理,有需求的话可以后续考虑拓展一个distributed inference demo。
  2. 如果不需要可视化结果,可以考虑注释掉可视化部分code,比较耗时。
  3. 推理一次可以支持多张图像,可以传入一个文件夹路径(而不是单张图像),demo会默认对文件夹目录下所有图片进行推理预测。
rabum commented 5 months ago
  1. 目前demo是只支持单卡推理,有需求的话可以后续考虑拓展一个distributed inference demo。
  2. 如果不需要可视化结果,可以考虑注释掉可视化部分code,比较耗时。
  3. 推理一次可以支持多张图像,可以传入一个文件夹路径(而不是单张图像),demo会默认对文件夹目录下所有图片进行推理预测。

可视化部分就是注释label image的吗?我去掉了后速度是一样的: image

image

wondervictor commented 5 months ago

目前看起来正常,可以多图进行推理,因为中间会计算CLIP的embed降低推理速度,可以考虑在中间加入一行code提前对texts完成编码并不再重复计算,runner.model.reparameterize(texts), 如下:

progress_bar = ProgressBar(len(images))
runner.model.reparameterize(texts)
for image_path in images:
    inference_detector(runner,
                       image_path,

此外,建议一次性推理多张图,这样速度相对稳定一些,模型推理需要warmup。

rabum commented 5 months ago

目前看起来正常,可以多图进行推理,因为中间会计算CLIP的embed降低推理速度,可以考虑在中间加入一行code提前对texts完成编码并不再重复计算,runner.model.reparameterize(texts), 如下:

progress_bar = ProgressBar(len(images))
runner.model.reparameterize(texts)
for image_path in images:
    inference_detector(runner,
                       image_path,

此外,建议一次性推理多张图,这样速度相对稳定一些,模型推理需要warmup。

试了下多张图跟一张图速度差不多,所以大部分时间是用来启动模型了吗,clip和yolo_world都是五百多M的模型竟然要这么久?

wondervictor commented 5 months ago

是的,大部分时间都是在启动环境(主要还是mm系列框架有很多东西需要初始化),如果涉及到的批量的处理的话,可以直接一次性输入多张图像。

trihook commented 5 months ago

图片接口是 image_path , 矩阵怎么传进去,里面的代码挺复杂的

tycallen commented 5 months ago

同关注

图片接口是 image_path , 矩阵怎么传进去,里面的代码挺复杂的

ZhouXiner commented 4 months ago
截屏2024-05-05 00 23 26

这么改改呗,sample_demo.py里面有