Kev*_*aft 5 gpu image-processing ios
我一直在研究iPhone上的GrabCut算法(在OpenCV中实现)。表演很恐怖。即使在模拟器上运行大约800x800的图像也要花费大约10-15秒的时间。在我的手机上,它运行了几分钟,最终耗尽了内存,并崩溃了(iPhone 4)。我敢肯定,如果我用C编写自己的算法版本,可能会做一些优化,但是我感到没有任何优化可以使它接近可用状态。我已经在一些学术论文中挖掘了一些性能指标,甚至他们在多核1.8 GHz CPU上看到了30秒的运行时间。
因此,我唯一的希望就是GPU,而我对此一无所知。到目前为止,我已经对OpenGL ES进行了一些基础研究,但这是一个非常深入的主题,我不想浪费数小时或数天来学习基本概念,只是想知道我是否正在学习正确的道路。
所以我的问题是双重的:
1)可以在GPU上运行类似GrabCut的东西吗?如果是这样,除了“学习OpenGL ES”之外,我还希望有一个起点。理想情况下,我想知道我需要特别注意哪些概念。请记住,我没有使用OpenGL的经验,也没有图像处理的经验。
2)即使这种算法可以在GPU上运行,我应该期望什么样的性能提升?考虑到当前运行时间大约是CPU的最佳时间30秒,GPU似乎不太可能在运行时间中投入足够多的凹痕来使算法有用。
编辑:为使算法“有用”,我认为它必须在10秒或更短的时间内运行。
提前致谢。
小智 2
看来抓取并没有从图像分辨率中受益。这意味着结果的质量并不直接取决于输入图像的质量。另一方面,性能受益于尺寸,这意味着图像越小,执行剪切的算法越快。因此,尝试将图像缩小到300x300,应用grabcut,取出蒙版,将蒙版放大到原始尺寸,然后将蒙版应用到原始图像以获得结果。让我知道它是否有效。
卢卡
归档时间: |
|
查看次数: |
2130 次 |
最近记录: |