构建AI智能体:八、AI新纪元:ModelScope魔法 — 本地搭建超酷的图片处理模型

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: ModelScope是由阿里巴巴达摩院推出的AI模型托管与服务平台,被称作AI模型的Github。它汇集了自然语言处理、计算机视觉、语音识别等领域的数千个高质量预训练模型,大幅降低了AI应用开发门槛。平台提供简化的Pipeline API,只需几行代码即可调用模型,并支持模型微调。与通义千问等单一AI产品不同,ModelScope是一个开放的模型生态系统,覆盖更广泛的应用场景。通过实际案例展示了其在人像卡通化、抠图、天空替换等方面的应用效果。

       在过去,人工智能(AI)技术似乎离自己很遥远,如图像识别、语音合成或文本生成,集成到自己的应用中,对大多数开发者和企业来说都是一项艰巨的挑战。这背后是高昂的GPU成本、复杂的模型部署环境、晦涩难懂的论文代码以及巨大的技术门槛。好比处于一个需要从零开始烧制砖块、搅拌水泥才能盖房子的时代。而现在,出现了像 ModelScope 这样的平台,它为我们提供了预先提供了很多图纸、结构、甚至是成品,让AI应用的构建变得像搭积木一样简单高效。


一、什么是ModelScope

       ModelScope(中文名:魔搭社区)是由阿里巴巴达摩院在2022年发起并开源的一站式模型托管与服务平台。它的核心目标是为AI模型开发者、应用开发者以及学术研究人员提供一个开放、协作、共享的生态系统。

       你可以把它理解为 “AI模型的Github”“中国版的Hugging Face” 。它汇聚了来自达摩院、清华、北大、浙大等顶尖学术机构以及澜舟、元乘象等AI科技公司的高质量预训练模型,覆盖了自然语言处理(NLP)、计算机视觉(CV)、语音、多模态等几乎所有主流AI方向。


二、核心价值与用途

  1. 极大降低使用门槛:无需深厚的机器学习背景,普通开发者通过几行代码就能调用最前沿的AI模型,快速实现产品功能原型(PoC)。
  2. 避免重复造轮子:无需从零开始训练模型,节省了大量的计算资源、时间和人力成本。你可以直接基于社区已有的优秀模型进行微调(Fine-tune),以适应自己的特定场景。
  3. 促进模型复现与公平比较:为学术界提供了统一的模型评估基准和复现环境,确保了研究结果的可靠性和可比性。
  4. 构建活跃的开发者生态:开发者可以在这里学习最新的AI技术、分享自己的模型成果、与他人交流碰撞,共同推动AI技术的进步和应用落地。


三、核心功能与特色

1. 庞大的模型库(Model Zoo)

ModelScope的核心资产是其不断增长的模型库。截至目前,它已托管了数千个模型,涵盖了:

  • NLP:文本分类、情感分析、机器翻译、文本生成、对话系统、信息抽取等。
  • CV:图像分类、目标检测、图像分割、人脸识别、超分辨率、图像生成(如Stable Diffusion)。
  • 语音:语音识别、语音合成(TTS)、声音克隆、声纹识别。
  • 多模态:图文理解、图文生成、视觉问答。

每个模型都有详细的介绍、许可证、测试数据以及在线体验功能,方便用户快速了解和选择。

2. 极简的模型使用(Pipeline API)

ModelScope 提供了极其友好的 pipeline API,让模型推理变得前所未有的简单。通常只需要三行代码:

from modelscope.pipelines import pipeline
# 创建一个任务管道(例如,图像描述生成)
image_captioning = pipeline('image-portrait-stylization', model='damo/cv_unet_person-image-cartoon_compound-models')
# 输入图片,得到结果
result = image_captioning('image.jpg')
print(result['text']) # 输出:a cat sitting on a sofa

这种设计将复杂的模型加载、数据预处理、推理和后处理全部封装起来,用户只需关心输入和输出。

3. 高效的模型微调(Training API)

对于希望定制专属模型的用户,ModelScope 提供了便捷的微调工具。它支持使用自己的数据集,通过简单的配置对预训练模型进行微调。

from modelscope.msdatasets import MsDataset
from modelscope.trainers import build_trainer
# 1. 加载数据集
dataset = MsDataset.load('my_fine_tune_dataset')
# 2. 配置训练参数
cfg_file = 'config.json'
# 3. 创建训练器并开始微调
trainer = build_trainer(cfg_file)
trainer.train()

