使用Google Vision API进行计算机视觉图像创意分析

这篇具有很好参考价值的文章主要介绍了使用Google Vision API进行计算机视觉图像创意分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Google Vision API进行计算机视觉图像创意分析

介绍

计算机视觉可以用来从图像、视频和音频中提取有用的信息。它允许计算机看到并理解从视觉输入中可以收集到什么信息。在接收到视觉输入后,它可以在图像中收集有价值的信息,并确定必须采取的下一步。

Google Vision API是一种Google云服务,它允许使用计算机视觉从图像输入中提取有价值的信息。作为初学者,你可以使用此服务获得对图像的有意义的见解。下图显示了Google视觉API的工作原理。

使用Google Vision API进行计算机视觉图像创意分析

上图显示了Google Vision API的功能。Google Vision API可以识别广告图像中的面部表情、文本和主要颜色。面部表情清楚地显示了一个人的喜悦表情,文字描述了“LEARN MORE”一词,主导色显示了图像中前10个主导色。

我们可以看到,通过利用谷歌视觉API功能,我们可以从图像中获得很多见解。例如,假设我们想知道广告图像中的哪些因素导致客户点击并查看我们的广告。这可以通过使用Google视觉API服务来发现。

本文将主要关注如何在图像中获得洞察力因素,以及我们可以从特定图像中获得什么洞察力。我们不会使用广告图片示例,因为由于公司保密,它无法发布。相反,我们将使用Kaggle数据集中可用于数据分析的产品图像。

数据集

该项目的数据集图像基于Kaggle的时尚产品图像数据集。因为数据集包含大量来自电子商务网站的产品图像,我们只会获取一小部分图像,这些图像可以用于我们的创意分析。此数据集许可证允许你复制、修改、分发和执行工作。

设置Google云视觉API

在开始之前,我们必须首先从GoogleCloud服务配置visionAPI服务。可在此处找到分步说明。但是,为了让事情变得更简单,我们将一步一步地向你展示如何从Google云服务设置API。

(注意:你必须从自己的Google Cloud帐户配置此API;我们不会在本教程中向你提供包含机密Google Cloud密钥的文件)。

步骤1:登录Google Cloud Project,然后从主页选择“转到API概述”。

使用Google Vision API进行计算机视觉图像创意分析

步骤2:选择“启用APIS和服务”,然后搜索并启用Cloud Vision API。

使用Google Vision API进行计算机视觉图像创意分析使用Google Vision API进行计算机视觉图像创意分析

步骤3:转到凭据,然后单击“创建Credentials”,然后单击服务帐户。

使用Google Vision API进行计算机视觉图像创意分析

步骤4:输入你的服务帐户信息(你可以跳过可选部分),然后单击“完成”。

使用Google Vision API进行计算机视觉图像创意分析

步骤5:导航到你创建的服务帐户。转到KEYS,然后“ADD KEY”和“Create new KEY”。

使用Google Vision API进行计算机视觉图像创意分析使用Google Vision API进行计算机视觉图像创意分析

步骤6:创建JSON密钥类型,然后下载JSON文件并将其放置在Python脚本的工作目录中。

使用Google Vision API进行计算机视觉图像创意分析
安装必要的库

在开始计算机视觉建模之前,我们必须首先安装所需的库。我们将安装的第一个库是google-cloud-vision,它用于计算机视觉模型检测。我们可以在访问Google Cloud Vision API后使用此库。

pip install google-cloud-vision

下一个库是webcolors,当我们需要将颜色检测中的十六进制颜色数转换为我们所知道的最接近的颜色名称时,它非常有用。

!pip install webcolors
导入必要的库

安装必要的库后,我们将它们导入到脚本中。我们将从谷歌云库中导入视觉,用于视觉建模检测。对于数据预处理,使用了Ipython、io和panda等其他库。

from IPython.display import Image
from google.cloud import vision_v1 as vision
import io
import pandas as pd
import os

