第三期【百度大脑新品体验】通用物体与场景识别
才能我浪费99 发布于2019-06-04 10:31 浏览:5254 回复:94
1
收藏
最后编辑于2019-08-15

1.功能描述:

基于深度学习及大规模图像训练,准确识别图片中的物体、场景信息。可以应用于:
相关内容及广告推荐:对用户浏览网页中图片进行分析,识别图片内容给出相关内容推荐或广告展示。
相册分类及智能美图:批量读图实现相册智能分类管理。

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


2.平台接入

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

具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了:
http://ai.baidu.com/forum/topic/show/943327

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

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?

收藏
点赞
1
个赞
共94条回复 最后由才能我浪费99回复于2019-08-15 16:21
#95才能我浪费99回复于2019-08-15 16:21:08
#91 134******14回复
半监督算法? 啥玩意啊,又蒙圈了

半监督就是部分数据有打标,部分没有

0
#94wangwei8638回复于2019-08-14 21:37:14
#83 小雨青青润无声回复
人工智能是不是就解决人工打标的问题

不止解决打标问题

0
#93风允摩羯回复于2019-08-14 21:33:37
#91 134******14回复
半监督算法? 啥玩意啊,又蒙圈了

我查完发现就是类似机器替代人工作,是不是提高工作效率啊

0
#92蓝色的风339回复于2019-07-03 06:39:28
#91 134******14回复
半监督算法? 啥玩意啊,又蒙圈了

同问

0
#91134******14回复于2019-07-02 18:16:34
#89 才能我浪费99回复
有的可以通过半监督算法减少一部分打标的工作

半监督算法?

啥玩意啊,又蒙圈了

0
#90134******14回复于2019-07-02 18:16:04
#83 小雨青青润无声回复
人工智能是不是就解决人工打标的问题

感觉解决不了

0
#89才能我浪费99回复于2019-07-02 10:54:43
#83 小雨青青润无声回复
人工智能是不是就解决人工打标的问题

有的可以通过半监督算法减少一部分打标的工作

0
#88蓝色的风339回复于2019-07-02 08:30:33
#86 134******14回复
人工打标后给机器测试 它学习后才变成智能~ 你这个逻辑反了吧

就是这个意思

0
#87蓝色的风339回复于2019-07-02 08:30:16
#83 小雨青青润无声回复
人工智能是不是就解决人工打标的问题

就是因为不能才需要人工打标

0
#86134******14回复于2019-07-01 18:17:27
#83 小雨青青润无声回复
人工智能是不是就解决人工打标的问题

人工打标后给机器测试

它学习后才变成智能~

你这个逻辑反了吧

0
#85134******14回复于2019-07-01 18:16:09
#84 worddict回复
就是人看图,标记它的实际内容

标点?标框?

0
#84worddict回复于2019-07-01 10:54:51
#78 134******14回复
我没太弄懂?能具体说说嘛? 是使用labelme标签数据吗?

就是人看图,标记它的实际内容

0
#83小雨青青润无声回复于2019-07-01 10:51:05
#76 才能我浪费99回复
人来标记这个数据是什么

人工智能是不是就解决人工打标的问题

0
#82wangwei8638回复于2019-07-01 07:37:01
#79 134******14回复
是狗是狗它就是狗~

是他是他就是他,我们的英雄小哪吒

0
#81wangwei8638回复于2019-07-01 07:27:45
#80 风允摩羯回复
你们为啥揪着这个狗问题一直重复,哈哈哈

重要的事情说三遍

0
#80风允摩羯回复于2019-06-30 23:50:51
#79 134******14回复
是狗是狗它就是狗~

你们为啥揪着这个狗问题一直重复,哈哈哈

0
#79134******14回复于2019-06-30 19:17:06
#77 wangwei8638回复
没错,它是狗

是狗是狗它就是狗~

0
#78134******14回复于2019-06-30 19:16:25
#76 才能我浪费99回复
人来标记这个数据是什么

我没太弄懂?能具体说说嘛?

是使用labelme标签数据吗?

0
#77wangwei8638回复于2019-06-30 15:28:57
#74 134******14回复
是的,它是狗

没错,它是狗

0
#76才能我浪费99回复于2019-06-30 10:23:25
#73 134******14回复
啥是人打标的数据?

人来标记这个数据是什么

0
TOP
切换版块