![]() |
1
10
在我看来,尝试实施 SIFT 因为便携设备是疯狂的。SIFT是一种图像特征提取算法,它包含了复杂的数学运算,当然需要大量的计算能力。SIFT也获得了专利。 不过,如果你真的想继续这项任务,你首先应该做一些研究。您需要检查以下内容:
为什么选择Android NDK?因为在Java应用程序正在使用的C库中实现该算法可能会获得更显著的性能增益。 在开始做任何事情之前,一定要做这项研究,因为很遗憾的是,在这一半的时间里,图像特征提取算法对于Android手机来说实在是太多了。实现这样一种算法本身是一项非常认真的工作,它可以提供良好的结果并在可接受的时间内运行,更不用说使用它来创建AR应用程序了。 至于如何将其用于ar,我想您在图像上运行算法得到的描述符必须与保存在中央数据库中的数据相匹配。然后结果可以显示给用户。从海浪中收集到的图像的特征应该用来描述它,这样就可以用这些特征来识别它。我在这方面经验不足,但网络上总是有资源的。你可能想从一般的东西开始,比如 Object Recognition . 祝好运 |
![]() |
2
2
如果我在哪里,我会研究SIFT功能是如何工作的(以及为什么工作的)(如前所述,它的维基百科页面提供了一个很好的解释,有关更多详细信息,请查看科学论文(链接到维基百科),然后构建适合您的口味的自己的变体;即在性能和CPU负载之间达到最佳平衡,这是您需要的应用。 例如,我认为高斯平滑可能会被更快的平滑方法所取代。 此外,当您构建自己的变体时,您与专利没有任何关系(已经有很多变体,如gloh)。 |
![]() |
3
2
我试过使用330MHz的Symbian Mobile进行冲浪,尽管有了所有的优化和查找表,但速度还是太慢了。筛的速度应该更慢。现在每个人都在使用快速手机。无论如何,特征提取并不是最大的问题。通信和清除假阳性在这方面更为困难。 快速链路 http://svr-www.eng.cam.ac.uk/~er258/work/fast.html |
![]() |
4
1
我建议您先看看OpenCv库中已经实现的特性,其中包括surf、mser和其他: http://opencv.willowgarage.com/documentation/cpp/feature_detection.html 这对于您的应用程序来说可能已经足够了,而且比筛选要快。如上所述,SIFT是专利。 另外,从在移动平台中进行性能测试开始,只需在每一帧提取特性,这样您就可以知道哪些特性可以实时运行。 |
![]() |
5
1
您是否尝试过在Android端口中使用OpenCV的快速实现?我已经测试过了,它运行得非常快。 还可以围绕检测到的快速关键点计算简化的柱状图描述符。我听说过3x3而不是标准的4x4筛。如果你用霓虹灯指令对它进行大量优化,这将是一个很好的实时工作机会。否则,我会推荐一些快速而简单的东西,比如平方和或绝对差,用于非常快的关键点周围的补丁。 SIFT不是万能药。对于实时视频应用程序来说,通常是杀伤力过大。 |
![]() |
6
0
一如既往,维基百科是一个很好的起点: http://en.wikipedia.org/wiki/Scale-invariant_feature_transform 但是请注意,SIFT是专利产品。 |
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 6 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 10 月前 |
![]() |
Paul C · 在维基百科上,将二叉搜索树转换为排序链表的算法是否存在错误? 10 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 10 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 11 月前 |