Webcolors用于将十六进制颜色格式转换为我们熟悉的颜色名称。KDTree用于查找CSS3库中最接近的颜色匹配。KDTree提供了一组k维点的索引,可用于快速查找任何点的最近邻居。

from scipy.spatial import KDTree
from webcolors import hex_to_rgb
from webcolors import CSS3_HEX_TO_NAMES
在python脚本上激活Google视觉API

将JSON文件放入目录后,我们必须在Python脚本中激活GoogleCloudVisionAPI服务。

# Activate Google vision API using service account key
client = vision.ImageAnnotatorClient.from_service_account_json("vision-api.json")
image = vision.types.Image()
标签检测

可以使用标签检测来检测图像中的任何标签。LabelAnnotation可用于标识图像中的常规对象、位置、活动、产品和其他内容。

下面的代码描述了如何从时尚数据集的图像中提取标签信息。

# Import the picture
pics = ["pic/label.png"]

for pic in pics:
    print("=" * 79)
    print("File:", pic)
    display(Image(pic, width = 500))
    
    with io.open(pic, "rb") as image_file:
        parse = image_file.read()
    
    query = {"image": {"content": parse},
             "features": [{"type_": "LABEL_DETECTION"}]}
    
    response = client.annotate_image(query)

    # Label detection
    labels = response.label_annotations
    print("Labels:")
    if labels:
        for index, label in enumerate(labels):
            if index != len(labels) - 1:
                print(label.description, end = ", ")
            else:
                print(label.description, end = "\n\n")
    else:
        print("[None]", end = "\n\n")
===============================================================================
File: pic/label.png
使用Google Vision API进行计算机视觉图像创意分析

从这张图片中,我们可以看到谷歌视觉API检测到几个通用标签,例如:

  • 面部表情(微笑)

  • 人体(面部、关节、皮肤、手臂、肩部、腿部、人体、袖子)

  • 对象(鞋)

尽管视觉识别了许多标签,但一些一般物体被错误识别,没有被提及。视觉将凉鞋图像误认为鞋子。它也无法识别上图中的衣服、叶子植物、杯子和椅子。

物体检测

对象检测可用于检测图像中的任何对象。与标记不同,对象检测主要关注检测的置信水平。LocalizedObjectAnnotation扫描图像中的多个对象,并显示矩形边界内的对象位置。

# Import the picture
pics = ["pic/object.png"]

for pic in pics:
    print("=" * 79)
    print("File:", pic)
    display(Image(pic, width = 500))
    
    with io.open(pic, "rb") as image_file:
        parse = image_file.read()
    
    query = {"image": {"content": parse},
             "features": [{"type_": "OBJECT_LOCALIZATION"}]}
    
    response = client.annotate_image(query)

    # Object Localization detection
    objects = response.localized_object_annotations
    if objects:
        print("Number of objects found: {}".format(len(objects)))
        for obj in objects:
            print("{} (Confidence: {})".format(obj.name, obj.score))
            print("  Normalized bounding polygon vertices: ")
            for vertex in obj.bounding_poly.normalized_vertices:
                print("  • ({}, {})".format(vertex.x, vertex.y))
    else:
        print("[None]")
===============================================================================
File: pic/object.png
使用Google Vision API进行计算机视觉图像创意分析
Number of objects found: 7
Sunglasses (Confidence: 0.9075868129730225)
  Normalized bounding polygon vertices: 
  • (0.7152940630912781, 0.03025873191654682)
  • (0.9912452101707458, 0.03025873191654682)
  • (0.9912452101707458, 0.18952979147434235)
  • (0.7152940630912781, 0.18952979147434235)
Necklace (Confidence: 0.827012300491333)
  Normalized bounding polygon vertices: 
  • (0.7888254523277283, 0.23976582288742065)
  • (0.8789485096931458, 0.23976582288742065)
  • (0.8789485096931458, 0.5786653757095337)
  • (0.7888254523277283, 0.5786653757095337)
