如何从视频游戏流中可靠地提取UI信息?

时间:2015-10-09 23:01:55

标签: python opencv

我试图从超级粉碎兄弟的视频流中为Wii U提取有意义的信息,这是一款非常稀疏的用户界面的战斗游戏。

Example screenshot

由此我想告诉玩家的数量,他们的角色名称以及他们当前的伤害(大百分比数字)。到目前为止我尝试过的所有内容都失败了,因为UI的元素很少是静态的:

  • Some videos are within overlays and may be scaled and moved
  • 大多数比赛包含2名球员,但最多可包含8名球员
  • 人物肖像通常逐渐淡出,
  • 角色名称可能非常短(' Ike')或很长(' Mr。Game& Watch'),因此它们与三角形盒子的边缘重叠#39;重新进入。
  • 角色名称后面的方框颜色不同,通常但不总是红色和蓝色(2人匹配)
  • UI背后的游戏非常嘈杂,有时甚至可能完全是黑色或白色。
  • 随着值的增加,大量文本会从白色变为红色渐变。
  • 当玩家被KOed时,大量文本完全没有。

我尝试过以下事项:

  • 模板匹配。即使采用(慢速)多尺度匹配,百分号也会经常改变位置和颜色,需要较低的匹配阈值,从而产生嘈杂的结果。
  • 尝试通过阈值处理和查找水平连接的轮廓来查找字符名称。当背景非常明亮时,这会失败。它还经常匹配流叠加上不需要的元素。
  • 查找边缘和轮廓以找到玩家名称后面的三角形背景。再次,它失败了,因为背景非常嘈杂(通常有一个红色背景的红色播放器没有可辨别的边缘)
  • 功能匹配。有数百种可能的肖像,字符名称文本(相对静态)非常小,因此可用于匹配的功能很少。

我没有接受过计算机视觉任务的正式培训,所以我不确定如何进步。看起来这应该是一个相对简单的任务,因为元素是2d并且从不旋转或倾斜,但我知道这是一个危险的假设。

如果有人能指出我正确的方向,我真的很感激。没有语言偏好,但我一直在使用python。

0 个答案:

没有答案