[我正在使用BackgroundSubtractorMOG2来检测帧中的运动,并提取感兴趣的区域,在这些区域中我使用了二元过滤器和equalizeHist,后词应用了拉普拉斯和threshhollding。
在应用如下所示的不同图像滤镜后,通过脱阈,我得到了合理的拉普拉斯边缘和嘈杂的蒙版:
但是,我不确定现在如何提取对象的正确轮廓(左上)以对其进行分割。
这比最初看起来要复杂。我的解决方案是为此任务训练网络。如果要分割鼠标,则必须收集来自不同上下文的数百张图片。也许100已经给您满意的结果。我将使用转移学习(这意味着使用已经接受过其他数据训练的网络)。使用以下存储库并没有那么复杂:https://github.com/qubvel/segmentation_models对于数据扩充,我将使用imgaug:https://imgaug.readthedocs.io/en/latest/
使用不深入的解决方案,您可以使用纹理分析。为此,我将使用Gabor分解,您可能会看到背景和鼠标的纹理之间的差异。然而,神经似乎更简单,更时髦,需要学习的技术。
如果这就是对比度低的原因,您还应该考虑购买新的成像设备和/或红外投光器。仅与Raspberry PI的红外摄像机相比,您将获得令人难以置信的图像,并且您的检测无需任何更改即可工作。
您可以尝试使用opencv训练Haar级联以检测鼠标。
[通常用于视频中的人脸识别/对象识别-似乎非常有效。
您可以在此处查看有关如何操作的常见问题解答:
How to create Haar Cascade (.xml file) to use in OpenCV?
如另一个答案中所述,转移学习不再繁重。您只需要训练数据-Haar也会需要。否则,您将不得不对其进行仿真。
您甚至可以考虑对鼠标进行建模🤣