]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/commitdiff
Some minor corrections to variable in kcf.
authorShanigen <vkaraf@gmail.com>
Thu, 19 Apr 2018 15:39:05 +0000 (17:39 +0200)
committerShanigen <vkaraf@gmail.com>
Thu, 19 Apr 2018 15:39:05 +0000 (17:39 +0200)
src/kcf.cpp
src/kcf.h

index 29bd62db80e8f6b4c001201ace22819394961361..fafad07cf6b64b1733ca69e33a82d793392331d9 100644 (file)
@@ -109,13 +109,13 @@ void KCF_Tracker::init(cv::Mat &img, const cv::Rect & bbox)
     
 #ifdef CUFFT
     cudaSetDeviceFlags(cudaDeviceMapHost);
-    CudaSafeCall(cudaHostAlloc((void**)&xf_sqr_norm, p_scales.size()*sizeof(float), cudaHostAllocMapped));
+    CudaSafeCall(cudaHostAlloc((void**)&xf_sqr_norm, p_num_scales*sizeof(float), cudaHostAllocMapped));
     CudaSafeCall(cudaHostGetDevicePointer((void**)&xf_sqr_norm_d, (void*)xf_sqr_norm, 0));
     std::cout << &xf_sqr_norm << std::endl;
     CudaSafeCall(cudaHostAlloc((void**)&yf_sqr_norm, sizeof(float), cudaHostAllocMapped));
     CudaSafeCall(cudaHostGetDevicePointer((void**)&yf_sqr_norm_d, (void*)yf_sqr_norm, 0));
 #else
-    xf_sqr_norm = (float*) malloc(p_scales.size()*sizeof(float));
+    xf_sqr_norm = (float*) malloc(p_num_scales*sizeof(float));
     xf_sqr_norm = (float*) malloc(sizeof(float));
 #endif
 
@@ -133,12 +133,13 @@ void KCF_Tracker::init(cv::Mat &img, const cv::Rect & bbox)
     p_output_sigma = std::sqrt(p_pose.w*p_pose.h) * p_output_sigma_factor / static_cast<double>(p_cell_size);
 
     //window weights, i.e. labels
-    num_of_feats = 31;
-    if(m_use_color) num_of_feats += 3;
-    if(m_use_cnfeat) num_of_feats += 10;
-    poi_width = p_windows_size[0]/p_cell_size;
-    poi_height = p_windows_size[1]/p_cell_size;
-    fft.init(p_windows_size[0]/p_cell_size, p_windows_size[1]/p_cell_size, num_of_feats, p_scales.size(), m_use_big_batch);
+    p_num_of_feats = 31;
+    if(m_use_color) p_num_of_feats += 3;
+    if(m_use_cnfeat) p_num_of_feats += 10;
+    p_poi_width = p_windows_size[0]/p_cell_size;
+    p_poi_height = p_windows_size[1]/p_cell_size;
+
+    fft.init(p_windows_size[0]/p_cell_size, p_windows_size[1]/p_cell_size, p_num_of_feats, p_num_scales, m_use_big_batch);
     p_yf = fft.forward(gaussian_shaped_labels(p_output_sigma, p_windows_size[0]/p_cell_size, p_windows_size[1]/p_cell_size));
     fft.set_window(cosine_window_function(p_windows_size[0]/p_cell_size, p_windows_size[1]/p_cell_size));
 
@@ -637,7 +638,7 @@ ComplexMat KCF_Tracker::gaussian_correlation(const ComplexMat &xf, const Complex
     //ifft2 and sum over 3rd dimension, we dont care about individual channels
     cv::Mat ifft2_res = fft.inverse(xyf);
     cv::Mat xy_sum;
-    if(xf.channels() != 308)
+    if(xf.channels() != p_num_scales*p_num_of_feats)
         xy_sum.create(ifft2_res.size(), CV_32FC1);
     else
         xy_sum.create(ifft2_res.size(), CV_32FC(p_scales.size()));
index a95512ce1c7e468721cc60ede7da7e42687b98a0..0fbcf8090cf699404f1b71a9ea4344eb3cc5c080 100644 (file)
--- a/src/kcf.h
+++ b/src/kcf.h
@@ -107,8 +107,8 @@ private:
     std::vector<double> p_scales;
 
     //for big batch
-    int num_of_feats;
-    int poi_height, poi_width;
+    int p_num_of_feats;
+    int p_poi_height, p_poi_width;
     float *xf_sqr_norm = nullptr, *yf_sqr_norm = nullptr;
 #ifdef CUFFT
     float *xf_sqr_norm_d = nullptr, *yf_sqr_norm_d = nullptr;