文章目录
readme
与opencv linemod 源码相比,我们从6个方面进行了改进:
- 删除深度模式,所以我们不需要虚拟函数,这可能会加快
- opencv linemod最多只能使用63个特征。现在我们可以有8191个
- 简单代码,旋转和缩放模板图像用于训练。有关示例,请参见test.cpp
- nms用于精确的边缘选择
- 单通道方向提取节省时间,对于灰度img稍微快一些
- 对于多种平台SIMD,可以使用MIPP。例如x86 SSE AVX, arm neon。为了获得更好的性能,我们将MIPP扩展到uint8_t来执行一些指令。(否则我们只能使用一半特征点来避免int8_t溢出)
- 直接旋转特征以加速模板提取;
选择分散特征会更均匀;
如果特征数不够的话,尽可能选择所有特征,而不是抛弃模板(但是features <= 4将自动丢弃)。
issue 1 如何加快responsemap的创建?
- 测试中发现整个时间,大部分用于了创建responsemap, 请问这个过程可以有办法加速么?例如我有张130万像素的图片,用了150ms创建的,有办法加快么?
有,还可以加速一个量级。
目前的速度瓶颈在opencv的filter上,我之前研究过,opencv用到的加速技巧有separeble filter, SIMD。还可以用的技巧有parallelism、kernel fusion(sobel phase pyrdown大部分都能fuse起来)。
其实这个要写的可读性好、速度