社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

20行Python代码开发植物识别 app

渡码 • 3 年前 • 529 次点击  
阅读 62

20行Python代码开发植物识别 app

这篇文章介绍如何用Python快速实现一个植物识别的app,家里养了几盆多肉还叫不上名字,正好拿来识别一下。实现这样一个app只需要20行左右的代码,先来看下效果:

另外,我也开发了微信小程序版本,大家可以体验一下。

实现该app主要包含两步,前端界面开发和后端植物识别服务,下面来分别介绍一下。

前端的实现方式有很多种,刚刚说的小程序是一种,但对于习惯用Python的开发者来说,我们还是希望能通过Python语言来开发界面。果然真有这样的工具,叫streamlit,它是专门为数据科学家、机器学习工程师而开发的,使用它的时候不需要关心布局、样式、服务部署等web相关的知识,而就像开发普通Python程序一样,快速构建优美的app。streamlit的安装也很简单,执行pip install streamlit命令即可。想入门streamlit的朋友可以看次条的文章。

接下来,我们把前端界面开发出来,从上面动图可以看到,最核心逻辑为接收用户输入的图片,并将其显示出来。

import streamlit as st

# 设置网站标题
st.title('植物识别')

# 图片选择框
uploaded_file = st.file_uploader('选择一张图片', type=['jpg', 'png'])
if uploaded_file is not None:
    # 显示已选的文件
    st.image(uploaded_file, caption='已选文件', use_column_width=True)
复制代码

界面完成后,我们再来考虑植物图片的识别服务,这里我用的是百度AI的服务

执行pip install baidu-aip命令即可安装百度AI的Python SDK。然后,再去百度AI开放平台注册一个账号获得相应的APP_KEY和SCRET_KEY。编写代码调用植物识别服务

from aip import AipImageClassify

APP_ID = 'xxx'  # 换成自己的 APP_ID
API_KEY = 'xxx' # 换成自己的 API_KEY
SECRET_KEY = 'xxx' # 换成自己的 SECRET_KEY
client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY)




    
""" 植物识别结果 """
res = client.plantDetect(image)  # 调用百度api识别植物
复制代码

最后将返回的结果在app上展示即可,完整代码如下

import streamlit as st
from aip import AipImageClassify

APP_ID = 'xxx'
API_KEY = 'xxx'
SECRET_KEY = 'xxx'
client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY)

# 设置网站标题
st.title('植物识别')

# 图片选择框
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()

    """ 植物识别结果 """
    res = client.plantDetect(bs)  # 调用百度api识别植物
    res['result']  # 显示输出结果

    """ 该植物最有可能是 """, res['result'][0]['name']  # 取预测概率最大的结果
复制代码

执行streamlit run plant_detect.py命令启动app,看到有如下输出

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://192.168.1.3:8501
复制代码

在浏览器访问指定的地址即可。

希望这篇文章的内容能对你有用,接下来我会定期分享这种AI小应用希望大家能够喜欢。另外,完整代码(包括微信小程序)已经开放,公众号后台回复关键字 植物识别 即可获取完整资料。

欢迎公众号「渡码」,输出别地儿看不到的干货。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/70100
 
529 次点击