Opencv 拉普拉斯边缘图像中正确轮廓的提取

Opencv 拉普拉斯边缘图像中正确轮廓的提取,opencv,computer-vision,object-detection,image-segmentation,vision,Opencv,Computer Vision,Object Detection,Image Segmentation,Vision,用这样的画面凝视: 我使用BackgroundSubtractorMOG2来检测帧中的运动,并提取感兴趣的区域,在这里我使用双边滤波器和均衡器,历史和后记应用拉普拉斯和阈值 在使用不同的图像过滤器后,我通过阈值化获得合理的拉普拉斯边缘和噪声遮罩,如下所示: 但是,我不确定现在如何提取对象的正确轮廓(左上角)进行分割。这比最初看起来更复杂。我的解决方案是为这项任务训练一个网络。如果你想分割鼠标,你必须从不同的环境中收集几百张图片。也许100个已经可以给你一个满意的结果了。我会使用迁移学习(这意

用这样的画面凝视:

我使用BackgroundSubtractorMOG2来检测帧中的运动,并提取感兴趣的区域,在这里我使用双边滤波器和均衡器,历史和后记应用拉普拉斯和阈值

在使用不同的图像过滤器后,我通过阈值化获得合理的拉普拉斯边缘和噪声遮罩,如下所示:


但是,我不确定现在如何提取对象的正确轮廓(左上角)进行分割。

这比最初看起来更复杂。我的解决方案是为这项任务训练一个网络。如果你想分割鼠标,你必须从不同的环境中收集几百张图片。也许100个已经可以给你一个满意的结果了。我会使用迁移学习(这意味着使用一个已经用其他数据训练过的网络)。使用以下存储库并不复杂: 对于数据扩充,我将使用imgaug:

如果解决方案不使用deep,则可以使用纹理分析。我会使用Gabor分解,你可能会看到背景和鼠标纹理之间的差异。然而,神经系统似乎更简单,更适合学习


你也应该考虑购买一个新的成像设备和/或一个红外光投影仪,如果这就是为什么你有这么低对比度的原因。只有覆盆子皮的红外摄像机才能拍摄到令人难以置信的图像,而你的检测可能不会有任何变化。

你可以尝试使用opencv训练Haar级联来检测鼠标

这通常用于视频中的人脸识别/对象识别-看起来相当有效

你可以在这里看到一个关于如何做到这一点的有用问答:

正如另一个答案中提到的,迁移学习不再繁重。你只需要训练数据——哈尔也需要。否则,您将不得不模拟它


你甚至可以考虑制作鼠标模板。是的,这只是一个大学项目,所以我们不应该使用深度学习,而且数据是给定的。但是,感谢纹理分析的建议,您可以添加左上角的原始图像吗?请添加您的代码而不是背景减法。您可以尝试帧减法:thresh(abs(frame_n-1-frame_n))&thresh(abs(frame_n-frame_n+1))通常对移动对象提供良好的效果。如果你将它与跟踪相结合,你应该能够拥有鼠标,即使它保持静止。好主意,如果Gabor分解不起作用,我会看看它