opencv - 最佳背景扣除技术

标签 opencv machine-learning computer-vision background-subtraction

在我最新的项目中,我需要训练深度卷积神经网络来检测足球运动员。问题是我所有的正面例子都是从 3-4 个视频中提取的,而每个视频中的草的颜色几乎相同。我正在寻找一种背景减法方法,它将人体与绿色背景隔离开来。然后,我可以将草的颜色更改为不同的色调。执行边缘检测或颜色分割算法是更好的主意吗?有任何想法吗?谢谢

example image

最佳答案

问题

如何解决我的 CNN 训练集中草颜色(背景)完全相同的问题?

解决方案

有问题吗?

测试是否存在问题的一种方法是查看训练后的模型是否可以处理颜色变化而无需重新训练。输入颜色重新排序的测试图像(蓝色变为红色,红色变为绿色,绿色变为蓝色),看看效果如何。尝试对图像进行去色处理,使所有颜色层都变成黑白。

如果您的 CNN 执行得同样好(在精度测量的不确定性范围内),那么就没有问题。

也许颜色是问题

也许颜色是一个问题。尝试使用黑白而不是 3 种颜色来尝试整个 CNN。如果使用黑白训练也能够执行同样的任务,那么黑白模型可以作为边界检测器,而您的彩色 CNN 可以用于其他用途,例如团队检测。

风格转移

使用 style transfer NN将训练集图像从绿草转换为棕色草的“风格”。

专门创建一个草检测器

训练 CNN 专门检测每个 NxN (11x11) block 中的草。使用它来创建与输入图像形状相同的位掩码,该位掩码是“该像素是否是草的一部分”的掩码。将其输出与输入图像逐点相乘以创建无草图像。目视确认它确实是草。将蒙版的反转应用到新背景并添加无草图像和新背景。

关于opencv - 最佳背景扣除技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44659728/

相关文章:

python - 绘制直方图以找出图像上梯度的最大强度

machine-learning - Q学习转移矩阵

c++ - openCV中的掩蔽

matlab - 如何将HOG特征添加到矩阵中(matlab)

java - Java中的Opencv SVM无法正确训练

python-2.7 - OpenCV:无法加载 OpenCL 运行时

opencv - openCV 中的 SVM 类型

python - 使用网格搜索的交叉验证返回比默认更差的结果

machine-learning - 神经网络的准确性

matlab - CNN 特征的后期融合