# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import warnings
from tencentcloud.common.abstract_model import AbstractModel
class Location(AbstractModel):
"""检测到的主体在图片中的矩形框位置(四个顶点坐标)
"""
def __init__(self):
r"""
:param _XMin: 位置矩形框的左上角横坐标
:type XMin: int
:param _YMin: 位置矩形框的左上角纵坐标
:type YMin: int
:param _XMax: 位置矩形框的右下角横坐标
:type XMax: int
:param _YMax: 位置矩形框的右下角纵坐标
:type YMax: int
"""
self._XMin = None
self._YMin = None
self._XMax = None
self._YMax = None
@property
def XMin(self):
"""位置矩形框的左上角横坐标
:rtype: int
"""
return self._XMin
@XMin.setter
def XMin(self, XMin):
self._XMin = XMin
@property
def YMin(self):
"""位置矩形框的左上角纵坐标
:rtype: int
"""
return self._YMin
@YMin.setter
def YMin(self, YMin):
self._YMin = YMin
@property
def XMax(self):
"""位置矩形框的右下角横坐标
:rtype: int
"""
return self._XMax
@XMax.setter
def XMax(self, XMax):
self._XMax = XMax
@property
def YMax(self):
"""位置矩形框的右下角纵坐标
:rtype: int
"""
return self._YMax
@YMax.setter
def YMax(self, YMax):
self._YMax = YMax
def _deserialize(self, params):
self._XMin = params.get("XMin")
self._YMin = params.get("YMin")
self._XMax = params.get("XMax")
self._YMax = params.get("YMax")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class ProductInfo(AbstractModel):
"""图像识别出的商品的详细信息。
当图像中检测到多个物品时,会对显著性最高的物品进行识别。
"""
def __init__(self):
r"""
:param _FindSKU: 1表示找到同款商品,以下字段为同款商品信息;
0表示未找到同款商品, 具体商品信息为空(参考价格、名称、品牌等),仅提供商品类目。
是否找到同款的判断依据为Score分值,分值越大则同款的可能性越大。
:type FindSKU: int
:param _Location: 本商品在图片中的坐标,表示为矩形框的四个顶点坐标。
:type Location: :class:`tencentcloud.iir.v20200417.models.Location`
:param _Name: 商品名称
:type Name: str
:param _Brand: 商品品牌
:type Brand: str
:param _Price: 参考价格,综合多个信息源,仅供参考。
:type Price: str
:param _ProductCategory: 识别结果的商品类目。
包含:鞋、图书音像、箱包、美妆个护、服饰、家电数码、玩具乐器、食品饮料、珠宝、家居家装、药品、酒水、绿植园艺、其他商品、非商品等。
当类别为“非商品”时,除Location、Score和本字段之外的商品信息为空。
:type ProductCategory: str
:param _Score: 输入图片中的主体物品和输出结果的相似度。分值越大,输出结果与输入图片是同款的可能性越高。
:type Score: float
:param _Image: 搜索到的商品配图URL
:type Image: str
"""
self._FindSKU = None
self._Location = None
self._Name = None
self._Brand = None
self._Price = None
self._ProductCategory = None
self._Score = None
self._Image = None
@property
def FindSKU(self):
"""1表示找到同款商品,以下字段为同款商品信息;
0表示未找到同款商品, 具体商品信息为空(参考价格、名称、品牌等),仅提供商品类目。
是否找到同款的判断依据为Score分值,分值越大则同款的可能性越大。
:rtype: int
"""
return self._FindSKU
@FindSKU.setter
def FindSKU(self, FindSKU):
self._FindSKU = FindSKU
@property
def Location(self):
"""本商品在图片中的坐标,表示为矩形框的四个顶点坐标。
:rtype: :class:`tencentcloud.iir.v20200417.models.Location`
"""
return self._Location
@Location.setter
def Location(self, Location):
self._Location = Location
@property
def Name(self):
"""商品名称
:rtype: str
"""
return self._Name
@Name.setter
def Name(self, Name):
self._Name = Name
@property
def Brand(self):
"""商品品牌
:rtype: str
"""
return self._Brand
@Brand.setter
def Brand(self, Brand):
self._Brand = Brand
@property
def Price(self):
"""参考价格,综合多个信息源,仅供参考。
:rtype: str
"""
return self._Price
@Price.setter
def Price(self, Price):
self._Price = Price
@property
def ProductCategory(self):
"""识别结果的商品类目。
包含:鞋、图书音像、箱包、美妆个护、服饰、家电数码、玩具乐器、食品饮料、珠宝、家居家装、药品、酒水、绿植园艺、其他商品、非商品等。
当类别为“非商品”时,除Location、Score和本字段之外的商品信息为空。
:rtype: str
"""
return self._ProductCategory
@ProductCategory.setter
def ProductCategory(self, ProductCategory):
self._ProductCategory = ProductCategory
@property
def Score(self):
"""输入图片中的主体物品和输出结果的相似度。分值越大,输出结果与输入图片是同款的可能性越高。
:rtype: float
"""
return self._Score
@Score.setter
def Score(self, Score):
self._Score = Score
@property
def Image(self):
"""搜索到的商品配图URL
:rtype: str
"""
return self._Image
@Image.setter
def Image(self, Image):
self._Image = Image
def _deserialize(self, params):
self._FindSKU = params.get("FindSKU")
if params.get("Location") is not None:
self._Location = Location()
self._Location._deserialize(params.get("Location"))
self._Name = params.get("Name")
self._Brand = params.get("Brand")
self._Price = params.get("Price")
self._ProductCategory = params.get("ProductCategory")
self._Score = params.get("Score")
self._Image = params.get("Image")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class RecognizeProductRequest(AbstractModel):
"""RecognizeProduct请求参数结构体
"""
def __init__(self):
r"""
:param _ImageUrl: 图片限制:内测版仅支持jpg、jpeg,图片大小不超过1M,分辨率在25万到100万之间。
建议先对图片进行压缩,以便提升处理速度。
:type ImageUrl: str
:param _ImageBase64: 图片经过base64编码的内容。最大不超过1M,分辨率在25万到100万之间。
与ImageUrl同时存在时优先使用ImageUrl字段。
**注意:图片需要base64编码,并且要去掉编码头部。**
:type ImageBase64: str
"""
self._ImageUrl = None
self._ImageBase64 = None
@property
def ImageUrl(self):
"""图片限制:内测版仅支持jpg、jpeg,图片大小不超过1M,分辨率在25万到100万之间。
建议先对图片进行压缩,以便提升处理速度。
:rtype: str
"""
return self._ImageUrl
@ImageUrl.setter
def ImageUrl(self, ImageUrl):
self._ImageUrl = ImageUrl
@property
def ImageBase64(self):
"""图片经过base64编码的内容。最大不超过1M,分辨率在25万到100万之间。
与ImageUrl同时存在时优先使用ImageUrl字段。
**注意:图片需要base64编码,并且要去掉编码头部。**
:rtype: str
"""
return self._ImageBase64
@ImageBase64.setter
def ImageBase64(self, ImageBase64):
self._ImageBase64 = ImageBase64
def _deserialize(self, params):
self._ImageUrl = params.get("ImageUrl")
self._ImageBase64 = params.get("ImageBase64")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class RecognizeProductResponse(AbstractModel):
"""RecognizeProduct返回参数结构体
"""
def __init__(self):
r"""
:param _RegionDetected: 检测到的图片中的商品位置和品类预测。
当图片中存在多个商品时,输出多组坐标,按照__显著性__排序(综合考虑面积、是否在中心、检测算法置信度)。
最多可以输出__3组__检测结果。
:type RegionDetected: list of RegionDetected
:param _ProductInfo: 图像识别出的商品的详细信息。
当图像中检测到多个物品时,会对显著性最高的进行识别。
:type ProductInfo: :class:`tencentcloud.iir.v20200417.models.ProductInfo`
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._RegionDetected = None
self._ProductInfo = None
self._RequestId = None
@property
def RegionDetected(self):
"""检测到的图片中的商品位置和品类预测。
当图片中存在多个商品时,输出多组坐标,按照__显著性__排序(综合考虑面积、是否在中心、检测算法置信度)。
最多可以输出__3组__检测结果。
:rtype: list of RegionDetected
"""
return self._RegionDetected
@RegionDetected.setter
def RegionDetected(self, RegionDetected):
self._RegionDetected = RegionDetected
@property
def ProductInfo(self):
"""图像识别出的商品的详细信息。
当图像中检测到多个物品时,会对显著性最高的进行识别。
:rtype: :class:`tencentcloud.iir.v20200417.models.ProductInfo`
"""
return self._ProductInfo
@ProductInfo.setter
def ProductInfo(self, ProductInfo):
self._ProductInfo = ProductInfo
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
if params.get("RegionDetected") is not None:
self._RegionDetected = []
for item in params.get("RegionDetected"):
obj = RegionDetected()
obj._deserialize(item)
self._RegionDetected.append(obj)
if params.get("ProductInfo") is not None:
self._ProductInfo = ProductInfo()
self._ProductInfo._deserialize(params.get("ProductInfo"))
self._RequestId = params.get("RequestId")
class RegionDetected(AbstractModel):
"""检测到的图片中的商品位置和品类预测。
当图片中存在多个商品时,输出多组坐标,按照__显著性__排序(综合考虑面积、是否在中心、检测算法置信度)。
最多可以输出__3组__检测结果。
"""
def __init__(self):
r"""
:param _Category: 商品的品类预测结果。
包含:鞋、图书音像、箱包、美妆个护、服饰、家电数码、玩具乐器、食品饮料、珠宝、家居家装、药品、酒水、绿植园艺、其他商品、非商品等。
:type Category: str
:param _CategoryScore: 商品品类预测的置信度
:type CategoryScore: float
:param _Location: 检测到的主体在图片中的坐标,表示为矩形框的四个顶点坐标
:type Location: :class:`tencentcloud.iir.v20200417.models.Location`
"""
self._Category = None
self._CategoryScore = None
self._Location = None
@property
def Category(self):
"""商品的品类预测结果。
包含:鞋、图书音像、箱包、美妆个护、服饰、家电数码、玩具乐器、食品饮料、珠宝、家居家装、药品、酒水、绿植园艺、其他商品、非商品等。
:rtype: str
"""
return self._Category
@Category.setter
def Category(self, Category):
self._Category = Category
@property
def CategoryScore(self):
"""商品品类预测的置信度
:rtype: float
"""
return self._CategoryScore
@CategoryScore.setter
def CategoryScore(self, CategoryScore):
self._CategoryScore = CategoryScore
@property
def Location(self):
"""检测到的主体在图片中的坐标,表示为矩形框的四个顶点坐标
:rtype: :class:`tencentcloud.iir.v20200417.models.Location`
"""
return self._Location
@Location.setter
def Location(self, Location):
self._Location = Location
def _deserialize(self, params):
self._Category = params.get("Category")
self._CategoryScore = params.get("CategoryScore")
if params.get("Location") is not None:
self._Location = Location()
self._Location._deserialize(params.get("Location"))
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))