DPM中的HOG源码的Matlab版重写-《小超教你写论文》系列第四部分第一篇
《小超教你写论文》系列前三部分分别翻译了一篇文章;对文章中的公式进行了推导;介绍了作者使用的数据库。作为系列的第四部分,开始对原文中的想法进行实现。
前一段陷入了一点误区,一直在思考一个算法,总想把一切都弄得非常明白,耗费了很多时间。其实后来发现没有必要,我们的目的是写文章,而写文章需要我们实现自己的算法。如果我们的算法有从别人那里借鉴的部分,只需要将相同的部分弄明白就可以了,没必要完整彻底地理解别人的算法(ps:这里是指以写文章为目的的过程,并非所有科研过程)。
算法中,用到了DPM中的HOG特征,所以需要实现它。但在voc-release3.1的源码中,我发现HOG的实现是C语言版的,原大神可能是为了加快运算速度,但自己用起来不是很方便,所以就按照C语言写了一个Matlab版,几乎完全一样。其实,其中梯度方向分区的部分我曾经写过速度更快的方法,但为了与原版保持一致,没有做改变。
具体代码如下,包含了HOG特征求取和HOG特征图像化两个部分。
function feat = HOG(input,sbin)
tic
uu = [1.0000;
0.9397;
0.7660;
0.500;
0.1736;
-0.1736;
-0.5000;
-0.7660;
-0.9397];
vv