CNN可以比经典描述符更快吗?

时间:2017-04-02 13:13:20

标签: computer-vision deep-learning surf vlad-vector

Disclamer:我对CNN几乎一无所知,我不知道在哪里可以问这个。

我的研究主要集中在计算机视觉应用的高性能上。我们在最大尺寸为500pxs的图像上生成代表图像的代码,时间不到20毫秒。

这是通过组合SURF描述符和VLAD代码来完成的,获得表示将在我们的对象识别应用程序中使用的图像的向量。

CNN可以更快吗?根据{{​​3}}基准(基于更小的图像),所需的时间更长,几乎是两倍,因为图像的大小是我们的一半。

3 个答案:

答案 0 :(得分:2)

是的,他们可以更快。您获得的数字适用于经过ImageNet分类培训的网络,100万个图像,1000个课程。除非您的分类问题类似,否则使用ImageNet网络是过度的。

您还应该记住,这些网络的权重大约在10到1亿之间,因此评估它们的成本非常高。但是你可能不需要一个非常大的网络,你可以设计自己的网络,用更少的图层和参数来评估它们。

根据我的经验,我设计了一个网络来对96x96声纳图像块进行分类,总共大约4000个权重,它可以获得超过95%的分类精度,并且在RPi2上每帧40毫秒运行。

具有900K权重,相同输入大小的更大网络需要7 ms才能在Core i7上进行评估。所以这肯定是可能的,你只需要使用更小的网络架构。一个良好的开端是SqueezeNet,这是一个可以在Imagenet中实现良好性能的网络,但权重却减少了50倍,而且它当然比其他网络快得多。

答案 1 :(得分:1)

我会对基准和一揽子陈述保持警惕。了解生成引用值的每个细节非常重要。例如,在GPU硬件上运行CNN会改善引用值吗?

对我来说,20毫秒似乎很快; 40ms也是如此。我不知道你的要求是什么。

CNN还能提供哪些其他好处?也许它不仅仅是原始速度。

我不相信神经网络是解决每个问题的完美技术。回归,SVM和其他分类技术仍然可行。

这里有偏见。您的问题看起来好像您只想确认您当前的研究是最好的。你有一个沉没的成本,你不愿抛弃,但你担心可能有更好的东西。如果这是真的,我认为这不是一个好问题。

“我对CNN几乎一无所知” - 如果你是一名真正的研究人员,寻求真相,我认为你有义务自学和回答。 TensorFlow和Keras使这很容易做到。

答案 2 :(得分:1)

回答你的问题:是的,他们可以。它们可以更慢,并且它们可以比经典描述符更快。例如,仅使用一个过滤器和几个最大池几乎肯定会更快。但结果肯定会很糟糕。

你应该问一个更具体的问题。相关部分是:

  • 问题:分类/检测/语义分段/实例细分/面部验证/ ......?
  • 约束:最低准确度/最高速度/最长延迟?
  • 评估细节
    • 哪些硬件可用(GPU)?
    • 您对单张图片进行评估吗?通常,您可以在与一张图像大致相同的时间内评估多达512张图像。

另外:输入图像大小不应该相关。如果CNN在比传统描述符更小的输入上获得更好的结果,你为什么要关心?

论文

请注意,CNN通常不会针对速度进行调整,而是针对准确性。