分割抠图功能讲解及演示 | 学习笔记

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 快速学习分割抠图功能讲解及演示

开发者学堂课程【达摩院视觉AI课分割抠图功能讲解及演示】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/335/detail/3836


  分割抠图功能讲解及演示


一、相关的基础概念

首先介绍图像相关的基础概念,其次会介绍我们视觉智能开放平台、图像分割接口的使用方法,最后介绍在我们的图像分割结果上进行二次加工的一些例子。

最常用的图像格式都是3通道的 BGR 格式,第一张图可以分为BGR 3个颜色分量。4通道图常见格式为PNG,区别于三通道图,它的背景除了人物以外的背景区域是半透明的状况,图像可视化边界可以支持不规则的一些边缘,三通道只能是矩形。

多出来的第四个通道,阿尔法通道则用来控制对应像素的透明程度,零表示全透,255表示不透。

1.png

如果阿尔法通道为全255,这张图视觉上就和3通道图没有差别。后面统称阿尔法通道为 master 。

在三通道图片的基础上融合对应的 master 图层,就可以得到抠图后的 PNG 图片,那我们平台的能力主要是预测图像主体的master 图层。

 

二、如何使用上述能力

首先进入阿里云官网:https:vision.aliyun.com/ 并登录阿里云账号,在广场分割抠图内幕下找到自己需要的接口,这里以人体分割作为样例。

2.png

点击人体分割进入到试用界面。进入试用界面之后,可以先试用,满意后再开通服务,点击上传图片。

上传成功之后,点击发起调用。

3.png右边是算法结果,对于结果的好坏,强烈建议大家在这里点击反馈,方便后续做进一步的优化。点击代码展示,这里展示的为抠图服务返回的json结果。4.png

Imageurl 表示的就是刚才结果图的图片地址,点击帮助文档,这里有更多服务的详情介绍。

如何开通,点击免费开通,在这里选择需要开通的接口,然后点击立即购买,再点击确认付款,5.png

然后会提示跳转到控制台。在控制台模块可以看到已经开发的能力,那么分割抠图模块相关的信息,我们也是可以看到的。

6.png

目前人体分割、商品分割和通用分割已经进入了商业化流程,如果需

要更高的QBS支持,可以点击这里进行购买。

 

7.png

 

三、开通对应的API 服务

回到上一级界面,这里有示例代码以及开通需要的 SDK  ,这里需要提醒大家,我们仅支持 OSS 图片地址。

所以需要事先开通好 OSS 服务,并创建好相应的AK,具体操作方式可以在该界面进行跳转。点击python对应的SDK界面。

8.png

首先,需要安装阿里云SDK核心库。

pip install aliyun-python-sdk-core

其次,安装对应的分割接口。SDK。

pip install aliyun-python-sdk-imageseg

然后就可以开始写代码了。首先返回上一级目录。

选择 python 事例。代码进行复制,然后粘贴到对应的编辑器中。这里是已经事先编辑好的,需要修改三个部分,一个是 AK 里面的 keyId ,另外一个是 AK 里面 secret ,

client=AcsClient(accessKeyId,accessSecret, 'cn-shanghai')

还有一个是图片的地址。

图片地址演示:

这里需要图片必须存放在上海的oss bucket  里面。先打开一个 bucket ,新建完成并上传了一张图片,9.png

点击详情复制。

10.png

然后粘贴到 url  地址处。点击运行。可以看到服务器返回的结果。基于服务器返回的josn 结果,解析后到的结果,图片url。以及把该 url 对应的图片写到本地的结果。

11.png


四、基于分割结果再加工的示例代码

接下来提供一些基于分割结果再加工的示例代码,我们来看一下示例代码的结构,一个是downloadData.sh 用来下载图片素材,另外一个是python代码用来展示如何进行合图。首先我们运行sh  downloadData.sh 进行下载,图片下载完之后会出现一个date目录,下面有多素材,source.jpg 表示的是原始图片,viapi_mask.png 表示的是通过API平台调用返回的图片,

12.pngbackground.jbg表示要进行融合的背景图片,

13.png

在下载好图片之后,就可以运行脚本进行合图。

运行代码:python backGroundMergeDemo.py pic

Pic 表示的是图片合图,vid 表示的是视频合图。合图效果result.jpg 如下所示:

14.png

 

五、合图代码的基础逻辑

简单介绍一下合图代码的基础逻辑

def picture mergeBG(args):

