百度AI攻略:通用物体识别

1.功能描述:python

基于深度学习及大规模图像训练,准确识别图片中的物体、场景信息。能够应用于:json

相关内容及广告推荐:对用户浏览网页中图片进行分析,识别图片内容给出相关内容推荐或广告展现。app

相册分类及智能美图:批量读图实现相册智能分类管理。学习

通用物体与场景识别进行了能力升级——模型升级,Top1准确率绝对值提高7%,业界领先!具体以下图所示:测试

2.平台接入编码

通用物体与场景识别接入网址:https://console.bce.baidu.com/ai/?fromai=1#/ai/imagerecognition/overview/indexurl

具体接入方式比较简单,能够参考个人另外一个帖子,这里就不重复了:设计

http://ai.baidu.com/forum/topic/show/943327rest

3.调用攻略(Python3)及评测code

3.1首先认证受权:

在开始调用任何API以前须要先进行认证受权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

具体Python3代码以下:

# -*- coding: utf-8 -*-

#!/usr/bin/env python

import urllib

import base64

import json

#client_id 为官网获取的AK, client_secret 为官网获取的SK

client_id =【百度云应用的AK】

client_secret =【百度云应用的SK】

#获取token

def get_token():

    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret

    request = urllib.request.Request(host)

    request.add_header('Content-Type', 'application/json; charset=UTF-8')

    response = urllib.request.urlopen(request)

    token_content = response.read()

    if token_content:

        token_info = json.loads(token_content)

        token_key = token_info['access_token']

    return token_key

3.2通用物体与场景识别分析接口调用:

详细说明请参考: https://ai.baidu.com/docs#/ImageClassify-API/

说明的比较清晰,这里就不重复了。

你们须要注意的是:

API访问URL:https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general

Base64编码字符串,以图片文件形式请求时必填。(支持图片格式:jpg,bmp,png,jpeg),图片大小不超过4M。最短边至少15px,最长边最大4096px。注意:图片须要base64编码、去掉编码头后再进行urlencode。

Python3调用代码以下:

#通用物体与场景识别,返回可能性最大的通用物体与场景

#filename:图片名(本地存储包括路径),plantnum展现的数量

def general(filename,plantnum):

    request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"

 

    # 二进制方式打开图片文件

    f = open(filename, 'rb')

    img = base64.b64encode(f.read())

 

    params = dict()

    params['image'] = img

    params['baike_num'] = plantnum

    params = urllib.parse.urlencode(params).encode("utf-8")

    #params = json.dumps(params).encode('utf-8')

 

    access_token = get_token()

    request_url = request_url + "?access_token=" + access_token

    request = urllib.request.Request(url=request_url, data=params)

    request.add_header('Content-Type', 'application/x-www-form-urlencoded')

    response = urllib.request.urlopen(request)

    content = response.read()

    if content:

        #print(content)

        content=content.decode('utf-8')

        #print(content)

        data = json.loads(content)

        result=data['result']

 

        nums=min(plantnum,len(result))

 

        for i in range(0,nums):

            item=result[i]

            print ('名称:',item['keyword'])

            print ('可能性:',item['score'])

            baike_info=item['baike_info']

            print ('百科描述:',baike_info['description'])

            print ('百科连接:',baike_info['baike_url'])

            print ('百科图片:',baike_info['image_url'])

 

 

general("../img/cbd1.jpg",1)

4.功能评测及建议:

选用不一样的数据对效果进行测试,具体效果以下:

名称: 汗血马

可能性: 0.886632

百科描述: 汗血宝马,学名阿哈尔捷金马(拉丁学名:Akhal-teke horses),原产于土库曼斯坦。头细颈高,四肢修长,皮薄毛细,步伐轻盈,力量大、速度快、耐力强。德、俄、英等国的名马大都有阿哈尔捷金马的血统。汗血宝马是土库曼斯坦的国宝,并将其形象绘制在国徽和货币上。

百科连接: http://baike.baidu.com/item/%E6%B1%97%E8%A1%80%E5%AE%9D%E9%A9%AC/14310

百科图片: http://imgsrc.baidu.com/baike/pic/item/f31fbe096b63f6241b16dd1c8144ebf81a4ca362.jpg

名称: 电脑

可能性: 0.834694

名称: 都市夜景

可能性: 0.95057

百科描述: 内容简介本书集中收集了近年来国内外城市灯光设计的范例,并配以图片说明。书中将都市夜景分为城市鸟瞰、广场、街道、建筑、商店入口、橱窗、广告、标志、配景共7大类。本书对城市景观及灯光设计具备参考价值。

百科连接: http://baike.baidu.com/item/%E9%83%BD%E5%B8%82%E5%A4%9C%E6%99%AF/9838817

百科图片: http://imgsrc.baidu.com/baike/pic/item/d089b9863208d46867096ed3.jpg

测试下来,总体感受处理的结果和速度都很好,对于不一样物体与场景的识别都很准确。不过与百科内容结合还有提升的余地。

建议:是否可以扩展,提供每一个物体的bounding box?

相关文章
相关标签/搜索