zoukankan      html  css  js  c++  java
  • 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小应用希望大家能够喜欢。另外,完整代码(包括微信小程序)已经开放,公众号后台回复关键字 植物识别 即可获取完整资料。

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

  • 相关阅读:
    MySQL多表查询回顾
    本地SQL查询
    QBC查询
    HQL查询
    Hibernate多对多操作
    Hibernate一对多操作
    表与表之间关系回顾
    x$bh视图
    dba 和 rdba 转载
    What you can talk
  • 原文地址:https://www.cnblogs.com/duma/p/13063004.html
Copyright © 2011-2022 走看看