这大大简化了微调流程,让开发者可以专注于数据和质量迭代。

4. 开放的社区生态

ModelScope不仅仅是一个代码仓库,更是一个社区。它提供了:

  • 模型体验中心:在线直接上传图片、文本或音频,即时体验模型效果。
  • Notebook教程:提供了大量基于阿里云PAI的Notebook教程,手把手教你如何运行和微调模型。
  • 讨论区:开发者可以提问、分享经验和发布项目。
  • 模型贡献:鼓励所有用户上传和分享自己的模型,共同丰富生态。

四、和大模型的区别

大家都或多或少的在拥抱大模型,很多人可能会混淆 ModelScope 和通义千问,因为它们都来自阿里巴巴并且都与AI相关,它们到底有什么区别。

  • ModelScope 就像是「AI模型的安卓应用商店」
  • 这个商店里琳琅满目,有成千上万个不同的App(AI模型):有修图的美图秀秀(CV模型),有翻译的谷歌翻译(NLP模型),有听歌识曲的Shazam(语音模型)。你可以自由选择、下载、甚至修改这些App来满足自己的手机(业务)需求。
  • 通义千问 就像是这个商店里一个非常火爆的、功能强大的超级App,比如「微信」
  • 它是一个具体的、已经开发完成的应用。它的主要功能是聊天、对话、写作、编程等(大语言模型服务)。你直接使用它就好了,但很难对它底层是如何实现聊天功能进行大刀阔斧的修改。
特性 ModelScope (魔搭) 通义千问 (Qwen)
本质 一个平台,一个社区,一个生态系统。 一个产品,一个具体的AI模型。
类比 安卓应用商店 / GitHub 微信 / ChatGPT
核心内容 提供成千上万个不同的AI模型,覆盖视觉、语音、自然语言处理等多领域。 本身就是一个大型语言模型(LLM),专注于理解和生成人类语言。
关系 容器和内容的关系。ModelScope是容器,通义千问是容器里的一个重要内容。 是ModelScope平台上托管的其中一个模型。


五、精彩案例

1.生成卡通图片

原图:

漫画图:

代码详解

# 导入OpenCV计算机视觉库,用于图像读取、处理和保存
import cv2
# 从modelscope库导入模型下载和管道功能
from modelscope.hub.snapshot_download import snapshot_download
from modelscope.pipelines import pipeline
# 下载人像卡通化模型到指定缓存目录
# 'damo/cv_unet_person-image-cartoon_compound-models' 是ModelScope平台上的模型ID
# cache_dir参数指定模型下载的本地存储路径
model_dir = snapshot_download('damo/cv_unet_person-image-cartoon_compound-models', cache_dir='D:/modelscope/hub/models')
# 创建图像人像风格化处理管道
# 'image-portrait-stylization' 指定任务类型为人像风格化
# model参数指定使用的模型路径(刚刚下载的模型)
img_cartoon = pipeline('image-portrait-stylization', model=model_dir)
# 对输入图像应用卡通化处理
# 'image.png' 是输入图像的文件路径
# 处理结果存储在result变量中
result = img_cartoon('image.png')
# 保存处理后的图像到文件
# result['output_img'] 包含处理后的图像数据
# 'result.png' 是输出图像的文件名
cv2.imwrite('result.png', result['output_img'])

       本实例采用魔塔社区的“DCT-Net人像卡通化模型”,输入一张人物图像,实现端到端全图卡通化转换,生成二次元虚拟形象,返回卡通化后的结果图像。

  • 模型介绍

【英文名称】

       iic/cv_unet_person-image-cartoon_compound-models

【详细说明】

       该模型采用一种全新的域校准图像翻译模型DCT-Net(Domain-Calibrated Translation),利用小样本的风格数据,即可得到高保真、强鲁棒、易拓展的人像风格转换模型,并通过端到端推理快速得到风格转换结果。

【使用方式】

        支持GPU/CPU推理,在任意真实人物图像上进行直接推理;

【使用范围】

       包含人脸的人像照片(3通道RGB图像,支持PNG、JPG、JPEG格式),人脸分辨率大于100x100,总体图像分辨率小于3000×3000,低质人脸图像建议预先人脸增强处理。