Necklace (Confidence: 0.765210747718811)
  Normalized bounding polygon vertices: 
  • (0.6977918744087219, 0.6217525601387024)
  • (0.9729085564613342, 0.6217525601387024)
  • (0.9729085564613342, 0.8596880435943604)
  • (0.6977918744087219, 0.8596880435943604)
Miniskirt (Confidence: 0.7599698305130005)
  Normalized bounding polygon vertices: 
  • (0.08722742646932602, 0.5060120224952698)
  • (0.5405347347259521, 0.5060120224952698)
  • (0.5405347347259521, 0.9896653294563293)
  • (0.08722742646932602, 0.9896653294563293)
Shirt (Confidence: 0.7503857612609863)
  Normalized bounding polygon vertices: 
  • (0.026824740692973137, 0.01114667858928442)
  • (0.639977216720581, 0.01114667858928442)
  • (0.639977216720581, 0.5381563901901245)
  • (0.026824740692973137, 0.5381563901901245)
Clothing (Confidence: 0.70070880651474)
  Normalized bounding polygon vertices: 
  • (0.014639005064964294, 0.006572074722498655)
  • (0.6691749095916748, 0.006572074722498655)
  • (0.6691749095916748, 0.9973958134651184)
  • (0.014639005064964294, 0.9973958134651184)
Necklace (Confidence: 0.5183205604553223)
  Normalized bounding polygon vertices: 
  • (0.23560701310634613, 0.0359032079577446)
  • (0.42432689666748047, 0.0359032079577446)
  • (0.42432689666748047, 0.25690552592277527)
  • (0.23560701310634613, 0.25690552592277527)

从这张图片中,我们可以看到谷歌视觉API检测到以下几个对象:

Sunglasses (Confidence: 90%)

Necklace 1 (Confidence: 83%)

Necklace 2 (Confidence: 77%)

Miniskirt (Confidence: 76%)

Shirt (Confidence: 75%)

Clothing (Confidence: 70%)

Necklace 3 (Confidence: 51%)

在上面的图像中,我们可以看到大部分的视觉已经识别出了一件衣服。还有一些其他物品,如太阳镜、项链1、项链2、迷你裙、衬衫和衣服。项链3的可信度最低,因为视觉认为右下角的图像也是项链。因为项链3的对象更像是一个手镯而不是项链,所以它的可信度低于其他对象。

面部表情检测

人脸检测可以检测图像中的任何人脸和情绪。FaceAnnotation是一种用于扫描人脸在图像中的位置的技术。在扫描人脸的同时,它还可以扫描各种面部表情。

# Import the picture
pics = ["pic/face_expression.png"]

for pic in pics:
    print("=" * 79)
    print("File:", pic)
    display(Image(pic, width = 500))
    
    with io.open(pic, "rb") as image_file:
        parse = image_file.read()
    
    query = {"image": {"content": parse},
             "features": [{"type_": "FACE_DETECTION"}]}
    
    response = client.annotate_image(query)

    # Face expression detection
    faces = response.face_annotations
    likelihood_name = ("UNKNOWN", "VERY_UNLIKELY", "UNLIKELY", "POSSIBLE", "LIKELY", "VERY_LIKELY")
    if faces:
        for index, face in enumerate(faces):
            print("Face", index + 1)
            print("Joy: {}".format(likelihood_name[face.joy_likelihood]))
            print("Sorrow: {}".format(likelihood_name[face.sorrow_likelihood]))
            print("Anger: {}".format(likelihood_name[face.anger_likelihood]))
            print("Surprise: {}".format(likelihood_name[face.surprise_likelihood]))
            vertices = (["({},{})".format(vertex.x, vertex.y)
                        for vertex in face.bounding_poly.vertices])
            print("Face Bounds: {}".format(", ".join(vertices)), end = "\n\n")
