【发布时间】:2016-01-13 15:28:36
【问题描述】:
我正在尝试在统一的视频文件播放中进行图像识别/跟踪。是否可以使用 Vuforia API 对视频文件(不是增强现实)进行图像识别?
如果没有,还有其他人对如何完成此操作有任何建议吗?
谢谢!
【问题讨论】:
标签: image-processing unity3d computer-vision vuforia
我正在尝试在统一的视频文件播放中进行图像识别/跟踪。是否可以使用 Vuforia API 对视频文件(不是增强现实)进行图像识别?
如果没有,还有其他人对如何完成此操作有任何建议吗?
谢谢!
【问题讨论】:
标签: image-processing unity3d computer-vision vuforia
如果您想识别视频流中的特定帧,最简单但有效的解决方案是匹配视频流中的示例帧和帧的直方图,我不知道是否可以使用 Vuforia API 来完成,但是如果您对某些图像处理算法的实现感兴趣,则过程非常简单:
1) 将您的示例图像转换为灰色(如果是彩色图像)。
2) 计算一定数量的 bin 的图像直方图。
3) 将此直方图存储在一个变量中。
4) 现在循环运行您的视频文件并从中提取帧,应用上述 3 个步骤并获得与示例图像大小相同的直方图。
5)使用简单的一些正方形找出两个直方图之间的距离,在那里设置一个相似度阈值,如果距离小于您的阈值框架与样本图像非常相似。
另一种方法可能是:
1) 从输入样本中找出颜色协方差矩阵(如果是彩色图像):
2) 找出它将您的颜色通道 (R,G,B) 转换为列向量并将它们逐列放入单个变量中,例如[R,G,B]。
3) 获取列均值并将其与相关列的每个值相减(将数据集中在均值附近)。
4) 现在转置您的 3 列矩阵并将其相乘:
Cov = [R,G,B]^T * [R,G,B];
5) 上面将为您提供一个 3 x 3 矩阵。
6) 对每一帧执行上述操作,并找到样本图像的 cov 矩阵与查询帧之间的距离。设置阈值以找到相似性。
上面的进一步扩展可能是找到cov矩阵的特征值,然后将它们用作相似度计算的特征。
您也可以尝试提取颜色直方图而不是灰度直方图。
对于更复杂的情况,您可以使用关键点检测和匹配方法。
谢谢
【讨论】: