效果图演示
调用本地图片处理后可以直接保存到本地,右边就是分割好的效果图,可以看到分割的效果还算比较好,尤其是第二个狗,背景有人都能处理的很好,比之前用到的很多训练包还好。
狗原图:
处理后的效果图:
平台入口
可以直接访问地址阿里达摩院视觉智能开放平台,或者通过主页的菜单来进入。
进来有线上分割演示,上传图片即可。
创建获取密钥
点击控制台个人头像的 AccessKey 管理
本地图片转 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 地址就证明上传没问题。
代码调用演示
首先通过查看 SDK 参照文档,可以查看使用相关功能需要安装的库。
这里使用分割抠图,用到的就是 pip install alibabacloud_imageseg20191230
然后就是调用代码:
官方给的调用示例稍微复杂点,这里进行了简单化处理,方便大家来理解。
# 自己的密钥信息 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")
处理后效果图如下:
语义分割知识拓展
图像分割的目标是将图像中的像素分成不同的组或区域,使具有相似特征的像素属于同一组,从而实现目标对象的提取。常见的图像分割方法之一是语义分割(Semantic Segmentation)。
语义分割通过深度学习模型,如卷积神经网络(CNN),学习图像的特征表示,并生成像素级的分割结果。通常,语义分割使用全卷积网络(FCN)或其改进版本作为网络结构。编码器用于提取图像的特征表示,而解码器通过上采样操作将特征图还原到原始图像的尺寸,并生成分割结果。
卷积神经网络(Convolutional Neural Networks,CNN):CNN是一种深度学习模型,广泛应用于图像处理任务。对于图像分割,CNN可以学习图像的特征表示,并生成像素级的分割结果。
网络结构:通常,语义分割使用的网络结构是全卷积网络(Fully Convolutional Networks,FCN)或其改进版本。这些网络通常由编码器和解码器组成。编码器用于提取图像的特征表示,而解码器则通过上采样操作将特征图还原到原始图像的尺寸,并生成分割结果。
训练数据和标签:图像分割模型需要大量标记好的训练数据。对于动物图像分割,训练数据应包含动物和背景的图像,以及对应的像素级标签,其中动物部分标记为前景,背景部分标记为背景。这些标签可以通过人工标注或使用图像分割工具(如Mask R-CNN等)生成。
损失函数:在训练过程中,需要定义适当的损失函数来度量模型预测分割结果与真实标签之间的差异。常用的损失函数包括交叉熵损失和Dice损失等。
推理和后处理:在推理阶段,通过输入图像到已训练好的模型中,得到每个像素属于前景或背景的概率。可以根据阈值对概率进行二值化,得到最终的分割结果。为了进一步提高分割质量,可以应用后处理技术,如连通区域分析、边缘平滑等。
阿里云达摩院智能视觉开放平台
阿里云达摩院视觉智能开放平台是阿里巴巴集团旗下的人工智能技术平台之一,旨在为开发者和企业提供强大的视觉智能能力和解决方案。以下是对阿里云达摩院视觉智能开放平台的简要介绍:
视觉智能能力: 阿里云达摩院视觉智能开放平台提供了多项视觉智能能力,包括图像识别、图像搜索、图像分割、人脸识别、人体关键点检测等。这些能力基于深度学习和计算机视觉技术,可以实现对图像和视频内容的高精度分析和处理。
API和SDK支持: 开放平台提供了丰富的API和SDK,方便开发者在各种应用场景中集成和调用视觉智能能力。通过简单的接口调用,开发者可以实现图像识别、人脸比对、图像搜索等功能。
完整的解决方案: 阿里云达摩院视觉智能开放平台还提供了一系列完整的解决方案,包括智能零售、智能安防、智能交通等。这些解决方案基于阿里云的强大计算和存储能力,结合视觉智能技术,可以帮助企业快速构建和部署各种视觉智能应用。
算法模型和数据集: 开放平台还提供了一些高质量的算法模型和数据集,供开发者使用和参考。这些模型和数据集经过训练和验证,可以在各种视觉任务中发挥良好的效果,并加速开发者的开发过程。
阿里云达摩院视觉智能开放平台致力于为开发者和企业提供领先的视觉智能能力和解决方案,帮助他们快速构建和部署创新的视觉应用。通过该平台,开发者可以实现图像识别、人脸识别、图像搜索等各种功能,提升业务的智能化水平。