Florence-2图像描述模型

Florence-2是由微软研究发布的一个多模态视觉模型,它支持生成不同丰富程度的图像描述。可以生成简短的描述,适合作为图像的摘要,或者生成详细的描述,以提供更多关于图像内容的信息。例如,考虑以下图像:

Florence-2返回以下描述:图像展示了一只比格犬坐在鹅卵石街道上。这只狗戴着黑色的项圈和牵引绳。它耳朵竖起,直接看向镜头。街道两旁是砖墙和拱门,天花板上挂着几盏吊灯。在图像的左侧,有一个人坐在桌子旁,旁边有一瓶白色的花朵。背景中,街道上停着两辆汽车。

在本指南中,将介绍如何使用Florence-2生成图像描述。生成的图像描述可以用来构建一个使用文本上下文来提高检索准确性的图像信息检索系统。

步骤1:安装必要的依赖项

在本指南中,将使用HuggingFace Transformers和timm图像包来加载Florence-2。要开始,需要安装必要的依赖项:

pip install transformers timm flash_attn einops

安装完必要的依赖项后,可以开始生成图像描述。

步骤2:为图像添加描述

现在可以加载Florence-2模型用于图像描述。创建一个新的Python文件,并添加以下代码:

from transformers import AutoProcessor, AutoModelForCausalLM from PIL import Image import requests import copy model_id = 'microsoft/Florence-2-large' model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True).eval().cuda() processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True) def run_example(task_prompt, text_input=None): if text_input is None: prompt = task_prompt else: prompt = task_prompt + text_input inputs = processor(text=prompt, images=image, return_tensors="pt") generated_ids = model.generate( input_ids=inputs["input_ids"].cuda(), pixel_values=inputs["pixel_values"].cuda(), max_new_tokens=1024, early_stopping=False, do_sample=False, num_beams=3, ) generated_text = processor.batch_decode(generated_ids, skip_special_tokens=False)[0] parsed_answer = processor.post_process_generation( generated_text, task=task_prompt, image_size=(image.width, image.height) ) return parsed_answer

在这段代码中,使用推理来加载Florence-2模型。然后提供了一个要描述的图像,以及一个文本提示,表明想要描述图像。可以使用以下代码来生成模型的描述:

image = Image.open("image.jpeg").convert("RGB") task_prompt = "" answer = run_example(task_prompt=task_prompt) print(answer)

让在以下图像上运行上述代码,并使用任务类型,这将生成一个详细的图像描述。如果想生成一个简短的描述,可以使用任务类型。

当第一次运行上述代码时,Florence-2的权重将被下载到设备上。这些权重大约为1.5GB。这个过程可能需要几分钟,具体取决于互联网连接速度。一旦权重被下载,它们将被缓存以供后续运行。

下载完权重后,模型将运行,程序将在控制台中显示一个描述。让在金门大桥的图像上运行模型:

以下是系统为上述示例返回的描述:图像展示了位于加利福尼亚州旧金山的标志性金门大桥。这座桥是一座双层悬索桥,颜色鲜红。它横跨海湾,背景是山脉。天空阴沉,水面平静。在前景中,有几个人正在桥上行走,其中一些人携带着包。这些人穿着休闲服装,看起来像是游客。图像似乎是在白天拍摄的,因为太阳正在落山,天空是灰色的。

模型成功地为图像添加了描述。

Florence-2是一个最先进的计算机视觉模型,能够执行从目标检测到图像描述再到网站截图描述等一系列任务。在本指南中,专注于如何使用Florence-2进行图像描述。使用HuggingFace Transformers下载并初始化了Florence-2模型,然后使用详细描述任务类型对示例图像进行推理。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485