Python动物图像分割API简单调用实例演示,阿里达摩院视觉智能开放平台使用步骤

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
视觉智能开放平台,图像资源包5000点
简介: 图像分割的目标是将图像中的像素分成不同的组或区域,使具有相似特征的像素属于同一组,从而实现目标对象的提取。常见的图像分割方法之一是语义分割(Semantic Segmentation)。语义分割通过深度学习模型,如卷积神经网络(CNN),学习图像的特征表示,并生成像素级的分割结果。通常,语义分割使用全卷积网络(FCN)或其改进版本作为网络结构。编码器用于提取图像的特征表示,而解码器通过上采样操作将特征图还原到原始图像的尺寸,并生成分割结果。

效果图演示


调用本地图片处理后可以直接保存到本地,右边就是分割好的效果图,可以看到分割的效果还算比较好,尤其是第二个狗,背景有人都能处理的很好,比之前用到的很多训练包还好。

image.png

狗原图:

image.png

处理后的效果图:

image.png


平台入口


可以直接访问地址阿里达摩院视觉智能开放平台,或者通过主页的菜单来进入。

image.png

image.png

进来有线上分割演示,上传图片即可。

image.png


创建获取密钥


点击控制台个人头像的 AccessKey 管理

image.png

image.png


本地图片转 URL 与密钥测试


本地图片文件生成 url 测试。

后面正好会用这个 url 地址进行上传使用。

首先要安装下相关包:

pip install oss2
pip install aliyun-python-sdk-viapiutils
pip install viapi-utils

然后是测试代码:

密钥信息要换成自己的。

from viapi.fileutils import FileUtils
# 这里填入上面获取到的秘钥信息
file_utils = FileUtils("YOUR_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_SECRET")
# 场景一,使用本地文件,第一个参数为文件路径,第二个参数为生成的url后缀,但是并不能通过这种方式改变真实的文件类型,第三个参数True表示本地文件模式
oss_url = file_utils.get_oss_url("C:/Users/Administrator/Desktop/cat.png", "png", True)
# 场景二,使用任意可访问的url,第一个url,第二个参数为生成的url后缀,但是并不能通过这种方式改变真实的文件类型,第三个参数False表示非本地文件模式
# oss_url = file_utils.get_oss_url("https://viapi-test-bj.oss-cn-beijing.aliyuncs.com/viapi-3.0domepic/ocr/RecognizeBankCard/yhk1.jpg", "jpg", False)
# 生成的url,可用于调用视觉智能开放平台的能力
print(oss_url)

如果运行后返回一个 url 地址就证明上传没问题。

image.png


代码调用演示


首先通过查看 SDK 参照文档,可以查看使用相关功能需要安装的库。

这里使用分割抠图,用到的就是 pip install alibabacloud_imageseg20191230

image.png

然后就是调用代码:

官方给的调用示例稍微复杂点,这里进行了简单化处理,方便大家来理解。

# 自己的密钥信息
access_key_id = "xxx"
access_key_secret = "xxx"
# 配置项
from alibabacloud_tea_openapi import models as open_api_models
config = open_api_models.Config(
    access_key_id=access_key_id,
    access_key_secret=access_key_secret
)
config.endpoint = 'imageseg.cn-shanghai.aliyuncs.com'
from alibabacloud_imageseg20191230.client import Client
from alibabacloud_imageseg20191230 import models
# 加载配置项
client = Client(config)
# 根据图片url封装请求,这里用到的就是上一节生成的url
request = models.SegmentAnimalRequest(image_url=oss_url)
# 进行动物分割处理  
response = client.segment_animal(request)
# 获取请求里的图片地址,这个地址输入到浏览器里可以直接下载查看
image_url = response.body.data.image_url
print(image_url)
# 将处理后的图片地址保存到本地
import urllib.request
urllib.request.urlretrieve(image_url, "C:/Users/Administrator/Desktop/deal/cat_result.png")

处理后效果图如下:

image.png


语义分割知识拓展


图像分割的目标是将图像中的像素分成不同的组或区域,使具有相似特征的像素属于同一组,从而实现目标对象的提取。常见的图像分割方法之一是语义分割(Semantic Segmentation)。


语义分割通过深度学习模型,如卷积神经网络(CNN),学习图像的特征表示,并生成像素级的分割结果。通常,语义分割使用全卷积网络(FCN)或其改进版本作为网络结构。编码器用于提取图像的特征表示,而解码器通过上采样操作将特征图还原到原始图像的尺寸,并生成分割结果。


卷积神经网络(Convolutional Neural Networks,CNN):CNN是一种深度学习模型,广泛应用于图像处理任务。对于图像分割,CNN可以学习图像的特征表示,并生成像素级的分割结果。


