Gavinic / Traffic-Lights-Detection

This project is aimed to realize the relative algorithms about traffic lights detection. I will complete it by two methods ,the classical computer vision algorithms and deep learning method based on tensorflow objection API.I am a graduate student from UESTC, Chengdu, China.
63 stars 25 forks source link

HOG Features incorrectly estimated #9

Open yerzhik opened 5 years ago

yerzhik commented 5 years ago

Is there a logic behind the features being estimated? It says gethogfeature function but it does unnecessary threshodling. Then resized to 32x32 original image is traversed:

for (i = 0; i < image.rows; i+=step) { p = image.ptr<uchar> (i); p_dst = featuretemp.ptr<float>(i); p_dst[0] = 0; for(j = 0; j < image.cols; j+=step) { p_dst[0] += p[j]; } }

By looking at this code I can say this is just a sum of elements of each row.

Then at traindata function: feature = feature.reshape(1,1);
Which is converting to single channel single row. By looking at how the feature was created, it is a vector of the form (x, 0, 0 ... 0) of size 32.

Am I correct? It's not the HOG feature. What is it and what's the point in saving vector with only one value and the rest being zeroes?

Gavinic commented 4 years ago

Thanks for your interest in our project. As you mentioned above, the implementation of HOG features is incorrect. In feature.cpp Mat featuretempMat::zeros(image.rows,image.cols,CV_8UC1); should be corrected to Mat featuretempMat::zeros(image.rows,1,CV_8UC1);.

Note: Actually, the "gethogfeature" function is used to achieve the function of row and column projection of binary images. we have modified the function name to "getprofeature". We will also update the HOG feature extraction function and Harr-related operators as soon as possible.