First time here? Check out the FAQ!

Ask Your Question
0

Optimizations on opencv hog implementation(interp_weight, gaussian)

asked Dec 7 '0

Alican Özeloğlu gravatar image

updated Dec 8 '0

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.

Preview: (hide)

3 answers

Sort by » oldest newest most voted
0

answered Dec 11 '0

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

Preview: (hide)
0

answered Dec 7 '0

crackwitz gravatar image

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...

Preview: (hide)

Comments

Thank you for your suggestion.

0

answered Dec 7 '0

berak gravatar image

updated Dec 7 '0

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 !

Preview: (hide)

Comments

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

Question Tools

1 follower

Stats

Asked: Dec 7 '0

Seen: 1,149 times

Last updated: Dec 11 '20