===============================================================================
File: pic/face_expression.png
使用Google Vision API进行计算机视觉图像创意分析
Face 1
Joy: VERY_LIKELY
Sorrow: VERY_UNLIKELY
Anger: VERY_UNLIKELY
Surprise: VERY_UNLIKELY
Face Bounds: (115,0), (240,0), (240,141), (115,141)

从上图中,我们可以看到谷歌视觉API检测到人脸上的各种表情,例如:

Joy: VERY_LIKELY

Sorrow: VERY_UNLIKELY

Anger: VERY_UNLIKELY

Surprise: VERY_UNLIKELY

我们可以从上图中看到,表情是一个微笑,视觉API将其识别为一个快乐的表情。悲伤、愤怒和惊讶的其他表情似乎与上图不符,因为此人没有表达这些情绪。

文本检测

TextAnnotation可用于检测和提取图像中的文本。在其矩形边界内的单个单词和句子包含在提取的文本中。

# Import the picture
pics = ["pic/text.png"]

for pic in pics:
    print("=" * 79)
    print("File:", pic)
    display(Image(pic, width = 500))
    
    with io.open(pic, "rb") as image_file:
        parse = image_file.read()
    
    query = {"image": {"content": parse},
             "features": [{"type_": "TEXT_DETECTION"}]}
    
    response = client.annotate_image(query)

    # Text detection
    texts = response.text_annotations
    print("Texts:")
    if texts:
        for text in texts:
            print("\"{}\"".format(text.description))
            vertices = (["({},{})".format(vertex.x, vertex.y)
                        for vertex in text.bounding_poly.vertices])
            print("  • Text Bounds: {}".format(", ".join(vertices)))
        print("\n")
    else:
        print("[None]", end = "\n\n")
===============================================================================
File: pic/text.png
使用Google Vision API进行计算机视觉图像创意分析
Texts:
"文化
THISIS
WHAT
awesome
LOOKS LIKE"
  • Text Bounds: (52,101), (249,101), (249,423), (52,423)
"文化"
  • Text Bounds: (67,101), (73,127), (59,130), (53,104)
"THISIS"
  • Text Bounds: (240,356), (248,399), (231,402), (223,359)
"WHAT"
  • Text Bounds: (223,360), (229,397), (214,400), (207,363)
"awesome"
  • Text Bounds: (204,354), (214,410), (205,412), (195,356)
"LOOKS"
  • Text Bounds: (189,342), (199,392), (182,395), (172,345)
"LIKE"
  • Text Bounds: (199,392), (204,419), (188,423), (182,395)

从这张图片中,我们可以看到谷歌视觉API检测到了各种文本,例如:

文化

THISIS

WHAT

awesome

LOOKS

LIKE

出于某种原因,该愿景确定了一个中文单词文化。

图像中的文本显示它检测大写和非大写单词。它还在上面的文本中发现了单词“THISIS”,应该是“THIS IS”。因此,vision API的限制是它将检测到单词“THIS IS”到“THSIS”,因为该单词太窄。

主色检测

主色检测是图像财产标注的特征之一。它可以使用主色检测来检测图像中的前十个主特征颜色及其颜色分数。

# Import the picture
pics = ["pic/color.png"]

# Convert the float number to hex color number
def float2hex(val):
    hexval = hex(int(val))[2:].upper()
    hexval = "0" + hexval if len(hexval) < 2 else hexval
    return hexval

for pic in pics:
    print("=" * 79)
    print("File:", pic)
    display(Image(pic, width = 500))
    
    with io.open(pic, "rb") as image_file:
        parse = image_file.read()
    
    query = {"image": {"content": parse},
             "features": [{"type_": "IMAGE_PROPERTIES"}]}
    
    response = client.annotate_image(query)

    # Color detection        
    props = response.image_properties_annotation
    if props.dominant_colors.colors:
        for index, color in enumerate(props.dominant_colors.colors):
            print("Color", index, "Fraction: {}".format(color.pixel_fraction))
            print("Hex Color: ",float2hex(color.color.red) + float2hex(color.color.green)+float2hex(color.color.blue))
        print("")
    else:
        print("[None]", end = "\n\n")
