百度API实现logo商标识别接口介绍

news2024/11/24 7:30:41

作者介绍

严松,男,西安工程大学电子信息学院,2022级研究生
研究方向:机器人抓取检测
电子邮件:2448052777@qq.com

王泽宇,男,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:2717124491@qq.com

一. 百度API实现logo商标识别接口介绍

该请求用于检测和识别图片中的台标、品牌商标等logo信息。即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中logo的名称、位置和置信度。
使用时,可直接调用logo识别-检索接口,支持识别超过2万类logo名称;当效果欠佳时,可以建立子库(在控制台创建应用并申请建库)并通过调用logo入口接口完成自定义logo入库,再调用logo识别-检索接口,选择在自定义logo库内检索,提高识别效果。

二. 调用百度API实现logo商标识别流程

1. 注册百度智能云并创建应用

百度智能云链接:(https://cloud.baidu.com/)
注册好之后点击控制台,先领取免费资源,然后点击创建应用,创建完应用之后可以查看应用,并且能看到API Key和Secret Key。

在这里插入图片描述

																	图一 创建应用

在这里插入图片描述
图二 查看应用

2.Python代码进行调试

先来看一下我们调用API的请求参数和返回说明,请求参数中包含三个参数,分别是:image,url和custom_lib,输入方式为image和url二选一,如果用户需要创建自己的子库,则custom_lib设置为true,否则为false。返回参数主要包括:问题定位(log_id),返回结果数量(result_num),返回的结果(result),名称(name),置信度(probability)等等。
在这里插入图片描述
图三 请求参数

在这里插入图片描述
图四 返回说明

下面是完整实验代码:

import requests
API_KEY = ""//查看自己的API_KEY
SECRET_KEY = ""//查看自己的SECRET_KEY
def main():
    url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/logo?access_token=" + get_access_token()
    payload = {''}//自己的logo路径
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': 'application/json'
    }
    response = requests.request("POST", url, headers=headers, data=payload)
    print(response.text)
def get_access_token():
    """
    使用 AK,SK 生成鉴权签名(Access Token)
    :return: access_token,或是None(如果错误)
    """
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    return str(requests.post(url, params=params).json().get("access_token"))
if __name__ == '__main__':
    main()

三. 在线调试:

在调试栏里输入自己申请的client_id,client_secret以及自己image的路径,然后进行调试,可以看到调试结果。

在这里插入图片描述
图5 调试结果

返回示例:
1.1 比较杂乱的logo调试结果
在这里插入图片描述
图6 杂乱logo
返回结果:可以看到一共返回了5组结果,其中有一组"斑马办公"是不符合预期的,证明识别的logo尽量不要有复杂的背景。

{
    "result_num": 5,
    "result": [
        {
            "name": "可口可乐",
            "type": 1,
            "probability": 0.95749333630437,
            "location": {
                "height": 123,
                "left": 44,
                "top": 22,
                "width": 313
            }
        },
        {
            "name": "可口可乐",
            "type": 0,
            "probability": 0.97189044952393,
            "location": {
                "height": 123,
                "left": 44,
                "top": 22,
                "width": 313
            }
        },
        {
            "name": "斑马办公",
            "type": 1,
            "probability": 0.33733308532021,
            "location": {
                "height": 57,
                "left": 118,
                "top": 127,
                "width": 204
            }
        },
        {
            "name": "可口可乐",
            "type": 0,
            "probability": 0.83195910211337,
            "location": {
                "height": 226,
                "left": 36,
                "top": 0,
                "width": 321
            }
        },
        {
            "name": "可口可乐",
            "type": 1,
            "probability": 0.32056304758245,
            "location": {
                "height": 226,
                "left": 36,
                "top": 0,
                "width": 321
            }
        }
    ],
    "log_id": 1657261019508606700
}

1.2 完整紧致包围盒图像logo识别结果
在这里插入图片描述
图7 完整紧致包围盒图像logo

返回结果:可以看到一共返回了4组结果,且都符合预期

