机器学习开发者想要打造一款 App 有多难?事实上,你只需要会 Python 代码就可以了,剩下的工作都可以交给一个工具。一些介绍可参考:

文章

公众号:机器之心从Python代码到APP,你只需要一个小工具:GitHub已超3000星

streamlit可以自行构建工具的流程:

部署 Flask app,写 HTML、CSS 和 JavaScript,尝试对从 notebook 到样式表的所有一些进行版本控制。

写此类工具感觉就像训练神经网络或者在 Jupyter 中执行点对点分析(ad-hoc analysis)!同时,我们还想保留强大 app 框架的灵活性。我们想创造出令工程师骄傲的好工具。

我们希望的 app 构建流程如下:

简而言之,Streamlit 的工作流程如下:

  • 每次用户交互均需要从头运行全部脚本。

  • Streamlit 根据 widget 状态为每个变量分配最新值。

  • 缓存保证 Streamlit 重用数据和计算。

同时streamlit 可以支持中文,很友好:

而且只要保存文件,不用重启api就可以直接反应上来,非常方便,同时如果运行有报错,就会如下面这般显示:

总的来说,可以把steamlit当作一种IDE,交互非常及时。

再来看笔者的一个图像识别的目标检测案例

本案例脱胎于Udacity自动驾驶汽车图像识别,

代码链接:implemented in less than 300 lines of Python

原案例中无法自己上传本地图片进行检测,事先提供好了图片url连接(标记了所有图像Ground Truth的原标签数据集),直接download使用,所以不太满足要求 。

笔者这边对该案例进行了一定的魔改,让其可以支持本地图片的使用。

这样才能制作自己的检测器,先贴一下笔者最终微调的结果:

依赖安装使用之前需要加载:

pip install --upgrade streamlit opencv-python

或者直接用线上的文件也是可以的:

streamlit run https://raw.githubusercontent.com/streamlit/demo-self-driving/master/streamlit_app.py

页面使用


使用步骤:

  • 第一步:选择本地的一张图片(png/jpg)…

  • 第二步:调整目标检测参数

  • 第三步:点击检测的按钮

其中,切换页面模式,继承了源码的三种:目标检测 + 显示介绍 + 展示原始code

最终的效果如图,展示原图 + 目标检测之后的图:

练习题代码可见github

https://github.com/mattzheng/streamlit_demo/tree/main/demo2-opencv+yolov3

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