在当今的计算机视觉领域,通用人工智能(AI)还远未实现。目前,计算机视觉模型通常是由团队针对特定用例手工打造的,使用特定领域的数据集。这些模型在各种机器学习框架中被训练和部署,并且往往被隔离在各自的代码库中。在机器学习的数据集构建、训练和部署过程中,许多任务被重复执行,例如车牌检测、人员跟踪、文本识别等。如果能够团结起来,共享模型的创建和部署,那将对计算机视觉社区大有裨益。Modelplace正是朝着这个方向迈出的一大步。在Roboflow,很高兴能够参与到Modelplace的首次模型分享中,并在此过程中学到了很多关于市场的知识。让深入了解它的工作原理!
Modelplace的设计考虑了两个角色:模型创建者和模型消费者。模型创建者负责组装新数据集并构建新模型,并将他们的模型发布在Modelplace上供他人使用。在Modelplace的布局中,模型消费者可以浏览和选择适合自己应用的模型。需要注意的是,在初始发布中,所有模型都是免费提供的。
如果在Modelplace上找到了一个适合应用的模型,可以通过简单地拖放照片到Modelplace的Web界面上来测试该模型。一旦决定某个模型可能对有用,可以选择两种部署选项(对于大多数模型):将图像发布到托管的Web API,或者在本地部署Python Wheel。对于大多数用例,Web托管API是首选。如果模型需要在没有互联网连接的情况下运行,或者需要实时推理速度大于20FPS,那么将需要设备上的部署。
模型创建者可以在Modelplace上分享他们的模型,并通过模型的流行度来获利。要分享模型,首先需要有一个已经训练好并且符合标准的模型。目前,需要联系Modelplace,他们会提供打包模型的指导。需要构建一个Python Wheel来发布和在他们的后端共享模型。他们支持许多框架,包括onnxruntime、openvino、pytorch、tensorflow。必须确保实施一些基本测试以确保模型正常运行。还需要确保模型输出符合一些基本标准。
如果在Modelplace上还没有看到想要的模型,可以考虑使用Roboflow自己构建。如果模型可以公开面对,可以在Modelplace上与社区分享,以便下一个开发者可以更快地进行。对于Modelplace的首次发布,提供了一个由Roboflow定制训练的美国手语模型作为示例。创建这个模型时,从公共ASL数据集开始。然后使用Roboflow的工具来策划和版本化数据集。还使用了Roboflow Train提供的训练和部署工具。
通常,会发现某个模型在特定于部署场景的某些情况下失败。从失败场景中收集新图像并重新训练模型以泛化到这些失败条件的过程称为主动学习。主动学习是在Roboflow的端到端机器学习流程中迭代改进私有模型或在Modelplace上托管的模型的关键步骤。