1.功能描述:
該請求用於識別一張圖片,即對於輸入的一張圖片(可正常解碼,且長寬比較合適),輸出植物識別結果。近期植物識別進行了能力升級——模型升級,Top1准確率絕對值提升11.76%,精度保持業界領先!具體如下圖所示:
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/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
測試下來,整體感覺處理的結果和速度都很好,對於不同植物的識別都很准確。不過對於大量植物堆積的圖片識別的稍差一些。
作者: 才能我浪費99