一、服务开通
1.阿里云官网首页搜索图像搜索
2.立即开通
3.选择实例配置后购买实例
4.进入阿里云控制台搜索图像搜索
5.点击进入实例
二、实例操作
图片上传
可以选择依次上传或批量上传,数量大的图片通常使用批量上传(此次演示图片批量新增)
1.新建increment.meta文件。
{"OperationType": "ADD","ProductId": "1","PicName": "Dog.jpg","CategoryId": 88888888,"CustomContent": "dog"}
{"OperationType": "ADD","ProductId": "2","PicName": "Chimpanzee.jpg","CategoryId": 88888888,"CustomContent": "chimpanzee"}
{"OperationType": "ADD","ProductId": "3","PicName": "car.jpg","CategoryId": 88888888,"CustomContent": "car"}
{"OperationType": "ADD","ProductId": "4","PicName": "cat.jpg","CategoryId": 88888888,"CustomContent": "cat"}
{"OperationType": "ADD","ProductId": "5","PicName": "kid.jpg","CategoryId": 88888888,"CustomContent": "kid"}
2.将图片以及increment.meta文件放入到oss中
3.批量操作
(1)进入实例新建批量任务
(2)填入必填信息后确认
(3)任务成功后查看概述图片数量
这边前两次都错了,根据批量处理结果查看是字段有问题,处理后成功了
图片搜索
(1)可以直接通过控制台进行图片搜索
(2)pythonSDK
添加依赖
pip install alibabacloud_imagesearch20201214
pythonSDK Code
from alibabacloud_imagesearch20201214.client import Client
from alibabacloud_imagesearch20201214.models import SearchImageByPicAdvanceRequest
from alibabacloud_tea_openapi.models import Config
from alibabacloud_oss_util.models import RuntimeOptions
def searchImageByPic() :
request = SearchImageByPicAdvanceRequest()
# 必填,图像搜索实例名称。
request.instance_name = '实例名称'
# 图片内容,最多支持 4MB大小图片以及5s的传输等待时间。当前仅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式图片;
# 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
# 对于布料搜索,图片长和宽的像素必须都大于等于448且小于等于4096;
# 图像中不能带有旋转信息
# 使用URL方式释放下方注释即可。
# url = '<fileUrl>'
# f = BytesIO(requests.get(url).content)
# 使用图片file 查询相似图片
f = open('本地图片', 'rb')
request.pic_content_object = f
# 选填,商品类目。
# 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
# 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
request.category_id = 3
# 选填,返回结果的数目。取值范围:1-100。默认值:10。
request.num = 10
# 选填,返回结果的起始位置。取值范围:0-499。默认值:0。
request.start = 0
# 选填,是否需要进行主体识别,默认为true。
# 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
# 2.为false时,则不进行主体识别,以整张图进行搜索。
# 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
request.crop = True
# 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。设置的region 区域不要超过图片的边界。
# 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
# 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
request.region="167,467,221,407"
# 选填,过滤条件
# int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持AND和OR进行连接。
# 示例:
# 1. 根据IntAttr过滤结果,int_attr>=100
# 2. 根据StrAttr过滤结果,str_attr!="value1"
# 3. 根据IntAttr和StrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
request.filter="int_attr=56 AND str_attr=\"test\""
config = Config()
config.access_key_id = 'ak'
config.access_key_secret = 'sk'
# 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint='imagesearch.cn-hangzhou.aliyuncs.com'
config.endpoint = 'imagesearch.地域.aliyuncs.com'
# 以下为内网(VPC)访问方式
# 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
# config.endpointType = 'internal' // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为'internal'
# config.endpoint = 'imagesearch-vpc.<regionId>.aliyuncs.com' // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint='imagesearch-vpc.cn-hangzhou.aliyuncs.com'
# 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId='cn-hangzhou'
config.region_id = 'region'
config.type = 'ak'
client = Client(config)
runtime_option = RuntimeOptions()
response = client.search_image_by_pic_advance(request, runtime_option)
print(response.to_map())
f.close()
if __name__ == '__main__':
searchImageByPic()
运行结果
{'headers': {'date': 'Wed, 07 Dec 2022 04:39:55 GMT', 'content-type': 'application/json;charset=utf-8', 'content-length': '658', 'connection': 'keep-alive', 'access-control-allow-origin': '*', 'x-acs-request-id': '45850583-2092-5D93-9C36-A298C5238310', 'x-acs-trace-id': '7e50138f7a9cc0f90c2a3febb0fa0802'}, 'statusCode': 200, 'body': {'Auctions': [], 'Code': 0, 'Head': {'DocsFound': 0, 'DocsReturn': 0, 'SearchTime': 119}, 'PicInfo': {'AllCategories': [{'Id': 0, 'Name': 'Tops'}, {'Id': 1, 'Name': 'Dress'}, {'Id': 2, 'Name': 'Bottoms'}, {'Id': 3, 'Name': 'Bag'}, {'Id': 4, 'Name': 'Shoes'}, {'Id': 5, 'Name': 'Accessories'}, {'Id': 6, 'Name': 'Snack'}, {'Id': 7, 'Name': 'Makeup'}, {'Id': 8, 'Name': 'Bottle'}, {'Id': 9, 'Name': 'Furniture'}, {'Id': 20, 'Name': 'Toy'}, {'Id': 21, 'Name': 'Underwear'}, {'Id': 22, 'Name': 'Digital device'}, {'Id': 88888888, 'Name': 'Other'}], 'CategoryId': 3, 'MultiRegion': [{'Region': '167,467,221,407'}, {'Region': '55,1165,75,714'}], 'Region': '167,467,221,407'}, 'RequestId': '45850583-2092-5D93-9C36-A298C5238310', 'Success': True}}
图片删除
1.全部删除
2.批量删除
与批量新增相同,将OperationType值修改为delete即可