如何在《使命召唤》中使用OpenCV搜索玩家模型

我正在尝试创建一个程序,能够在《使命召唤》游戏视频中识别出人形。我从这段视频中整理了大约2200张独立的图片,这些图片中有的包含人形,有的则没有。我随后尝试训练一个神经网络来区分这两组图片。

然后,我将每个视频帧分成几百个网格矩形,并用我的ANN检查每个矩形。这些矩形是重叠的,试图捕捉位于网格矩形之间的身影,但这种方法似乎效果不佳。因此,我有几个问题:

  1. 神经网络是合适的方法吗?我读到它们与其他机器学习算法相比速度非常快,最终我计划将其用于实时视频,速度非常重要。

  2. 在图像帧中搜索身影以在ANN上测试的最佳方法是什么?我觉得我的方法不是很好。它的速度和准确性肯定不高。处理一张960 x 540的图像需要大约一秒钟,并且准确性很差。

  3. 我遇到的另一个问题是构建作为ANN输入的特征向量的最佳方法。目前,我只是将所有输入图像缩小到25 x 50像素,并创建一个包含每个像素强度的特征向量。这是一个非常大的向量(1250个浮点数)。构建特征向量有哪些更好的方法?

有关我在这里所做的更详细的解释,请参见:CodAI: 计算机视觉

编辑:我希望能得到更多细节。计算特征的最佳方法是什么?我需要能够识别出许多不同姿势的人形。我是否需要为识别直立、蹲伏和俯卧的不同姿势创建单独的分类器?


回答:

  • 使用原始强度作为特征向量是行不通的1。光照等因素会引起太多的变化。
  • 作为第一步,一个好的特征可以考虑HOG。OpenCV 2.2有一个GPU(CUDA)版本的检测器,速度很快。
  • 神经网络可能不是最佳选择。通常你会使用SVM或提升作为分类器2。并不是说神经网络不够强大,而是很难调整训练/参数。经常会陷入局部最小值等问题。
  • 对于俯卧、蹲伏和站立的身影,你肯定需要不同的分类器,并在混合模型中使用它们。
  • 你问的是“最佳方法” – 人类检测远非一个已解决的问题,所以没有人知道最佳方法。上面提到的方法已知效果相当好。
  • 如果你想要一个好的结果,你绝对要利用你的目标是特定的 – 因此,利用你在《使命召唤》中试图检测人类这一事实。你需要检查的位置范围不是整个图像,身影将靠近地面。这允许你加速搜索并减少误检。如果可以,减少渲染的细节 – 细节越少,变化越少,这意味着学习问题更容易解决。

脚注:
1 对于挑剔的人:没有一个高度复杂的分类器。
2 你也可以使用一系列提升的分类器来提高速度,而不会在检测率上损失太多。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注