百度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?

相關文章
相關標籤/搜索