计算机视觉|谷歌算法大牛分享:计算机视觉模型训练导论(好用工具分享)( 三 )


使用现有的带注释的数据集根据您希望模型检测到的内容 , 可能会免费提供带注释的数据集供您使用 , 这可以大大减少训练和部署所需模型所需的时间 。 但是 , 由于训练数据可能与您将要用作模型输入的数据不太相似 , 因此您对这种方法的数据质量的控制将少得多 , 因此 , 模型的性能可能会受到影响 。 因此 , 这种方法可能最适合概念验证项目 , 并且您可能需要稍后根据自己的特定应用程序生成自己的特定数据集 。
现有的一些流行数据集包括上下文中的通用对象(COCO) , PASCAL可视对象类(VOC) , ImageNet和Google的Open Images Dataset V6 。 一些公共数据集具有非商业许可证 , 因此请记住始终检查您使用的任何现有数据集的许可证 。
使用现有数据或收集您自己的数据您可以通过录制视频 , 拍照或在线搜索免费提供的视频和图像来编译自己的数据集 。 与从现有带注释的数据集中提取数据不同 , 您需要对收集的图像进行注释 , 然后才能将其用于训练 。 有很多收集照片的热门站点 , 包括Unsplash , Pixel , Pexels;后两个还提供视频 。 在收集数据时 , 请记住前面概述的数据收集原则 , 并尝试使数据集尽可能接近推理环境 , 并记住“环境”包括输入图像的所有方面:照明 , 角度 , 对象等 。
考虑以下图像 , 以构建检测车牌的模型 。 尽管每张照片都包括带有牌照的汽车 , 但它们的内容却截然不同 。 第一个描绘了多辆汽车的夜间场景 。 第二张图片显示的是较暗的场景 , 但仍然是白天 , 有雨 。 第三个拥有一辆以上的汽车 , 包括人员 , 并且像素更多 。 第四个板的样式不同于其他两个板 。 这些都是选择图像时需要考虑的变量示例 。
【计算机视觉|谷歌算法大牛分享:计算机视觉模型训练导论(好用工具分享)】
注意:由于许多几乎相同的图像不会增强您的模型 , 因此如果视频中每秒包含许多帧 , 请对您进行采样以选择最适合您的数据集需求的帧 。
使用数字生成的数据集生成数据集的另一种方法是使用合成的 , 即计算机生成的数据 。 如果您自己无法收集足够的数据 , 则使用此技术 。 通过使用合成数据 , 尤其是用于训练异常情况的数据 , 您可以生成比通过其他方式可以从实际事件中收集的数据集更大的数据集 , 从而提高性能 。

数据扩充最后 , 可以用来增强当前数据集的技术是数据增强 。 这涉及到获取现有的数据集图像并翻转 , 旋转 , 裁剪 , 填充或以其他方式对其进行修改 , 以创建足够不同以构成新数据点的图像;这可以增加训练数据的多样性 , 并有助于避免过度拟合 。 许多深度学习框架(如下所述)都包含数据增强功能 。
数据集注释通常 , 注释是选择图像的一部分并将标签分配给该区域的过程 。 对于图像分类 , 通过为整个图像而不是特定区域分配单个标签来完成注释 。 带注释的数据是通过监督学习进行模型训练的输入 。 具有许多注释 , 并且基础图像具有足够的变化 , 模型训练可以识别图像的不同特征 , 并根据要训练的模型类型学习检测感兴趣的对象 , 对图像进行分类等 。

注释的示例包括:绘制边界框或3D长方体框并为对象分配标签以进行对象检测 , 使用多边形轮廓进行对象跟踪以进行语义和实例分割 , 标识关键点和地标 , 并为对象地标检测分配标签 , 并标识直线 , 例如用于车道检测 。 对于图像分类 , 将图像按组放置 , 每组对应一个标签 。
模型训练总体概述收集并注释数据后 , 它们将用作模型训练的输入 。 数据被送入DNN , 然后输出预测:图像分类的标签 , 对象检测的标签和边界框 , 图像分割的标签图以及界标检测的关键点集 , 所有这些都伴随着置信度 。 该模型将预测与注释进行比较 , 并对DNN进行调整以产生更好的预测 。 根据每个培训课程或模型类型的各种指标 , 重复此过程 , 直到获得良好的性能 。 要为应用程序构建自己的计算机视觉模型 , 可以从头开始并构建自己的模型架构 , 也可以使用现有的模型架构 。