【目标场景】

       艺术创作、社交娱乐、隐私保护场景,自动化生成卡通肖像。


2.人像抠图

原图:


去背景后:

代码详解

# 导入OpenCV计算机视觉库
import cv2
# 从modelscope库导入模型下载功能
from modelscope.hub.snapshot_download import snapshot_download
# 从modelscope库导入管道功能
# pipeline函数用于创建特定任务的预处理、推理和后处理流程
from modelscope.pipelines import pipeline
# 从modelscope库导入任务常量
# Tasks包含了ModelScope支持的所有任务类型的常量定义
from modelscope.utils.constant import Tasks
# 从modelscope库导入输出键常量
# OutputKeys包含了模型输出结果字典中可能包含的标准键名
from modelscope.outputs import OutputKeys
# 下载预训练的人像抠图(图像分割)模型到本地指定目录
model_dir = snapshot_download('iic/cv_unet_image-matting', cache_dir='D:/modelscope/hub/models')
# 创建人像抠图处理管道
portrait_matting = pipeline(Tasks.portrait_matting, model=model_dir)
# 使用创建的管道对输入图像进行人像抠图处理
result = portrait_matting('image.jpeg')
# 将处理后的图像保存到文件
cv2.imwrite('result1.png', result[OutputKeys.OUTPUT_IMG])

       本实例采用魔塔社区的“BSHM人像抠图”模型,对输入含有人像的图像进行处理,无需任何额外输入,实现端到端人像抠图,输出四通道人像抠图结果

  • 模型介绍

【英文名称】

       iic/cv_unet_image-matting

【详细说明】

       模型分为粗分割和精细抠图两个子网络,将人像抠图复杂问题拆解,先粗分割再精细化分割,两部分网络均为unet结构。粗分割网络从输入图片预测人像语义分割mask,精细分割网络基于原图和粗语义分割mask预测精细的抠图结果。

【使用方式】

        直接推理,输入图像直接进行推理;

【使用范围】

       适合含有人像的图像分割,期望图像中人像占比不要过小;在分辨率小于2000×2000图像上可取得期望效果。

【目标场景】

       需要图像抠图的场景,如换背景等。


3.图像替换天空

原图:



替换天空后:

  • 代码详解
# 导入OpenCV计算机视觉库
import cv2
# 导入os.path模块,用于处理文件路径操作
import os.path as osp
# 导入modelscope库(虽然导入但未直接使用,可能用于版本检查或其他配置)
import modelscope
# 从modelscope库导入模型下载功能
from modelscope.hub.snapshot_download import snapshot_download
# 从modelscope库导入输出键常量
# OutputKeys包含了模型输出结果字典中可能包含的标准键名
from modelscope.outputs import OutputKeys
# 从modelscope库导入管道功能
from modelscope.pipelines import pipeline
# 从modelscope库导入Pipeline基类(虽然导入但未直接使用)
# 可用于类型提示或自定义管道开发
from modelscope.pipelines.base import Pipeline
# 从modelscope库导入任务常量
# Tasks包含了ModelScope支持的所有任务类型的常量定义
from modelscope.utils.constant import Tasks
# 下载预训练的天空替换模型到本地指定目录
model_dir = snapshot_download('iic/cv_hrnetocr_skychange', cache_dir='D:/modelscope/hub/models')
# 创建天空替换处理管道
image_skychange = pipeline(Tasks.image_skychange, model=model_dir)
# 使用创建的管道对输入图像进行天空替换处理
result = image_skychange({
    'sky_image': 'sky_image.jpg',
    'scene_image': 'scene_image.jpg'
})
# 将处理后的图像保存到文件
cv2.imwrite('result2.png', result[OutputKeys.OUTPUT_IMG])
# 打印输出文件的绝对路径
# osp.abspath("result2.png") - 获取result2.png文件的绝对路径
print(f'Output written to {osp.abspath("result2.png")}')

       本实例采用魔塔社区的“图像天空替换模型”,换天算法是计算机视觉的经典任务之一,也是image sky matting的应用之一。输入一张原图A以及一张参考图B,换天算法会得到两张图片对应的天空区域的alpha图(alpha属于软分割,与硬分割mask不同,mask将视频分为前景与背景,取值为0或1,而alpha的取值范围是0到1之间,数值代表透明度,因此alpha比mask更为精细) 换天算法利用A和B图对应的天空区域alpha图,配合融合算法,将参考图B的天空样式替换到原图A中,从而改变原图A的天空样式,实现换天功能。


  • 模型介绍

