自去年夏天推出端到端分类支持以来,在计算机视觉项目上取得了显著进展,从收集和标注图像到训练和部署模型。现在,正在增加对另一种项目类型的支持:多标签分类。
什么是多标签分类?在传统的单标签分类中,每张图像都会被赋予一个标签。它假设每张图像可以被归类到一个不重叠的离散类别中(例如“适合工作”和“不适合工作”)。但现实世界往往并非如此简单。有时,需要预测单个图像的多个标签的灵活性(例如,一张单独的照片可能是夜晚、多云和冬季),这就是多标签分类的全部内容;它允许模型学习并预测给定图像的多个类别,而不仅仅是一个。
使用单标签分类,可以通过将类别串联在一起来解决这个问题(例如night-cloudy-winter),但这需要更多的训练数据,因为模型不仅要学习区分八个独立的事物(白天、夜晚、多云、晴朗、冬季、春季、夏季、秋季),还要独立学习所有16种可能的组合(白天-多云-冬季、白天-多云-春季、白天-多云-夏季、白天-多云-秋季、白天-晴朗-冬季等)。收集的数据集需要有足够的每个组合的示例,以便模型能够学习区分它们,而多云天的信息不会帮助模型学习任何关于多云夜晚的信息。随着添加的类别越来越多,这个问题会呈指数级恶化。
多标签分类允许独立地将每张图像标记为白天/夜晚、多云/晴朗,以及冬季/春季/夏季/秋季,并允许模型独立学习每个区别,这大大减少了需要的训练数据量,并最大化了模型从中学到的东西。
在Roboflow中创建多标签分类项目,只需在创建新项目时选择“多标签分类”作为项目类型。这将使能够在Roboflow Annotate中为每张图像切换多个类别,而不是像单标签分类项目那样仅限于选择单个类别。这张图片同时被标记为猫和狗(而不是必须选择一个)。
一旦生成了数据集的版本,可以选择将其导出以用于自己的模型训练:导出为多标签分类,或者使用Roboflow Train自动训练和部署多标签分类模型,使用自动扩展推理API。Roboflow Train自动从迁移学习中受益。一旦模型完成训练(通常只需要几分钟,但根据数据集的大小和Roboflow计划,可能需要更长的时间),将能够通过将图像放入网络浏览器中来尝试模型,或者使用API将其集成到应用程序中。
将目标检测项目转换为多标签分类。目标检测本质上是多标签的;不同之处在于它还添加并预测每个标记框的本地化信息(并且可以预测/计数图像中每个类别的多个实例)。如果想丢弃这些信息,尝试将问题框架为多标签分类问题,可以将Roboflow中的任何目标检测项目导出为多标签分类CSV,然后将其导入到新的多标签分类项目中。
这种将目标检测项目重新框架为Roboflow中的多标签分类的能力意味着已经有数百个公共数据集,可以在Roboflow Universe上使用它们来尝试多标签分类!
如何选择多标签分类和目标检测。使用目标检测与分类的一个很好的经验法则是,试图预测的事物是“图像中的对象”还是“图像的属性”。例如,棋盘上的棋子是“图像中的对象”,但冬季是“图像的属性”。如果试图在图像的冬季或白天部分周围画一个框,可能会最终画一个框围绕整个图像。如果无法决定,建议首先开始标记图像进行目标检测,因为虽然可以轻松地将目标检测项目转换为多标签分类项目,但要朝相反方向转换将需要重新标记数据集。