【计算机视觉 | 目标检测】RegionCLIP的环境部署和代码测试(含源代码)

简介: RegionCLIP: Region-based Language-Image Pretraining

一、导读

This is the official PyTorch implementation of RegionCLIP (CVPR 2022).

image.png
我们提出 RegionCLIP,它显著扩展了 CLIP 以学习区域级视觉表示。 RegionCLIP 支持图像区域和文本概念之间的细粒度对齐,从而支持基于区域的推理任务,包括零样本对象检测和开放词汇对象检测。

预训练:我们利用 CLIP 模型将图像区域与模板标题进行匹配,然后预训练我们的模型以对齐这些区域-文本对。

零样本推理:经过预训练后,学习到的区域表示支持用于对象检测的零样本推理。

学习到的 RegionCLIP 模型可以通过附加的对象检测注释进行进一步微调,从而使我们的模型能够用于完全监督或开放词汇对象检测。

我们的方法展示了零样本目标检测和开放词汇目标检测的最先进结果。

二、环境部署

下一步,下载RegionCLIP文件,下载地址作者已经给出:

https://github.com/microsoft/RegionCLIP.git

image.png
完成RegionCLIP文件的下载后,便需要配置RegionCLIP进行zero-shot推理的环境配置以及所需要的配置文件。

然后进行环境配置:

!python -m pip install -e RegionCLIP

image.png
image.png
安装其他所需的文件:

!pip install opencv-python timm diffdist h5py sklearn ftfy

image.png

!pip install git+https://github.com/lvis-dataset/lvis-api.git

image.png

三、权重文件配置

首先需要下载一个pretrained_ckpt文件夹下到RegionCLIP文件夹下:

image.png
文件夹的地址为:

https://drive.google.com/drive/folders/1hzrJBvcCrahoRcqJRqzkIGFO_HUSJIii

image.png
由于共享的文件夹不是pretrained_ckpt名称,所以将其重命名为pretrained_ckpt即可。

四、数据集的配置

还需要一个lvis验证集的label数据集,这个直接去官网下载即可,不是很大,官网地址:

image.png
注意的是,要选择路径”RegionCLIP””datasets”后再点击新建,把文件夹上传到RegionCLIP/datasets下,并且文件夹名为lvis:

image.png
至此,你已经完成好了RegionCLIP的zero-shot测试的相关文件配置,下面要做的就是running code啦。

具体的一些配置如下:

image.png

五、代码执行

记得先切换到对应的目录下:

image.png
执行如下代码:

python ./tools/train_net.py \
--eval-only \
--num-gpus 1 \
--config-file ./configs/LVISv1-InstanceSegmentation/CLIP_fast_rcnn_R_50_C4_custom_img.yaml \
MODEL.WEIGHTS ./pretrained_ckpt/regionclip/regionclip_pretrained-cc_rn50x4.pth \
MODEL.CLIP.TEXT_EMB_PATH ./pretrained_ckpt/concept_emb/lvis_1203_cls_emb_rn50x4.pth \
MODEL.CLIP.OFFLINE_RPN_CONFIG ./configs/LVISv1-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml \
MODEL.CLIP.TEXT_EMB_DIM 640 \
MODEL.RESNETS.DEPTH 200 \
MODEL.ROI_BOX_HEAD.POOLER_RESOLUTION 18 \

image.png
运行结果如下:

image.png
然后会在RegionCLIP目录生成一个“output/inference/lvis_instances_results.json"文件夹:

image.png
为了可视化最后的zero-shot测试结果,执行如下代码:

python ./tools/visualize_json_results.py \
--input ./output/inference/lvis_instances_results.json \
--output ./output/regions \
--dataset lvis_v1_val_custom_img \
--conf-threshold 0.05 \
--show-unique-boxes \
--max-boxes 25 \
--small-region-px 8100\

然后找到根据路径RegionCLIP/output/regions找到对应的测试结果图片:

image.png
结果展示如下:
image.png
image.png
从测试结果可以看出,RegionCLIP的zero-shot推理主要集中在未知类别的目标检测,也就是说对于一些常见的类别如person、book、cup等,RegionCLIP的zero-shot就不进行定位和识别,只是检测少见的类,也就是一般数据集如coco里面没有的类别,比如第一张图片里的pantyose(连裤袜,这里识别错了)、kimono(和服)、以及第二张图片里的shopping_cart、short_pants、deck_chair等这些类别在常见的数据集是没有标记的,只是一些关于图片的描述中可能会出现的,也就是image-caption数据集中才会有的。

相关文章
|
21天前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
31 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
26天前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
32 4
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
111 1
|
2月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
2985 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
1月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
1月前
|
缓存 自然语言处理 并行计算
基于NVIDIA A30 加速卡推理部署通义千问-72B-Chat测试过程
本文介绍了基于阿里云通义千问72B大模型(Qwen-72B-Chat)的性能基准测试,包括测试环境准备、模型部署、API测试等内容。测试环境配置为32核128G内存的ECS云主机,配备8块NVIDIA A30 GPU加速卡。软件环境包括Ubuntu 22.04、CUDA 12.4.0、PyTorch 2.4.0等。详细介绍了模型下载、部署命令及常见问题解决方法,并展示了API测试结果和性能分析。
1118 1
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
530 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
146 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
63 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
231 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)