Git Product home page Git Product logo

py-goturn's Introduction

PY-GOTURN

Update

There wont be any new updates to this repository as official Caffe is no longer maintained. But as long as you compile Caffe successfully, this repository should work as is.

Instead, try PyTorch version here.

Some of the others' work using this repository:


NOTE: Please switch to goturn-0.1 branch to try out stable version.


This is the python + Caffe implementation of GOTURN: Generic Object Tracking Using Regression Networks.

Learning to Track at 100 FPS with Deep Regression Networks,
David Held, Sebastian Thrun, Silvio Savarese,

Outputs

Car Sunshade

Why implementation in python, when C++ code is already available?

  • Easy to understand the overall pipeline of the algorithm in detail
  • Easy to experiment new ideas
  • Easy to debug and visualize the network with tools like visdom
  • Little effort in portability to other OS

Functionalites added so far

  • Training the deep network on Imagenet and ALOV dataset

  • Test code for VOT

How to train your own tracker

To train your own tracker, please follow the guide

How to test on VOT dataset

To test your own tracker on VOT2014, please follow the guide

Contact

Please write to me at [email protected], if you have any suggestions or any new functionality you like to see.

py-goturn's People

Contributors

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

py-goturn's Issues

Scaling it up

Hi, i am trying to do a proof of concept showing how Neural Network trackers could potentially be used in practical day to day scenarios.

Correct me if i am wrong, the current implementation is such that each initialized model can only track one object at a single time. This takes a few hundred of megabytes of memory off the GPU. If i were to concurrently track X number of distinct objects in the same video sequence, i would essentially need to initialize the same number of models which would most likely max out the GPU RAM. Is there a way to get around this?

Thanks.

Problems while running train_tracker.sh

When I run the file of train_tracker.sh,I got a problem :

[libprotobuf ERROR google/protobuf/text_format.cc:298] Error parsing text-format  caffe.SolverParameter: 12:14: Expected integer, got: RANDOM_SEED
WARNING: Logging before InitGoogleLogging() is written to STDERR
F1009 21:19:19.955904  3587 upgrade_proto.cpp:1101] Check failed:  ReadProtoFromTextFile(param_file, param) Failed to parse SolverParameter file: ./nets/solver.prototxt
 *** Check failure stack trace: ***
train_tracker.sh: 行 16:  3587 已放弃               (核心已转储) python -m goturn.train.train --imagenet $IMAGENET_FOLDER --alov $ALOV_FOLDER --init_caffemodel $INIT_CAFFEMODEL --train_prototxt $TRACKER_PROTO --solver_prototxt $SOLVER_PROTO --lamda_shift 5 --lamda_scale 15 --min_scale -0.4 --max_scale 0.4 --gpu_id 0

Does that mean the RANDOM_SEED not having a value?Why doesn't it have a value? In my expectation, RANDOM_SEED should have a value, what is wrong ?And how can I fix it ?

Thanks

PyTorch implementation link broken

I was looking for the PyTorch implementation of GOTURN but the link provided seems to be broken. I noticed the link was added just 3 days ago, maybe it's just a matter of time but, has anyone managed to access that link? Maybe it's just that the repository is private.

why the train loss doesn't converge?

I run the train.py without imagenet datasets and init model , all I have is alov datasets, but after 60000 iterations, I notice that the net's loss is all around 200, I try the snapshot caffemodel to track but they all go badly, is it because of the missing of the init caffemode or the imagenet datasets? thank you for your help!

Can it track by giving initial bounding box

Can your code track by giving initial bonding box of a face ? Actually as compare to OpenCV's KCF/MIL etc tracker, where you need to pass the bounding box of first frame and it will follow for subsequent frames.
I am implementing for video based scenario where i can pass the bounding box and it should followed by it.

Or tell me which python class i need to look to customise it as per the requirements.

Thanks in advance.

alov300 annotation