{
    "result_num": 4,
    "result": [
        {
            "name": "合生元",
            "type": 1,
            "probability": 0.96611329092496,
            "location": {
                "height": 34,
                "top": 7,
                "width": 121,
                "left": 36
            }
        },
        {
            "name": "合生元",
            "type": 0,
            "probability": 0.98904836588892,
            "location": {
                "height": 34,
                "top": 7,
                "width": 121,
                "left": 36
            }
        },
        {
            "name": "合生元",
            "type": 1,
            "probability": 0.5572005059984,
            "location": {
                "height": 32,
                "top": 6,
                "width": 64,
                "left": 81
            }
        },
        {
            "name": "合生元",
            "type": 1,
            "probability": 0.39284993518483,
            "location": {
                "height": 36,
                "top": 6,
                "width": 63,
                "left": 61
            }
        }
    ],
    "log_id": 1657263068743726800
}

四. 总结

(1)选择logo图片进行输入的时候,尽量选择logo清晰明了的,紧致包围的,这样识别出来的结果准确,置信度高;
(2)如果用户需要创建自己的子库,在裁剪图像logo的时候,尽量分块裁剪,例如,中国工商银行的logo一般都是英文+中文+小标,在裁剪的时候不要三个放在一起裁剪,而是要三个单独进行裁剪放在子库当中,这样识别的结果会更准确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

建设一站式DevOps平台,腾讯云研发效能提升实践

本文作者:张渝 导语 | 近年来,研发效能提升越来越受到业界重视,许多厂商都在不断探索研发效能提升之路,从而实现研发效率和质量的持续优化,以应对日趋复杂的产品开发。那么腾讯云的研发效能相关工作是如何开展和落地的…

【遥感图像】目标检测系列.1

目录 Unsupervised Domain Adaptation for Cloud Detection Based on Grouped Features Alignment and Entropy Minimization, TGRS2022 Semi-Supervised Cloud Detection in Satellite Images by Considering the Domain Shift Problem, RS2022 CoF-Net: A Progressive Coa…

深度学习笔记之递归网络(四)铺垫:Softmax函数的反向传播过程

深度学习笔记之递归网络——铺垫:Softmax的反向传播过程 引言总结:递归神经网络的前馈计算过程场景构建前馈计算描述 铺垫: Softmax \text{Softmax} Softmax的反向传播过程场景构建 Softmax \text{Softmax} Softmax反向传播过程 引言 上一节…

OpenSIPS 3.1 负载均衡 MRCP 服务器的实现

文章目录 1. 方案设计2. 实现方式2.1 FreeSWITCH 的配置2.2 OpenSIPS 3.1 的配置2.2.1 OpenSIPS 保存 MRCP 服务器地址2.2.2 OpenSIPS 脚本开发 2.3 实现效果 1. 方案设计 FreeSWITCH 通过 unimrcp 模块来对接 MRCP 服务器,该模块在启动时会根据 mrcp profile 配置…

【Java|golang】1080. 根到叶路径上的不足节点--dfs

给你二叉树的根节点 root 和一个整数 limit ,请你同时删除树中所有 不足节点 ,并返回最终二叉树的根节点。 假如通过节点 node 的每种可能的 “根-叶” 路径上值的总和全都小于给定的 limit,则该节点被称之为 不足节点 ,需要被删…

【Linux基本指令(2)】几十条指令快速入手Linux/深入理解什么是指令

本文思维导图: 文章目录 Tips:7.man指令(重要):echo指令和输出重定向,追加重定向,输入重定向 8、cp指令(重要)9.mv指令(重要)10.cat指令11.more指…

weblogic CVE 2017-10271

weblogic ip :192.168.27.128:7001 使用weblogicscan对目标进行探测 python3 WeblogicScan.py -u 192.168.27.128 -p 7001 扫到了不少洞,现在开搞2017-10271 漏洞原理 CVE-2017-10271漏洞主要是由WebLogic Server WLS组件远程命令执行漏洞,主要由wls-…

自动化如何做?爆肝整理企业自动化测试工具/框架选择实施,你要的都有...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

电容的电介吸收性质

