Giter Site home page Giter Site logo

rolo's Introduction

ROLO


Project Page: http://guanghan.info/projects/ROLO/

Overview

ROLO is short for Recurrent YOLO [1], aimed at simultaneous object detection and tracking.

With the regression capability of LSTMs both spatially and temporally, ROLO is able to interpret a series of high-level visual features directly into coordinates of tracked objects. By concatenating high-level visual features with YOLO detection results, ROLO is spatially supervised into specific targets.

The regression is two-folds: (1) The regression within one unit, i.e., between the visual features and the concatenated region representations. LSTM is capable of inferring region locations from the visual features when they are concatenated to be one unit. (2) The regression over the units of a sequence, i.e., between concatenated features over a sequence of frames.

The supervision is helpful in two aspects: (1) When LSTM interpret the high-level visual features, the preliminary location inference helps to regress the features into the location of a certain visual elements/cues. The spatially supervised regression acts as an online appearance model. (2) Temporally, the LSTM learns over the sequence units to restrict the location prediction to a spatial range.

ROLO is currently an offline approach, and is expected to gain a performance boost with proper online model updating. It is still a single object tracker, and data association techniques are not yet explored for the simultaneous tracking of multiple targets.


Prerequisites

  • Python 2.7 or Python 3.3+
  • Tensorflow
  • Scipy

Getting Started

1. Download Data and Pre-trained Models

As a generic object detector, YOLO can be trained to recognize arbitrary objects. Nevertheless, as the performance of ROLO depends on the YOLO part, we choose the default YOLO small model in order to provide a fair comparison. We believed it unfair to give credit to the tracking module if we train a customized YOLO model. The model is pre-trained on ImageNet dataset and finetuned on VOC dataset, capable of detecting objects of only 20 classes. We therefore picked 30 out of 100 videos from the benchmark OTB100, where the tracking targets belong to these classes. The subset is so-called OTB30.

DATA

Models

Evaluation

2. Run Demo

Reproduce the results with the pre-trained model:

python ./experiments/testing/ROLO_network_test_all.py

Or download the results at Results.

Run video Demo:

./python ROLO_demo_test.py

3. Training and Testing

As deep learning applications get mature, it will be more efficient to have multi-functional networks consisted of orthogonal modules. Feature representation, in this case, had better be trained separately to provide shared features. Pre-training of visual features from ImageNet are skipped, as were discussed already in YOLO. We focus on training the LSTM module.

Experiment 1:

The limitation of offline tracking is that the offline models need to be trained with large amounts of data, which is hard to find in publicly available object tracking benchmarks. Even considering the whole 100 videos of OTB100 [2], the amount is still smaller than that of image recognition tasks by order of magnitudes. Therefore trackers are prone to over-fitting.

In order to test the generalization ability of ROLO, we conduct experiment 1. Training on 22 videos and testing on the rest 8 videos of OTB30, the model is able to outperform all the traditional trackers from the benchmark [2].

We also test on 3 additional videos that are not selected for OTB30, as their ground truth is face but not human body. Since face is not included in the default YOLO model, YOLO will detect human body instead and ROLO will be supervised to track the human body. Demo videos are available here. Video 1, Video 2, Video 3.

<iframe width="420" height="315" src="https://www.youtube.com/embed/7dDsvVEt4ak" frameborder="0" allowfullscreen></iframe>

To reproduce experiment 1:

  • Training:

     python ./experiments/training/ROLO_step6_train_20_exp1.py
    
  • Testing:

     python ./experiments/testing/ROLO_network_test_all.py
    

Experiment 2:

If the model is inevitably trained with limited data, one way to remedy this is to train the model with similar dynamics. (Same strategy is used by trackers that employ online model updating). We train a 2nd LSTM model with the first 1/3 frames of OTB30 and test on the rest frames. Results show that performance has improved. We find that, once trained on auxiliary frames with the similar dynamics, ROLO will perform better on testing sequences. This attribute makes ROLO especially useful in surveillance environments, where models can be trained offline with pre-captured data.

To reproduce experiment 2:

  • Training:

     python ./experiments/training/ROLO_step6_train_30_exp2.py
    
  • Testing:

     python ./experiments/testing/ROLO_network_test_all.py
    

