相关疑难解决方法(0)

Arm Neon Intrinsics vs手装配

https://web.archive.org/web/20170227190422/http://hilbert-space.de/?p=22

在这个过时的网站上,它表明手写的asm会比内在的更好.我想知道这是不是现在的真相,即使是现在2012年.

那么使用gnu交叉编译器为内在函数改进了编译优化?

arm intrinsics neon

12
推荐指数
2
解决办法
8553
查看次数

OpenCV提高了已知对象检测性能

我正在开展一个项目,我可以在移动环境中"实时"检测场景中的已知图片(这意味着我正在使用智能手机相机捕捉帧并将帧大小调整为150x225).图片本身可能相当复杂.现在,我正在平均1.2s处理每个帧(使用OpenCV).我正在寻找改善处理时间和全球准确性的方法.我目前的实施工作如下:

  1. 捕捉帧
  2. 将其转换为灰度
  3. 检测关键点并使用ORB提取描述符
  4. 匹配描述符(2NN)(对象 - >场景)并使用比率测试对其进行过滤
  5. 匹配描述符(2NN)(场景 - >对象)并使用比率测试对其进行过滤
  6. 用4.和5非对称匹配去除.
  7. 计算匹配置信度(匹配关键点与总关键点的百分比)

我的方法可能不是正确的方法,但即使有很大的改进空间,结果仍然可以.我已经注意到SURF提取太慢而且我无法使用单应性(它可能与ORB有关).欢迎所有建议!

opencv object-detection computer-vision ios

11
推荐指数
1
解决办法
4894
查看次数

IOS/iPad/iPhone的最高速度

我使用OpenCVfor 计算密集型应用程序iOS.当然很慢.但它比我的PC原型慢了200倍.所以我正在优化它.从最初的15秒开始,我的速度达到了0.4秒.我想知道我是否找到了所有的东西以及其他人想要分享的内容.我做了什么:

  1. doubleOpenCV中的" "数据类型替换为" float".Double是64bit和32bit CPU无法轻松处理它们,所以float给了我一些速度.OpenCV经常使用double.

  2. -mpfu=neon在编译器选项中添加了" ".副作用是模拟器编译器不再工作的新问题,任何东西都只能在本机硬件上进行测试.

  3. 用90个值查找表替换sin()cos()实现.加速是巨大的!这与PC有些相反,而这种优化并没有给出任何加速.有代码工作在度,这个值转换为弧度为sin()cos().此代码也已删除.但查找表完成了这项工作.

  4. 启用"thumb optimizations".一些博客文章建议完全相反,但这是因为拇指使事情通常较慢armv6.armv7没有任何问题,使事情变得更快更小.

  5. 为了确保拇指优化并充分-mfpu=neon发挥作用并且不引入崩溃,我完全删除了armv6目标.我的所有代码都编译到了armv7,这也在app store中列为需求.这意味着最低iPhone3GS.我认为放弃旧款可以.无论如何,较旧的CPU具有较慢的CPU,如果安装在旧设备上,CPU密集型应用程序会提供糟糕的用户体验

  6. 我当然用 -O3 flag

  7. "dead code"从OpenCV中删除了.通常在优化OpenCV时,我会看到我的项目显然不需要的代码.例如,通常有一个额外"if()"的检查像素大小为8位或32位,我知道我只需要8位.这将删除一些代码,为优化器提供更好的机会来删除更多内容或替换为常量.代码也更适合缓存.

还有其他任何技巧和想法吗?对于我来说,启用拇指和用查找替换三角函数是提升制造商,让我感到惊讶.也许你知道一些让应用程序飞起来的事情吗?

iphone xcode opencv ios

10
推荐指数
1
解决办法
2746
查看次数

使用方法:Ipl?还是垫?

我真的不知道下一个项目会用什么:IplImage?还是Cv :: Mat?

知道我想要:

  • 更好的表现
  • 关于使用不同工具的相当快的响应(垫的乘法,不同的计算/图像处理工具......)
  • 少用回忆

如果是这样,我应该将以前的所有IplImages更改为cv :: Mat吗?

c c++ opencv image-processing visual-studio-2010

1
推荐指数
1
解决办法
377
查看次数