大家好这里是失踪人口三岁,最近较为繁忙,今天给大家来一个万能抠图系统,当然是“万能”抠图
智能抠图寻找
众所周知智能抠图都是源于AI的技术,需要大量AI支持,个人基本上无法独立完成,需要利用已经有的模块进行API的调用。
具体流程如下:1、寻找好的模型 2、根据实际情况进行选择3、根据选择进行API 的查看及使用 4、对脚本进行修改,处理。
抠图模块推荐
三岁查找了数据发现了一些较好的抠图模块(cv处理)
优点:可以参考API和文档进行自定义的识别,可拓展行性极大
缺点:只能够抠图,自定义代码要求高,难度大,对显卡等要求大,环境配置困难(如果要减轻以上难度建议使用百度 AI Studio)
里面有一系列视觉产品可使用率高,效果好
优点:API随时可用文档讲解属于小白易懂型(三岁都懂了)
缺点:内容固定,无法自定义,使用需要收费,个人使用压力大,需要阿里云生态配置环境较困难。
3、其他未成型的(半成型)的模块:
Pattern Recognition 2020
(其他好的模型需要大家提供,相互学习啊!)
根据实际情况选取模块
本次使用的是万能抠图和达摩院智能新出开放平台新出的通用抠图模块(好用的很!)
1、通用分割
一起来看看怎么使用吧!
输入图片要求
- 图片格式:JPEG、JPG、PNG(不支持8位、16位、64位* PNG)、BMP、WEBP。
- 图像大小:图像大小不超过3M。
- 图像分辨率:分辨率要求大于32×32像素,小于1280×1280像素。
- 图片URL地址中不能包含中文字符。
请求参数
返回数据
python代码查看
#!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkimageseg.request.v20191230.SegmentCommonImageRequest import SegmentCommonImageRequest client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-shanghai') # 自己的access键值ID和密码 request = SegmentCommonImageRequest() request.set_accept_format('json') request.set_ImageURL("https://viapi-test.oss-cn-shanghai.aliyuncs.com/XXXXXXXXX.jpg") # 上海服务器地址 response = client.do_action_with_exception(request) # python2: print(response) print(str(response, encoding='utf-8'))
此处会出现问题,导入的包报错
cmd中使用
pip install aliyun-python-sdk-imageseg
加载完成即可解决
获得结果
{ "RequestId": "FA124712-FCAA-4C38-A826-2A7B21E35DBE", "Data": { "ImageURL": "http://viapi-cn-shanghai-dha-parser.oss-cn-shanghai.aliyuncs.com/upload/result_commoditysegmenter/2020-6-17/invi_commoditysegmenter_015923801414111455675_7ZDLdJ.png?Expires=1592381941&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=lKotPtwD%2FJHZGGIqo5JV7v20xM****" } }
上海服务器地址如何获得:
- 使用python无法上传图片,只能够把网络图片进行处理
安装依赖:
pip install oss2 pip install aliyun-python-sdk-viapiutils pip install aliyun-python-sdk-core pip install viapi-utils
代码:
from viapi.fileutils import FileUtils file_utils = FileUtils("your own accessKey","your own accessSecret") oss_url = file_utils.get_oss_url("http://xxx.jpeg","jpg",False) # 图片 print(oss_url) oss_url = file_utils.get_oss_url("/home/xxx.mp4","mp4",True) # 视频 print(oss_url)
代码汇总
环境依赖
pip install oss2 -i https://mirror.baidu.com/pypi/simple pip install aliyun-python-sdk-viapiutils pip install aliyun-python-sdk-core pip install viapi-utils pip install aliyun-python-sdk-core pip install aliyun-python-sdk-imageseg pip install aliyun-python-sdk-ivpd pip install requests
代码:
from viapi.fileutils import FileUtils from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkimageseg.request.v20191230.SegmentCommonImageRequest import SegmentCommonImageRequest from request from json photo_url = input("原图url:") # 获取地址 file_utils = FileUtils("your own accessKey","your own accessSecret") oss_url = file_utils.get_oss_url(photo_url, "jpg", False) # 获得抠图后地址: client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-shanghai') # 自己的access键值ID和密码 request = SegmentCommonImageRequest() request.set_accept_format('json') request.set_ImageURL(oss_url) # 上海服务器地址 response = client.do_action_with_exception(request) # python2: print(response) new_url = json.loads(response, encoding='utf-8')['Data']['ImageURL'] # 保存图片 photo = requests.get(new_url) with open(f'.\\{url[-15:-5]}.jpg', 'wb')as f: f.write(photo.content)
以上就是完整的代码及流程了,大家看看怎么样
PS:需要开通有关服务是第一步忘记了,没有恰饭,好用的大家一起用(这段时间是免费使用,棒棒的)
这里是宿三岁,今天就先到这里了,希望大家继续关注,记得点赞,关注,留言,评论,有问题三岁都会认真回答哒!