hog svm_行人检测matlab程序,HOG+SVM实现行人检测原理总结

一、HOG算法

HOG的一个详细的介绍:https://www.cnblogs.com/wyuzl/p/6792216.html

fast-hog源码实现流程整理xmind

hog svm_行人检测matlab程序,HOG+SVM实现行人检测原理总结_第1张图片

HOG的核心思想是通过检测局部物体的梯度和边缘方向信息得到被检测物体的局部特征,HOG能较好的捕捉到局部形状信息,而且对几何以及光学的变化有很好的不变性。

缺点:在于不能处理关于遮挡的问题,对于物体方向改变或者人体姿势幅度过大的问题也没法解决,(后来用DPM中的可变形部件模型的方法,得到了解决)

其本身没有旋转不变性,旋转不变性实际上是通过采用不同的旋转方向的训练样本来实现的,其本身也不具有尺度不变性,这部分也是通过改变检测窗口图像的大小来实现的。

由于梯度性质导致的对噪声敏感的问题,需要在划分block以及cell后进一步高斯平滑去除噪点。

二、HLS实质,具体的设计处理思想等

HLS实质上是一种工具,这个工具存在的意义在于其实际上是把IP的实现采用C语言实现以后,在进一步的对for循环和数组进行分析优化,从而使得其更好的使用FPGA的底层架构,更合理的利用资源(高速度小面积的实现)。这个过程就是改动directive的过程,以及修改C代码,对应不同的需求会有对应的优化的指令实现方式,最后通过C和RTL联合仿真然后输出设计即可。导出IP就可用于vivado的其他任何设计中去了。

这里的关键思想就在于优化指令directive的使用,

再提一下HLS的一个好处:可以通过directive来将同样的代码综合成不同结构的电路

比如我们要重复使用一个模块A,我们可能在资源不够的时候需要对A进行分时复用,在需要高吞吐量的时候又需要对A进行逻辑复制,如果是写RTL代码的话,这两种方式都需要不少的代码量,并且从一种方式换到另一种方式的时候需要重新编写代码,非常耗时。而使用HLS的话,我们只需要一个for循环对A进行调用就可以了,代码非常少,至于我们需要综合成何种结构的电路则添加不同的directive就可以了,并且可以同时生成不同的solution,同时综合成几种不同的电路,非常方便。

三、AXI-stream的视频流图像处理的方法。

抓住实质,最关键的控制信号实际上只有两个分别是data和valid信号,这两个信号可以看做是数据信号以及控制信号有效否的控制信号。

AXI4-Stream跟AXI4的区别就是AXI4-Stream去除了地址线,这样就不涉及读写数据的概念了,只有简单的发送与接收说法,减少了延时

放一个时序图:

hog svm_行人检测matlab程序,HOG+SVM实现行人检测原理总结_第2张图片

你可能感兴趣的:(hog)