Ask Your Question

# Optimizations on opencv hog implementation(interp_weight, gaussian)

Hello,

I'm trying to implement hog descriptor algorithm on FPGA. I will use pure(without using any library) C++ code to synthesize design with Vivado HLS. So, i need to know what is the general formula which includes interp_weight, gaussian coefficients. The related opencl code is as follows;

int dist_center_y = dist_y - 4 * (1 - 2 * cell_y);
int idx = (dist_center_y + 8) * 16 + (dist_center_x + 8);
float gaussian = gauss_w_lut[idx];
idx = (dist_y + 8) * 16 + (dist_x + 8);
float interp_weight = gauss_w_lut[256+idx];
hist[bin.x * 48] += gaussian * interp_weight * vote.x;
hist[bin.y * 48] += gaussian * interp_weight * vote.y;


Its hard for me to read this opencl code, because i am unfamiliar to this language.

Is there any paper or guide which explaines steps of opencv hog implementation? I should create a C++ code which is fully compatible with opencv.

Necessary addition: I have already implemented my own hog algorithm by looking at explanatory links from https://docs.opencv.org/master/d5/d33... . But the output is not same as the opencv. I checked opencv source code and realized that only difference between my algorithm and opencv implementation is the code section i posted above. I'm getting best accuracy on svm with opencv hog, so i need fully same algorithm with opencv. I couldnt find any mathematical formula, i m not good at getting mathematical formula from verbal expression.

edit retag close merge delete

## 3 answers

Sort by » oldest newest most voted you can also take a look at http://blog.dlib.net/2014/02/dlib-186...

do you have a dataset you already trained a detector?

you can train with both OpenCV and Dlib and compare results

more

I would suggest that you find the original scientific paper that describes the Histogram of Oriented Gradients

the wikipedia article is a bearable starting point https://en.wikipedia.org/wiki/Histogr...

more

## Comments

looking at optimized opencl code, when trying to understand an algorithm is always a bad idea ...

rather read the official docs, there are a lot of explanatory links !

more

## Comments

Thank you for your answer. I have already read this articles but couldnt build an algorithm which produces output exact same with opencv.

Official site

GitHub

Wiki

Documentation

## Stats

Asked: 2020-12-07 07:00:10 -0500

Seen: 133 times

Last updated: Dec 11 '20