【英文名称】

       iic/cv_hrnetocr_skychange

【详细说明】

       该模型由三大部分构成:低分辨率处理模块,高分辨率处理模块和换天模块;

       其中低分辨率处理模块的backbone是基于hrnet-ocr框架实现的,采用了w18v2的版本,为了实现更好的效果,我们对原网络模块进行了一定修改,主要添加了自设计的super模块以及ASPP模块,扩大了感受野,重新进行分割训练,这部分的结果作为高分辨率处理模块的输入; 高分辨率处理模块基于UNET,实现对低分辨率后超分至原有分辨率,该层具有可学习参数,效果远优于直接上采样效果; 换天模块基于Multiband blender 图像拼缝技术实现;

【使用方式】

       支持GPU/CPU推理,在任意两张包含天空的图片上进行直接推理和换天操作。

【使用范围】

       包含天空区域的图片(3通道RGB图像,支持PNG、JPG、JPEG格式),图像分辨率建议小于5000×5000,低质图像建议预先增强处理。

【目标场景】

       艺术创作、社交娱乐。


六、总结

       ModelScope的出现,开启新的大模型格局,打开了开发者的思路,AI编程是革命,同时我们也要革新自己,看到这些优秀的工具如雨后春笋般出现,我们也要实实在在的发展自己的创造力,感叹大模型的无所不能,感谢自己的无所畏惧!

相关文章
|
9天前
|
人工智能
实训Agent创客:一键生成电商场景Agent
在阿里云百炼一键生成电商场景Agent,轻松帮您搞定商品展示图片、视频。快来参与活动任务吧!
147 2
|
14天前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
487 16
构建AI智能体:一、初识AI大模型与API调用
kde
|
7天前
|
安全 关系型数据库 Linux
手把手教你用 Docker 部署 Red Hat UBI8 镜像
Red Hat UBI8是官方维护的免费容器基础镜像,轻量安全,兼容性强,适用于各类应用部署。支持Docker快速拉取与运行,提供持久化挂载、Compose编排等企业级方案,是构建容器化应用的理想“地基”。
kde
77 2
|
9天前
|
人工智能 自然语言处理 前端开发
构建AI智能体:六、体验Trae指定Qwen-Turbo模型自动生成问答系统
本文介绍如何使用字节跳动的AI编程工具Trae与阿里通义千问Qwen-Turbo模型,快速生成一个智能问答系统。通过图文结合方式,演示从环境搭建、指令生成到界面优化的全过程,涵盖前后端代码自动生成、模型调用封装及交互优化技巧,展现AI辅助开发的高效与趣味,助力开发者提升生产力。
250 12
|
13天前
|
人工智能 测试技术 API
构建AI智能体:二、DeepSeek的Ollama部署FastAPI封装调用
本文介绍如何通过Ollama本地部署DeepSeek大模型,结合FastAPI实现API接口调用。涵盖Ollama安装、路径迁移、模型下载运行及REST API封装全过程,助力快速构建可扩展的AI应用服务。
283 6
|
10天前
|
编解码 调度 图形学
腾讯混元世界模型1.1开源:支持多视图及视频输入,单卡部署,秒级生成_魔搭ModelScope社区-ModelScope魔搭社区
混元世界模型1.1(WorldMirror)发布,支持多视图、视频输入,单卡秒级生成3D场景。兼容CG管线,开源可部署,实现点云、深度、相机等多任务统一预测,性能领先。
132 1
|
16天前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
877 47
|
5天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:十、开箱即见 Gradio:大模型的“魔法画布”,让每一个想法清晰可见
Gradio是一个快速构建机器学习演示界面的Python库,能够将需要数天开发工作的模型展示缩短为几分钟的脚本编写。它通过简单的Python代码即可生成完整的Web应用界面,支持文本、图像、音频等多种交互组件,适用于模型展示、教学演示和原型测试等场景。文章详细介绍了Gradio的核心功能、基础语法和组件使用方法,并通过情感分析和聊天机器人两个实际案例展示了如何快速部署AI模型交互界面。Gradio大幅降低了将模型转化为可交互应用的门槛,使开发者能更专注于模型本身而非界面开发。
135 7

热门文章

最新文章