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

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

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

相关文章
|
JavaScript
vue element plus ColorPicker 颜色选择器
vue element plus ColorPicker 颜色选择器
637 0
|
JavaScript 前端开发 BI
最好用的 7 款 Vue admin 后台管理系统测评
Vue admin 后台管理系统作为每个项目必备的管理后台,对大家来说十分重要。选不好,配不好,不仅现在用着抓狂,未来迭代升级也困难重重,步步是坑。所以在技术选型阶段,就要对市面上主流的 Vue admin 做到全面了解,知道他们的优缺点,再根据自己项目的需求,有针对性的选择。我试用了市面上所有主流 Vue admin 都 npm 到本地测了一遍,筛掉长期不更新,bug 明显,社区活跃度低,功能单一的 admin 后台,把最好、最有特点的 7 款 Vue admin 挑出来,分享给大家。这些后台各有各的特点,有些功能多样,但整体很重;有些虽然稳定,但上线年头久远,含有大量陈旧功能;有些功能
4093 0
|
存储 算法 安全
【密码学】非对称加密算法 - ECDH
由于 ECC 密钥具有很短的长度,所以运算速度比较快。到目前为止,对于 ECC 进行逆操作还是很难的,数学上证明不可破解,ECC 算法的优势就是性能和安全性高。实际应用可以结合其他的公开密钥算法形成更快、更安全的公开密钥算法,比如结合 DH 密钥形成 ECDH 密钥协商算法,结合数字签名 DSA 算法组成 ECDSA 数字签名算法。ECDH算法常常用来进行密钥的协商,协商好密钥后,用来解决上面的密钥分配问题,将对称加密的密钥安全的传到对端设备。算法加密/解密数字签名密钥交换RSA✅✅✅❌。
6340 0
|
8月前
|
监控 安全 Java
别让技术债务拖垮你的系统!从识别、管控到清偿的完整落地手册
本文系统解析技术债务的本质、分类与管控:澄清其非“烂代码”,而是主动权衡;按Martin Fowler四象限与5大类型(代码/架构/测试/依赖/文档)精准识别;结合自动化扫描(SonarQube等)、ArchUnit架构校验与人工评审实现量化管理;提出童子军规则、测试先行重构、绞杀者模式等分层清偿策略,并强调融入全流程的长效机制。
669 3
|
10月前
|
人工智能 运维 监控
AI领域优质知识类博主深度推荐:技术、商业与伦理的跨界布道者
2025年AI浪潮中,十位知识博主脱颖而出,覆盖技术、工程、商业与伦理四大维度。他们以学术深度与实战经验,打通从理论到落地的闭环,构建AI时代的学习生态,成为从业者的“认知加速器”。
1665 0
|
10月前
|
算法 数据可视化 数据库
基于MATLAB的层合板等效模量及极限强度计算实现
基于MATLAB的层合板等效模量及极限强度计算实现
534 0
|
6月前
|
数据采集 传感器 编解码
基于STM32的可穿戴心率检测仪设计(数据采集+心率分析)
基于STM32的可穿戴心率检测仪设计(数据采集+心率分析)
|
8月前
|
人工智能 安全 API
1949AI 轻量化 AI 自动化 本地自动化工具 + 浏览器自动化 + Agent 自动化工具 小说连载生成技术实践
1949AI 轻量化 AI 自动化 本地自动化工具 + 浏览器自动化 + Agent 自动化工具 小说连载生成技术实践
|
Linux 开发工具 git
【Git】Git 完全指南:从入门到精通
Git 是一种强大的版本控制工具,掌握了其基本命令和高级特性后,可以大大提高开发效率并方便团队协作。通过本篇文章,你已经学会了 Git 的核心命令及其使用方法,希望你能够灵活运用 Git 在实际项目中进行版本管理。
5924 4

热门文章

最新文章