如何从视频游戏流中可靠地提取用户界面信息?

2024-06-01 13:00:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Example screenshot

从这里我想告诉玩家的数量,他们的角色名称,和他们目前的伤害(大百分比的数字)。到目前为止,我尝试的一切都失败了,因为UI中只有很少的元素是静态的:

  • Some videos are within overlays and may be scaled and moved
  • 大多数比赛包含2名球员,但最多可能包含8名球员
  • 人物肖像通常会逐渐淡出,变得近乎透明
  • 字符名可能很短(“Ike”)或很长(“Mr.Game&Watch”),因此它们与所在三角形框的边缘重叠。你知道吗
  • 字符名称后面的框有不同的颜色,通常是红色和蓝色(在双人比赛中)
  • UI后面的游戏非常嘈杂,有时甚至可能完全是黑白的。你知道吗
  • 随着值的增加,大量文本从白色渐变为红色。你知道吗
  • 当一个玩家被KOed时,大量的文本是完全不存在的。你知道吗

我试过以下方法:

  • 模板匹配。即使使用(缓慢的)多尺度匹配,百分比符号的位置和颜色也经常发生变化,因此需要一个较低的匹配阈值,从而产生噪声结果。你知道吗
  • 尝试通过阈值化和查找水平连接的轮廓来查找角色名称。当背景非常明亮时,这就失败了。它还经常匹配流覆盖上不需要的元素。你知道吗
  • 找到边缘和轮廓,找到球员名字后面的三角形背景。同样,它失败了,因为背景非常嘈杂(通常有一个红色播放器,背景是红色的,没有明显的边缘)
  • 特征匹配。有数百种可能的肖像,而字符名文本(相对静态)非常小,因此几乎没有可供匹配的特征。你知道吗

我没有接受过任何计算机视觉方面的正式培训,所以我不知道该如何进步。这似乎应该是一个相对简单的任务,因为元素是二维的,从不旋转或倾斜,但我知道这是一个危险的假设。你知道吗

如果有人能给我指出正确的方向,我会非常感激的。没有语言偏好,但我一直在使用python。你知道吗


Tags: and文本名称元素角色ui玩家静态