我正在 MATLAB 中进行一个项目(后来用 C++ 或可能用 Python 和 OpenCV 实现),当实时视频开始时,用户可能会绘制一个感兴趣的区域。它将被绘制为多边形。但是,此 ROI 可能会超出框架范围,然后重新出现。在这一点上,它应该被识别和检测。主要问题是它不是具有特定物理特性的显着物体,因为它可以(在某种程度上)改变形状、弯曲、拉伸(stretch)。而且,它应该是实时运行的,这使得实现培训变得困难。
我尝试使用颜色直方图来强调 ROI 的颜色特征,然后对图像进行阈值处理,但它仅在特定条件下有效。我确实有工程背景,但在此之前没有使用过任何机器学习。我读到 SVM 的 HOG 特征可能有帮助,甚至霍夫变换。我使用 ACF 获得了一些不错的结果,但它仍然需要分类器的训练阶段。
这样做的目的是在跟踪器完全丢失后重新初始化该区域内的跟踪器。我知道经过训练的分类器,可以通过多种算法识别它,但我遇到的问题是实时进行并且没有任何先前的训练。
由于该视频是外科手术视频,因此我上传了 4 个用户投资返回率边界框的示例帧。
(下面是手术的详细照片,将鼠标悬停在该区域上方或单击以显示它们。)
任何建议都会有很大帮助。
最佳答案
因为 ROI 是实时决定的,所以我认为带有预训练的功能在这里不起作用。最近,我发现了一个有助于find a sticker in the image的话题。 .建议的解决方案是 template matching .
这些步骤是捕获 ROI 并使用模板匹配在每一帧中搜索“最相似”区域。
因为在您的情况下,对象可能会随着时间的推移而变化(不会太多),结果可能并不完美,但这是一个好方法。
上述主题的图片
关于python - 哪种算法对于实时检测视频帧中的可变形 ROI(非对象)最有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56183416/