===============================================================================
File: pic/color.png
使用Google Vision API进行计算机视觉图像创意分析
Color 0 Fraction: 0.16305483877658844
Hex Color:  141313
Color 1 Fraction: 0.010103825479745865
Hex Color:  A41B24
Color 2 Fraction: 0.010382551699876785
Hex Color:  68191E
Color 3 Fraction: 0.0016026757657527924
Hex Color:  CD2533
Color 4 Fraction: 0.25266531109809875
Hex Color:  EDE9E8
Color 5 Fraction: 0.004111211746931076
Hex Color:  B79082
Color 6 Fraction: 0.009755417704582214
Hex Color:  9D2735
Color 7 Fraction: 0.00689847394824028
Hex Color:  883339
Color 8 Fraction: 0.0002090446650981903
Hex Color:  153019
Color 9 Fraction: 0.0018814019858837128
Hex Color:  BE182A

Google Vision API检测到十六进制格式的前十种不同颜色,如上图所示。要获得真实的颜色名称,我们必须使用CSS3库将十六进制颜色格式转换为颜色名称格式。然后,我们利用KDTree获取CSS3库中熟悉的最接近的颜色。

def convert_rgb_to_names(rgb_tuple):
    # a dictionary of all the hex and their respective names in css3
    css3_db = CSS3_HEX_TO_NAMES
    names = []
    rgb_values = []
    for color_hex, color_name in css3_db.items():
        names.append(color_name)
        rgb_values.append(hex_to_rgb(color_hex))
    
    kdt_db = KDTree(rgb_values)
    distance, index = kdt_db.query(rgb_tuple)
    return f'{names[index]}'

# Detect the hex color to the real color name
h = 'A41B24'
print(h)
print('RGB =', tuple(int(h[i:i+2], 16) for i in (0, 2, 4)))
j = tuple(int(h[i:i+2], 16) for i in (0, 2, 4))
print(convert_rgb_to_names(j))
A41B24
RGB = (164, 27, 36)
firebrick

我们使用十六进制颜色A41B24作为第二主色的示例。使用上述函数,我们发现CSS3库中最接近的颜色是耐火砖。上图中运动鞋的红色表明了这一点。

结论

我们已经使用标签、对象、面部表情、文本和上述创造性分析中的主要颜色检测进行了计算机视觉建模。在我们运行视觉API之后,每个检测注释仍有许多限制。

  • 标签检测:它可以检测图片上的许多一般物体和面部表情,但其中一些物体会被错误识别(例如,在我们的分析中,它将凉鞋错误识别为鞋子)。

  • 物体检测:这些因素中也存在被错误识别的情况,但我们可以通过查看物体检测置信水平来预测(例如,在我们的分析中,它将手镯错误识别为另一条项链)。

  • 面部表情检测:图像清晰地显示了男孩快乐的表情。然而,如果你尝试使用视觉建模中排除了表情的图像,则会将所有表情检测归类为非常不可能,因为视觉建模无法确定它是哪个表情。

  • 文本检测:可以使用文本注释检测文本,但有一个不需要的文本包含在我们的视觉建模中(例如,在我们的分析中,它检测到中文单词“文化” 即使图片上没有中文单词)。

  • 主色检测:它可以检测上面图像中的多种主色,但目前只能转换为RGB或十六进制颜色格式。要转换为我们熟悉的颜色,必须添加一个将十六进制颜色转换为颜色名称的函数。

如果你想了解更多关于这种建模方法中使用的代码的详细信息,可以查看Github存储库。

https://github.com/nugrahazikry/Simple-Computer-Vision-Image-Creative-Analysis-using-Google-Vision-API

(注意:Google云密钥在存储库中不可用,你必须使用上面的步骤自行创建)。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓文章来源地址https://www.toymoban.com/news/detail-462293.html

