c – 如何使用OpenCV在COD中搜索玩家模型

我正在尝试创建一个程序,可以在使命召唤的游戏视频中找到人物.我已经从这个视频中编制了一个约2200个单独图像的列表,其中包含人物或不包含人物.然后我尝试训练神经网络来分辨两组图像之间的差异.

然后,我将每个视频帧分成几百个网格矩形,然后用我的ANN检查每个视频帧.矩形重叠以尝试捕获网格之间的数字,但这似乎不能很好地工作.所以我有几个问题:

>神经网络是否可行?我已经读过它们与其他机器学习算法相比非常快,最终我计划将它与实时视频一起使用,速度非常重要.
>搜索图像框架中的数字以在ANN上进行测试的最佳方法是什么?我觉得我这样做的方式并不是很好.它绝对不是非常快或准确.每帧图像960 x 540大约需要一秒钟,并且精度很差.
>我遇到的另一个问题是构建要用作ANN输入的特征向量的最佳方法.目前,我只是将所有输入图像缩小到25 x 50像素,并创建一个包含每个像素强度的特征向量.这是一个非常大的矢量(1250浮点数).有哪些更好的方法来构建特征向量?

有关我在此处所做的更详细说明:CodAI: Computer Vision

编辑:我想要更多细节.计算要素的最佳方法是什么.我需要能够识别出许多不同位置的人物形象.我是否需要创建单独的分类器来识别直立,蹲伏和俯卧之间的区别?

解决方法

>使用原始强度作为特征向量不起作用1.照明等引起的变化太大
>作为第一步看待的一个很好的功能是HOG. opencv 2.2有一个快速的GPU(cuda)版本的探测器.
>神经网络可能不是最好的方法.通常你会使用SVM或boost作为分类器2.并不是神经网络不够强大,而是很难让训练/参数正确.你经常陷入局部最小等.
>对于俯卧/蹲伏/站立的数字,您肯定需要不同的分类器并在混合模型中使用它们.
>你问了一个“最好的方法” – 人类检测到目前为止还没有解决问题,所以没有人知道最好的方法.众所周知,上面提到的事情非常好.
>如果你想要一个好的结果,你肯定想利用你的目标是特定的 – 所以,利用你试图检测人类的职责.您需要检查的位置范围不是整个图像,数字将靠近地面.这使您可以加快搜索速度并减少错误检测.如果可以的话,减少渲染的细节 – 更少的细节意味着更少的变化,这意味着更容易学习的问题.

脚注:1对于nitpickers:没有高度复杂的分类器.2您还可以使用级联的增强分类器来提高速度,而不会过多地提高检测率.

相关文章

/** C+⬑ * 默认成员函数 原来C++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录<future>future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...