Experiment 3:

Considering this attribute observed in experiment 2, we experiment incrementing training frames. Training with full frames but using only 1/3 ground truths will give an additional boost to the performance.

To reproduce experiment 3:

  • Training:

     python ./experiments/training/ROLO_step6_train_30_exp3.py
    
  • Testing:

     python ./experiments/testing/ROLO_network_test_all.py
    

Limitations

Note that experiment 2&3 use 1/3 training frames. Upon evaluation, we should exclude these frames. Note also that using different frames from the same video sequences for training and testing can still be problematic. An online updating scheme for ROLO will be very useful in the future.

We will update experiments using customized YOLO models, in order to be able to detect arbitrary objects and therefore test on the whole OTB100 dataset, where we will also be able to train and test on different datasets to perform cross-validation.

Parameter Sensitivity

Repeat experiment 2 with different step sizes: [1, 3, 6, 9]

python ./experiments/testing/ROLO_step1_train_30_exp2.py
python ./experiments/testing/ROLO_step3_train_30_exp2.py
python ./experiments/testing/ROLO_step6_train_30_exp2.py
python ./experiments/testing/ROLO_step9_train_30_exp2.py

4. Visualization with Heatmap

  • Demo:
     python ./ROLO_demo_heat.py
    
  • Training:
     python ./heatmap/ROLO_heatmap_train.py
    
  • Testing:
     python ./heatmap/ROLO_heatmap_test.py
    

  • Blue: YOLO detection
  • Red: Ground Truth

5. Performance Evaluation

python ./ROLO_evaluation.py

6. Results

More Qualitative results can be found in the project page. Quantitative results please refer to the arxiv paper.

  • Blue: YOLO detection
  • Green: ROLO Tracking
  • Red: Ground Truth

License

ROLO is released under the Apache License Version 2.0 (refer to the LICENSE file for details).


Citation

The details are published as a technical report on arXiv. If you use the code and models, please cite the following paper: arXiv:1607.05781.

@article{ning2016spatially,
  title={Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking},
  author={Ning, Guanghan and Zhang, Zhi and Huang, Chen and He, Zhihai and Ren, Xiaobo and Wang, Haohong},
  journal={arXiv preprint arXiv:1607.05781},
  year={2016}
}

Reference

[1] Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." CVPR (2016).

[2] Wu, Yi, Jongwoo Lim, and Ming-Hsuan Yang. "Object tracking benchmark." IEEE Transactions on Pattern Analysis and Machine Intelligence 37.9 (2015): 1834-1848.

rolo's People

Contributors

guanghan 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rolo's Issues

Don't work on Tensorflow 1.5.0

I'm trying to Reproduce the results with the pre-trained model and got a mistake:

python ROLO_for_TF/experiments/testing/ROLO_network_test_all.py /usr/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment. warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.') ROLO init Utils init self.cfgPath= Default: running ROLO test. Building ROLO graph... Traceback (most recent call last): File "ROLO_for_TF/experiments/testing/ROLO_network_test_all.py", line 275, in <module> main(' ') File "ROLO_for_TF/experiments/testing/ROLO_network_test_all.py", line 271, in main ROLO_TF(argvs) File "ROLO_for_TF/experiments/testing/ROLO_network_test_all.py", line 95, in __init__ self.ROLO(argvs) File "ROLO_for_TF/experiments/testing/ROLO_network_test_all.py", line 235, in ROLO self.build_networks() File "ROLO_for_TF/experiments/testing/ROLO_network_test_all.py", line 127, in build_networks self.lstm_module = self.LSTM_single('lstm_test', self.x, self.istate, self.weights, self.biases) File "ROLO_for_TF/experiments/testing/ROLO_network_test_all.py", line 110, in LSTM_single outputs, state = tf.contrib.rnn.static_rnn(cell, [_X[step]], state) File "/tf15/local/lib/python2.7/site-packages/tensorflow/python/ops/rnn.py", line 1310, in static_rnn (output, state) = call_cell() File "/tf15/local/lib/python2.7/site-packages/tensorflow/python/ops/rnn.py", line 1297, in <lambda> call_cell = lambda: cell(input_, state) File "/tf15/local/lib/python2.7/site-packages/tensorflow/python/ops/rnn_cell_impl.py", line 292, in __call__ *args, **kwargs) File "/tf15/local/lib/python2.7/site-packages/tensorflow/python/layers/base.py", line 652, in __call__ outputs = self.call(inputs, *args, **kwargs) File "/tf15/local/lib/python2.7/site-packages/tensorflow/python/ops/rnn_cell_impl.py", line 770, in call (c_prev, m_prev) = state File "/tf15/local/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 396, in __iter__ "Tensorobjects are not iterable when eager execution is not " **TypeError:Tensorobjects are not iterable when eager execution is not enabled. To iterate over this tensor usetf.map_fn.**

