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

简介: 快速学习第二节课——【分割抠图功能讲解及演示】

开发者学堂课程【达摩院视觉 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

相关文章
|
存储 Linux PHP
CentOS 8 安装图解(一)
CentOS 8 安装图解(一)
2773 0
CentOS 8 安装图解(一)
|
JavaScript 前端开发
在Vue2或Vue3中项目中使用 Isotope(同位素) 过滤和排序神奇的布局神器,全网独家实现!
本文介绍了在Vue2或Vue3项目中如何使用Isotope(同位素)布局库来创建动态的网格布局,并提供了详细的代码实现和效果展示,包括过滤和排序功能。
419 0
在Vue2或Vue3中项目中使用 Isotope(同位素) 过滤和排序神奇的布局神器,全网独家实现!
|
Cloud Native Go 开发工具
不改一行代码轻松玩转 Go 应用微服务治理
为了更好的进行 Go 应用微服务治理,提高研发效率和系统稳定性,本文将介绍 MSE 微服务治理方案,无需修改业务代码,实现治理能力。
20240 87
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
SQL Java 关系型数据库
MySQL与Java+Python的JDBC操作(代码+解说)
MySQL与Java+Python的JDBC操作(代码+解说)
1023 0
MySQL与Java+Python的JDBC操作(代码+解说)
|
存储 安全 IDE
电脑开机时报错No Bootable Device找不到索引的解决方法
【9月更文挑战第1天】当电脑开机时报错 “no bootable device”(找不到可引导设备),可能原因包括硬件连接问题、引导顺序设置错误、系统引导文件损坏及 BIOS 设置问题。解决方法有检查硬盘连接与状态、调整 BIOS 引导顺序、使用安装盘修复引导文件、检查硬盘模式设置及恢复 BIOS 默认设置等。若问题依旧,建议寻求专业维修帮助,并备份重要数据。
8652 9
|
机器学习/深度学习 PyTorch TensorFlow
ONNX 与量化:提高模型效率
【8月更文第27天】随着人工智能技术的广泛应用,模型部署变得越来越重要。为了在资源受限的设备上运行复杂的机器学习模型,模型量化技术成为了一种有效的手段。Open Neural Network Exchange (ONNX) 作为一种开放格式,支持在不同框架之间交换训练好的模型,同时也支持模型量化。本文将探讨如何结合 ONNX 和模型量化技术来提高模型的效率,减少模型大小并加快推理速度。
2956 2
|
前端开发 JavaScript 测试技术
Python中的全栈开发
【6月更文挑战第6天】本文探讨了Python在全栈开发中的应用,展示了如何利用Python的Django和Flask框架进行后端开发,以及与JavaScript前端框架的集成。文中通过示例介绍了Django和Flask的基本用法,并讨论了全栈开发中的前端集成、CORS问题、数据传输、身份验证、异步编程、性能优化、日志记录、错误处理、测试、安全性、数据库集成、实时通信、缓存和扩展功能。此外,还强调了全栈开发涉及的团队协作、项目管理和用户体验,指出Python为全栈开发提供了强有力的支持。
|
机器学习/深度学习 编解码 人工智能
图像分割基础
图像分割基础
724 0
图像分割基础

热门文章

最新文章

下一篇
开通oss服务