mPLUG|图像中文描述

AI根据图片信息生成对应描述自动图像Tag标签,mplug_image-captioning_coco_base_zh模型是生成多模态的基础,基于skip-connections高效跨模态融合框架。

mPLUG|支持中文的自动识别图像内容描述模型

给定mplug_image-captioning_coco_base_zh一张图片,模型根据图片信息生成一句对应描述。可以应用于给一张图片配上一句文字或者打个标签的场景。本模型为mPLUG-图像描述的中文Base模型,参数量约为3.5亿。

本任务是mPLUG,在翻译成中文的图像描述MS COCO Caption数据集进行finetune的图像描述下游任务。mPLUG模型是统一理解和生成的多模态基础模型,该模型提出了基于skip-connections的高效跨模态融合框架。

项目仓库

仓库链接:mPLUG图像描述模型-中文-base · 模型库 (modelscope.cn)

前置条件

在执行项目安装之前,我们还需要安装GitConda,如果您的电脑还未安装这两款软件,请先根据本站所给出的教程安装。

Windows系统安装Git请参阅此文章:

Windows系统安装Conda请参阅此文章:

网络问题

在安装过程中,你可能即便开启了魔法上网也无法下载一些编程依赖库,关于魔法上网的相关配置问题不方便在站内讲解,请自行查看【魔法上网】的教程内容。

适用范围

本模型主要用于给问题和对应图片生成答案。用户可以自行尝试各种输入文档。具体调用方式请参考代码示例。

如何使用

在安装完成MaaS-lib之后即可使用image-captioning的能力。

部署教程

如果您是初学者,对于命令行不太理解,那么请按下键盘上的Win键+R键后,在弹出的新窗口内输入CMD并按下回车键,打开CMD窗口,按顺序执行如下的每一条命令。

环境部署

在CMD中执行下面的命令行,创建一个名为mPLUGConda虚拟环境,且Python版本为3.7

conda create -y --name mPLUG python=3.7

初始化Conda环境,防止后续操作可能存在报错等问题。

conda init cmd.exe

激活名为mPLUGConda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate mPLUG

执行如下命令,安装阿里达摩院魔塔模块。

pip install modelscope

执行如下命令,安装阿里达摩院所提供魔塔多模态相关环境依赖。

pip install "modelscope[multi-modal]"

另外,该项目还需要一些其它模块的支持,执行如下代码自动安装。

pip install open_clip_torch

此时我们已经完成了关于此项目的所有相关环境部署,下面进入使用环节的介绍。

模型下载

官方下载

在你首次使用Python调用该环境时,项目将会自动从阿里云拉取相应模型至本地。

网盘下载

关于此项目的模型,本站已为您下载并整理好。如果你不方便通过官网下载,可以使用本站所提供的网盘下载地址。

mplug_image-captioning_coco_base_zh

提取密码 文件说明 文件大小 1.57GB 文件格式 RAR 资源价格 免费 下载次数 0

该项目的模型默认路径为%USERPROFILE%\.cache\modelscope\hub\damo,如果你是初次使用,可能不存在此路径,可以在CMD中执行如下代码判断该路径是否存在,如果不存在则自动创建。

if not exist %USERPROFILE%\.cache\modelscope\hub\damo mkdir %USERPROFILE%\.cache\modelscope\hub\damo

执行完上面的代码之后,我们可以通过在CMD执行下面的代码自动打开模型目录

start %USERPROFILE%\.cache\modelscope\hub\damo

将我们下载完成的模型文件解压缩,然后将解压后的文件移动damo文件夹下即可。

使用教程

此模型官方并未给出一个详细的脚本,本站针对不同场景,写了几个简单的Python脚本,可以满足你在各个环境下的基本使用要求。

代码编辑器

使用VSCode运行以下Python脚本即可。在运行该脚本之前,请先对以下Python脚本中的名称格式路径根据自身情况进行修改。

注意:使用VS Code执行该脚本时,VS Code会提示您选择一个Python环境,此时您可以选择名为mPLUGPython环境,这就是我们刚刚使用Conda所生成的虚拟环境。

示例代码

请将其中input_caption变量的,修改为你需要的文件路径,然后运行该脚本即可。

# 此脚本由openai.wiki提供,转载请注明出处,谢谢配合。

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks


# 图像文件路径
input_caption = 'D:/image.png'

# 以下代码不要修改,保持默认即可。
model_id = 'damo/mplug_image-captioning_coco_base_zh'

pipeline_caption = pipeline(Tasks.image_captioning, model=model_id)
result = pipeline_caption(input_caption)
print(result)

执行此段代码后需要等待片刻,具体时间与硬件和系统配置相关。

效果展示

站长分别给出了几张图像,以下是使用上面的代码所生成的图像描述。

官方参考

以下为官方所提供的参考参数等,本站并未进行整理,大家可根据自身需求浏览自己需要的部分。

模型局限性以及可能的偏差

