微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要从图像中解析出不同类型的文本数据

如何解决需要从图像中解析出不同类型的文本数据

我正在做一个爱好项目,在那里我将分析一个问题

“要在Team Fortress 2中赢得比赛需要什么?”

Team Fortress 2(TF2)是Valve一直以来我最喜欢的在线FPS视频游戏,该游戏发布于13年前,但每周仍拥有10万名玩家。我花了无数个小时来欣赏来自不同TF2社区的与TF2相关的内容,并认为我会通过做自己擅长的工作,分析数据来回报它。

我的计划是首先收集有关游戏统计数据的数据集。分析的单位将是一场比赛(一局比赛中通常由5到6场比赛组成)的级别,对于每场比赛,我将手动记录一场比赛是赢还是输,以及一场比赛的速度完成(当然是归一化的:假设地图X的最长允许时间为30分钟,并且游戏在15分钟内完成,因此这场比赛为15/30)。同样,对于每场比赛,我将在游戏中进行不同的观察并手动将它们记录在电子表格中,因为没有其他方法可以收集此类数据。

根据我对TF2中玩家数量的初步分析,我需要为每张地图进行大约100场比赛(我计划制作5张最常玩的地图),以达到统计上的意义,从而能够概括学习内容。这样大约有500场比赛,很多,是的!但是由于没有其他方法,我会这样做。

但是,我意识到我可以从屏幕快照(以下示例)中获得每场比赛的一些信息(属性)。我在屏幕快照中需要的内容周围放置了带有红色边框的方框。

以下是更多详细信息:

  • 我需要我身旁的名字,在这种情况下为“ BLU”
  • 我需要这支球队中的球员人数,即“ 8”
  • 您还可以看到第一个垂直的红色长框,代表每个玩家的得分,我需要对这个数字求和。假设有8位玩家,每位玩家各得10分,所以它是8 * 10 = 80
  • 得分旁边的另一个长长的垂直红色框显示了每个玩家的图标,每个图标代表玩家可以在游戏中选择的9个不同类别中的1个(即重,军医,间谍等)。显然只有9个图标,并且有图标到类名的可用映射。我想摄取此数据并为匹配创建9个不同的属性,每个属性代表类的比例。例如,在与“ BLU”团队中总共8个人的比赛中,其中2人是医务人员,因此类似“ proportion_of_medics”:2/8
  • 服务器名称和地图名称也位于底部

如您所见,有两种描述每个匹配项的属性来源:我的体力劳动+每个匹配项的屏幕截图(最后,因此得分不为0)。因为这些是固定分辨率(在本例中为1980 * 1080)的预定义UI上的屏幕截图,所以包含我所需信息的像素位置是固定的。

一个大的警告是,如您在屏幕快照中所见,其中包含两个地方的信息,一个是“ BLU”团队的信息,另一个是“ RED”团队的信息。一个球员只能参加比赛的2个球队中的1个,并且只有在其他球员属于同一个球队的情况下,才能看到其他球员的职业信息(换句话说,您无法看到对方球队选择的职业),并且您所在的团队会用自己的ID突出显示,并用灰色框突出显示(在屏幕截图中,我的ID为“ Team Fortress 2”,您可以看到我的ID周围的颜色与其他颜色不同),因此这一切意味着,如果我在“ BLU”团队中,我需要的信息在左侧,而在“ RED”团队中,我需要的信息将在右侧。

从我最初的假设来看,使用某个库编写Python脚本来完成此任务似乎并不复杂,但是由于上面提到的一些复杂细节,我不确定是否可以做得很快。如果太多,我将手动查看每个屏幕截图。

请告知。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。