performance - 快速轻量级图像比较度量算法

标签 performance algorithm image comparison metrics

<分区>

我正在为 Android 平台开发一个应用程序,其中包含 1000 多个已经“进化”的图像过滤器。

当用户选择一张照片时,我想首先展示最相关的过滤器。

这种“相关性”应该取决于以前的用例。

我已经开发了在保存过滤后的图像时进行注册的工具;这种过滤器和图像的组合可以看作是我系统的训练数据。

问题是必须在选择图像和出现的下一个屏幕之间进行比较。从 UI 的角度来看,我需要整个过程花费不到 4 秒;选择一个图像 -> 获取用于相似性的度量 -> 检查用例 -> 返回 6 个最接近的匹配项。我想在 4 秒内我可以使用动画和进度对话框来让用户满意。

由于平台限制,我在算法的计算开销方面相当有限。我已经实现了一种改编自各种在线教程的技术,用于在 G1 上运行 C 代码,因此可以使用这种语言

特定约束;

  • Qualcomm® MSM7201A™,528 MHz 处理器
  • 32 位 ARGB 中的 320 x 480 像素位图
  • ~ 本地方法获取指标的计算时间为 2 秒
  • ~ 2 秒将当前图像的指标与训练数据进行比较

这是一个学术项目,所以欢迎所有想法,任何你能想到或听说过的东西都会引起我的兴趣。

我的想法;

  • 我想通过仅使用像素数据而不是邻域函数来降低复杂度(O(n*m)?)
  • 我正在考虑使用图像的颜色直方图/灰度直方图/纹理/熵,将它们结合起来进行测量。
  • 信息会明显丢失,但我需要生成的指标大大小于图像的内存占用量 (~0.512 MB)

正如我所说,任何指导我的研究的想法都会很棒。

亲切的问候,

加文

最佳答案

有类似的SO讨论here - 直方图似乎是要走的路。您也可以尝试比较高度压缩的 JPEG - 可能使用 fast thumbnailing library .

关于performance - 快速轻量级图像比较度量算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/953928/

相关文章:

android - 如何在初始化 recyclerview 适配器时保持 UI 解锁?

performance - 正确的大整数哈希函数,还是应该将它们转换为字符串?

C最长线算法

python - pygame 图像拒绝加载

python numpy : array of arrays

javascript - Node.js 上的性能重算法

c++ - 函数大小与执行速度

c# - 求二维曲线双切线的算法

java - 根据使用频率随机生成字母?

image - 为 Vuetify v-card 添加渐变 :img