到了这里,关于使用Google Vision API进行计算机视觉图像创意分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Computer Vision Foundation】全球计算机视觉基金会论文网

    计算机视觉基金会(Computer Vision Foundation,简称CVF)是一个致力于推动计算机视觉领域研究和发展的组织。以下是关于计算机视觉基金会的一些基本信息: 成立目的: CVF成立的目的是促进计算机视觉领域的学术研究、技术发展和知识交流。该基金会的工作旨在推动计算机视觉

    2024年02月03日
    浏览(43)
  • 【使用计算机视觉进行智能识别:提高产品和服务的质量和效率】

    作者:禅与计算机程序设计艺术 随着信息技术的飞速发展、互联网的蓬勃发展、用户对信息快速获取的需求不断增长,以及云计算、边缘计算等新兴技术的推进,对图像处理技术的应用日益增加,图像识别成为了各行各业解决实际问题的重要手段。图像识别具有广泛的应用场

    2024年02月12日
    浏览(34)
  • 实战指南:使用OpenCV 4.0+Python进行机器学习与计算机视觉

    💂 个人网站:【办公神器】【游戏大全】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 计算机视觉和机器学习的融合为我们带来了前所未有的机会和挑战。从智能助手到

    2024年02月13日
    浏览(38)
  • 使用Tensorflow的高级计算机视觉和迁移学习:使用TensorFlow进行文本迁移学习

    迁移学习是机器学习中常用的一种技术,用于利用从一项任务中获得的知识并将其应用于不同但相关的任务。在文本背景下,迁移学习涉及利用经过大量文本数据训练的 预训练模型来提取有用的特征和表示。 这些预先训练的模型已经 学习了通用语言模式 ,可以进行微调或用

    2024年02月03日
    浏览(33)
  • Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测

    本文介绍如何使用 Open Neural Network Exchange (ONNX) 对从 Azure 机器学习中的自动机器学习 (AutoML) 生成的计算机视觉模型进行预测。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云

    2024年02月05日
    浏览(33)
  • 利用C++进行图像处理与计算机视觉

    在C++中进行图像处理与计算机视觉是一个有趣且具有挑战性的任务。C++是一种高效的编程语言,能够提供足够的灵活性和性能,以处理复杂的图像处理和计算机视觉算法。在本文中,我们将介绍如何使用C++进行图像处理和计算机视觉,以及一些常见的技术和库。 图像处理基础

    2024年01月16日
    浏览(39)
  • 计算机视觉实战--OpenCV进行红绿灯识别

    前言: Hello大家好,我是Dream。 OpenCV是一个开源的计算机视觉库 ,可以用于实现各种图像和视频处理任务,包括红绿灯识别。可以帮助自动驾驶汽车、智能交通系统等设备准确地识别红绿灯的状态,以便做出正确的决策。今天,就有Dream带领大家复盘一下计算机视觉中最经典

    2024年02月07日
    浏览(30)
  • 深度学习应用篇-计算机视觉-图像分类[3]:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、模型特点详细介绍

    【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、

    2024年02月14日
    浏览(37)
  • 计算机视觉 激光雷达结合无监督学习进行物体检测的工作原理

            激光雷达是目前正在改变世界的传感器。它集成在自动驾驶汽车、自主无人机、机器人、卫星、火箭等中。该传感器使用激光束了解世界,并测量激光击中目标返回所需的时间,输出是点云信息,利用这些信息,我们可以从3D点云中查找障碍物。         从自

    2024年02月07日
    浏览(36)
  • 图像检索(Image Retrieval)是通过搜索引擎、计算机视觉等计算机技术对海量图片进行快速检索,找到最相关的图像或者按照某种相似性度量度进行排序的一类计算机技术

    作者:禅与计算机程序设计艺术 图像检索(Image Retrieval)是通过搜索引擎、计算机视觉等计算机技术对海量图片进行快速检索,找到最相关的图像或者按照某种相似性度量度进行排序的一类计算机技术。其目的是为了提高图片检索的效率及用户体验,从而节省时间、提升效率。

    2024年02月07日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包