当前位置:网站首页>机器学习笔记 - 使用Streamlit探索对象检测数据集
机器学习笔记 - 使用Streamlit探索对象检测数据集
2022-07-07 18:03:00 【坐望云起】
一、探索数据集的重要性
数据集通常是大多数数据科学项目中最薄弱的环节。构建一个好的数据集可能非常困难。所以至少了解我们使用的数据集,并有办法探索和讨论它。
1、对于项目团队
解释指标和错误并提高数据集的质量:团队可以轻松检查一组预测有什么问题。也许数据看起来不像预期的那样?也许注释是错误的?如果是这种情况,它应该很容易修复。
了解模型是否可以处理某种情况并计划新功能:有时产品所有者/客户会询问模型是否能够处理新标签或新情况。团队应该能够更快地给出第一个答案和一些行动。
2、对于注释团队
如果注释团队有一个仪表板来探索当前数据集,它可以使用它来回答问题:
“如何标记这个项目?” :通过在仪表板中查找类似示例并找到正确的标签
“意外情况下应该怎么做?”:它可以在当前数据集中查找诸如受阻标签之类的情况。
将提高数据质量!但这也将使他们更加自主,并为项目团队提供更多时间来处理项目的其余部分。
3、对于最终用户、集成商、销售
他们不必询问标签的含义,并且能够自行显示示例并解决问题。
二、使用 Streamlit 探索 COCO 对象检测数据集
让我们看一个使用 Streamlit 探索对象检测数据集的示例。
我们将使用MS COCO 数据集toaster的类。
为什么选择烤面包机类?这是最小的表示类之一:训练集中有 225 个边界框,验证集中有 9 个。它看起来很简单,因为这是一个广泛使用且相对标准的对象。
1、COCO 数据集的烤面包机是什么?
通过探索数据集我们可以注意到的第一件事是有两种烤面包机:
2、贴错标签的数据
3、标注框错误
4、重叠的对象
当多个物体靠得很近时,你在做什么?你是在为每个对象做一个边界框还是一个分组?常见的答案是每个对象放置一个。但有时它可能真的很难,比如下面的一堆橘子:
5、被遮挡的
当一个对象隐藏在另一个对象后面时,通常的做法是只注释可见表面,只要它大于预期对象的给定比例(通常 > 20%)。但是,它可能会影响您以后用它做什么(培训和后处理)。另一个好的做法是将注释标记为截断或阻塞。
6、难以识别的
有些物体可能无法识别:太小、被遮挡或图片质量可能不够好。大多数时候答案是根本不注释它,但你也可以将它标记为 hard。
真正的问题是:你想教你的模型来检测这些吗?您想用这种对象影响您的指标吗?这是您最终产品的目标吗?
7、画中画/镜子
通常被忽视,它发生在大多数众包/爬网/基于最终用户的数据集中,而不是受控环境中的数据集。通常的决定是正常标记它们,但您可以决定在特定用例中不这样做,或者决定标记它们以便以后能够区分它们。这里它代表了训练集的 5%。
三、设置 Streamlit 仪表板
有几种方法可以设置仪表板来探索您的对象检测数据集。
首先,您可以使用预制工具,例如 Voxel51 团队的令人惊叹的FiftyOne,也许有一天Google 会使用Know You Data。其次,您可以使用Streamlit或Dash等仪表板解决方案构建自己的解决方案。选择第一个解决方案将更轻松地授予您的高级工具,例如用户身份验证、数据集管理、模型评估……并且更易于维护。
设置第二个解决方案可能会更快,它还将为您提供自定义解决方案的更大灵活性,并且您将能够在项目代码和不同仪表板之间共享代码和实践。
我将向您展示如何使用 Streamlit 仪表板进行操作,因为它是展示 Streamlit 的强大功能以及将其轻松集成以探索对象检测数据集的好方法。
这个小例子的完整代码在这里。
如果您想查看已部署应用的完整代码,可以前往此处。
边栏推荐
- openEuler 有奖捉虫活动,来参与一下?
- UCloud是基础云计算服务提供商
- 力扣599. 两个列表的最小索引总和
- LeetCode力扣(剑指offer 36-39)36. 二叉搜索树与双向链表37. 序列化二叉树38. 字符串的排列39. 数组中出现次数超过一半的数字
- pom.xml 配置文件标签:dependencies 和 dependencyManagement 区别
- Open source heavy ware! Chapter 9 the open source project of ylarn causal learning of Yunji datacanvas company will be released soon!
- 九章云极DataCanvas公司摘获「第五届数字金融创新大赛」最高荣誉!
- YoloV6:YoloV6+Win10---训练自己得数据集
- 毕业季|遗憾而又幸运的毕业季
- 如何在软件研发阶段落地安全实践
猜你喜欢
【STL】vector
开源重器!九章云极DataCanvas公司YLearn因果学习开源项目即将发布!
数据孤岛是企业数字化转型遇到的第一道险关
国家网信办公布《数据出境安全评估办法》:累计向境外提供10万人信息需申报
Force buckle 2319 Judge whether the matrix is an X matrix
Force buckle 599 Minimum index sum of two lists
openEuler 有奖捉虫活动,来参与一下?
【STL】vector
关于cv2.dnn.readNetFromONNX(path)就报ERROR during processing node with 3 inputs and 1 outputs的解决过程【独家发布】
The state cyberspace Office released the measures for data exit security assessment: 100000 information provided overseas needs to be declared
随机推荐
华南X99平台打鸡血教程
Simulate the implementation of string class
My creation anniversary
一锅乱炖,npm、yarn cnpm常用命令合集
pom. XML configuration file label: differences between dependencies and dependencymanagement
ASP.NET学习& asp‘s one word
R语言ggplot2可视化:使用ggpubr包的ggviolin函数可视化小提琴图、设置palette参数自定义不同水平小提琴图的填充色、add参数在小提琴图添加箱图
Force buckle 1790 Can two strings be equal by performing string exchange only once
JVM 类加载机制
torch. nn. functional. Pad (input, pad, mode= 'constant', value=none) record
Force buckle 459 Duplicate substring
Equals method
强化学习-学习笔记8 | Q-learning
Time tools
MIT科技评论文章:围绕Gato等模型的AGI炒作可能使人们忽视真正重要的问题
How to cooperate among multiple threads
Some important knowledge of MySQL
JVM class loading mechanism
gorilla官方:golang开websocket client的示例代码
注解。。。