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天前
|
前端开发 Python
Python 练习实例58
Python 练习实例58
|
1天前
|
前端开发 Python
Python 练习实例57
Python 练习实例57
|
1天前
|
前端开发 Python
Python 练习实例56
Python 练习实例56
|
1天前
|
前端开发 Python
Python 练习实例59
Python 练习实例59
|
1天前
|
人工智能 Python
Python 练习实例61
Python 练习实例61
|
1天前
|
人工智能 Python
Python 练习实例60
Python 练习实例60
|
1天前
|
缓存 测试技术 API
API的封装步骤流程
API封装流程是一个系统化的过程,旨在将内部功能转化为可复用的接口供外部调用。流程包括明确需求、设计接口、选择技术和工具、编写代码、测试、文档编写及部署维护。具体步骤为确定业务功能、数据来源;设计URL、请求方式、参数及响应格式;选择开发语言、框架和数据库技术;实现数据连接、业务逻辑、错误处理;进行功能、性能测试;编写详细文档;部署并持续维护。通过这些步骤,确保API稳定可靠,提高性能。
|
5天前
|
Python
Python 练习实例54
Python 练习实例54
|
21天前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之人脸数据库容量是否支持扩容
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
21天前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之处理一张图片大概耗时多久
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。