1.功能描述:python
該請求用於識別一張圖片,即對於輸入的一張圖片(可正常解碼,且長寬比較合適),輸出植物識別結果。近期植物識別進行了能力升級——模型升級,Top1準確率絕對值提高11.76%,精度保持業界領先!具體以下圖所示:json
2.平臺接入app
植物識別接入網址:https://console.bce.baidu.com/ai/?fromai=1#/ai/imagerecognition/overview/index測試
具體接入方式比較簡單,能夠參考個人另外一個帖子,這裏就不重複了:編碼
http://ai.baidu.com/forum/topic/show/943327url
3.調用攻略(Python3)及評測3d
3.1首先認證受權:rest
在開始調用任何API以前須要先進行認證受權,具體的說明請參考:code
http://ai.baidu.com/docs#/Auth/toporm
具體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/v1/plant
圖像數據,base64編碼,要求base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支持jpg/png/bmp格式。注意:圖片須要base64編碼、去掉編碼頭後再進行urlencode。
Python3調用代碼以下:
#植物識別,返回可能性最大的植物
#filename:圖片名(本地存儲包括路徑),plantnum展現的數量
def plant(filename,plantnum):
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/plant"
# 二進制方式打開圖片文件
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['name'])
print ('可能性:',item['score'])
baike_info=item['baike_info']
print ('百科描述:',baike_info['description'])
print ('百科連接:',baike_info['baike_url'])
print ('百科圖片:',baike_info['image_url'])
#return landmark
plant("../img/plant3.jpg",1)
4.功能評測及建議:
選用不一樣的數據對效果進行測試,具體效果以下:
1:多肉植物:
名稱: 吉娃蓮
可能性: 0.8006192445755
百科描述: 吉娃蓮,景天科擬石蓮花屬,別名:吉娃娃(由於常與狗名混淆,因此大多數狀況只叫吉娃蓮),原產於墨西哥奇瓦瓦州,生長在空氣流通較好、日照充分的山坡上。吉娃蓮,植株小型,無莖的蓮座葉盤很是緊湊。卵形葉較厚,帶小尖,藍綠色被濃厚的白粉,葉緣爲美麗的深粉紅色。花序先端彎曲,鍾狀,紅色。栽培不太困難,夏天不能澆過多的水。葉尖的紅色特別美麗,是一種觀賞性很強的多肉植物。
百科連接: http://baike.baidu.com/item/%E5%90%89%E5%A8%83%E8%8E%B2/1289904
百科圖片: http://imgsrc.baidu.com/baike/pic/item/7e3e6709c93d70cfd11e54d6f2dcd100bba12b01.jpg
2:花卉
名稱: 鳶尾
可能性: 0.31999999284744
百科描述: 鳶尾(學名:Iris tectorum Maxim.)又名:藍蝴蝶、紫蝴蝶、扁竹花等,屬百合目、鳶尾科、鳶尾屬多年生草本,根狀莖粗壯,直徑約1cm,斜伸;葉長15~50cm,寬1.5~3.5cm,花藍紫色,直徑約10cm;蒴果長橢圓形或倒卵形,長4.5~6cm,直徑2~2.5cm。原產於中國中部以及日本,主要分佈在中國中南部。可供觀賞,花香氣淡雅,能夠調製香水,其根狀莖可做中藥,整年可採,具備消炎做用。
百科連接: http://baike.baidu.com/item/%E9%B8%A2%E5%B0%BE/784374
百科圖片: http://imgsrc.baidu.com/baike/pic/item/5fdf8db1cb1349542259b6915c4e9258d0094afb.jpg
3:水生植物
名稱: 荷花
可能性: 0.72000002861023
百科描述: 荷花(Lotus flower):屬毛茛目睡蓮科,是蓮屬二種植物的通稱。又名蓮花、水芙蓉等。是蓮屬多年生水生草本花卉。地下莖長而肥厚,有長節,葉盾圓形。花期6至9月,單生於花梗頂端,花瓣多數,嵌生在花托穴內,有紅、粉紅、白、紫等色,或有彩紋、鑲邊。堅果橢圓形,種子卵形。荷花種類不少,分觀賞和食用兩大類。原產亞洲熱帶和溫帶地區,中國早在周朝就有栽培記載。荷花全身皆寶,藕和蓮子能食用,蓮子、根莖、藕節、荷葉、花及種子的胚芽等均可入藥。其出污泥而不染之品格恆爲世人稱頌。「接天蓮葉無窮碧,映日荷花別樣紅」就是對荷花之美的真實寫照。荷花「中通外直,不蔓不枝,出淤泥而不染,濯清漣而不妖」的高尚品格,從來爲從古到今詩人墨客歌詠繪畫的題材之一。1985年5月荷花被評爲中國十大名花之一。荷花是印度,越南的國花。
百科連接: http://baike.baidu.com/item/%E8%8D%B7%E8%8A%B1/158674
百科圖片: http://imgsrc.baidu.com/baike/pic/item/e850352ac65c1038e7515b14bf119313b07e893d.jpg
4:大量植物堆積
名稱: 非植物
可能性: 0
測試下來,總體感受處理的結果和速度都很好,對於不一樣植物的識別都很準確。不過對於大量植物堆積的圖片識別的稍差一些。