深浅模式
Roboflow
简介
YoloV8官方推荐了一个名为Roboflow的数据集网站。Roboflow是一个免费开源数据集管理平台,它不仅提供免费的数据集,还支持上传自己的数据集并进行格式转换。通过使用Roboflow,开发者可以轻松获取所需格式的数据集,无需手动进行繁琐的格式转换工作。此外,Roboflow还提供了多种数据预处理和数据增强功能,帮助开发者优化训练数据。总之,Roboflow是官方推荐的数据集获取网站,可以从中获取YOLOv8官方指定的数据集,并提供了便捷的数据处理工具。
从下面官方获取的图片上来看YOLOv8官方指定的数据集获取网站就是Roboflow。
Roboflow的官方地址
Roboflow具有的数据预处理
预处理可确保您的数据集采用标准格式(例如,所有图像的大小相同)。此步骤对于在训练模型之前确保数据集保持一致至关重要。
预处理适用于训练集、有效集和测试集中的所有图像。
Roboflow 平台提供以下预处理选项:
自动定向
调整
灰度
自动调整对比度
隔离对象
静态裁剪
切片
修改类
筛选器空
按标签筛选
下面介绍每个选项。
自动定向
自动定向会去除图像的 EXIF 数据,以便您看到图像的显示方式与它们在磁盘上的存储方式相同。
EXIF数据确定给定图像的方向。应用程序(如 Mac 上的“预览”)使用此数据以特定方向显示图像,即使图像在磁盘上的存储方向不同也是如此。
- Roboflow 建议默认保持打开状态,并检查推理中的图像是如何馈送到模型的。
调整
调整大小会更改图像大小,并可以选择缩放到所需的尺寸集。注释按比例调整(下面的“填充”除外)。
目前,仅支持缩小规模。下面提供一些指导哪种调整大小选项可能最适合您的用例
拉伸到**:**将图像拉伸到首选的逐像素尺寸。批注按比例缩放。图像呈方形、失真,但不会丢失源图像数据。
填充(使用中心裁剪):生成的图像是所需输出尺寸的居中裁剪。例如,如果源图像为 2600x2080,并且调整大小选项设置为 640x640,则输出的大小调整为源图像的中心 640x640。纵横比保持不变,但源图像数据丢失。
适合范围:源尺寸的尺寸将缩放为输出图像的尺寸,同时保持源图像纵横比。例如,如果源图像为 2600x2080,并且调整大小选项设置为 640x640,则较长的尺寸 (2600) 将缩放为 640,次要尺寸 (2080) 将缩放为 ~512 像素。图像纵横比和原始数据保持不变,但它们不是方形的。
适合(反射边缘):源尺寸的尺寸被缩放为输出图像的尺寸,同时保持源图像纵横比,任何新创建的填充都是源图像的反射。例如,如果源图像为 2600x2080,并且调整大小选项设置为 416x416,则较长的尺寸 (2600) 将缩放为 416,次要尺寸 (2080) 将缩放为 ~335.48 像素。其余像素区域(416-335.48 或 80.52 像素)是源图像的反射像素。值得注意的是,Roboflow 默认情况下也会反映注释。图像为正方形、填充图像,并保留纵横比和原始数据。
适合(黑边):源尺寸的尺寸被缩放为输出图像的尺寸,同时保持源图像纵横比,任何新创建的填充都是黑色区域。例如,如果源图像为 2600x2080,并且调整大小选项设置为 416x416,则较长的尺寸 (2600) 将缩放为 416,次要尺寸 (2080) 将缩放为 ~335.48 像素。其余像素区域(416-335.48 或 80.52 像素)为黑色像素。图像为正方形,黑色填充,并保留纵横比和原始数据。
适合(白边):源尺寸的尺寸被缩放为输出图像的尺寸,同时保持源图像纵横比,任何新创建的填充都是白色区域。例如,如果源图像为 2600x2080,并且调整大小选项设置为 416x416,则较长的尺寸 (2600) 将缩放为 416,次要尺寸 (2080) 将缩放为 ~335.48 像素。其余像素区域(416-335.48 或 80.52 像素)为白色像素。图像为正方形,白色填充,并保留纵横比和原始数据。
灰度
将具有 RGB 通道的图像转换为具有单个灰度通道的图像,这可以节省内存。每个灰度像素的值计算为相应红色、绿色和蓝色像素的加权和:Y = 0.2125 R + 0.7154 G + 0.0721 B。
这些权重由CRT phosphors确定,因为它们比同等权重更好地代表人类对红色、绿色和蓝色的看法。
自动调整对比度
增强低对比度的图像。探索是否要使用对比度作为预处理步骤
对比度拉伸:重新缩放图像以包括落在第 2 和第 98 个百分位数内的所有强度。
直方图均衡:“分散图像中最常用的强度值”。均衡化图像具有大致均匀的分布,其中像素的所有颜色大致相等。
自适应均衡:对比度受限自适应直方图均衡 (CLAHE)。一种用于局部对比度增强的算法,它使用在图像的不同图块区域计算的直方图。因此,即使在比大多数图像更暗或更亮的区域,局部细节也可以得到增强。
隔离对象
“隔离对象”转换将裁剪每个边界框并将其提取为单个图像。此步骤将对象检测数据集转换为分类数据集。
在数据集中的许多类相似的情况下,通常按顺序使用两个模型。第一个模型(对象检测)查找对象,第二个模型(分类)标识对象是什么。“隔离对象”转换可用于创建训练第二个模型所需的数据集。
静态裁剪
静态裁剪功能和示例输出。
切片
切片有助于检测小物体(尤其是在航空图像和显微镜等情况下)。默认设置是 2x2 平铺,但是,您可以根据需要进行调整。
下图为切片工具和输出的预览(以“网格”表示)。
修改类
一种预处理工具,用于在生成数据集的新版本时省略特定类或重映射(重命名)类。这些更改仅影响版本,而不会影响基础数据集。
在这里roboflow官方提供了一个视频讲解大家可以观看
下图操作为省略“苹果叶”类。
下图操作为将 3 个类重新映射(重新标记)为“苹果叶”。
筛选器空
筛选器 Null 转换允许用户要求对数据集中的图像共享进行批注。应用修改类工具后标记为空注记或“未注记”的图像是使用过滤器空时唯一受影响的图像。
在数据集的大部分不包含感兴趣对象的情况下,此转换非常有用。
在这里roboflow也官方提供了一个视频讲解大家可以观看
注意:在使用此工具之前,请确保已正确注释数据集中的所有图像,将适当的图像指定为空注释,和/或省略任何不必要的类。
PS:未对图像进行批注时会出现“缺少批注”(不带批注的图像将导致训练数据集的性能出现问题,并可能导致训练失败)。仅当 该图像中不存在您希望模型检测到的任何_内容_时,才应应用空注释。
按标签筛选
“按标记筛选”转换允许用户根据哪个版本筛选哪些图像应包含或不应包含在版本中标签应用。此转换对于在新的数据子集上训练模型或从训练中排除不需要的图像非常有用。
每个标签有三个选项:
要求:只有带有“必需”标记的映像才会包含在版本中。
排除:带有“已排除”标记的图片将不会包含在版本中。
允许:带有允许标记的图片将包含在版本中,条件是排除和需要规则。
数据预处理具体操作流程
首先登录Roboflow如果大家不会可以看我的另一篇教程里面有从注册到导出你想要的数据格式文件的详细教程(文章的开头有链接)
当我们登录了Roboflow之后需要新建一个新的项目,里面需要导入你的数据集,如果你目前并没有数据集可以在网站上下载一个然后上传上去。
首先安装以上教程注册登录以后的界面如下所示 一开始的项目地方是空的,之后我可以选择新建一个项目,上传你自己想要处理的数据集即可。步骤如下:
点击之后会弹出新的界面如下所示:
在这个界面上,可以输入一些你项目的信息例如:项目的类型(目标检测、分类等可以显示更多),项目名称(给你项目起一个名字),你是检测什么(你的图片标签是什么),许可证。
当输入完所有的信息之后即可点击create public project(创建项目)即可跳转新的界面如下所示:
经过上图的操作你可以上传好自己的数据集。
当我们上传好自己的数据之后就可以对数据集进行数据预处理操作,具体可以进行的数据预处理已经在前面介绍了,下面来介绍数据预处理的操作流程。
当我们建立好一个完整的项目并且上传好图片之后,我们可以对原始上传图像进行多个版本的预处理并同时保存。
在如图所示当中我们先点击步骤1然后跳转页面以后点击步骤2即可跳转新的页面。
(这里面可以看到我们生成版本信息我们每次对数据进行一次操作之后的版本都会记录在VERSIONS里面)
当我们经过上面的步骤一和步骤二以后跳转到该页面,该页面就显示了我们可以进行的所有数据预处理的操作包括 (自动定向、调整、灰度、自动调整对比度、隔离对象、静态裁剪等)前面都有详细的介绍每一个操作能够达到的效果,这里选两个来给大家展示。
静态裁剪:
灰度: