计算机视觉项目的端到端解决方案
在采用像Roboflow这样的端到端解决方案时,始终需要收集和整合起始数据(图像),生成每个数据集的版本,训练不同变体的模型,然后将该模型部署到适合特定用例的目标位置。精明的工程师随后会设置一个机器学习管道,将推理数据反馈到源数据集中,以继续随着时间的推移增强模型性能。称这为“主动学习”。
技术旨在简化这一过程,消除许多阻碍团队将计算机视觉融入现有工作流程的障碍——但正如刘易斯·卡罗尔曾经著名地写道,总是必须“从开始开始”。让借此机会讨论一下鼓励每位新客户在他们自己的视觉旅程开始时考虑的一个关键活动:选择正确的问题陈述。
什么是问题陈述?
对于许多客户来说,这个过程的第一步实际上并不是选择最好的技术,而是定义正确的问题陈述。这是用户如何使用计算机视觉来呈现他们试图解决的核心问题。
一个好的问题陈述应该是:
- 具体的
- 可实现的
- 可衡量的
例如,如果希望在自然灾害后评估人造结构的损坏情况,作为一个例子,选择一个具体的损坏度量:屋顶、外墙、破碎的窗户或缺失的门。
记住,模型只能看到人类(或相机)能检测到的东西。考虑将如何注释图像,特别是如果所讨论的对象需要一定程度的领域专业知识。例如,识别良性(或癌症)皮肤细胞。这个注释项目是否能够用现有的领域专家数量来实现?能找更多的吗?
选择适当的部署策略通常是由问题陈述实际上有多可衡量来决定的——这个过程通常也揭示了在部署中的优先事项。例如,速度重要吗?准确性有多关键?模型需要离线运行、在边缘运行,还是可以通过托管的API部署?
以下是一些好的问题陈述的例子:
- “想创建一个模型,能够……检测空气中的烟雾。”
- “……在管道中找到甲烷泄漏。”
- “……计算零售货架上的物品数量。”
- “……在水下识别不同种类的鱼。”
以下是一些不一定是问题陈述的陈述——意思是,它们并没有触及解决方案的“如何”,而是“什么”或者(在某些情况下)“为什么”。
- “想……创建一个帮助人们下棋的应用程序。”
- “……建造一个自动驾驶的割草机。”
- “……使用计算机视觉帮助应对气候变化。”
- “……取代杂货店的收银员。”
要清楚的是,这些陈述当然对过程很重要,因为它们经常说明期望的结果——但要开始使用Roboflow,客户需要对他们的模型想要检测什么以及这些标签应该有多具体有一个清晰的想法(例如,“鱼”与“蓝鳃”)。
为什么这很重要?
定义一个清晰、可操作和可实现的问题陈述对于项目成功至关重要。在许多方面,问题陈述作为CV团队在构建他们的机器学习管道过程中的北极星。它将(并且应该)影响整个过程的每个部分,从选择正确的部署目标到应用最有利的增强和预处理步骤。
此外,如果没有一些由这些输出触发的行动,模型预测通常没有价值。一个清晰的问题陈述不可避免地导致对期望结果的更清晰的认识。例如,一些客户需要他们的模型将数据输入到仪表板供人工审查,而其他客户则创建机器人,这些机器人旨在根据模型预测自动执行某些任务(例如,从装配线上摘取坏水果)。一些客户甚至正在建立由计算机视觉驱动的整个业务。
一旦确定了试图解决的问题,创建一个视觉管道(并建立期望的结果)就会变得容易得多。