电介质吸收 我们首先讨论电介质吸收, 也称为“浸润” , 有时也称为“电介质迟滞” , 这可能是我们了解最少而潜在破坏性最高的一种电容效应。 放电时, 多数电容都不愿意放弃之前所拥有的全部电荷。 图2 显示了这一效应。 电容在时…

科技云报道:穿行数字经济时代,数据如何找到“安全感”?

科技云报道原创。 数据作为数字经济时代的新型生产要素,正快速融入经济社会的方方面面,甚至常常被形容为“未来的石油”。 在数字经济时代,数据安全与数据流通同等重要。但随着我国数字经济驶入快车道,数据流动和安全发展的矛盾…

idea中关联Git

注意:未安装和配置Git软件,请先跳转到 Git宝典_没办法,我就是这么菜的博客-CSDN博客 idea关联git 关联git.exe 选择你的Version Control 下的Git 选择你的Git安装目录bin下的git.exe,点击ok 点击Test,显示版本号…

opencv文字识别

OpenCV(开源计算机视觉库)是一个用于实现计算机视觉和机器学习的开源库。它包含了许多预先训练的模型和算法,可以帮助开发者快速实现图像处理、对象检测和识别等功能。在文字识别方面,OpenCV也有一些实用的工具和方法。 要在OpenC…

【使用ChatGPT写思维导图】

内容目录 一、利用ChatGPT生成思维导图内容1. 打开ChatGPT:2. 输入需求:3. 复制: 二、制作生成思维导图1. 打开思维导图制作网站:2. 网页版下侧 - Try it out → - 粘贴Markdown内容,就会自动生成。3. 自行下载。 一、…

四川省信创联盟2023年第一次理事会顺利召开,MIAOYUN荣获“信创企业优秀奖”!

5月18日,四川省技术创新促进会信创工委会(四川省信创产业联盟)在成都市高新区新川科技园成功召开《2023年第一次理事单位(扩大)会议》,四川省技术创新促进会专家组杜纯文副组长、四川省技术创新促进会任渝英…

构建完善的帮助中心,降低企业客户服务成本

随着信息技术的发展和应用的普及,越来越多的企业已开始意识到,通过构建完善的帮助中心,可以有效地降低企业客户服务成本,提高客户满意度。一个完善的帮助中心不仅仅是企业用于回答客户问题的工具,更是客户自主获取和消…

vite + electron 构建前端桌面应用程序

文章目录 一、创建 vite 项目二、构建 Electron 项目三、打包 Electron 桌面程序四、项目地址 一、创建 vite 项目 npm npm create vitelatestyarn yarn create vite选择是否继续 Need to install the following packages:create-vite3.2.1 Ok to proceed? (y) y项目名称 P…

【IIS建站教程】windows本地搭建web服务,内网穿透发布公网访问

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 转载自远程源码文章:【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网…

【C++】STL——容器适配器priority_queue(优先级队列)详解 及 仿函数的介绍和使用

文章目录 1. priority_queue的介绍和使用1.1 priority_queue的介绍1.2 priority_queue的使用1.2.1 仿函数介绍1.2.2 在OJ中的使用:数组中的第K个最大元素思路1:排序思路2:priority_queue思路3:TOP-K思想 2. priority_queue的模拟实…

C++入门--缺省、函数重载、引用学习

1.缺省参数 1.1缺省参数概念 缺省参数是指在声明或定义函数时为函数的参数指定一个缺省值&#xff0c;如果在调用该函数的时候没有指定参数&#xff0c;函数会使用该参数的缺省值&#xff0c;否则使用指定的参数。 #include<iostream> using std::cout; using std::cin;…

Flutter2.x升级3.x版本遇到的问题及解决方案

项目原本使用的Flutter版本为2.5.3&#xff0c;现在要升级到3.0.5版本&#xff0c;结果升级完后项目直接编译不通过&#xff0c;报了一堆的错误&#xff0c;如果你也是这种情况&#xff0c;可以按我接下来讲的操作试一试&#xff0c;反正我就是这么解决问题的。 目录 1、升级G…