4

我有一个想法,我需要能够从渲染的 3D 数字电影中识别某些对象或模型。

经过有限的研究,我现在知道我需要的是计算机视觉领域的特征检测。

所以,我想做的是:

  1. 创建电影中某个角色的一些屏幕截图(例如,前/后/左/右)
  2. 播放电影
  3. 在播放电影时,不断创建电影的新截图
  4. 对于每个屏幕截图,执行特征检测(SIFT?,使用 openCV?)以查看是否存在我们的任何角色外观(如果角色距离较远并因此显得更小,或者角色是否在撒谎,则它们仍然必须被识别下)。
  5. 发现角色时发出通知

这可以通过 OpenCV 实现,对吧?

“问题”是我必须学习 c++ 或 python 来开发这个应用程序。如果我的电影和屏幕截图适用于我想做的事情,这不是问题。

所以,我想先测试一下我的电影截图。是否有一个 GUI 版本的 OpenCV,我可以输入我的测试数据,然后手动执行它的特征检测算法作为原型设计的一种手段?

任何反馈表示赞赏。谢谢。

4

5 回答 5

4

OpenCV 没有 GUI 可以做你想做的事。您将能够使用OpenCV 解决问题的某些方面,但没有现成的解决方案等着您。

虽然绝对有可能解决您的问题,但这个问题的学习曲线相当长。如果您是专业人士,那么除了自己学习之外,另一种方法是聘请专家为您做这件事。这会花钱,但可以节省您的时间。

编辑

就模板匹配而言,您通常不会使用它来解决此类问题,因为您要寻找的是改变外观和形状。实际上没有任何“要设置的动态参数”。您可以尝试的最接近的方法是拥有一个庞大的模板集合,该集合将尝试涵盖您的目标可能采用的预期形式。但这几乎不是一个优雅的解决方案。另外它不会扩展。

接下来,关于人脸识别的观点。这有点相关,但大多数人脸识别应用程序都处理受控环境:照明、距离、姿势、角度等。在受控环境之外,人脸检测效率显着下降。如果您正在检测电影中的对象,那么您的环境并没有真正受到控制。

您可能想首先尝试一个更简单的问题,即准确检测角色所在的位置,而无需确定他们是(本质上是视频监控)。虽然听起来很简单,但您会发现它对于任意场景实际上并不简单。解决问题的结果可能有助于识别字符。

于 2011-01-31T02:28:29.543 回答
2

好吧,使用 OpenCV,您可以拍摄一帧视频文件并对其进行任何计算。

您可以使用几种不同的方法来检测该图像上的角色,但要让它变得灵活并不容易,因此您甚至可以在该人躺在地板上时找到该人,例如,如果您只输入该角色站立的参考图像.

基本上,您可以尝试从您的参考图片集中提取所有重要特征,并拥有一个(在您的情况下受监督的)学习算法,该算法可以获得该字符的良好特征向量以进行分类。

然后,您需要编写播放视频并获取视频帧的代码,假设每 500 毫秒(或您希望的其他时间),获取您想要的对象的分段,并将其与您获得的参考值进行比较从你的学习算法。如果匹配,您的代码可以大喊“Yehaaawww!” 或者做其他事情...

但这一切都取决于您希望它有多灵活。您还可以尝试模板匹配或互相关,它基本上将参考图像移动到帧上并检查两个部分的相等程度。但不幸的是,这对旋转、变形或其他噪音非常敏感……所以如果那个人躺下,你就不会得到那个人。而且我怀疑您是否可以实时完成所有这些计算...

基本上:是的,OpenCV 非常适合用于您的图像处理/计算机视觉任务。但它提供了很多方法和方法,您需要找到一种适用于您的图像的方法......虽然这不是一项简单的任务......

希望有帮助...

于 2011-01-30T23:10:20.180 回答
2

Mathieu LabbéFind-Object。开始了解描述符对我很有帮助,因为您可以在视频运行时更改它们以查看会发生什么。

这可能为时已晚,但可能会帮助其他人寻找解决方案。

于 2012-06-02T13:55:20.237 回答
1

您是否尝试过查看牛津视觉几何小组的一些工作?

他们的Video Google系统在很大程度上描述了你想要的,实例检测。

他们在电视节目中命名人物的工作也非常相关。包括一个可以从 Matlab 运行的人脸检测和面部特征管道。你熟悉matlab吗?

于 2011-03-09T13:31:18.880 回答
1

你试过像Cassandra这样的计算机视觉框架吗?只需点击几下鼠标,您就可以准确地做到这一点。

于 2015-01-05T09:06:22.183 回答