GithubHelp home page GithubHelp logo

davheld / goturn Goto Github PK

View Code? Open in Web Editor NEW
877.0 49.0 317.0 472 KB

Source code for paper: Learning to Track at 100 FPS with Deep Regression Networks, Held, et al. ECCV 2016

Home Page: http://davheld.github.io/GOTURN/GOTURN.html

License: MIT License

CMake 2.71% Shell 1.58% C++ 58.62% MATLAB 2.27% C 34.81% M 0.02%

goturn's Introduction

GOTURN

This is the C++ code for our tracker, GOTURN: Generic Object Tracking Using Regression Networks.

A python implementation of our tracker can be found in @nrupatunga's repository

GOTURN appeared in this paper:

Learning to Track at 100 FPS with Deep Regression Networks,
David Held, Sebastian Thrun, Silvio Savarese,
European Conference on Computer Vision (ECCV), 2016 (In press)

GOTURN addresses the problem of single target tracking: given a bounding box label of an object in the first frame of the video, we track that object through the rest of the video.

Note that our current method does not handle occlusions; however, it is fairly robust to viewpoint changes, lighting changes, and deformations. Here is a brief overview of how our system works:

Using a collection of videos and images with bounding box labels (but no class information), we train a neural network to track generic objects. At test time, the network is able to track novel objects without any fine-tuning. By avoiding fine-tuning, our network is able to track at 100 fps.

If you find this code useful in your research, please cite:

@inproceedings{held2016learning,
  title={Learning to Track at 100 FPS with Deep Regression Networks},
  author={Held, David and Thrun, Sebastian and Savarese, Silvio},
  booktitle = {European Conference Computer Vision (ECCV)},
  year      = {2016}
}

Contents:

Installation

Install dependencies:

  • Install CMake:
sudo apt-get install cmake
sudo apt-get install libopencv-dev
  • Install TinyXML (needed to load Imagenet annotations):
sudo apt-get install libtinyxml-dev 
  • CPU_ONLY mode (optional and not recommended)

GPUs are strongly suggested as the code runs ~30X slower in CPU_ONLY mode. It is listed as an option only if your system doesn’t have GPU support. To configure this, uncomment the CPU_ONLY line in CMakeLists.txt as shown below:

# Uncomment for CPU only:
set(Caffe_DEFINITIONS -DCPU_ONLY)

Compile

From the main directory, type:

mkdir build
cd build
cmake ..
make

Pretrained model

You can download a pretrained tracker model (434 MB) by running the following script from the main directory:

bash scripts/download_trained_model.sh

Visualize the tracking performance

To visualize the performance of the tracker, first downloaded a pretrained tracker model (above).

Visualizing test set performance

To visualize the performance on the test set, first download (and unzip) the VOT 2014 dataset.

Then you can run the tracker on the test set and visualize the output by running the following script:

bash scripts/show_tracker_test.sh vot_folder

where vot_folder is the path to the unzipped VOT files.

Save videos of test set performance

To save videos of the tracker running on the test set, run the script:

bash scripts/save_videos_test.sh vot_folder

Visualizing validation set performance

To visualize the performance on the validation set, first download the ALOV dataset (as described below)

Then you can run the tracker on the validation set and visualize the output by running the following script:

bash scripts/show_tracker_val.sh alov_image_folder alov_annotation_folder

where alov_videos_folder is the path to the ALOV videos folder and alov_annotations_folder is the path to the ALOV annotations folder.

Note that, for the pre-trained model downloaded above, after choosing hyperparameters, the model was trained on the training+validation sets (not the test set!) so we would expect the validation performance here to be very good (much better than test set performance).

Evaluate the tracker

Evaluate test set performance

To evaluate test set performance, follow the instructions on the VOT website. The file test/test_tracker_vot.cpp is designed to integrate into the VOT testing framework.

