我正在尝试使用OpenCV在Python中编写脚本,该脚本将查找,跟踪和输出在视频中执行练习的人员上多个标记的位置。然而,在视频捕捉时标记没有被正确点亮,因此它们看起来与背景颜色相同 - 一种不引人注目的非反射灰色。将它们拉出来时,这是一个问题。即使将图像转换为HSV,似乎也不可能过滤掉周围环境(主题的衣服,墙壁,天花板等)而标记也不会消失。并且就找到轮廓而言,在任何特定的框架中发生了如此多的事情,发现轮廓的数量非常高并且标记本身不一定是检测到的最小,所以我不能假设'分钟(轮廓)'尽可能多的教程尝试。
我尝试使用几种不同的方法来隔离标记,主要涉及操纵蒙版/ HSV图像,还有一些其他方法,例如SimpleBlobDetector和查找关键点。我能想到的最好的方法是使用关键点检测手动选择感兴趣的点,但即使那些人也不会总是拿起标记。
我无法分享全尺寸的样本图片,因为它是我所使用的视频中的一个人,但有关情况的一些注意事项:
我无法重新录制视频以正确执行标记。这些数据最初不是用于摄像机对准,因此没有人太关注标记照明。数据很糟糕,但我必须与之合作。
皮肤很容易过滤掉,但衣服,环境和皮肤的轮廓总是存在。
在上图中,用户正握着健身吧。在图像中心下方有一个标记,另一个在手臂上方。朝右边缘的斑点是不是标记。 H(0,26),S(0,57),V(0,255)
标记与墙壁和天花板的颜色基本相同。
TL; DR :我需要一种方法,在繁忙的环境中使用尽可能少的用户输入来获取非反射标记。不能简单地重新获取数据,并且获取动作捕捉数据的典型方法在这里无法解决。