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?