4kubo / bacf_python

A port of implementation fo BACF to python 2
20 stars 5 forks source link

The resp_newton method? #9

Closed Xianqi-Zhang closed 5 years ago

Xianqi-Zhang commented 5 years ago

Hello, Thank you for your sharing. I can't understand the method resp_newton. Could you tell me the full name of this method ? Newton-Raphson method ? I have checked the Matlab code and find the same func name, but also have no idea. Do you have some related papers or any other materials ?

Thanks for your any reply.

4kubo commented 5 years ago

Hi, @Xianqi-Zhang. I think this method implements Newton method, though I just translated the original matlab code to python code and checked whether it works or not.

The original code I used is from the following paper, Danelljan, Martin, et al. "Learning spatially regularized correlation filters for visual tracking." Proceedings of the IEEE international conference on computer vision. 2015. https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Danelljan_Learning_Spatially_Regularized_ICCV_2015_paper.pdf

In this paper, it is said they implemented a fast sub-grid detection as described in section 4.2. Therefore, the lines 61-62 of the resp_newton.py file correspond to a matrix product of inversed hessian matrix and gradients. More concretely, in line 61, H_xx and H_xy correspond cofactor matrix of Hessian, grad_y and grad_x the gradients at the current maximal location, respectively. And the sum-of-product is divided by the determinant of the Hessian matrix.

Please tell me If you find that in my code it is not implemented as described above. Thanks

Xianqi-Zhang commented 5 years ago

Hello, Thank you for your kindly reply and I am very sorry to disturb you. I have read the paper SRDCF and find this method, but seems need some time to understand.

  1. Could you tell me the meaning of these code in the resp_newton ? They compute the displacement directly. disp_row = (np.mod(max_pos_y[0, 0, sind] + np.pi, 2 np.pi) - np.pi) / (2 np.pi) use_sz[0] disp_col = (np.mod(max_pos_x[0, 0, sind] + np.pi, 2 np.pi) - np.pi) / (2 np.pi) use_sz[1]

  2. In my opinion , the variables max_response : restore the max value max_pos_y & max_pos_x : restore their position but what the relationship between their value and the max value/position of the response map, I have checked their have a large different.

Thanks for any reply.