So the question is what i should do?
Please help/

ROLO outputs are always wrong, on the upper left corner

Hi guys,
I ran the model and the code on a few given sequences, and I see that always the ROLO outputs are wrong, they are very small bounding boxes located in the upper left corner of the frames.
I started debugging it, I suspect that the problem is in the initialization.
I print self.pred_location (by:
self.pred_location = tf.Print(self.pred_location,[self.pred_location])
And get very small values from the beginning
(For example: [-0.0150853144 -0.0391756557 0.0126847308 0.0464992523], which basically is a small bb, a few pixels wide and height, close to the upper left pixel)
I think that the first assignment actually ruins the whole process.
Anyone has similar thoughts?

results in application is not good and some other problems

In experiment, I find ROLO is not better than YOLO, and the IOU is not low because the ROLO usually give a smaller bounding box.
Secondly, in the ROLO project, the author only choose best examples to show, in Car35 video, and Couple(we randomly choose several), the ROLO cannot tracking objection: the bounding box is very far away from groundtruth.
Thirdly, in the ROLO paper, 4102 = 4096 + 6. the 6 dimension (x, y ,w, h, c ,p) feature is used no difference with 4096 dimension deep feature. Form the experiments, I think the LSTM has not learned to take fully advantage of prior experience of bounding box.

The method make sense at first glance, but there are problems after careful thinking.

ps: the code is not robust, quit time was spent on modify it to run our own datasets.

How can i use the codes in the video without ground truth?

@Guanghan
Hi !
I m reading the codes now. But i find when i want to test the algorithm. Test images also need to have ground truth to get the best location. I m confused.. Do i misunderstand something? So how can i use the codes in the video without ground truth,
Best wishes

Use YOLO to train ROLO?

Can we use hand-corrected and verified yolo results from a video to train rolo or not a good idea?

How to run MOLO?

I'd like to use the multiple object tracking on a video file but I'm not sure how to call the MOLO script properly.

In MOLO_network_test.py, I tried using the file name of my video as the value of the fromfile variable in the ROLO_TF class and using 'model_demo.ckpt' as the value of the rolo_weights_file variable. I then ran

MOLO_network_test.py

hoping for the best, but the error raise TypeError("'Tensor' object is not iterable.") occurred.
Is this even the correct way to call this script? How do I pass any input video file to it? Where does the output land?

I'd be very thankful for any help.

Ran out of memory

Hello everybody,

With my Ubuntu 14.04,
Nvidia 740M,
and Cuda 7.5

i run " python ./experiments/testing/ROLO_network_test_all.py "
which caused the problem mentioned here. Any solutions proposed please.
Thank you a lot.

_________***********************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
W tensorflow/core/common_runtime/bfc_allocator.cc:271] Ran out of memory trying to allocate 513.50MiB. See logs for memory state.
W tensorflow/core/framework/op_kernel.cc:900] Resource exhausted: OOM when allocating tensor with shape[8204,16408]
Traceback (most recent call last):
File "./experiments/testing/ROLO_network_test_all.py", line 273, in
main(' ')
File "./experiments/testing/ROLO_network_test_all.py", line 269, in main
ROLO_TF(argvs)
File "./experiments/testing/ROLO_network_test_all.py", line 93, in init
self.ROLO(argvs)
File "./experiments/testing/ROLO_network_test_all.py", line 264, in ROLO
self.testing(x_path, y_path)
File "./experiments/testing/ROLO_network_test_all.py", line 154, in testing
sess.run(init)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 340, in run
run_metadata_ptr)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 564, in _run
feed_dict_string, options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 637, in _do_run
target_list, options, run_metadata)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 659, in _do_call
e.code)
tensorflow.python.framework.errors.ResourceExhaustedError: OOM when allocating tensor with shape[8204,16408]
[[Node: RNN/LSTMCell/W_0/Initializer/random_uniform/RandomUniform = RandomUniformT=DT_INT32, _class=["loc:@RNN/LSTMCell/W_0"], dtype=DT_FLOAT, seed=0, seed2=0, _device="/job:localhost/replica:0/task:0/gpu:0"]]
Caused by op u'RNN/LSTMCell/W_0/Initializer/random_uniform/RandomUniform', defined at:
File "./experiments/testing/ROLO_network_test_all.py", line 273, in
main(' ')
File "./experiments/testing/ROLO_network_test_all.py", line 269, in main
ROLO_TF(argvs)
File "./experiments/testing/ROLO_network_test_all.py", line 93, in init
self.ROLO(argvs)
File "./experiments/testing/ROLO_network_test_all.py", line 233, in ROLO
self.build_networks()
File "./experiments/testing/ROLO_network_test_all.py", line 125, in build_networks
self.lstm_module = self.LSTM_single('lstm_test', self.x, self.istate, self.weights, self.biases)
File "./experiments/testing/ROLO_network_test_all.py", line 108, in LSTM_single
outputs, state = tf.nn.rnn(cell, [X[step]], state)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn.py", line 143, in rnn
(output, state) = call_cell()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn.py", line 136, in
call_cell = lambda: cell(input
, state)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn_cell.py", line 352, in call
dtype, self._num_unit_shards)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn_cell.py", line 216, in _get_concat_variable
sharded_variable = _get_sharded_variable(name, shape, dtype, num_shards)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn_cell.py", line 246, in _get_sharded_variable
dtype=dtype))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 339, in get_variable
collections=collections)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 262, in get_variable
collections=collections, caching_device=caching_device)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 158, in get_variable
dtype=variable_dtype)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variables.py", line 209, in init
dtype=dtype)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variables.py", line 275, in _init_from_args
self._initial_value = ops.convert_to_tensor(initial_value(),
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/variable_scope.py", line 149, in
init_val = lambda: initializer(shape.as_list(), dtype=dtype)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/init_ops.py", line 200, in _initializer
dtype, seed=seed)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/random_ops.py", line 182, in random_uniform
seed2=seed2)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_random_ops.py", line 96, in _random_uniform
seed=seed, seed2=seed2, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.py", line 655, in apply_op
op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2154, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1154, in init
self._traceback = _extract_stack()

