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

本文介绍了如何使用百度API进行logo商标的检测与识别,包括调用接口的流程、Python代码示例及在线调试结果分析。建议选择清晰、紧致的logo图片以提高识别准确性,并指出自定义子库能提升特定logo的识别效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者介绍

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

祝樱,女,西安工程大学电子信息学院,2022级研究生
研究方向:违禁品检测
电子邮件:2107761606@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 base64
import urllib
import requests

API_KEY = ""
SECRET_KEY = ""

def main():
    url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/logo?access_token=" + get_access_token()
    #payload =get_file_content_as_base64("E:\研一 课\AR\华为logo.jpg", True)
    f = open('/data/Users/chenmd/myProject/csdn/百度API/Logo商标识别/hauwei.jpg', 'rb')
    img = base64.b64encode(f.read()).decode("utf-8")
    host = url + '?access_token=' +'access_token' # 我的access_token
    params = {'image': img}
    #response = requests.post(host, data=params, headers=headers)  # 注意用data传值,使用json会报错
    #print("Status code:" + str(response.status_code) + " content:" + response.text)
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': 'application/json'
    }
    response = requests.request("POST", url, headers=headers, data=params)
    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一般都是英文+中文+小标,在裁剪的时候不要三个放在一起裁剪,而是要三个单独进行裁剪放在子库当中,这样识别的结果会更准确。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值