assert (args.files is not None and len(args.files)>3),"parameters wrong, use -h for details!"

ofr_file=args.files[3]  //存储合图后的文件地址

[sc_image, viari_image, bg_image] = [cv2.imread(img_file, cv2.IMREAD _UNCHANGED)  //第一个原始图片,第二个 viari 返回的 PNG 图片,第三个参数是带融合的背景图片。

for img file in args.files[0:3]]

assert (sc image is not None and viapi image is not None and

bg image is not None), "read image files error!"

h,wc=sc image.shape

viapi image = cv2.resize(viapi image, (w, h)) bg image=cv2.resize(bg image, (w, h))  //将PNG 图片和背景图片进行resize,保证和source 图片一致。

if len(viapi image.shape)==2:

mask=viapi image[: : np.newaxis]

if viapi image.shape[2] == 4:

mask = viapi image[: : 3:4]

elif viapi image.shape[2] == 3:

mask =viapi image[: : 0:1]

else:

raise Exception("invalid image mask!")

//提取 mask 通道。对于四通道图,直接把阿尔法通道提取出来,对于有些可能是把阿尔法通道转换成了一个灰度图,那我们这块儿也做了一个转换,然后对图像再进行一个规划,到零到一。然后再按照我们之前提到的前景成阿尔法加背景乘一减阿尔法的公式进行计算。

mask=mask/255.0

sc image=sc image.astype(np.float) bg image =bg image.astype(np.float)

of image = (sc image-bg image)*mask + image

of image = np.clip(of image 0 255) cv2.imwrite(of file, of image)

//此处为核心代码,他是上一个公司的一个变种,可以减少一次float计算。然后把图片写回到输出文件地址,本次视频教程到此结束。

相关文章
|
Web App开发 人工智能 开发者
这可能是最方便的抠图工具了!
源码地址:docs.qq.com/doc/DVHRQUVhKVkN2dUha
254 0
|
1月前
|
人工智能 自然语言处理 计算机视觉
StyleStudio:支持图像风格迁移的文生图模型,能将融合参考图像的风格和文本提示内容生成风格一致的图像
StyleStudio 是一种文本驱动的风格迁移模型,能够将参考图像的风格与文本提示内容融合。通过跨模态 AdaIN 机制、基于风格的分类器自由引导等技术,解决了风格过拟合、控制限制和文本错位等问题,提升了风格迁移的质量和文本对齐的准确性。
82 8
StyleStudio:支持图像风格迁移的文生图模型,能将融合参考图像的风格和文本提示内容生成风格一致的图像
|
5月前
|
机器学习/深度学习 算法 TensorFlow
|
3月前
|
自然语言处理 资源调度 前端开发
前端大模型入门(四):不同文本分割器对比和效果展示-教你如何根据场景选择合适的长文本分割方式
本文详细介绍了五种Langchain文本分割器:`CharacterTextSplitter`、`RecursiveCharacterTextSplitter`、`TokenTextSplitter`、`MarkdownTextSplitter` 和 `LatexTextSplitter`,从原理、优缺点及适用场景等方面进行了对比分析,旨在帮助开发者选择最适合当前需求的文本分割工具,提高大模型应用的处理效率和效果。
360 1
|
6月前
|
机器学习/深度学习 算法 TensorFlow
|
6月前
动态人物抠图换背景 MediaPipe
动态人物抠图换背景 MediaPipe
109 0
|
8月前
|
缓存 算法 计算机视觉
OpenCV图像处理-视频分割静态背景-MOG/MOG2/GMG
1.概念介绍 视频背景扣除原理:视频是一组连续的帧(一幅幅图组成),帧与帧之间关系密切(GOP/group of picture),在GOP中,背景几乎是不变的,变的永远是前景。
355 0
|
7月前
|
编解码 文字识别 算法
视觉智能开放平台产品使用合集之通用分割和通用高清分割、人体分割和高清人体分割具体有哪些区别
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
8月前
|
JSON 算法 Shell
【数据集】以人脸关键点为例讲解:如何通过开源项目快速制作关键点数据集
【数据集】以人脸关键点为例讲解:如何通过开源项目快速制作关键点数据集
159 0
|
8月前
|
机器学习/深度学习 并行计算 算法
OpenCV简介、导入及图像处理基础方法讲解(图文解释 附源码)
OpenCV简介、导入及图像处理基础方法讲解(图文解释 附源码)
176 0

热门文章

最新文章