LSTM_single

i found many errors in this function
first:
in this function , the weight, and bias not compute

second:
the name didn't use, when you use the paramter, it will give the error , so i think the name should be set to variable_scope, but how to set

all kinds of bugs ...

hello everyone,
I'm trying to make the model run, but currently there's all kinds of bugs. The first challenge is it is the most unclear README file I've ever found. There's no clue where to start, what is needed, data path changing or anything. I'm wondering is there anyone ever re-product the performance in the paper. Basically, I've just read the pre-trained results with so-called DEMO-file after several days debugging. Not even to mention the code does not support PYTHON 3 tensorflow1.0 or even OpenCV3.0. Also, files are missing (heat results file), file locations are also not mentioned in the README file.
While, I decided to give up and move on with other papers. It's quite badly documented and the demo results seem even not fair.

ValueError: cannot reshape array of size 0 into shape (3,4102)

/ROLO$ python ./experiments/testing/ROLO_network_test_all.py -/home/lh/Downloads/MOT16-03.mp4
ROLO init
Utils init
self.cfgPath=
Default: running ROLO test.
Building ROLO graph...
Loading complete!

('TESTING ROLO on video sequence: ', 'Human2', '')
Loading complete!

Traceback (most recent call last):
File "./experiments/testing/ROLO_network_test_all.py", line 275, in
main(' ')
File "./experiments/testing/ROLO_network_test_all.py", line 271, in main
ROLO_TF(argvs)
File "./experiments/testing/ROLO_network_test_all.py", line 94, in init
self.ROLO(argvs)
File "./experiments/testing/ROLO_network_test_all.py", line 266, in ROLO
self.testing(x_path, y_path)
File "./experiments/testing/ROLO_network_test_all.py", line 168, in testing
batch_xs = self.rolo_utils.load_yolo_output_test(x_path, self.batch_size, self.num_steps, id) # [num_of_examples, num_input] (depth == 1)
File "/home/lh/ROLO/utils/ROLO_utils.py", line 333, in load_yolo_output_test
yolo_output_batch= np.reshape(yolo_output_batch, [batch_size*num_steps, 4102])
File "/usr/local/lib/python2.7/dist-packages/numpy/core/fromnumeric.py", line 257, in reshape
return _wrapfunc(a, 'reshape', newshape, order=order)
File "/usr/local/lib/python2.7/dist-packages/numpy/core/fromnumeric.py", line 62, in _wrapfunc
return _wrapit(obj, method, *args, **kwds)
File "/usr/local/lib/python2.7/dist-packages/numpy/core/fromnumeric.py", line 42, in _wrapit
result = getattr(asarray(obj), method)(*args, **kwds)
ValueError: cannot reshape array of size 0 into shape (3,4102)