The results from running our tracker on the VOT 2014 dataset can be found here, and the report containing our results compared to the VOT 2014 baselines can be found [here] (http://davheld.github.io/GOTURN/report_vot2014_alov441_challenge.zip). Our method, in the report, is referred to as "alov441" since ALOV is the dataset that we used for validation of our model.

To reproduce these results, follow the instructions from the VOT website (linked above). In run_analysis.m, make sure to use the following:

context = create_report_context('report_vot2014_tracker_challenge');
report_challenge(context, experiments, trackers, sequences, 'methodology', 'vot2014'); % Use this report for official challenge report

Evaluate validation set performance

To evaluate the trained tracker model on the validation set, run:

bash scripts/evaluate_val.sh alov_image_folder alov_annotation_folder 

Note that, for the pre-trained model downloaded above, after choosing hyperparameters, the model was trained on the training+validation sets (not the test set!) so we would expect the validation performance here to be very good (much better than test set performance).

Train the tracker

To train the tracker, you need to download the training sets:

ALOV dataset

The ALOV video dataset can be downloaded here: http://alov300pp.joomlafree.it/

Click "Download Category" and "Download Ground Truth" to download the dataset (21 GB).

You need to make sure that the training set is distinct from your test set. If you intend to evaluate the tracker on VOT 2014, then you should remove the following videos from your ALOV training set:

  • 01-Light_video00016
  • 01-Light_video00022
  • 01-Light_video00023
  • 02-SurfaceCover_video00012
  • 03-Specularity_video00003
  • 03-Specularity_video00012
  • 10-LowContrast_video00013

Imagenet dataset

To download the ImageNet images, first register here: http://www.image-net.org/download-images

After registration, follow the links to download the ILSVRC2014 image data, and then download the DET dataset training images (47 GB) and the DET dataset training bounding box annotations (15MB).

Unzip both of these files. The image folder contains a collection of more tar files which must be unzipped. To do so, call:

bash scripts/unzip_imagenet.sh imagenet_folder output_folder

where imagenet_folder is the name of the file that was downloaded and unzipped, and target_folder is the destination folder for all of the unzipped images.

Training

If you are evaluating multiple models for development, then you need to have a validation set that is separate from your training set that you can use to choose among your different models. To separate the validation set, make sure that, in loader/loader_alov.cpp, the variable val_ratio is set to 0.2. This will specify that you want to train on only 80% of the videos, with 20% of the videos being saved for validation. After your final model and hyperparameters have been selected, you can set val_ratio to 0 to train the final model on the entire training + validation sets (not the test set!).

To train the tracker, you first need to download a set of weights that will initialize the convolutional layers from ImageNet. To do so, call

bash scripts/download_model_init.sh

Next, run:

bash scripts/train.sh imagenet_folder imagenet_annotations_folder alov_videos_folder alov_annotations_folder

to train the tracker, where: imagenet_folder is the directory of ImageNet images imagenet_annotations_folder is the directory of Imagenet image annotations alov_videos_folder is the directory of ALOV videos alov_annotations_folder is the directory of ALOV video annotations.

The tracker will be saved every 50,000 iterations in the folder: nets/solverstate We recommend to use the model after it has been trained for at least 200,000 iterations. In our experiments, we trained our models for 450,000 iterations (which was probably overkill). Still, you should be able to see some progress after just 50,000 iterations.

The detailed output of the training progress will be saved to a file in nets/results that you can inspect if you wish.

Visualizing datasets

Visualizing the ALOV dataset

After downloading the ALOV video dataset that we use for training (see above), you can visualize this dataset by calling:

build/show_alov alov_videos_folder alov_annotations_folder

where alov_videos_folder is the path to the ALOV videos folder and alov_annotations_folder is the path to the ALOV annotations folder.

Visualizing the ImageNet dataset

After downloading the ImageNet image dataset that we use for training (see above), you can visualize this dataset by calling:

build/show_imagenet imagenet_folder imagenet_annotations_folder

where imagenet_folder is the path to the ImageNet image folder and imagenet_annotations_folder is the path to the ImageNet annotations folder.

goturn's People

Contributors

brunobowden avatar charliememory avatar ksaluja15 avatar nrupatunga 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  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

goturn's Issues

Unable to find GOTURN in prebuilt OpenCV iOS framework

Hi,
Sorry if this is already answered somewhere else, but I couldn't find GOTURN in the the prebuilt OpenCV iOS framework, whereas cv::TrackerGOTURN is mentioned here in the docs:
http://docs.opencv.org/3.3.0/df/ddd/tracker_8hpp.html

Here is an example of the official download link:
https://sourceforge.net/projects/opencvlibrary/files/opencv-ios/3.3.0/opencv-3.3.0-ios-framework.zip/download

It'd be great if someone could tell me the reason. Thanks a lot in advance!

Could GOTURN be run with CPU only?

I find simply uncomment some lines related to Caff and CUDA in CMakeLists.txt,then I met some fatal error like "/home/wxb/git/caffe/GOTURN/src/network/regressor.h:4:27: fatal error: caffe/caffe.hpp: No such file or directory". I guess GOTURN can not be run without GPU and CUDA installed.

But I found some information in your paper:
"On an Nvidia GeForce GTX Titan X GPU with cuDNN acceleration, our tracker runs at 6.05 ms per frame (not including the 1 ms to load each image in OpenCV), or 165 fps. On a GTX 680 GPU, our tracker runs at an average of 9.98 ms per frame, or 100 fps. If only a CPU is available, the tracker runs at 2.7 fps."

Look at the bold text, does that mean GOTURN can be run with CPU only?If that's true, what should I do?

Thank you!

how do you get the statistics for the change in bounding box size and location?

@davheld The paper gets the statistics across two consecutive frames in training set. But the training set is from ALOV300++, where I find every five frame is signed with gound-truth bounding box. So
(1) if there is no consecutive frames being signed with gound-truth bounding box, how could you get the statistics?
(2)When the original frame or image is shifted, is the ground-truth bounding box shifted at the same time?

thanks

error: could not convert ‘0l’ from ‘long int’ to ‘trax_logging’

Hi,
When I try to make it I get this error:

morry@morry-W2600CR:~/Documents/poseHG/GOTURN/build$ make -j10
Scanning dependencies of target GOTURN
[ 7%] [ 7%] [ 11%] [ 15%] [ 19%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o
Building CXX object CMakeFiles/GOTURN.dir/src/train/example_generator.cpp.o
Building CXX object CMakeFiles/GOTURN.dir/src/helper/helper.cpp.o
[ 23%] [ 26%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/high_res_timer.cpp.o
[ 30%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/image_proc.cpp.o
Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_alov.cpp.o
Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_vot.cpp.o
[ 34%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_imagenet_det.cpp.o
[ 38%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor.cpp.o
Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor_base.cpp.o
[ 42%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor_train.cpp.o
[ 46%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor_train_base.cpp.o
[ 50%] Building CXX object CMakeFiles/GOTURN.dir/src/tracker/tracker.cpp.o
[ 53%] Building CXX object CMakeFiles/GOTURN.dir/src/tracker/tracker_manager.cpp.o
[ 57%] Building CXX object CMakeFiles/GOTURN.dir/src/train/tracker_trainer.cpp.o
[ 61%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/video.cpp.o
[ 65%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/video_loader.cpp.o
[ 69%] Building CXX object CMakeFiles/GOTURN.dir/src/native/vot.cpp.o
/home/morry/Documents/poseHG/GOTURN/src/native/vot.cpp: In member function ‘vot_region* VOT::vot_initialize()’:
/home/morry/Documents/poseHG/GOTURN/src/native/vot.cpp:201:54: error: could not convert ‘0l’ from ‘long int’ to ‘trax_logging’
trax_handle = trax_server_setup(config, NULL);
^
/home/morry/Documents/poseHG/GOTURN/src/native/vot.cpp:237:43: warning: ignoring return value of ‘__ssize_t getline(char*
, size_t_, FILE_)’, declared with attribute warn_unused_result [-Wunused-result]
getline(&linebuf, &linesiz, inputfile);
^
make[2]: *_* [CMakeFiles/GOTURN.dir/src/native/vot.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/GOTURN.dir/all] Error 2
make: *** [all] Error 2

Do you have any idea what causes this?

Error loading libopencv_core.so.3.1 when running test visualization script

I'm trying to run test visualization script, as in readme:

bash scripts/show_tracker_test.sh vot_folder

but I get the following error:

build/show_tracker_vot: error while loading shared libraries: libopencv_core.so.3.1: cannot open shared object file: No such file or directory

The thing is that I don't have OpenCV 3.1 installed, I have OpenCV 3.2 (and the cmake script detected it correctly when building).

Basically, in my path/to/opencv/build/lib I have the file libopencv_core.so.3.2, however, I'm not sure how to change the GOTURN configs to make it use the right file instead of trying to get libopencv_core.so.3.1


How can I make it use the correct version of OpenCV files?

Opencv erro

Hi,i just follow the instruction to install this package,but i encounter this error,can someone give me some advise~

--

OpenCV ARCH:
-- OpenCV RUNTIME:
-- OpenCV STATIC: OFF
CMake Warning at /home/siahooar/opencv-2.4.13/cmake/OpenCVConfig.cmake:163 (message):
Found OpenCV Windows Pack but it has not binaries compatible with your
configuration.

You should manually point CMake variable OpenCV_DIR to your build of OpenCV
library.
Call Stack (most recent call first):
CMakeLists.txt:14 (find_package)

CMake Error at CMakeLists.txt:14 (find_package):
Found package configuration file:

/home/siahooar/opencv-2.4.13/cmake/OpenCVConfig.cmake

but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be
NOT FOUND.

Thank you in advance~

Benchmark with different convolutional layers blocks

Hello,
I've just read your paper and your network sounds very attractive in terms of inference speed.
I was wondering whether you benchmarked your solution with other architecture for your convolutional layers such as Squeezenet, Res-Net or GoogleNet ? Why did you chose to use CaffeNet as feature extractor ?
Thanks in advance for your answer.

error happened when make (about lopencv_dep_lcudart)

Hi,when i try to make this package,i encountered this error:

[ 77%] Linking CXX executable train
/usr/bin/ld: cannot find -lopencv_dep_cudart
collect2: error: ld returned 1 exit status
CMakeFiles/train.dir/build.make:130: recipe for target 'train' failed
make[2]: *** [train] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/train.dir/all' failed
make[1]: *** [CMakeFiles/train.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Can anyone give me some advice about this?Thx~

A question about pre-train model?

Dear davheld:
I have a question about how do you get the pretrain model, can you give some detials? Question as follows:
(1) Which dataset ( such:ILSVRC2014_DET or ILSVRC2014_CLS) to pretrain the convolutional layer?
(2) If I only use the dataset of ALOV300+ and 2014_DET to train the net get regression value , or don't do the step of pretrain convolution layer, will decresed the tracking performance?
(3) When you train the siamese net, the two network branch will shared the layer params? or has independence parameters?
Looking forward to your reply, best wish!

error run tracker_test_vot : region.txt not available

Hello,
I was trying to test the tracker so I run below command :

./build/test_tracker_vot nets/models/pretrained_model/tracker.prototxt nets/models/pretrained_model/caffenet_train_iter_500000.caffemodel 1

And received following error:

Setting up Caffe in GPU mode with ID: 1
Setting phase to test
Network image size: 227, 227
Initial region file (region.txt) not available. Stopping.

I tried to follow VOT integration tutorial.
However, it seems you already included toolkit files in src/native dir.

Could you help me out or point some direction?
Do I need to take some action to integrate tracker with test_tracker_vot.cpp ?

Thanks!

Integrate GOTURN into the VOT testing framework

Hello, I integrate GOTURN into VOT2014 repo according to the introduction .

Also, I get the report "report_vot2014_tracker_challenge", the raw results about GOTURN ,challenge.html:
baseline:Expected overlap :0.2489
region_noise:Expected overlap:0.2410

A little lower than KCF.

But in AR ranking: GOTURN almost ranks top 1 ~~~

I doubt that maybe the vot-toolkit version's difference counts it.

hi , I do not quite understand

Can your code run on this platform? Or do you want to run this code on other software?I am a novice in this area, so there are many places do not understand, please enlighten. Can you help me ?

about multiple object tracking

Hello, I was wondering whether the code can be changed to track multiple objects per frame? I tried to modify the code to let it accept multiple objects positions input (for each line in the groundtruth.txt I wrote 8, 16 or 24... numbers to input multi-positions), but then I found the network input is just an image cropped by bounding-box(it is just my understanding...), and I can not find out how to change it.... Do you have any ideas about that? @davheld

there is not trax.h

when i build in ubuntu, the problem is shot as "GOTURN-master/src/native/vot.h:50:22: fatal error: trax.h: No such file or directory", how to fix it?

Use precompiled caffe on Ubuntu 17.04

Currently caffe allows users of Ubuntu of 17.04 to download the pre-compiled caffe. I'm confused regarding your CMakeList.txt which you need us to insert the CAFFE_LIBRARIES and CAFFE_INCLUDE_DIRS.

The problem is I can't found any file regarding caffe except the binary of caffe itself (which is located in /usr/bin/caffe), thus when I try to insert the CAFFE_LIBRARIES and CAFFE_INCLUDE as your hint says it always said not found because all the machine have is the binary of caffe.

Can anyone help me with this problem?

3D reconstruction undefined reference

I download the code from Then I mkdir build .cd build. cmake .. ererything goes well.
But when i make i meet with this error as following :

[ 35%] Built target vidl
[ 35%] Built target vidl_gui
[ 35%] Built target vidl_gui_test_include
[ 35%] Built target vidl_test_template_include
[ 35%] Built target vidl_test_include
[ 35%] Built target vidl_test_all
[ 35%] Linking CXX executable ../../../bin/vidl_transcode_video
../../../lib/libvidl.a(vidl_ffmpeg_istream.cxx.o): In function vidl_ffmpeg_istream::open(std::string const&)': vidl_ffmpeg_istream.cxx:(.text+0x3d5): undefined reference to av_frame_alloc'
../../../lib/libvidl.a(vidl_ffmpeg_ostream.cxx.o): In function vidl_ffmpeg_ostream::close()': vidl_ffmpeg_ostream.cxx:(.text+0x124f): undefined reference to av_packet_unref'
../../../lib/libvidl.a(vidl_ffmpeg_ostream.cxx.o): In function vidl_ffmpeg_ostream::write_frame(vil_smart_ptr<vidl_frame> const&)': vidl_ffmpeg_ostream.cxx:(.text+0x16f5): undefined reference to av_frame_alloc'
vidl_ffmpeg_ostream.cxx:(.text+0x1b3b): undefined reference to `av_packet_unref'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/vidl_transcode_video] Error 1
make[1]: *** [core/vidl/examples/CMakeFiles/vidl_transcode_video.dir/all] Error 2
make: *** [all] Error 2
I don't know what's wrong I have got .What i need to do? @puface

python bindings?

Hi David, any chance there are some python bindings to this code?

Some basic questions about the paper

Hi David,
I'm a masters student wanting to work on deep networks for tracking and I'm trying to implement your paper for Julia language. However I didn't understand some parts:

1- For ALOV300+, we have the ground-truth bounding box for the frames 1, 6, 11 and so on. We need 2 annotated frames so suppose we are using frames 6 and 11. What I assumed was, for a single forward run in the network, we crop twice the area around the GT box corresponding to frame 6, in frames 6 and 7 (which construct the inputs of the network), make a prediction for bounding box location in frame 7 (output), using this prediction like a new ground-truth, repeat for frames 7 and 8, all the way to frame 11 and calculate the loss between prediction and ground-truth boxes for frame 11. Is this correct?

2- How about data augmentation? On which frames do we take random crops? What about the ground-truth labels for these random crops? This is the part where I'm really lost. Same for imagenet dataset.

3- How does the network deal with varying size input (because ground-truth bounding box sizes aren't constant), since the fully connected layer sizes are fixed?

Appreciate your help.
Serkan

OTB results

hi, Is there OTB results about GOTURN method? if not, how can I get it? thank you

How to solve this linking error in libGOTURN.a?

Hi, when I make GOTURN, I meet this error:

Scanning dependencies of target GOTURN
[ 3%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o
[ 7%] Building CXX object CMakeFiles/GOTURN.dir/src/train/example_generator.cpp.o
[ 11%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/helper.cpp.o
[ 15%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/high_res_timer.cpp.o
[ 19%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/image_proc.cpp.o
[ 23%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_alov.cpp.o
[ 26%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_imagenet_det.cpp.o
[ 30%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_vot.cpp.o
[ 34%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor.cpp.o
[ 38%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor_base.cpp.o
[ 42%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor_train.cpp.o
[ 46%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor_train_base.cpp.o
[ 50%] Building CXX object CMakeFiles/GOTURN.dir/src/tracker/tracker.cpp.o
[ 53%] Building CXX object CMakeFiles/GOTURN.dir/src/tracker/tracker_manager.cpp.o
[ 57%] Building CXX object CMakeFiles/GOTURN.dir/src/train/tracker_trainer.cpp.o
[ 61%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/video.cpp.o
[ 65%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/video_loader.cpp.o
[ 69%] Building CXX object CMakeFiles/GOTURN.dir/src/native/vot.cpp.o
/home/zmd/GOTURN-master/src/native/vot.cpp: In member function ‘vot_region* VOT::vot_initialize()’:
/home/zmd/GOTURN-master/src/native/vot.cpp:237:43: warning: ignoring return value of ‘__ssize_t getline(char*, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
getline(&linebuf, &linesiz, inputfile);
^
Linking CXX static library libGOTURN.a
[ 69%] Built target GOTURN
Scanning dependencies of target save_videos_vot
[ 73%] Building CXX object CMakeFiles/save_videos_vot.dir/src/test/save_videos_vot.cpp.o
Linking CXX executable save_videos_vot

/usr/bin/ld: libGOTURN.a(regressor.cpp.o): undefined reference to symbol '_ZN6google4base21CheckOpMessageBuilderD1Ev'
//usr/lib/x86_64-linux-gnu/libglog.so.0: error adding symbols: DSO missing from command line

collect2: error: ld returned 1 exit status
make[2]: *** [save_videos_vot] Error 1
make[1]: *** [CMakeFiles/save_videos_vot.dir/all] Error 2
make: *** [all] Error 2

Can anyone help me?

Getting error while doing the setup

while doing the setup I am getting below error when i try to make , please help

51%] Building CXX object CMakeFiles/GOTURN.dir/src/native/vot.cpp.o
/home/deep/GOTURN/src/native/vot.cpp: In member function ‘vot_region* VOT::vot_initialize()’:
/home/deep/GOTURN/src/native/vot.cpp:237:43: warning: ignoring return value of ‘__ssize_t getline(char**, size_t*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
getline(&linebuf, &linesiz, inputfile);
^
[ 54%] Linking CXX static library libGOTURN.a
[ 54%] Built target GOTURN
[ 57%] Building CXX object CMakeFiles/test_tracker_alov.dir/src/test/test_tracker_alov.cpp.o
[ 60%] Linking CXX executable test_tracker_alov

cublas_v2.h not found

Download caffe, configure openblas and CPU_ONLY.
Make, make test and make runtest all went ok.

ze@ze-FI:~/Development/GOTURN$ cd build/
ze@ze-FI:~/Development/GOTURN/build$ cmake ..
-- No build type selected, default to Release
-- Boost version: 1.54.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   regex
Open CV version is 2.4.8
lib_dirs:/home/ze/Development/caffe/distribute/lib/libcaffe.so
Caffe_DIR is ~/Development/caffe/distribute
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ze/Development/GOTURN/build
ze@ze-FI:~/Development/GOTURN/build$ make
Scanning dependencies of target GOTURN
[  3%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o
[  7%] Building CXX object CMakeFiles/GOTURN.dir/src/train/example_generator.cpp.o
[ 11%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/helper.cpp.o
[ 15%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/high_res_timer.cpp.o
[ 19%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/image_proc.cpp.o
[ 23%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_alov.cpp.o
[ 26%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_imagenet_det.cpp.o
[ 30%] Building CXX object CMakeFiles/GOTURN.dir/src/loader/loader_vot.cpp.o
[ 34%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor.cpp.o
In file included from /home/ze/Development/caffe/distribute/include/caffe/common.hpp:19:0,
                 from /home/ze/Development/caffe/distribute/include/caffe/blob.hpp:8,
                 from /home/ze/Development/caffe/distribute/include/caffe/caffe.hpp:7,
                 from /home/ze/Development/GOTURN/src/network/regressor.h:4,
                 from /home/ze/Development/GOTURN/src/network/regressor.cpp:1:
/home/ze/Development/caffe/distribute/include/caffe/util/device_alternate.hpp:34:23: fatal error: cublas_v2.h: No such file or directory
 #include <cublas_v2.h>
                       ^
compilation terminated.
make[2]: *** [CMakeFiles/GOTURN.dir/src/network/regressor.cpp.o] Error 1
make[1]: *** [CMakeFiles/GOTURN.dir/all] Error 2
make: *** [all] Error 2
ze@ze-FI:~/Development/GOTURN/build$

Compile error: undefined reference

hi, I am compiling the code but the errors are like this:

[ 55%] Building CXX object CMakeFiles/test_tracker_alov.dir/src/test/test_tracker_alov.cpp.o
[ 58%] Linking CXX executable test_tracker_alov
libGOTURN.a(loader_alov.cpp.o):在函数‘LoaderAlov::LoaderAlov(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)’中:
loader_alov.cpp:(.text+0x833):对‘find_subfolders(boost::filesystem::path const&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >)’未定义的引用
loader_alov.cpp:(.text+0xecc):对‘find_matching_files(boost::filesystem::path const&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits > >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >
)’未定义的引用
loader_alov.cpp:(.text+0x1574):对‘find_matching_files(boost::filesystem::path const&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits > >, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >)’未定义的引用
libGOTURN.a(tracker_manager.cpp.o):在函数‘TrackerTesterAlov::VideoInit(Video const&, unsigned long)’中:
tracker_manager.cpp:(.text+0xfb4):对‘num2strabi:cxx11’未定义的引用
libGOTURN.a(bounding_box.cpp.o):在函数‘BoundingBox::Shift(cv::Mat const&, double, double, double, double, bool, BoundingBox
) const’中:
bounding_box.cpp:(.text+0x79b):对‘sample_rand_uniform()’未定义的引用
bounding_box.cpp:(.text+0x839):对‘sample_rand_uniform()’未定义的引用
bounding_box.cpp:(.text+0x8d7):对‘sample_rand_uniform()’未定义的引用
bounding_box.cpp:(.text+0x9ad):对‘sample_rand_uniform()’未定义的引用
bounding_box.cpp:(.text+0xae1):对‘sample_exp_two_sided(double)’未定义的引用
bounding_box.cpp:(.text+0xb7f):对‘sample_exp_two_sided(double)’未定义的引用
bounding_box.cpp:(.text+0xc0d):对‘sample_exp_two_sided(double)’未定义的引用
bounding_box.cpp:(.text+0xcdd):对‘sample_exp_two_sided(double)’未定义的引用
collect2: error: ld returned 1 exit status
CMakeFiles/test_tracker_alov.dir/build.make:129: recipe for target 'test_tracker_alov' failed
make[2]: *** [test_tracker_alov] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/test_tracker_alov.dir/all' failed
make[1]: *** [CMakeFiles/test_tracker_alov.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Could we add option for continue training from snapshot

Hi,
due to many reasons we might stop training in half way.
I know that caffe has an option to resume training from a snapshot.
Is it possible to add this feature to GOTURN as well?
This is kind of a suggestion rather than issue.

I am sure it is not only me who want this.

tracking score

Is It possibile to get tracking confidence value due to signal target lost?
Thank you.

make erro about caffe

Hi, thank you for your sharing~
And when i try to follow this install instruction to setup this package,i encounter this error:

[ 25%] Building CXX object CMakeFiles/GOTURN.dir/src/network/regressor.cpp.o
In file included from /home/siahooar/caffe/include/caffe/caffe.hpp:7:0,
from /home/siahooar/GOTURN/src/network/regressor.h:4,
from /home/siahooar/GOTURN/src/network/regressor.cpp:1:
/home/siahooar/caffe/include/caffe/blob.hpp:9:34: fatal error: caffe/proto/caffe.pb.h: No such file or directory
compilation terminated.
CMakeFiles/GOTURN.dir/build.make:254: recipe for target 'CMakeFiles/GOTURN.dir/src/network/regressor.cpp.o' failed
make[2]: *** [CMakeFiles/GOTURN.dir/src/network/regressor.cpp.o] Error 1
CMakeFiles/Makefile2:215: recipe for target 'CMakeFiles/GOTURN.dir/all' failed
make[1]: *** [CMakeFiles/GOTURN.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Can you give me some advise to solve it?

Only show groundtruth bounding box

When I use 'bash scripts/show_tracker_test.sh' to test the algorithm, it only displays the bounding box of groudtruth . No cmake or make error occurs before. Has anyone meet the same situation?

hi i got an error when i make on my jetson tk1

hi all
i got an error when i run make on my jetson tk1 (ubuntu 14.04 32 bit and opencv 3.1.0 )

[ 68%] Built target GOTURN
Linking CXX executable save_videos_vot
libGOTURN.a(loader_vot.cpp.o): In function LoaderVOT::LoaderVOT(std::string const&)': loader_vot.cpp:(.text+0x74): undefined reference to find_subfolders(boost::filesystem::path const&, std::vector<std::string, std::allocatorstd::string >)'
loader_vot.cpp:(.text+0x164): undefined reference to find_matching_files(boost::filesystem::path const&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >, std::vector<std::string, std::allocator<std::string> >*)' libGOTURN.a(tracker_manager.cpp.o): In function TrackerTesterAlov::VideoInit(Video const&, unsigned int)':
tracker_manager.cpp:(.text+0x65c): undefined reference to num2str(int)' libGOTURN.a(bounding_box.cpp.o): In function BoundingBox::Shift(cv::Mat const&, double, double, double, double, bool, BoundingBox
) const':
bounding_box.cpp:(.text+0x5e2): undefined reference to sample_exp_two_sided(double)' bounding_box.cpp:(.text+0x65a): undefined reference to sample_rand_uniform()'
bounding_box.cpp:(.text+0x6c6): undefined reference to sample_rand_uniform()' bounding_box.cpp:(.text+0x76e): undefined reference to sample_rand_uniform()'
bounding_box.cpp:(.text+0x81a): undefined reference to sample_exp_two_sided(double)' bounding_box.cpp:(.text+0x89a): undefined reference to sample_exp_two_sided(double)'
bounding_box.cpp:(.text+0x950): undefined reference to sample_rand_uniform()' bounding_box.cpp:(.text+0x9b6): undefined reference to sample_exp_two_sided(double)'
collect2: error: ld returned 1 exit status
make[2]: *** [save_videos_vot] Error 1
make[1]: *** [CMakeFiles/save_videos_vot.dir/all] Error 2
make: *** [all] Error 2

Training custom dataset

Are there any detailed instructions on how to train custom dataset (apart from Imagenet and ALOV dataset) ?

And are there any python implementation to train the tracker?

can't find trax lib

hi,I am compiling the code,I rebuild my caffe using Cmake ,but now I am having these linking problems, I download from https://github.com/votchallenge/trax/ get trax to build trax libraries and linking it,but it did not help,Do I have to rebuild trax,linking to project? Has anyone succeeded building it ? Want help ,Thank you !

errors are like followings:

[ 80%] Built target show_imagenet [ 84%] Built target show_tracker_alov [ 88%] Built target show_tracker_vot [ 92%] Built target test_tracker_alov Linking CXX executable test_tracker_vot libGOTURN.a(vot.cpp.o): In functionVOT::vot_initialize()':
vot.cpp:(.text+0x25c): undefined reference to trax_server_setup' vot.cpp:(.text+0x274): undefined reference totrax_server_wait'
vot.cpp:(.text+0x27e): undefined reference to trax_image_get_path' vot.cpp:(.text+0x29a): undefined reference totrax_server_reply'
vot.cpp:(.text+0x2de): undefined reference to trax_region_get_rectangle' vot.cpp:(.text+0x2e8): undefined reference totrax_region_release'
vot.cpp:(.text+0x2f2): undefined reference to trax_image_release' libGOTURN.a(vot.cpp.o): In functionVOT::vot_frame()':
vot.cpp:(.text+0x64d): undefined reference to trax_server_wait' vot.cpp:(.text+0x660): undefined reference totrax_image_get_path'
vot.cpp:(.text+0x675): undefined reference to trax_image_release' libGOTURN.a(vot.cpp.o): In functionVOT::vot_report(vot_region_)':
vot.cpp:(.text+0x6e6): undefined reference to trax_region_create_rectangle' vot.cpp:(.text+0x6f9): undefined reference totrax_server_reply'
vot.cpp:(.text+0x703): undefined reference to trax_region_release' libGOTURN.a(vot.cpp.o): In functionVOT::vot_quit()':
vot.cpp:(.text+0x4cc): undefined reference to trax_cleanup' collect2: error: ld returned 1 exit status CMakeFiles/test_tracker_vot.dir/build.make:175: recipe for target 'test_tracker_vot' failed make[2]: *_\* [test_tracker_vot] Error 1 CMakeFiles/Makefile2:305: recipe for target 'CMakeFiles/test_tracker_vot.dir/all' failed make[1]: **\* [CMakeFiles/test_tracker_vot.dir/all] Error 2 Makefile:75: recipe for target 'all' failed make: **\* [all] Error 2

How to use this model to do other tasks without re-train the tracker?

I am now learning this method to do other tasks and I find it not ideal, so that I modify the parameters in 'helper/bouding_box.cpp' including 'kContextFactor ' and 'kScaleFactor ' to let the tracker search in a smaller region.
But I found the output not ideal, all the bouding boxes turn out to be a small red dot finally.

My question is: is it exist a way to modify the parameters of 'sizeof search region' in order to let the tracker do other task(here I use it to track the dead object in background in order to calculate background optical flow so that I want to modify parameters to let it search in a smaller region)without re-train the tracker?

Thank you

how do `tracker_init.caffemodel` created?

According to your paper, the top fifth layer was initiated on tracker_init.caffemodel. How do you create tracker_init.caffemodel? Do you copy weigh from CaffeNet(which is 230M) to both the two sub-net to create a 460M tracker_init.caffemodel ? how can you do that?

What is the meaning of edge effects?

What is the meaning of edge effects mentioned in file image_proc.cpp ?

  • It seems edge effects related to whether remains the edge pixels as ROI ?
  • In image_proc.cpp code
    • The output_image initialized as an all black image with output_height * output_width
    • Then, the cropped_image, which is smaller than output_image, insert into the all black image.
    • So cropped result, which return to *pad_image, has a black edge with 1 pixel?

Why should we consider the edge effect?

How to add caffe using CMake

My Caffe in installed on local file. Can you share a CMakeLists file to demonstrate how to link Caffe with your project,

Thank you.

run on windows

Is there anyone, who managed to run it on Windows? I spent a lot of time just with installing caffe, but unsuccessfuly. And if you did it, have you had any issues with it? Thanks

Visualization through camera i.e on realtime frame sequences

I am trying to modify the source code to get frames from a webcam to do real-time tracking of an object. I am stuck as I am getting confused in the code. Can anyone help me with it? I tried by writing a python script to take image sequences and save it to a folder which I passed to the script. I inserted a delay in between and ran the two: capturing images and running the tracking script but it doesn't take all the images in the directory, only the frames captured before initializing tracker are used.

Save annotations only, without generating and saving the video

I'm using the bash scripts/save_videos_test.sh to generate the annotations text file and it works fine. But, I want to generate only the file containing the output annotations without generating the video that visualizes the output of GOTURN, because the video generation takes too much time for the purposes of what I'm trying to do. None of the shell scripts in the GOTURN directory accomplish this specifically. How can I create a shell script to do this?

Issues regarding Threading

Hello David!

Thank you for uploading your code! I have been able to use your code to implement a simple tracker on my webcam. It works well! However, I have issues when I put the same code into a thread; the code slows down 10 times! Does the track method of the tracker object use threading? Do you have any clue what could be responsible for this, or how I could rectify this?

Thank you,
Sincerely,
Yevgeniy

cmake has errors:

I set the path of opencv in CMakeList.txt as following:

#find_package( OpenCV REQUIRED )
set(OpenCV_LIBS "/cluster/6.2/opencv/2.4.10/lib/")
set(OpenCV_INCLUDE_DIRS "/cluster/6.2/opencv/2.4.10/include")
set(OpenCV_VERSION "2.4.10")
message("Open CV version is ${OpenCV_VERSION}")

After cmake .., I have the following warnings:

WARNING: Target "save_videos_vot" requests linking to directory "/cluster/6.2/opencv/2.4.10/lib/".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "save_videos_vot" requests linking to directory "/MyCaffe/caffe-version-rc3/build/lib".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "show_alov" requests linking to directory "/cluster/6.2/opencv/2.4.10/lib/".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "show_alov" requests linking to directory "/MyCaffe/caffe-version-rc3/build/lib".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "show_alov" requests linking to directory "/cluster/6.2/opencv/2.4.10/lib/".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "show_alov" requests linking to directory "/MyCaffe/caffe-version-rc3/build/lib".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "show_imagenet" requests linking to directory "/cluster/6.2/opencv/2.4.10/lib/".  Targets may link only to libraries.  CMake is dropping the item.
WARNING: Target "show_imagenet" requests linking to directory "/MyCaffe/caffe-version-rc3/build/lib".  Targets may
WARNING: Target "train" requests linking to directory "/cluster/6.2/opencv/2.4.10/lib/".  Targets may link only to libraries.  CMake is dropping the item.

-- Generating done
-- Build files have been written to: /MyCaffe/GOTURN/build

Then I try to make it:
[@gpu build]$ make
It gives me the following errors:

Scanning dependencies of target GOTURN
[  3%] Building CXX object CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o
In file included from /MyCaffe/GOTURN/src/helper/bounding_box.cpp:1:0:
/MyCaffe/GOTURN/src/helper/bounding_box.h:6:23: fatal error: opencv/cv.h: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o] Error 1

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.