Git Product home page Git Product logo

eco's Introduction

c++(visual studio) implementation of Efficient Convolution Operator(ECO)tracker.

version1.0

Environment:caffe+vs2015+opencv3.x

Publication:

Details about the tracker can be found in the CVPR 2017 paper

Martin Danelljan, Goutam Bhat, Fahad Khan, Michael Felsberg. ECO Efficient Convolution Operators for Tracking. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.

Please cite the above publication if you use the code or compare with the ECO tracker in your work. Bibtex entry

@InProceedings{DanelljanCVPR2017, Title = {ECO Efficient Convolution Operators for Tracking}, Author = {Danelljan, Martin and Bhat, Goutam and Shahbaz Khan, Fahad and Felsberg, Michael}, Booktitle = {CVPR}, Year = {2017} }

Contact Email [email protected] [email protected]

installation

caffe-windows:Reference to caffe-windows installation online.

opencv : we recommend opencv3.x(opencv2.x can also be used, just replace some functions)

vs2015/vs2013 build and run: configure the third party of caffe-windows in the project property sheet.

Source code description::

ECO.h, ECO.cpp tracker: parameter and feature parameters intialization, label generator, cos-window function, and so on.

eco_sample_update.h, eco_sample_update.cpp: Relevant functions of updating sample model (Calculating samples distance, update sample space model, etc.)

feature_extractor.h, feature_extractor.cpp: The function of feature extraction (sampling, cnn and hog feature extractor)

feature_operator.h, feature_operator.cpp: feature operator overloading, mapping function.

fftTools.h, fftTools.cpp: Complex matrix operations, fourier domain calculation.

optimize_scores.h, optimize_scores.cpp: Calculation of the score of final features map.

training.h, training.cpp: Feature training and update class

Detailed description and description follow-up update

Supplementary:

The name of variables , functions of the classes are according to ECO matlab version. During debugging code, also you can reference to ECO Matlab version.

Vgg model is available at https://pan.baidu.com/s/1skVkPLN. After downloading, the path of the VGG folder in the main.cpp on the line 59,60,61 shall be modified.

eco's People

Contributors

nicewsyly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eco's Issues

ubuntu16.04 环境下编译通过,但运行出错

首先感谢nicewsyly,开源ECO c++版本给我们学习。
我在ubuntu16.04编译通过,但是运行时出错了,不管是否使用cnn特征都一样的错误,我使用的是960x540的视频,错误提示如下如下:
init obj[486 216 46 101]
img_support_sz is : [252 x 252]
eco track...0
process_frame 1
process_frame 2
process_frame 3
process_frame 4
process_frame 5
process_frame 50
process_frame 51
process_frame 52
terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(3.4.2) /home/mrsy/project/machine-learning-lib/opencv-3.4.2/modules/core/src/matrix.cpp:465: error: (-215:Assertion failed) 0 <= roi.x && 0 <= roi.wid
th && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows in function 'Mat'

打印信息的代码如下:
image

我这里跑k1没初始化

ECO.cpp
大概110-120行之间:
for (size_t i = 0; i != feature_sz.size(); ++i)
{
size_t size = feature_sz[i].width + (feature_sz[i].width + 1) % 2 ;
filter_sz.push_back(cv::Size(size, size));
k1 = size > output_sz ? i : k1;
//wangsen
output_sz = std::max(size,output_sz);
//output_sz = size > output_sz ? size : output_sz;
}
output_sz好像也是随机的值,然后一直大于size,k1一直没得初始化,

time efficiency?

Thanks for sharing your work~
It seems not as fast as the Matlab version ? ( ~ 6 fps vs. 30 fps on my PC )
I complied CPU version and turn useDeepFeature=false, imshow is also turned off.
Is there something I missed? Thanks~

About ECO execution

After I compile program successfully, I find some files are lost.
I downloaded VGG_CNN_M_2048.caffemodel and VGG_mean.binaryproto, but I can't find the file which named mean.yml.
How can I do?

fhog accelerate

I analyzed the program.and "Fhog" it takes a long time.

Is there a way to speed up?

关于fDSST中,“scale filter”问题咨询

您好,很高兴看到优秀的C++代码实现。我在看作者提供的原始版本的代码时,一个问题一直困扰着我。
1)在fDSST中,作者用如下代码生成ys, 在调试中发现,ys两边值最大,中间值最小,而在检测过程中,作者也是找响应最大的位置作为当前的scale。
2)在DSST中,将中间的值设置为最大,两边的值较小是,与fDSST相冲突。
如果能提供任何意见,将非常感激。
ys = [1 0.642167199144790 0.170056201828270 0.0185709050136830 0.000836315026159023 1.55311269123150e-05 1.18941188747878e-07 3.75627879293239e-10 4.89192285304428e-13 4.89192285304428e-13 3.75627879293239e-10 1.18941188747878e-07 1.55311269123150e-05 0.000836315026159023 0.0185709050136830 0.170056201828270 0.642167199144790]

scale_exp = (-floor((nScales-1)/2):ceil((nScales-1)/2)) * nScalesInterp/nScales;
    scale_exp_shift = circshift(scale_exp, [0 -floor((nScales-1)/2)]);
    
    interp_scale_exp = -floor((nScalesInterp-1)/2):ceil((nScalesInterp-1)/2);
    interp_scale_exp_shift = circshift(interp_scale_exp, [0 -floor((nScalesInterp-1)/2)]);
    
    scaleSizeFactors = scale_step .^ scale_exp;
    interpScaleFactors = scale_step .^ interp_scale_exp_shift;
    
    ys = exp(-0.5 * (scale_exp_shift.^2) /scale_sigma^2);

追踪不正确

我在Ubuntu中测试, 使用HOG版本.
output_sz=0, k1=0, frameID=0, frames_since_last_train=0都初始化为0.
在测试视频中, 发现追踪有比较大问题, 不知道是哪里需要修正?

snip20180429_1

The initialization of output_sz

Looks like there is no initialization of the variable output_sz in ECO class?

I tried to run in HOG version and looks like it is not correctly initialized so there is a segmentation fault.

Nice work though not runnable for me

I am trying my best to make your codes runnable the whole afternoon,but unfortunatly I failed,as although in you describination the caffe-windows is a CPU version,some of codes suffer from a CUDA-related error that I have to uncommon them to let the compiler pass, besides the caffe-windows I used did not contains some of your additional dependencies such as caffe.lib.lib, let alone cuda.lib.
Would you plz make the USAGE more detailed so that anyone interested in your work would ultimate and contribute it.
And thanks for your sharing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.