I have this error
what could I do? 👍
@Guanghan

tf.nn.rnn for tensorflow v1.0.1

i am trying to train ROLO_step6_train_20_exp1.py after converting it with tensorflow upgrade script. But still i am facing this issue and i have raw_rnn and dynamic_rnn . but with both there is also a error.Please let me know the fix if anybody trained this on v1.0.1

File "updated1_ROLO_step6_train_20_exp1.py", line 117, in LSTM_single outputs, state = tf.nn.rnn(cell, [_X[step]], state) AttributeError: 'module' object has no attribute rnn

The predicted location seems to be very different from the groundtruth...

Hi, Dr. Ning
I am now trying your first step, namely, simply reproducing the results with the pre-trained model with the "ROLO_network_test_all.py" code. I have downloaded "model_demo.ckpt" and ran the codes. The codes seems to be working, but I am a little confused about the results:
(The following are the results of the first and second iteration, and I uncommented the codes to print out "batch_ys" and "pred_location", which seems to be the ground truth and the predicted location. However, the results are as follows:)
('Batch_ys: ', array([[ 0.51145833, 0.64296875, 0.19791667, 0.5078125 ]]))
('ROLO Pred: ', array([[-0.07923603, -0.10261807, 0.09152682, 0.03067834]], dtype=float32))
('len(pred) = ', 1)
('ROLO Pred in pixel: ', -38.033294677734375, -65.675563812255859, 43.932874202728271, 19.634140729904175)
('correct_prediction int: ', array([[0, 0, 0, 0]]))
Iter 0, Minibatch Loss= 28.594887

('Batch_ys: ', array([[ 0.51354167, 0.64296875, 0.19791667, 0.5078125 ]]))
('ROLO Pred: ', array([[-0.07972586, -0.10288554, 0.09197099, 0.03046498]], dtype=float32))
('len(pred) = ', 1)
('ROLO Pred in pixel: ', -38.268413543701172, -65.846743583679199, 44.146074056625366, 19.497586488723755)
('correct_prediction int: ', array([[0, 0, 0, 0]]))
Iter 1, Minibatch Loss= 28.683752

It seems that, the Batch_ys(groundtruth) are very different from the ROLO Pred(ROLO predictions). Could you kindly tell me where did I do wrong? Thank you very much! @Guanghan

HOW CAN I TRAIN MY OWN VIDEO

Is their any way to train our own video on rolo model. and how i create groundtruth_rect.txt , yolo out ,rolo_out_test file for my video please provide step bt step guid on it.

不需要图像信息??

您好,我看了代码,lstm用到历史的检测到的位置信息,即yolo,但是训练和测试代码中,都没有输入序列图片,为什么呢?

Suggesting different image printing for 3rd party script sort_yolo.py

Hello,

