第二节课——【分割抠图功能讲解及演示】|学习笔记

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

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

课程地https://developer.aliyun.com/learning/course/912/detail/14419


第二节课——【分割抠图功能讲解及演示】

内容介绍:

一、一些图像相关的基础概念

二、智能视觉开放平台图像分割的使用方法

三、在图像分割结果上进行二次加工的例子

一、一些图像相关的基础概念

最常用的图像格式一般是3通道的 BGR 格式,即一张图可以分为B(蓝)、G(绿)、R(红)三个颜色分量;

4通道图片格式为 PNG,区别于3通道图可以看到除了它的人物以外的背景区域是半透明的状态,那么图像可视化的边界就可以支持一些不规则的边缘,而3通道只能是矩形的。

多出来的4通道 alpha 通道则用来控制对应像素的透明程度:0表示全透,255表示不透。

如果 alpha 通道为全255,那么这张图片视觉上和3通道就没有差别了(后面统称alpha 通道为 mask)。在3通道图片的基础上,融合对应的 mask 图层,就可以得到抠图后的 png 图片,平台的能力主要是用来预测图片主体的 mask 图层。接下来介绍如何使用该能力。


二、智能视觉开放平台图像分割的使用方法

首先进入智能视觉开放平台官网http://vision.aliyun.com/并登录阿里云账号,在能力广场-分割抠图类目下找到自己需要的接口。这里以人体分割作为样例,进入到试用界面,可以先试用,满意后再开通服务。

点击上传图片,上传成功后点击发起调用,可以看到右边就是算法结果。对于结果的满意程度这里强烈建议点击反馈,方便购物做进一步的优化。

点击代码展示,这里展示的为抠图服务反回的阶层结果,ImageURL 表示的就是刚才结果图的图片地址了。点击帮助文档,这里有更多服务的详情介绍。

下一步讲述如果免费开通:点击免费开通,选择需要开通的接口,点击立即购买,再点击确认付款。点击提示到跳转控制台,在控制台可以看到已经开通的能力。在分割抠图模块的相关信息也是可以看到的,如果需要更高的 QPS 支持,可以点击这里进行购买

接下来看如何开通对应的 API 服务:回到上一级界面往下滑,这里有示例代码以及开通需要接入的 SDK。

提醒在使用 SDK 前需要提前开通 OSS 服务和创建 AccessKey。然后点击 Python 对应的 SDK 界面,

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

pip install aliyun-python-sdk-core,其次再安装对应的分割接口:pip install aliyun-python-sdk-imageseg,然后返回上一级目录,选择 Python 示例,复制代码并粘贴在对应的编辑器中。

图片地址必须存放在 shanghai 的 oss-viapi 里面,点击运行,可以看到服务器反回的结果及服务器反回的解析后到的图片 url,以及把该 url 对应的图片写到本地的结果。

url = "https://viapi-data-shanghai.oss-cn-shanghai,aliyuncs.com/ppt source

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

request = SegmentBodyRequest()

request.set_accept_format('json')

request.set ImageURL (url)

response = client.do_action_with_exception(request)

resultJson = str(response,eneoding='utf-8')

print(resultJson)

import json

resultUrl = json.loads (resultJson)["Data"]["ImageURL"]

print(resultUrl)

输出结果为:

Process finished with exit code 0

三、在图像分割结果上进行二次加工的例子

示例代码的结构:downloadDate.sh(用来下载图片素材),backgroundMergeDemo.py(用来展示如何抠图)。首先运行downloadDate.sh,运行脚本进行和图,(pic表示的是图片和图,vid表示的是视频和图)出现result.jpg就是和图后的结果。

和图代码的基础逻辑:

首先传进来有4个参数:of_file = arge.files,sc_image, viapi_image,bg_image。然后对 png 图片和背景图片进行 resize,保证和背景图片的尺寸是一致的。

接着提取一下 mask 通道,对于4通道图直接把 alpha 通道提取出来;对于有些可能是把 alpha 通道转换成了一个灰度图,那么这一块也会做一个转换,然后对图像再进行一个规划到0到1,然后再按照之前提到的前景*alpha+背景*(1-alpha)的公式进行计算。

核心代码主要是是:of_image = (sc_image-bg_image)*mask + bg_image。它是上一个公式的变种可以减少一次 floa t计算。然后把图片写回到输出文件地址,本次教程结束。

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( invialld image 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 + bg image

相关文章
Threejs入门进阶实战案例(5):坐标系理解时辅助坐标系的使用
Threejs入门进阶实战案例(5):坐标系理解时辅助坐标系的使用
127 0
|
人工智能 JSON API
|
前端开发 JavaScript
Threejs入门进阶实战案例(3):视频贴图的解决方案
Threejs入门进阶实战案例(3):视频贴图的解决方案
323 0
|
5月前
|
前端开发 定位技术
前端知识笔记(十七)———地图多点标注功能
前端知识笔记(十七)———地图多点标注功能
117 1
|
5月前
|
数据安全/隐私保护 计算机视觉 Python
OpenCV中图像的位运算讲解与实战演示(附Python源码 图文解释)
OpenCV中图像的位运算讲解与实战演示(附Python源码 图文解释)
147 0
|
10月前
|
存储 JSON 搜索推荐
【测试平台系列】第一章 手撸压力机(十二)-初步实现提取功能
上一章节,我们主要实现了基础的并发测试场景的能力。本章节,我们实现一下,如何对响应进行提取,使用正则/json对响应信息提取,并赋值给我们定义的变量。
|
机器学习/深度学习 算法 PyTorch
Python实现替换照片人物背景,精细到头发丝(附上代码) | 机器学习(1)
Python实现替换照片人物背景,精细到头发丝(附上代码) | 机器学习
Python实现替换照片人物背景,精细到头发丝(附上代码) | 机器学习(1)
|
容器
微信小游戏开发实战10-检查形状
本篇主要内容:1010游戏中的形状检查以及游戏结束的判断。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
101 0
微信小游戏开发实战10-检查形状
|
数据可视化
gganimate|创建可视化动图,让你的表会说话
gganimate|创建可视化动图,让你的表会说话
|
缓存 算法
消除游戏系列教程大合集
今天给大家带来一份消除游戏系列教程大合集,谦虚的讲这应该是全网你能找到的最好的消除游戏系列教程(反正我是没找到更好的)。这年头儿,像小蚂蚁这样的,虽然没几个人看但还在孜孜不倦的写教程的人已经不多了,所以大家且看且珍惜,一定要记得收藏,虽然收藏了你也不会看,但是至少有个心理安慰。如果对你有用的话,不要忘了点赞分享一下,也算是对我的鼓励了。
69 0
下一篇
无影云桌面