用百度大腦植物識別,快速搞定“萬種植物和花卉”小工具


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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM