简化计算机视觉模型开发
在当今快速发展的技术领域,构建一个计算机视觉模型是一项复杂且耗时的工作。它需要整合不同的平台、开源工具和开发者笔记本来创建一个功能完善的机器学习流程。然而,这只是开始;在拥有一个训练好的模型之后,仍然需要进行工程工作来部署和维护它。在Roboflow,每天都与开发者交流,他们花费了无数小时来打造这些工作流程——虽然这些工作流程无疑是令人印象深刻的,但它们也是劳动密集型的,并且需要频繁的维护。更糟糕的是,当这些不同的系统出现故障时(它们肯定会出现故障),找到错误来源几乎是不可能的。尤其是在将这些系统拼凑在一起的工程师离开公司之后。
因此,这些公司花费了宝贵的开发人员时间(这些时间本可以更好地集中在公司的核心业务问题上)来创建一个不可维护的庞然大物,它既不具有可扩展性,也不具有可重复性。如果问,公司应该使用一个由一群专注的专家打造和维护的工具链,并且这个工具链已经经过了成千上万的开发者的实战测试。毕竟,正如许多博客读者已经知道的,这个过程并不一定是一个简单的流程。它至少需要六个关键组成部分:
上传图像
标注图像
生成数据集版本
训练模型
部署模型
优化性能(主动学习)
当构建Roboflow时,目标是创建一个端到端的解决方案,捕捉并简化这个过程的每一步。正在构建计算机视觉基础设施,让可以专注于业务的独特差异化因素。开发者(本质上)是足智多谋的,以解决方案为导向的,并且是适应性强的。也是开发者——理解,当认为自己可以构建相同的解决方案时,购买像这样的产品可能会感觉违反直觉。让深入探讨计算机视觉团队在构建自己的(内部)机器学习工具时遇到的一些常见问题,以及如何通过与Roboflow合作来解决、缓解或完全消除这些痛苦。
如果团队自行构建计算机视觉流程,他们通常会遇到的一个挑战是不同的数据科学家和工程师将在相同数据集的不同版本上工作,很难保持每个人的更改和添加清晰。如果团队成员之一注意到并修正了注释中的错误,这个修正如何进入其他团队成员的模型?如果想添加新的训练数据以提高边缘案例的性能,这些信息如何传播?如果数据科学家训练了一个新的模型,如何跟踪它与所有其他数据科学家的先前模型相比的表现如何?
Roboflow使开发者和领域专家都能够创建准确、即时可用的计算机视觉模型——每个人都可以随着时间的推移跟踪每个版本的有效性。可以轻松查看帐户中的所有先前数据集,并且清楚地知道哪个版本是预训练的、训练的和部署的。然后,Roboflow上的团队可以通过在他们的帐户内评估生成的模型性能(mAP、精确度和召回率)来比较他们独特的数据集参数。
生成和维护外部开发的机器学习流程通常只由一个人或一小群开发者负责。这意味着任何员工流动都可能显著阻碍团队的进展,因为其他人都试图理解(并重新拼凑)用于开发流程的许多不同的工具和解决方案。谁有权访问哪些平台?注释存储在哪里?哪些系统需要手动更新或维护,以及维护的频率是多少?
Roboflow位于云端,这意味着包括非技术利益相关者在内的每个人都始终可以访问整个计算机视觉工作流程。共享帐户(称为“工作区”)包含所有源图像、注释、数据集和训练模型(无论是准备部署的,还是正在积极部署的)。这些组成部分构成了整个机器学习流程,并且它们存在于一个中央存储库中。
从头开始训练一个模型需要很长时间。不希望每次对数据集进行改进时都要等待一个完整的模型训练——希望模型从先前检查点开始,这个检查点包含了模型之前学到的所有东西。这被称为迁移学习,它已经内置在Roboflow帐户中。只需选择希望新模型从中学习的已训练模型,下一次迭代将从上一个模型停止的地方开始学习新数据。
在投入了如此多的时间和精力创建自己的计算机视觉流程之后,如果最终的模型表现不如团队所希望或预期的那样好,那将是令人沮丧的。如果没有分析和报告功能来了解模型在哪里以及如何失败,优化该模型可能会感觉像是一个昂贵且耗时的猜测和检查游戏。
在野外了解模型性能的过程,然后将该推理数据反馈到源数据集中以进行下一次模型迭代的过程称为主动学习,就像迁移学习一样,它也内置在Roboflow帐户中。此外,上传API使能够预先选择这个工作的最高杠杆图像,包括低置信度预测和最终错误的高置信度预测。
设计了这个工作流程,以便那些积极使用一个或多个部署模型收集推理数据的客户能够轻松地使用。这样,他们的模型在使用得越来越多时会越来越好。
如果训练好的模型不能在野外部署,那么它就没有多大用处。有了内部工具和定制的训练流程,部署可能会带来一系列挑战,这取决于希望模型如何对现实世界数据进行预测(例如,驾驶无人机收集航拍图像,在仓库中安装摄像头,或将模型嵌入智能手机应用程序)。开发者可能需要花费数周时间构建自己的API调用和Docker到独特设备,但这些解决方案是静态的,无法随着这个行业的快速发展而发展。
可以以多种方式从Roboflow帐户部署训练好的模型,包括托管推理API、设备上部署(到目标如NVIDIA Jetson和OpenCV AI Kit设备),甚至在Web浏览器中。提供Docker和文档,使这个过程变得简单且可扩展,即使行业发生变化,新一代工具向公众发布。将能够在几天内投入生产,而不是几个月。
团队会受阻。这是常有的事,特别是在计算机视觉领域,新技术(和旧技术的改进)经常引入的问题比它们回答的还要多。在这种情况下,专家会向其他专家求助,GitHub上的论坛、学术论文甚至YouTube视频。如果有一支机器学习专家团队随时待命,那不是很好吗?
使用Roboflow最好的部分之一是客户直接从团队、在线文档以及教程视频和博客文章中获得的教育组成部分,这些视频和文章解决了常见的陷阱、操作方法和最佳实践。当使用Roboflow构建时,永远不会孤单地构建。
有了Roboflow的专家和现有的工程才能的帮助,不需要雇佣一支昂贵的机器学习博士团队。如果已经有计算机视觉专家,他们可以将时间花在更高杠杆、差异化的工作部分,而不是重新发明轮子。
许多技术专家在他们正在构建一个健全且复杂的流程时找到解决方案,他们显然已经投入了大量的时间和资源来开发。想强调,通过转向Roboflow的模块以获得更好的可扩展性和增长,这些努力并没有白费。而且,从长远来看,与维护一个团队来支持和扩展现有的解决方案相比,总成本可能会低得多。
事实上,开发的外部系统可以告诉如何更好地为服务。可以揭示当前工作流程的优缺点,以更好地满足项目的独特需求。目标是创建一个平台,为提供两个世界中最好的:一个可以拥有、触摸和管理的系统,以及一个中央枢纽,用于所有的数据和模型,它自动化了今天从头开始构建所需的大量手动工作。
准备好了吗,开始烘焙吧!
想要确切地知道Roboflow是否可以像(甚至比)现有的预构建流程一样表现良好吗?向发起挑战。联系,获得免费训练积分,将引导完成在Roboflow上上传图像+注释并训练一个新模型的过程。让比较结果,帮助做出是否与合作或自行构建的正式决定。