I tried to use your code for inspiration while doing tracking with different tool (YOLO+SORT) and realised matplotlib is painfully slow. I would suggest changing this part to use cv2. For me speed has gone from 5 fps to 10 fps for Full HD video. I could even try to make pull request if I could find some time in the future.

YOLO_small.ckpt

Where can I get the YOLO_small.ckpt file used in the YOLO_network.py file from the 3rd party directory?

Evaluation

How can I produce OPE, SRE, TRE for my own data?

ImportError: No module named tf.models.rnn

running this first command " ./experiments/testing/ROLO_network_test_all.py " gave me this error :
Traceback (most recent call last):
File "./../experiments/testing/ROLO_network_test_all.py", line 30, in
from tf.models.rnn import rnn, rnn_cell
ImportError: No module named tf.models.rnn

ROLO VS YOLO?

If detection is needed to do for every frame, what's the point of rolo. For I think only yolo enough do predict the bounding box, with simple iou, we can implement the track, so what this rolo do different with a detection model?

how to get the yolo output data?

@Guanghan Hello Guanghan, I want to apply your code to test in my video data. But I confused how to get the yolo output in my data from your method. Also, I found that your offered DATA /yolo_output/ *.npy file have array with 4102 dims. In this array, the lastest 6 data are the coordinates of object obtained from yolo as you said in paper. so I have question about how did you choose the object coordinate information from all yolo output objects' coordinate information.

best wishes!

Bad link in Readme

In the readme the results link doesn't point to anything

Or download the results at [Results](http://).

Molo model?

hi, I want to test the multi-object tracking with rolo, where can I find the

"model_MOT.ckpt" file

thank you!

Fine tuning

How to fine tune your model?
I don't have sufficient data to retrain your model from scratch.
I want to fine tune your model on my data which has only two classes ?

Problem with LSTM when running on TensorFlow 0.11

I am trying to reproduce the results of the demo using the pretrained model with the script 'ROLO_network_test_all.py' but I am running into difficulty building the graph using TensorFlow 0.11.

The first issue is the line from tensorflow.models.rnn import rnn, rnn_cell which throws the error message:

Traceback (most recent call last):
File "ROLO_network_test_all.py", line 29, in
from tensorflow.models.rnn import rnn, rnn_cell
File "/usr/local/lib/python2.7/dist-packages/tensorflow/models/rnn/rnn.py", line 21, in
raise ImportError("This module is deprecated. Use tf.nn.rnn_* instead.")
ImportError: This module is deprecated. Use tf.nn.rnn_* instead.

AS you are already calling tf.nn.rnn and tf.nn.rnn_cell I have commented this line out, but when I do that I get this error message:

WARNING:tensorflow:<tensorflow.python.ops.rnn_cell.LSTMCell object at 0x7f6f88ed0b50>: The input_size parameter is deprecated.
Traceback (most recent call last):
File "ROLO_network_test_all.py", line 271, in
main(' ')
File "ROLO_network_test_all.py", line 267, in main
ROLO_TF(argvs)
File "ROLO_network_test_all.py", line 89, in init
self.ROLO(argvs)
File "ROLO_network_test_all.py", line 231, in ROLO
self.build_networks()
File "ROLO_network_test_all.py", line 123, in build_networks
self.lstm_module = self.LSTM_single('lstm_test', self.x, self.istate, self.weights, self.biases)
File "ROLO_network_test_all.py", line 106, in LSTM_single
outputs, state = tf.nn.rnn(cell, [X[step]], state)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn.py", line 226, in rnn
(output, state) = call_cell()
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn.py", line 213, in
call_cell = lambda: cell(input
, state)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/rnn_cell.py", line 483, in call
(c_prev, m_prev) = state
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 499, in iter
raise TypeError("'Tensor' object is not iterable.")
TypeError: 'Tensor' object is not iterable.

I tried to troubleshoot the problem myself, but I can't find the solution. I had presumed that the fact that the input_size parameter of the LSTMCell object is deprecated that that was causing some problem further down the line but I am not sure.

What version of TensorFlow did you use when building this code?

model_step3_exp1_old.ckpt

Hello,,
I have been trying to run the ROLO_network_test_all.py code. However, I keep getting this error
ValueError: Restore called with invalid save path /u03/Guanghan/dev/ROLO-dev/output/ROLO_model/model_step3_exp1_old.ckpt

Can anyone tell me how to go around this issue?
I would deeply appreciate it.

When training, why it requires the pre-trained model to be put in the output directory?

I attempted to run the training experiments of ROLO, Taking experiments/training/ROLO_step1_train_30_exp2.py for example:
after I set the rolo_weights_file = 'output/ROLO_model/model_step1_exp2.ckpt in line 63 to a local directory that I created, the program kept returns the error saying Restore called with invalid save path.
I tried downloaded the model_step1_exp2.ckpt file from the given link and put it in the directory. Then the training works fine.
So my question is why the training process require a pre-trained model to exist in the output directory?

running ROLO on android

can anyone please tell me how to run the object detection inference using the ROLO network on android?

rolo_weights_file

I am trying to run ROLO_network_test_single.py, but I can't because of misiing weights file
/u03/Guanghan/dev/ROLO-dev/model_dropout_20.ckpt
Where can I get it, or can I use any other file available here instead? I tried model_demo.ckpt for available for Demo, but it didn't help,

Error output:
InvalidArgumentError (see above for traceback): Unsuccessful TensorSliceReader constructor: Failed to get matching files on /u03/Guanghan/dev/ROLO-dev/output/ROLO_model/model_30_2_nd_newfit.ckpt: Not found: /u03/Guanghan/dev/ROLO-dev/output/ROLO_model; No such file or directory
[[Node: save/RestoreV2_1 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save/Const_0_0, save/RestoreV2_1/tensor_names, save/RestoreV2_1/shape_and_slices)]]
[[Node: save/RestoreV2_2/_1 = _Recvclient_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_14_save/RestoreV2_2", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"]]

