生成图像处理数据
Generating data for image processing
我是深度学习的新手,我正在从事与足球运动分析相关的业余爱好项目。我想使用足球视频并将其转换为 2D 地图。我把这个过程分解成更小的步骤。第一步是能够检测到球员和足球。
我正在考虑从预训练的对象检测模型入手。我拍了一段视频并从中生成了图像。我在其中一张图片上使用了它,并附上了输出。它显然没有注意到很多事情。解决这个问题的一种方法是进行一些迁移学习。为此,我将不得不生成自己的数据集。我能想到的唯一方法是将此图像切成 windows 并手动将它们标记为球员和足球。
这似乎是一项繁琐的任务。还有其他有效的数据生成方式吗?有哪些最佳做法?
这更有可能用于长期 运行 开发,但由于我已经写了一个类似的答案,因此将其张贴在这里。
- 首先创建一个带有边界框的球员数据集(大约 500-1k,然后使用增强来增加几千个)。您可以使用以下工具进行注释:
https://github.com/developer0hye/Yolo_Label(效果很好,但仅适用于 windows)
https://github.com/AlexeyAB/Yolo_mark
https://github.com/heartexlabs/label-studio(这是一个用于许多其他任务的更复杂的注释工具)
使用这些工具,注释数据不会超过几个小时。
有很多增强工具,例如 - https://github.com/mdbloice/Augmentor
https://github.com/wagonhelm/rotation_augment(如果你想在图像上使用旋转)
- 由于玩家会移动,因此您需要具有良好 FPS 和合理 mAP 的东西。从我对许多对象检测模型的实验中,我发现 yolov3 (darknet) 是最稳定的。
我建议使用用C++编写的darknet YOLO,你不需要编写任何主要代码,它会快速准确。
https://pjreddie.com/darknet/yolo/
如果您在 Linux https://github.com/pjreddie/darknet
,请使用此存储库
如果你在 Windows https://github.com/AlexeyAB/darknet
,请使用这个
- 在训练之前,您需要为您的数据集找到最佳的锚尺寸。我写了一个简单的 k-means 来找到任何与 yolo 兼容的数据集中的锚点大小。
https://github.com/zabir-nabil/yolov3-anchor-clustering
- 我做了一些小的定制(比如将 OpenCV/numpy 数组直接发送到模型)到 运行 暗网 python API 在服务器上更快(tensorflow 模型服务器与REST 和 gRPC)。我还为它写了一个烧瓶服务器。你可以在这里找到它 -
https://github.com/zabir-nabil/tf-model-server4-yolov3
有一些针对行人的预训练模型(您可以在 github 上轻松找到它们),但由于非常不同的背景和运动伪影,它们不会为您提供很好的性能。
我是深度学习的新手,我正在从事与足球运动分析相关的业余爱好项目。我想使用足球视频并将其转换为 2D 地图。我把这个过程分解成更小的步骤。第一步是能够检测到球员和足球。
我正在考虑从预训练的对象检测模型入手。我拍了一段视频并从中生成了图像。我在其中一张图片上使用了它,并附上了输出。它显然没有注意到很多事情。解决这个问题的一种方法是进行一些迁移学习。为此,我将不得不生成自己的数据集。我能想到的唯一方法是将此图像切成 windows 并手动将它们标记为球员和足球。
这似乎是一项繁琐的任务。还有其他有效的数据生成方式吗?有哪些最佳做法?
这更有可能用于长期 运行 开发,但由于我已经写了一个类似的答案,因此将其张贴在这里。
- 首先创建一个带有边界框的球员数据集(大约 500-1k,然后使用增强来增加几千个)。您可以使用以下工具进行注释:
https://github.com/developer0hye/Yolo_Label(效果很好,但仅适用于 windows)
https://github.com/AlexeyAB/Yolo_mark
https://github.com/heartexlabs/label-studio(这是一个用于许多其他任务的更复杂的注释工具)
使用这些工具,注释数据不会超过几个小时。
有很多增强工具,例如 - https://github.com/mdbloice/Augmentor
https://github.com/wagonhelm/rotation_augment(如果你想在图像上使用旋转)
- 由于玩家会移动,因此您需要具有良好 FPS 和合理 mAP 的东西。从我对许多对象检测模型的实验中,我发现 yolov3 (darknet) 是最稳定的。
我建议使用用C++编写的darknet YOLO,你不需要编写任何主要代码,它会快速准确。
https://pjreddie.com/darknet/yolo/
如果您在 Linux https://github.com/pjreddie/darknet
,请使用此存储库如果你在 Windows https://github.com/AlexeyAB/darknet
,请使用这个- 在训练之前,您需要为您的数据集找到最佳的锚尺寸。我写了一个简单的 k-means 来找到任何与 yolo 兼容的数据集中的锚点大小。
https://github.com/zabir-nabil/yolov3-anchor-clustering
- 我做了一些小的定制(比如将 OpenCV/numpy 数组直接发送到模型)到 运行 暗网 python API 在服务器上更快(tensorflow 模型服务器与REST 和 gRPC)。我还为它写了一个烧瓶服务器。你可以在这里找到它 -
https://github.com/zabir-nabil/tf-model-server4-yolov3
有一些针对行人的预训练模型(您可以在 github 上轻松找到它们),但由于非常不同的背景和运动伪影,它们不会为您提供很好的性能。