首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >最快的HOG特征提取实现?

最快的HOG特征提取实现?
EN

Stack Overflow用户
提问于 2013-08-28 04:33:11
回答 1查看 13.4K关注 0票数 18

问题

多核CPU最快的开源HOG提取代码是什么?

动机

我正在开发一个实时物体检测应用程序。具体地说,我已经开发了Deformable Parts Model cascades的一个变体,目标是30fps的对象检测。我已经达到了一个点,提取HOG功能的成本比我管道中的其他功能加起来还要昂贵。我正在使用[Felzenzwalb, Girshick, et al]参数来提取HOG。也就是说,HOG描述符的多分辨率金字塔,每个描述符总共有32个用于定向的框和一些其他线索。

Goals

我想在多核处理器上以60fps (16ms)对640x480图像进行多尺度HOG特征提取。

相关工作

我在6核Intel 3930k CPU上对一些现成的多尺度HOG实现进行了基准测试。对于640x480图像,我观察到以下性能数据:

  • HOG in Dubout's FFLD DPM代码:19fps (52ms) --带C++的OpenMP,但没有voc-release5 DPM代码中的vectorization
  • HOG : Matlab 2.4fps (410ms) --单线程C++,外加一个Matlab包装器<代码>H223<代码>F224

我还用OpenCV HOG extraction code做过实验。OpenCV版本可以工作,但对于Dalal-Triggs的HOG设置似乎是硬编码的,并且OpenCV似乎不允许我使用与Felzenzwalb、Girshick等人相同的HOG参数(归一化方案、二进制位置特征等)。我不记得OpenCV猪的表演是什么样子了。

最终想法

  1. 最快的HOG实现-- FFLD --似乎给性能留下了很大的影响。我没有做过GFLOP/s的估计,但我确实注意到FFLD的HOG代码没有使用任何SSE/AVX向量化。没有那么多的控制流,所以矢量化在这里看起来是一个廉价的加速机会。
  2. 我在这里没有提到GPU HOG实现。我已经尝试过groundHOG/CUHOGfasthog。CUHOG的作者声称在NVIDIA GTX560上的20fps (50ms) HOG提取。但是,英特尔CPU是我的应用程序的目标平台,从图形处理器到中央处理器复制一个完整的大金字塔成本高得令人望而却步。
EN

回答 1

Stack Overflow用户

发布于 2013-11-12 16:17:23

看一下下面的实现HoG SSE

它确实符合您的时间要求。它是用C语言编写的,使用128位长的SIMD指令。

代码还可以根据您需要的规范化策略和输出类型进行进一步定制。

我将很高兴听到您的反馈,并能够改进这段代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18474897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档