output/trainging-20-log.txt

when I ran ROLO_step6_train_20_exp1.py, I met this question ,No such file or directory: 'output/trainging-20-log.txt'

NotFoundError

Hi , I have this error when I want to train step 6 of exp1 or exp2:
NotFoundError: Tensor name "rnn/lstm_cell/weights" not found in checkpoint files C:/My files/ROLO/ROLO-master/experiments/training/model_step6_exp2.ckpt

Do you have any similar problem and how do you solve it?

ValueError: Variable rnn/lstm_cell/kernel does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=None in VarScope?

I use tensorflow1.3+python3.5 in windows,so i change the code like this:
def LSTM_single(self, name, _X, _istate, _weights, _biases):
with tf.device('/gpu:0'):
# input shape: (batch_size, n_steps, n_input) 1-3-5002
_X = tf.transpose(_X, [1, 0, 2]) # permute num_steps and batch_size
# Reshape to prepare input to hidden activation
_X = tf.reshape(_X, [self.num_steps * self.batch_size, self.num_input]) # (num_steps*batch_size, num_input)
# Split data because rnn cell needs a list of inputs for the RNN inner loop
#_X = tf.split(0, self.num_steps, _X) # n_steps * (batch_size, num_input)
#x = tf.split(x, n_steps, 0) 1.2之后的版本改了
_X = tf.split(_X, self.num_steps, 0)

    cell = tf.contrib.rnn.LSTMCell(self.num_input,state_is_tuple=False) #tf.nn.rnn_cell
    state = _istate
    for step in range(self.num_steps):
         outputs, state = tf.contrib.rnn.static_rnn(cell, [_X[step]],state, dtype=tf.float32) #tf.nn.rnn  tf.nn.rnn_cell.BasicLSTMCell 
    tf.get_variable_scope().reuse_variables()
    return outputs

when I run ROLO_network_test_all.py there is a error like this:
ValueError: Variable rnn/lstm_cell/kernel does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=None in VarScope?
how to sovle it? maybe we can discuss it . my email:[email protected]

model_step3_exp1_old.ckpt

ValueError:使用无效保存路径调用恢复/u03/Guanghan/dev/ROLO-dev/output/ROLO_model/model_step3_exp1_old.ckpt
请问这个问题要怎么解决 ,我没有找到model_step3_exp1_old.ckpt

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.