网络结构:通常,语义分割使用的网络结构是全卷积网络(Fully Convolutional Networks,FCN)或其改进版本。这些网络通常由编码器和解码器组成。编码器用于提取图像的特征表示,而解码器则通过上采样操作将特征图还原到原始图像的尺寸,并生成分割结果。


训练数据和标签:图像分割模型需要大量标记好的训练数据。对于动物图像分割,训练数据应包含动物和背景的图像,以及对应的像素级标签,其中动物部分标记为前景,背景部分标记为背景。这些标签可以通过人工标注或使用图像分割工具(如Mask R-CNN等)生成。


损失函数:在训练过程中,需要定义适当的损失函数来度量模型预测分割结果与真实标签之间的差异。常用的损失函数包括交叉熵损失和Dice损失等。


推理和后处理:在推理阶段,通过输入图像到已训练好的模型中,得到每个像素属于前景或背景的概率。可以根据阈值对概率进行二值化,得到最终的分割结果。为了进一步提高分割质量,可以应用后处理技术,如连通区域分析、边缘平滑等。


阿里云达摩院智能视觉开放平台


阿里云达摩院视觉智能开放平台是阿里巴巴集团旗下的人工智能技术平台之一,旨在为开发者和企业提供强大的视觉智能能力和解决方案。以下是对阿里云达摩院视觉智能开放平台的简要介绍:

视觉智能能力: 阿里云达摩院视觉智能开放平台提供了多项视觉智能能力,包括图像识别、图像搜索、图像分割、人脸识别、人体关键点检测等。这些能力基于深度学习和计算机视觉技术,可以实现对图像和视频内容的高精度分析和处理。


API和SDK支持: 开放平台提供了丰富的API和SDK,方便开发者在各种应用场景中集成和调用视觉智能能力。通过简单的接口调用,开发者可以实现图像识别、人脸比对、图像搜索等功能。


完整的解决方案: 阿里云达摩院视觉智能开放平台还提供了一系列完整的解决方案,包括智能零售、智能安防、智能交通等。这些解决方案基于阿里云的强大计算和存储能力,结合视觉智能技术,可以帮助企业快速构建和部署各种视觉智能应用。


算法模型和数据集: 开放平台还提供了一些高质量的算法模型和数据集,供开发者使用和参考。这些模型和数据集经过训练和验证,可以在各种视觉任务中发挥良好的效果,并加速开发者的开发过程。


阿里云达摩院视觉智能开放平台致力于为开发者和企业提供领先的视觉智能能力和解决方案,帮助他们快速构建和部署创新的视觉应用。通过该平台,开发者可以实现图像识别、人脸识别、图像搜索等各种功能,提升业务的智能化水平。

目录
相关文章
|
1月前
|
API
阿里云短信平台API错误码提示错误天级流控显示小时级错误码
阿里云短信平台API错误码提示错误天级流控显示小时级错误码
|
22天前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
70 0
|
1月前
|
Python
Python中的push方法详解与实例
Python中的push方法详解与实例
|
1月前
|
前端开发 API 开发者
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
39 4
|
1月前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
51 2
|
1月前
|
数据处理 Python
Python内置时间模块:Datetime实例详解(一)
Python内置时间模块:Datetime实例详解(一)
|
1月前
|
数据可视化 Python
Python绘制基频曲线——实例解析与应用探讨
Python绘制基频曲线——实例解析与应用探讨
|
1月前
|
Python 容器
AutoDL Python实现 自动续签 防止实例过期释放 小脚本 定时任务 apscheduler requests
AutoDL Python实现 自动续签 防止实例过期释放 小脚本 定时任务 apscheduler requests
31 0
|
1月前
|
前端开发 API 数据格式
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
在Web开发领域,技术的快速迭代推动着应用不断进化。传统前后端交互方式已无法满足现代Web应用对高效、实时性和用户体验的需求。AJAX作为异步通信的先驱,使页面无需刷新即可更新部分内容,显著提升用户体验;尽管XML曾是其主要数据格式,但如今JSON已成为主流。Fetch API则以其简洁、灵活的特点成为AJAX的现代替代品,基于Promises的异步请求让开发更加高效。与此同时,Python后端凭借高效稳定和丰富的库支持,成为众多开发者的首选,无论是轻量级的Flask还是全功能的Django,都能为Web应用提供强大的支撑。
40 0
|
1月前
|
Python
Python内置时间模块:Datetime实例详解(二)
Python内置时间模块:Datetime实例详解(二)
下一篇
无影云桌面