【问题标题】:What's the best marker in a video for recognition?视频中最好的识别标记是什么?
【发布时间】:2014-04-21 20:52:08
【问题描述】:

我目前正在视频轨道(来自相机)和音频轨道(来自微型)之间构建自动同步处理。 为此,我计划构建一个小型 Web 应用程序,该应用程序将在我的智能手机(例如:Iphone)上显示一个拍板,并在我被拍摄时发出一个特定的 bip。 之后,我将执行一个小型 OpenCV 应用程序(实际上是 JavaCV),它将检测我的智能手机显示 clapper 的图像。我只需要找到特定的 bip 来同步两个轨道。

您可以在此处(http://vimeo.com/47002882) 和此处(http://vimeo.com/46213073) 看到我们已经构建并手动同步的视频。基于此上下文(之前视频的距离、照明等)对您来说,几乎可以一直检测到的最好的东西(形状、颜色或其他)是什么?我应该使用什么样的转换?

您一定可以想象,我将在距离我 5 7 米的地方展示我智能手机上的拍板和相机。

我构建了第一个基本的 clapper (http://jsbin.com/zuqumiso/45/) 并像这样使用 OpenCV 进行视频处理:

Frame -> RGB 到 GRAY 的转换 -> GaussianBlur -> AdaptativeThreshold -> Hought Transformation(标准)以检测线条。

但只有当我的智能手机距离相机 30 厘米时才有效...

【问题讨论】:

  • 当您在 5-7m 外拍摄智能手机屏幕时,视频中的屏幕大约有多宽(以像素为单位)?
  • 我们可以拍摄高达 14.2 兆像素(4608 x 3072 像素)的视频
  • 这是视频帧的尺寸,但是视频中观察到的手机屏幕尺寸是多少?
  • 哦,我不知道,我明天去测量,我和你联系。
  • 嗨@AldurDisciple,我刚拿回相机并进行测试。实际上,相机会产生 1920x1080 的视频(4608x3072 仅用于照片),我测量我的屏幕智能手机大约为 16x26 像素宽。

标签: opencv video image-recognition


【解决方案1】:

鉴于视频中您的手机屏幕尺寸非常小,我认为您无法自动检测到手机上显示的任何标准标记(例如二维码、圆圈或棋盘)。

如果我是你,我会尝试更简单的方法。我会首先在手机上显示全屏闪烁的黑白图案。如果手机保持相当稳定,这应该能够将闪烁区域检测为在几个连续帧上强度变化最高的区域。然后,对于音频/视频同步,我会同时发出 bip 并将全屏模式转换为特定颜色(例如亮红色或亮绿色)。同样,通过检测之前确定的闪烁区域的颜色饱和度不连续性,应该很容易检测到从黑/白到完全饱和颜色的这种过渡。

这可能不是您最初提出这个问题时所追求的,但鉴于您对手机/摄像头距离的严格限制,我认为没有其他方法。

【讨论】:

  • 我认为考虑到图片中手机的尺寸,这是正确的答案。
【解决方案2】:

大多数图像算法通过查看过渡(又名;边缘)来工作。由于您的相机是 RGB 相机,理想的可检测边缘应该是对所有颜色都可见的边缘。

最简单的选择是使用简单的二维码。它的边缘很容易检测,您甚至可以在多个代码之间进行区分。

形状和颜色往往比二维码更易变。

【讨论】:

  • 谢谢 Nallath,二维码是个不错的主意,但它似乎更用于封闭式识别,例如智能手机的摄像头检测几厘米处的图案。这个解决方案真的适用于七米的距离吗?你推荐我这样做的后处理和算法是什么?我认为使用灰度转换,然后使用阈值并完成 SURF 算法。
  • 这取决于图像的分辨率和二维码的大小。使二维码尽可能简单也会提高检测率。您甚至可以尝试将 openCV 的棋盘校准方法与非常小的(例如 3x3 方格)棋盘一起使用。如果相机已校准,您可以使用 solvePNP 来获取电路板相对于相机的方向和旋转。
猜你喜欢
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 2019-03-13
  • 1970-01-01
  • 2014-07-16
相关资源
最近更新 更多