我正在尝试在unity的视频文件播放中进行图像识别/跟踪。是否可以使用Vuforia API对视频文件(不是增强现实)进行图像识别?
如果没有,还有没有人有什么建议来实现这个目标呢?
谢谢!
发布于 2016-01-13 15:28:36
如果你想识别视频流中的特定帧,最简单但有效的解决方案是将样本帧的直方图与视频流中的帧进行匹配,我不知道是否可以使用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乘3的矩阵。
6)对每个帧进行上述操作,并找出样本图像的覆盖矩阵与查询帧之间的距离。设置阈值以查找相似度。
上面的进一步扩展可以是找到覆盖矩阵的特征值,然后将它们用作相似性计算的特征。
你也可以尝试提取颜色直方图而不是灰度直方图。
对于更复杂的情况,您可以使用关键点检测和匹配方法。
谢谢
https://stackoverflow.com/questions/34732703
复制相似问题