模型在数据集上训练,有可能产生一些偏差,请用户自行评测后决定如何使用。

训练数据介绍

本模型训练数据集是MS COCO Caption, 具体数据可以下载

微调代码范例

import tempfile

from modelscope.msdatasets import MsDataset
from modelscope.metainfo import Trainers
from modelscope.trainers import build_trainer

datadict = MsDataset.load('coco_captions_small_slice')

train_dataset = MsDataset(
    datadict['train'].remap_columns({
        'image:FILE': 'image',
        'answer:Value': 'answer'
    }).map(lambda _: {'question': 'what the picture describes?'}))
test_dataset = MsDataset(
    datadict['test'].remap_columns({
        'image:FILE': 'image',
        'answer:Value': 'answer'
    }).map(lambda _: {'question': 'what the picture describes?'}))

# 可以在代码修改 configuration 的配置
def cfg_modify_fn(cfg):
    cfg.train.hooks = [{
        'type': 'CheckpointHook',
        'interval': 2
    }, {
        'type': 'TextLoggerHook',
        'interval': 1
    }, {
        'type': 'IterTimerHook'
    }]
    return cfg

kwargs = dict(
    model='damo/mplug_image-captioning_coco_base_zh',
    train_dataset=train_dataset,
    eval_dataset=test_dataset,
    max_epochs=2,
    cfg_modify_fn=cfg_modify_fn,
    work_dir=tempfile.TemporaryDirectory().name)

trainer = build_trainer(
    name=Trainers.nlp_base_trainer, default_args=kwargs)
trainer.train()

数据评估及结果

mPLUG在VQA数据集,同等规模和预训练数据的模型中取得SOTA,VQA榜单上排名前列。

相关论文以及引用信息

如果我们的模型对您有帮助,请您引入我们的文章:

@inproceedings{li2022mplug,
      title={mPLUG: Effective and Efficient Vision-Language Learning by Cross-modal Skip-connections},
      author={Li, Chenliang and Xu, Haiyang and Tian, Junfeng and Wang, Wei and Yan, Ming and Bi, Bin and Ye, Jiabo and Chen, Hehong and Xu, Guohai and Cao, Zheng and Zhang, Ji and Huang, Songfang and Huang, Fei and Zhou, Jingren and Luo Si},
      year={2022},
      journal={arXiv}
}

总结

总得来说,该模型对于图像的描述准确性高达90%,甚至比肉眼总结的还要好,因为那只猫站长都没有看出来是在篮子上的。

该模型可能对于训练图像打标非常好用,可SD打标又不支持中文……

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/mplug_image-captioning_coco_base_zh.html

(0)
上一篇 2023-07-09 07:34
下一篇 2023-07-14 10:36

相关推荐

  • Cycle-CenterNet|表格结构识别

    Cycle-CenterNet表格结构识别模型是一种基于深度学习技术的图像处理模型,用于图中表格单元格拼接后的物理坐标的输出,具体输出的是单元格的四个角点的坐标,按照顺时针的顺序依次输出各个点的坐标。

    2023-04-07
    052.5K
  • CV_ORC-Text-Spotting|多场景文字ORC识别

    CV_ORC-Text-Spotting是一个多场景文字识别模型,可用于提取图片中的文字并输出对应字符串。该模型可适用于多种场景的文字识别,包括手写、自然、车牌和文档印刷,并提供了相应的文本检测模型。

    2023-04-12
    001.6K
  • cv_hrnetocr_skychange|天空图像替换

    cv_hrnetocr_skychange是一个基于hrnet-ocr框架的天空图像替换模型,可实现换天算法,自动获取天空区域的alpha图,并利用融合算法将原天空进行替换,从而改变原图的天空样式。

    2023-04-08
    001.3K
  • cv_unet_universal-matting|通用抠图

    cv_unet_universal-matting可以对包括人、物、植物、车辆等在内的多种物体进行抠图处理,无需额外输入。该模型基于粗分割和精细抠图两个子网络实现,具有较好的抠图效果。

    2023-04-08
    021.9K
  • cv_unet_image-matting|人像抠图

    cv_unet_image-matting是一个自动识别人像AI抠图的模型,可以无需任何额外输入,直接自动推理含有人像的图像,输出四通道人像抠图结果,基于原图和粗语义分割mask预测精细的抠图结果。

    2023-04-05
    0123.0K

回复 PhiltreX

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(2条)

  • HawkingEye
    HawkingEye 2023-07-10 15:41

    其实就是基于CLIP图像反推魔改的,那个第四张图给出的描述“一个女孩躺在沙发上双手放在臀部”,蚌阜不住了(ps:官方下载那一栏里还有句写错“使用Python调用该环境进行语音转文本”,应该是图像转文本)

    • PhiltreX
      PhiltreX 2023-07-14 10:40

      @HawkingEye感谢勘误,刚有时间更新网站,前几天一直在医院忙,所提问题已修复。

微信