20行Python代码开发植物识别 app
這篇文章介紹如何用Python快速實(shí)現(xiàn)一個(gè)植物識(shí)別的app,家里養(yǎng)了幾盆多肉還叫不上名字,正好拿來(lái)識(shí)別一下。實(shí)現(xiàn)這樣一個(gè)app只需要20行左右的代碼,先來(lái)看下效果:
文末點(diǎn)擊閱讀全文即可訪(fǎng)問(wèn)線(xiàn)上應(yīng)用(服務(wù)器比較差訪(fǎng)問(wèn)略慢)。實(shí)現(xiàn)該app主要包含兩步,前端界面開(kāi)發(fā)和后端植物識(shí)別服務(wù),下面來(lái)分別介紹一下。
前端的實(shí)現(xiàn)方式有很多種,剛剛說(shuō)的小程序是一種,但對(duì)于習(xí)慣用Python的開(kāi)發(fā)者來(lái)說(shuō),我們還是希望能通過(guò)Python語(yǔ)言來(lái)開(kāi)發(fā)界面。果然真有這樣的工具,叫streamlit,它是專(zhuān)門(mén)為數(shù)據(jù)科學(xué)家、機(jī)器學(xué)習(xí)工程師而開(kāi)發(fā)的,使用它的時(shí)候不需要關(guān)心布局、樣式、服務(wù)部署等web相關(guān)的知識(shí),而就像開(kāi)發(fā)普通Python程序一樣,快速構(gòu)建優(yōu)美的app。streamlit的安裝也很簡(jiǎn)單,執(zhí)行pip install streamlit命令即可。想入門(mén)streamlit的朋友可以看次條的文章。
接下來(lái),我們把前端界面開(kāi)發(fā)出來(lái),從上面動(dòng)圖可以看到,最核心邏輯為接收用戶(hù)輸入的圖片,并將其顯示出來(lái)。
import?streamlit?as?st#?設(shè)置網(wǎng)站標(biāo)題 st.title('植物識(shí)別')#?圖片選擇框 uploaded_file?=?st.file_uploader('選擇一張圖片',?type=['jpg',?'png']) if?uploaded_file?is?not?None:#?顯示已選的文件st.image(uploaded_file,?caption='已選文件',?use_column_width=True)界面完成后,我們?cè)賮?lái)考慮植物圖片的識(shí)別服務(wù),這里我用的是百度AI的服務(wù)
執(zhí)行pip install baidu-aip命令即可安裝百度AI的Python SDK。然后,再去百度AI開(kāi)放平臺(tái)注冊(cè)一個(gè)賬號(hào)獲得相應(yīng)的APP_KEY和SCRET_KEY。編寫(xiě)代碼調(diào)用植物識(shí)別服務(wù)
from?aip?import?AipImageClassifyAPP_ID?=?'xxx'??#?換成自己的?APP_ID API_KEY?=?'xxx'?#?換成自己的?API_KEY SECRET_KEY?=?'xxx'?#?換成自己的?SECRET_KEY client?=?AipImageClassify(APP_ID,?API_KEY,?SECRET_KEY)"""?植物識(shí)別結(jié)果?""" res?=?client.plantDetect(image)??#?調(diào)用百度api識(shí)別植物最后將返回的結(jié)果在app上展示即可,完整代碼如下
import?streamlit?as?st from?aip?import?AipImageClassifyAPP_ID?=?'xxx' API_KEY?=?'xxx' SECRET_KEY?=?'xxx' client?=?AipImageClassify(APP_ID,?API_KEY,?SECRET_KEY)#?設(shè)置網(wǎng)站標(biāo)題 st.title('植物識(shí)別')#?圖片選擇框 uploaded_file?=?st.file_uploader('選擇一張圖片',?type=['jpg',?'png']) if?uploaded_file?is?not?None:#?顯示已選的文件st.image(uploaded_file,?caption='已選文件',?use_column_width=True)bs?=?uploaded_file.read()"""?植物識(shí)別結(jié)果?"""res?=?client.plantDetect(bs)??#?調(diào)用百度api識(shí)別植物res['result']??#?顯示輸出結(jié)果"""?該植物最有可能是?""",?res['result'][0]['name']??#?取預(yù)測(cè)概率最大的結(jié)果執(zhí)行streamlit run plant_detect.py命令啟動(dòng)app,看到有如下輸出
??You?can?now?view?your?Streamlit?app?in?your?browser.Local?URL:?http://localhost:8501Network?URL:?http://192.168.1.3:8501在瀏覽器訪(fǎng)問(wèn)指定的地址即可。
以上就是本次分享的所有內(nèi)容,如果你覺(jué)得文章還不錯(cuò),歡迎關(guān)注公眾號(hào):Python編程學(xué)習(xí)圈,每日干貨分享,發(fā)送“J”還可領(lǐng)取大量學(xué)習(xí)資料。或是前往編程學(xué)習(xí)網(wǎng),了解更多編程技術(shù)知識(shí)。?
總結(jié)
以上是生活随笔為你收集整理的20行Python代码开发植物识别 app的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【python】【爬虫】爬取Fate G
- 下一篇: 知乎高赞!怎么自学 python,大概要