GLIP: 基于语言-图像预训练的视觉理解
更新
-
2023年1月17日:从图像理解到开放集定位的图像生成?请查看GLIGEN (基于定位的语言到图像生成)
- GLIGEN: (边界框, 概念) $\rightarrow$ 图像 || GLIP: 图像 $\rightarrow$ (边界框, 概念)
-
2022年9月19日:GLIPv2已被NeurIPS 2022接收(更新版本)。
-
2022年9月18日:组织ECCV研讨会野外计算机视觉 (CVinW),其中举办两个挑战赛,评估预训练视觉模型在下游任务中的零样本、少样本和全样本性能:
- 野外图像分类(ICinW)挑战赛评估20个图像分类任务。
- 野外目标检测(ODinW)挑战赛评估35个目标检测任务。
$\qquad$ [研讨会] $\qquad$ [IC 挑战赛] $\qquad$ [OD 挑战赛]
-
2022年9月13日:更新了HuggingFace演示!欢迎尝试!
- 致谢:非常感谢@HuggingFace提供Space GPU升级以托管GLIP演示!
-
2022年6月21日:GLIP被选为CVPR 2022最佳论文决赛入围者!
-
2022年6月16日:ODinW基准测试发布!GLIP-T A&B发布!
-
2022年6月13日:GLIPv2已在Arxiv上发布 https://arxiv.org/abs/2206.05836!
-
2022年4月30日:更新了Colab演示!
-
2022年4月14日:GLIP已被CVPR 2022接受为口头报告!首个版本的代码和预训练模型已发布!
-
2021年12月6日:GLIP论文在arxiv上发布 https://arxiv.org/abs/2112.03857。
-
2021年11月23日:项目页面建立。
简介
本仓库是GLIP的项目页面。GLIP在各种目标级识别任务中展示了强大的零样本和少样本迁移能力。
- 直接在COCO和LVIS上评估时(未见过COCO中的任何图像),GLIP分别达到49.8 AP和26.9 AP,超过了许多有监督的基线。
- 在COCO上微调后,GLIP在验证集上达到60.8 AP,在测试开发集上达到61.5 AP,超越了之前的最先进水平。
- 当迁移到13个下游目标检测任务时,少样本GLIP与全监督的Dynamic Head相媲美。
我们提供以下代码:
- 在检测和定位数据上预训练GLIP;
- 在标准基准(COCO、LVIS、Flickr30K)和自定义COCO格式数据集上零样本评估GLIP;
- 在标准基准(COCO)和自定义COCO格式数据集上微调GLIP;
- Colab演示。
- 用于**野外目标检测基准(ODinW)**的工具包,包含35个下游检测任务。
请参阅相应部分获取说明。
演示
请查看链接的Colab演示!
安装和设置
环境
本仓库需要Pytorch>=1.9和torchvision。我们建议使用docker来设置环境。你可以使用这个预构建的docker镜像 docker pull pengchuanzhang/maskrcnn:ubuntu18-py3.7-cuda10.2-pytorch1.9
或者这个 docker pull pengchuanzhang/pytorch:ubuntu20.04_torch1.9-cuda11.3-nccl2.9.9
,取决于你的GPU。
然后安装以下包:
pip install einops shapely timm yacs tensorboardX ftfy prettytable pymongo
pip install transformers
python setup.py build develop --user
骨干网络检查点 将ImageNet预训练的骨干网络检查点下载到MODEL
文件夹中。
mkdir MODEL
wget https://penzhanwu2bbs.blob.core.windows.net/data/GLIPv1_Open/models/swin_tiny_patch4_window7_224.pth -O swin_tiny_patch4_window7_224.pth
wget https://penzhanwu2bbs.blob.core.windows.net/data/GLIPv1_Open/models/swin_large_patch4_window12_384_22k.pth -O swin_large_patch4_window12_384_22k.pth
模型库
检查点主机移动 检查点链接已过期。我们正在将检查点移至 https://huggingface.co/harold/GLIP/tree/main。目前大多数检查点已可用。我们正在努力尽快托管剩余的检查点。
模型 | COCO [1] | LVIS [2] | LVIS [3] | ODinW [4] | 预训练数据 | 配置 | 权重 |
---|---|---|---|---|---|---|---|
GLIP-T (A) | 42.9 / 52.9 | - | 14.2 | ~28.7 | O365 | 配置 | 权重 |
GLIP-T (B) | 44.9 / 53.8 | - | 13.5 | ~33.2 | O365 | 配置 | 权重 |
GLIP-T (C) | 46.7 / 55.1 | 14.3 | 17.7 | 44.4 | O365,GoldG | 配置 | 权重 |
GLIP-T [5] | 46.6 / 55.2 | 17.6 | 20.1 | 42.7 | O365,GoldG,CC3M,SBU | 配置 [6] | 权重 |
GLIP-L [7] | 51.4 / 61.7 [8] | 29.3 | 30.1 | 51.2 | FourODs,GoldG,CC3M+12M,SBU | 配置 [9] | 权重 |
[1] COCO val2017上的零样本和微调性能。
[2] 使用最后一个预训练检查点在LVIS minival上的零样本性能(APr)。
[3] 在LVIS上,模型在预训练过程中可能会轻微过拟合。因此我们报告了LVIS上的两个数字:最后一个检查点的性能(LVIS[2])和预训练过程中最佳检查点的性能(LVIS[3])。
[4] 在13个ODinW数据集上的零样本性能。GLIP论文中报告的数字来自预训练过程中的最佳检查点,可能略高于发布的最后检查点的数字,类似于LVIS的情况。
[5] 本仓库发布的GLIP-T在Conceptual Captions 3M和SBU captions上进行了预训练。它在论文的表1和附录C.3中有提到。它在下游性能上与主论文中的GLIP-T略有不同。我们将在下一次更新中发布使用CC3M和SBU captions数据进行预训练的支持。
[6] 此配置仅用于零样本评估和微调。使用CC3M和SBU captions数据的预训练配置将在后续更新。
[7] 本仓库发布的GLIP-L在Conceptual Captions 3M+12M和SBU captions上进行了预训练。由于用于注释标题数据的模型相比主论文有所改进,它的性能略优于主论文中的GLIP-L。我们将在下一次更新中发布使用CC3M+12M和SBU captions数据进行预训练的支持。
[8] 使用了多尺度测试。
[9] 此配置仅用于零样本评估和微调。使用CC3M+12M和SBU captions数据的预训练配置将在后续更新。
预训练
所需数据。 按照DATA.md中的说明准备"Objects365"、"Flickr30K"和"MixedGrounding"数据。使用标题数据(Conceptual Captions和SBU captions)进行训练的支持将很快发布。
命令。
使用以下命令进行预训练(请相应更改config-file;查看模型动物园以获取相应的配置;将{output_dir}更改为您想要的输出目录):
python -m torch.distributed.launch --nnodes 2 --nproc_per_node=16 tools/train_net.py \
--config-file configs/pretrain/glip_Swin_T_O365_GoldG.yaml \
--skip-test --use-tensorboard --override_output_dir {output_dir}
对于训练GLIP-T模型,我们在32GB V100机器上使用了nnodes = 2
、nproc_per_node=16
。对于训练GLIP-L模型,我们在32GB V100机器上使用了nnodes = 4
、nproc_per_node=16
。请根据您的本地机器相应设置环境。
(零样本)评估
COCO评估
按照DATA.md中的说明准备"COCO/val2017"数据。根据"模型动物园"设置{config_file}、{model_checkpoint};将{output_dir}设置为存储评估结果的文件夹。
python tools/test_grounding_net.py --config-file {config_file} --weight {model_checkpoint} \
TEST.IMS_PER_BATCH 1 \
MODEL.DYHEAD.SCORE_AGG "MEAN" \
TEST.EVAL_TASK detection \
MODEL.DYHEAD.FUSE_CONFIG.MLM_LOSS False \
OUTPUT_DIR {output_dir}
LVIS评估
我们遵循MDETR使用FixedAP标准进行评估。根据"模型动物园"设置{config_file}、{model_checkpoint}。按照DATA.md中的说明准备"COCO/val2017"数据。
python -m torch.distributed.launch --nproc_per_node=4 \
tools/test_grounding_net.py \
--config-file {config_file} \
--task_config configs/lvis/minival.yaml \
--weight {model_checkpoint} \
TEST.EVAL_TASK detection OUTPUT_DIR {output_dir}
TEST.CHUNKED_EVALUATION 40 TEST.IMS_PER_BATCH 4 SOLVER.IMS_PER_BATCH 4 TEST.MDETR_STYLE_AGGREGATE_CLASS_NUM 3000 MODEL.RETINANET.DETECTIONS_PER_IMG 300 MODEL.FCOS.DETECTIONS_PER_IMG 300 MODEL.ATSS.DETECTIONS_PER_IMG 300 MODEL.ROI_HEADS.DETECTIONS_PER_IMG 300
如果您希望在Val 1.0上评估,请将--task_config
设置为configs/lvis/val.yaml
。
ODinW / 自定义数据集评估
GLIP支持在自定义数据集上轻松评估。目前,代码支持对COCO格式的数据集进行评估。
我们将以ODinW中的Aquarium数据集为例,展示如何在自定义COCO格式数据集上进行评估。
-
以COCO格式将原始数据集从RoboFlow下载到
DATASET/odinw/Aquarium
。每个训练/验证/测试拆分都有一个对应的annotation
文件和一个image
文件夹。 -
从注释文件中删除背景类。这可以简单到打开"_annotations.coco.json"并从"categories"中删除"id:0"的条目。为方便起见,我们提供了Aquarium的修改后的注释文件:
wget https://penzhanwu2bbs.blob.core.windows.net/data/GLIPv1_Open/odinw/Aquarium/Aquarium%20Combined.v2-raw-1024.coco/test/annotations_without_background.json -O DATASET/odinw/Aquarium/Aquarium\ Combined.v2-raw-1024.coco/test/annotations_without_background.json wget https://penzhanwu2bbs.blob.core.windows.net/data/GLIPv1_Open/odinw/Aquarium/Aquarium%20Combined.v2-raw-1024.coco/train/annotations_without_background.json -O DATASET/odinw/Aquarium/Aquarium\ Combined.v2-raw-1024.coco/train/annotations_without_background.json wget https://penzhanwu2bbs.blob.core.windows.net/data/GLIPv1_Open/odinw/Aquarium/Aquarium%20Combined.v2-raw-1024.coco/valid/annotations_without_background.json -O DATASET/odinw/Aquarium/Aquarium\ Combined.v2-raw-1024.coco/valid/annotations_without_background.json
-
然后创建一个yaml文件,如
configs/odinw_13/Aquarium_Aquarium_Combined.v2-raw-1024.coco.yaml
。yaml中需要注意几个字段:DATASET.CAPTION_PROMPT允许手动更改提示(默认提示只是简单地连接所有类别);
MODELS..NUM_CLASSES需要设置为数据集中的类别数(包括背景类)。例如,Aquarium有7个非背景类别,因此MODELS..NUM_CLASSES设置为8;
-
运行以下命令在数据集上进行评估。根据"模型库"设置
{config_file}
、{model_checkpoint}
。将 {odinw_configs} 设置为我们刚刚准备的任务 yaml 文件的路径。
python tools/test_grounding_net.py --config-file {config_file} --weight {model_checkpoint} \
--task_config {odinw_configs} \
TEST.IMS_PER_BATCH 1 SOLVER.IMS_PER_BATCH 1 \
TEST.EVAL_TASK detection \
DATASETS.TRAIN_DATASETNAME_SUFFIX _grounding \
DATALOADER.DISTRIBUTE_CHUNK_AMONG_NODE False \
DATASETS.USE_OVERRIDE_CATEGORY True \
DATASETS.USE_CAPTION_PROMPT True
Flickr30K 评估
按照 DATA.md 中的说明准备 Flickr30K
数据。根据"模型库"设置 {config_file}
、{model_checkpoint}
。
python tools/test_grounding_net.py \
--config-file {config_file} \
--task_config configs/flickr/test.yaml,configs/flickr/val.yaml \
--weight {model_checkpoint} \
OUTPUT_DIR {output_dir} TEST.IMS_PER_BATCH 1 SOLVER.IMS_PER_BATCH 1 TEST.MDETR_STYLE_AGGREGATE_CLASS_NUM 100 TEST.EVAL_TASK grounding MODEL.DYHEAD.FUSE_CONFIG.MLM_LOSS False
微调
COCO 微调
按照 DATA.md 中的说明准备 COCO
数据。根据"模型库"设置 {config_file}
、{model_checkpoint}
。
以下是用于微调 Tiny 模型的脚本:
python -m torch.distributed.launch --nproc_per_node=16 tools/train_net.py \
--config-file {config_file} \
--skip-test \
MODEL.WEIGHT {model_checkpoint} \
DATASETS.TRAIN '("coco_grounding_train", )' \
MODEL.BACKBONE.FREEZE_CONV_BODY_AT -1 SOLVER.IMS_PER_BATCH 32 SOLVER.USE_AMP True SOLVER.MAX_EPOCH 24 TEST.DURING_TRAINING False TEST.IMS_PER_BATCH 16 SOLVER.FIND_UNUSED_PARAMETERS False SOLVER.BASE_LR 0.00001 SOLVER.LANG_LR 0.00001 SOLVER.STEPS \(0.67,0.89\) DATASETS.DISABLE_SHUFFLE True MODEL.DYHEAD.SCORE_AGG "MEAN" TEST.EVAL_TASK detection
对于评估,请按照 COCO 评估
中的说明进行操作。用于微调 Large 模型的脚本将很快发布。
ODinW / 自定义数据集微调
按照 ODinW / 自定义数据集评估
中的说明准备数据集。
全模型微调
对于 1/3/5/10-shot 微调,将 {custom_shot_and_epoch_and_general_copy} 分别设置为 "1_200_8"、"3_200_4"、"5_200_2"、"10_200_1"。
对于使用所有数据进行微调,将 {custom_shot_and_epoch_and_general_copy} 设置为 "0_200_1";将 SOLVER.STEP_PATIENCE 设置为 2;将 SOLVER.AUTO_TERMINATE_PATIENCE 设置为 4。
python -m torch.distributed.launch --nproc_per_node=4 tools/finetune.py \
--config-file {config_file} --ft-tasks {configs} --skip-test \
--custom_shot_and_epoch_and_general_copy {custom_shot_and_epoch_and_general_copy} \
--evaluate_only_best_on_test --push_both_val_and_test \
MODEL.WEIGHT {model_checkpoint} \
SOLVER.USE_AMP True TEST.DURING_TRAINING True TEST.IMS_PER_BATCH 4 SOLVER.IMS_PER_BATCH 4 SOLVER.WEIGHT_DECAY 0.05 TEST.EVAL_TASK detection DATASETS.TRAIN_DATASETNAME_SUFFIX _grounding MODEL.BACKBONE.FREEZE_CONV_BODY_AT 2 MODEL.DYHEAD.USE_CHECKPOINT True SOLVER.FIND_UNUSED_PARAMETERS False SOLVER.TEST_WITH_INFERENCE True SOLVER.USE_AUTOSTEP True DATASETS.USE_OVERRIDE_CATEGORY True SOLVER.SEED 10 DATASETS.SHUFFLE_SEED 3 DATASETS.USE_CAPTION_PROMPT True DATASETS.DISABLE_SHUFFLE True \
SOLVER.STEP_PATIENCE 3 SOLVER.CHECKPOINT_PER_EPOCH 1.0 SOLVER.AUTO_TERMINATE_PATIENCE 8 SOLVER.MODEL_EMA 0.0 SOLVER.TUNING_HIGHLEVEL_OVERRIDE full
提示词微调
按照 全模型微调
中的命令操作。但设置以下超参数:
SOLVER.WEIGHT_DECAY 0.25 \
SOLVER.BASE_LR 0.05 \
SOLVER.TUNING_HIGHLEVEL_OVERRIDE language_prompt_v2
野外目标检测基准
ODinW 最初由 GLIP 提出,并在 ELEVATER 中进行了完善和形式化。GLIP 使用了 13 个下游任务,而完整的 ODinW 包含 35 个下游任务。它将作为 ECCV 2022 野外计算机视觉研讨会 的挑战赛举办。我们希望我们的代码能鼓励社区参与这项挑战!
ODinW 在 GLIP 中引入,最初包含 13 个数据集。我们通过包含更多来自 RoboFlow 的数据集进一步扩展了数据集,最终版本包含 35 个数据集。
为了区分这两个版本,我们将 GLIP 使用的版本称为 ODinW-13
,将 CVinW 研讨会使用的版本称为 ODinW-35
。
本仓库还提供了在 ODinW 上训练和评估的必要代码。请参见以下说明。
下载 ODinW
RoboFlow 托管了所有原始数据集。我们也托管了这些数据集,并提供了一个简单的脚本来下载所有数据。
python odinw/download_datasets.py
configs/odinw_35
包含了所有数据集的元信息。configs/odinw_13
是 GLIP 使用的数据集。每个数据集都遵循 coco 检测格式。
所有 ODinW 数据集都采用 COCO 格式;因此我们可以直接使用类似的脚本来适配和评估 ODinW 上的预训练模型。以下是简要回顾。
(零样本)评估
odinw_configs
可以是 configs/odinw_14
和 configs/odinw_35
中的任何配置。
python tools/test_grounding_net.py --config-file {config_file} --weight {model_checkpoint} \
--task_config {odinw_configs} \
TEST.IMS_PER_BATCH 1 SOLVER.IMS_PER_BATCH 1 \
TEST.EVAL_TASK detection \
DATASETS.TRAIN_DATASETNAME_SUFFIX _grounding \
DATALOADER.DISTRIBUTE_CHUNK_AMONG_NODE False \
DATASETS.USE_OVERRIDE_CATEGORY True \
DATASETS.USE_CAPTION_PROMPT True
全模型微调
对于 1/3/5/10-shot 微调,将 {custom_shot_and_epoch_and_general_copy}
分别设置为 "1_200_8"、"3_200_4"、"5_200_2"、"10_200_1"。
对于使用所有数据进行微调,将 {custom_shot_and_epoch_and_general_copy}
设置为 "0_200_1";将 SOLVER.STEP_PATIENCE 设置为 2;将 SOLVER.AUTO_TERMINATE_PATIENCE 设置为 4。
python -m torch.distributed.launch --nproc_per_node=4 tools/finetune.py \
--config-file {config_file} --ft-tasks {odinw_configs} --skip-test \
--custom_shot_and_epoch_and_general_copy {custom_shot_and_epoch_and_general_copy} \
--evaluate_only_best_on_test --push_both_val_and_test \
MODEL.WEIGHT {model_checkpoint} \
SOLVER.USE_AMP True TEST.DURING_TRAINING True TEST.IMS_PER_BATCH 4 SOLVER.IMS_PER_BATCH 4 SOLVER.WEIGHT_DECAY 0.05 TEST.EVAL_TASK detection DATASETS.TRAIN_DATASETNAME_SUFFIX _grounding MODEL.BACKBONE.FREEZE_CONV_BODY_AT 2 MODEL.DYHEAD.USE_CHECKPOINT True SOLVER.FIND_UNUSED_PARAMETERS False SOLVER.TEST_WITH_INFERENCE True SOLVER.USE_AUTOSTEP True DATASETS.USE_OVERRIDE_CATEGORY True SOLVER.SEED 10 DATASETS.SHUFFLE_SEED 3 DATASETS.USE_CAPTION_PROMPT True DATASETS.DISABLE_SHUFFLE True
SOLVER.STEP_PATIENCE 3 SOLVER.CHECKPOINT_PER_EPOCH 1.0 SOLVER.AUTO_TERMINATE_PATIENCE 8 SOLVER.MODEL_EMA 0.0 SOLVER.TUNING_HIGHLEVEL_OVERRIDE full
#### 提示调优
对于1/3/5/10样本的调优,将 `{custom_shot_and_epoch_and_general_copy}` 分别设置为 "1_200_8", "3_200_4", "5_200_2", "10_200_1"。
对于使用全部数据的调优,将 `{custom_shot_and_epoch_and_general_copy}` 设置为 "0_200_1";将 SOLVER.STEP_PATIENCE 设置为 2;将 SOLVER.AUTO_TERMINATE_PATIENCE 设置为 4。
按照"完整模型微调"中的命令执行。但设置以下超参数:
SOLVER.WEIGHT_DECAY 0.25
SOLVER.BASE_LR 0.05
SOLVER.TUNING_HIGHLEVEL_OVERRIDE language_prompt_v2
#### 线性探测
对于1/3/5/10样本的调优,将 `{custom_shot_and_epoch_and_general_copy}` 分别设置为 "1_200_8", "3_200_4", "5_200_2", "10_200_1"。
对于使用全部数据的调优,将 `{custom_shot_and_epoch_and_general_copy}` 设置为 "0_200_1";将 SOLVER.STEP_PATIENCE 设置为 2;将 SOLVER.AUTO_TERMINATE_PATIENCE 设置为 4。
按照"完整模型微调"中的命令执行。但设置以下超参数:
SOLVER.TUNING_HIGHLEVEL_OVERRIDE linear_prob
#### 知识增强推理
GLIP还支持知识增强推理。详情请参阅[我们的论文](https://arxiv.org/pdf/2204.08790.pdf)。这里我们提供一个如何使用外部知识的示例。请下载专门用于知识增强推理的GLIP-A模型 ``wget https://penzhanwu2bbs.blob.core.windows.net/data/GLIPv1_Open/models/glip_a_tiny_o365_knowledge.pth -O MODEL/glip_a_tiny_o365_knowledge.pth``。
python tools/test_grounding_net.py --config-file configs/pretrain/glip_A_Swin_T_O365.yaml --weight MODEL/glip_a_tiny_o365_knowledge.pth
--task_config {odinw_configs}
TEST.IMS_PER_BATCH 1 SOLVER.IMS_PER_BATCH 1
TEST.EVAL_TASK detection
DATASETS.TRAIN_DATASETNAME_SUFFIX _grounding
DATALOADER.DISTRIBUTE_CHUNK_AMONG_NODE False
DATASETS.USE_OVERRIDE_CATEGORY True
DATASETS.USE_CAPTION_PROMPT True
GLIPKNOW.KNOWLEDGE_FILE knowledge/odinw_benchmark35_knowledge_and_gpt3.yaml GLIPKNOW.KNOWLEDGE_TYPE gpt3_and_wiki GLIPKNOW.PARALLEL_LANGUAGE_INPUT True GLIPKNOW.LAN_FEATURE_AGG_TYPE first MODEL.DYHEAD.FUSE_CONFIG.USE_LAYER_SCALE True GLIPKNOW.GPT3_NUM 3 GLIPKNOW.WIKI_AND_GPT3 True
#### 将您的结果提交到ODinw排行榜
鼓励参赛队伍将他们的结果上传到EvalAI上的[ODinW排行榜](https://eval.ai/web/challenges/challenge-page/1839/overview)。从数据标注成本的角度来看,降低数据需求使得更多场景成为可能,因此挑战中考虑了多个不同的赛道:零样本、少样本和全样本。请查看ODinW网站以了解每个阶段的更多详情。
1. 对于零样本/全样本设置,预测json文件的所需格式为
{ "数据集名称 (例如, 'WildFireSmoke')": [值]: 值遵循COCO的结果格式, 包含["image_id":xxx, "category_id":xxx, "bbox":xxx, "score":xxx] }
请查看提供的零样本预测文件示例:[all_predictions_zeroshot.json](https://drive.google.com/file/d/1lO66zH141O_0pTiIhRC2lY5y2PxmxGOH/view?usp=sharing)和全样本预测文件示例:[all_predictions_fullshot.json](https://drive.google.com/file/d/1-nLs2ZebfPoiA_qa_vvkbJD96V1RU7Vu/view?usp=sharing)。
2. 对于少样本设置(根据挑战描述为3样本),使用随机种子[3, 30, 300]分别生成三个训练-验证子集。预测json文件的所需格式为
{ "数据集名称 (例如, "WildFireSmoke")":{ "随机种子数 (例如, "30")": [值]: 值遵循COCO的结果格式, 包含["image_id":xxx, "category_id":xxx, "bbox":xxx, "score":xxx] } }
请查看提供的少样本预测文件示例:[all_predictions_3_shot.json](https://drive.google.com/file/d/13pDjmSf0ZAZghgiDTONDF0ur5FP8AuLx/view?usp=sharing)。
## 引用
如果您使用了此代码,请考虑引用我们的论文:
@inproceedings{li2021grounded, title={Grounded Language-Image Pre-training}, author={Liunian Harold Li* and Pengchuan Zhang* and Haotian Zhang* and Jianwei Yang and Chunyuan Li and Yiwu Zhong and Lijuan Wang and Lu Yuan and Lei Zhang and Jenq-Neng Hwang and Kai-Wei Chang and Jianfeng Gao}, year={2022}, booktitle={CVPR}, } @article{zhang2022glipv2, title={GLIPv2: Unifying Localization and Vision-Language Understanding}, author={Zhang, Haotian* and Zhang, Pengchuan* and Hu, Xiaowei and Chen, Yen-Chun and Li, Liunian Harold and Dai, Xiyang and Wang, Lijuan and Yuan, Lu and Hwang, Jenq-Neng and Gao, Jianfeng}, journal={arXiv preprint arXiv:2206.05836}, year={2022} } @article{li2022elevater, title={ELEVATER: A Benchmark and Toolkit for Evaluating Language-Augmented Visual Models}, author={Li*, Chunyuan and Liu*, Haotian and Li, Liunian Harold and Zhang, Pengchuan and Aneja, Jyoti and Yang, Jianwei and Jin, Ping and Lee, Yong Jae and Hu, Houdong and Liu, Zicheng and others}, journal={arXiv preprint arXiv:2204.08790}, year={2022} }