Hi man,
thank you for your code.
I want to train with custom video. I first apply annotation on sample images of alov dataset with rectangle but the rectangle is not correct. is the annotation of frame number correspond to image or not?
[https://ibb.co/YjZGD26](image with correspond annotation)

in another words, How I can annot my video frames?

thanks

How to run ?

Hi I am trying to do a POC based on GOTURN paper.

It would be great if you add some steps regarding the how exactly we can run this application.

error while testing

(cvenv) D:\Tracking\py-goturn\goturn\test>python show_tracker_vot.py -p tracker.prototxt -m tracker_init.caffemodel -v test.mp4
Traceback (most recent call last):
File "show_tracker_vot.py", line 8, in
from ..logger.logger import setup_logger
ValueError: attempted relative import beyond top-level package

This is the error I get while testing test file

Error - train_tracker.sh

Hello.
I have a problem running your program:

Caffe is installed in /home/llenz/wrk/lib_src/caffe.
The python stuff is installed in /home/llenz/wrk/lib_src/caffe/python

Without adding the 2nd path to the PYTHON_PATH, the program results in an ImportError: no module named caffe.

So i added the 2nd path to PYTHON_PATH and ran the command:

$ bash train_tracker.sh /home/llenz/petrack/GOTURN/datasets/ALOV300/

WARNING:root:Setting up a new session...
Exception in user code:

Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/visdom/init.py", line 548, in _send
data=json.dumps(msg),
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 581, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='localhost', port=8097): Max retries exceeded with url: /env/main (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fc5b8510850>: Failed to establish a new connection: [Errno 111] Connection refused',))

WARNING:visdom:Visdom python client failed to establish socket to get messages from the server. This feature is optional and can be disabled by initializing Visdom with use_incoming_socket=False, which will prevent waiting for this request to timeout.
[I 190128 15:14:59 train:21] Caffe path = /usr/local/caffe/python
ERROR:visdom:[Errno 111] Connection refused
[I 190128 15:14:59 train:74] Initializing caffe..
WARNING: Logging before InitGoogleLogging() is written to STDERR
E0128 15:14:59.721976 9976 common.cpp:114] Cannot create Cublas handle. Cublas won't be available.
E0128 15:14:59.723274 9976 common.cpp:121] Cannot create Curand generator. Curand won't be available.
E0128 15:14:59.723295 9976 common.cpp:141] Curand not available. Skipping setting the curand seed.
F0128 15:14:59.725180 9976 common.cpp:152] Check failed: error == cudaSuccess (30 vs. 0) unknown error
*** Check failure stack trace: ***
train_tracker.sh: line 17: 9976 Aborted (core dumped) python -m goturn.train.train --imagenet $IMAGENET_FOLDER --alov $ALOV_FOLDER --init_caffemodel $INIT_CAFFEMODEL --train_prototxt $TRACKER_PROTO --solver_prototxt $SOLVER_PROTO --lamda_shift 5 --lamda_scale 15 --min_scale -0.4 --max_scale 0.4 --gpu_id 0

For some reason the output is saying: "Caffe path = /usr/local/caffe/python, but there is no such folder.
Also i told Python where my caffe is by adding it to the Pythonpath. Also the ImportError is gone..

Please help me.
Greetings!

ModuleNotFoundError: No module named 'video'

/neural-networks/PY-GOTURN$ ./show_tracker_vot.sh
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/neural-networks/PY-GOTURN/goturn/test/show_tracker_vot.py", line 10, in
from ..loader.loader_vot import loader_vot
File "neural-networks/PY-GOTURN/goturn/loader/loader_vot.py", line 9, in
from video import video

detection on vedio

hi, nrupatnga~
I'm new on this field, i don't know how to test py-goturn on vedio. It doesn't seem to include this implementation?

Very bad in 30fps webcam, with the pretrained model

Hi, thanks for the job first!

I have a problem that the pretrained model got very poor performance, is that because I use my 30fps webcam? But I don't have a 100fps webcam, what can I do? Is it means that I should train my own model?

problem in goturn/train/train.py

In function train_video, the param of tracker_trainer.train(image_prev, image_curr, bbox_prev, bbox_prev) is wrong? maybe the second bbox_prev is bbox_curr? In GOTURN C++ source code, here is( tracker_trainer->Train(image_prev, image_curr, bbox_prev, bbox_curr);

Has anyone produced the results?

Recently I really get interests on this research. The C++ version really wastes much time to compile and config. But I am still wondering is there anyone who gets the almost performance results of origin repository?

Integration with vot-toolkit

Hi, could you please share the code that you used to integrate your tracker with the VOT-toolkit while submitting your tracker?
Thanks.

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.