aseuteurideu / ADNet_pytorch

ADNet implementation on pytorch

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ADNet-pytorch

Implementation of ADNet (https://sites.google.com/view/cvpr2017-adnet) in PyTorch 0.4.1.

References:

  1. ADNet Matlab code. From my test, published weight has distance precision ~76%
  2. ADNet IEEE transaction on Neural Networks and Learning Systems 2018
  3. ADNet CVPR 2017

This implementation still cannot reproduce same performance with paper. Current performance distance (20px) precision with couple of test trials (each row is each trial):

SL SL+RL SL, nomd SL+RL, nomd
75.3% 73.3% 54.9% 56.5%
70.7% 69.2% 59.4% 47.1%
69.0% 71.0% 55.3% 49.3%
68.7% 72.9% 54.5% 57.6%
75.5% 68.9% 54.5%
69.4%

SL: Supervised Learning. RL: Reinforcement Learning, nomd: without multi-domain training

Inputs are welcome (especially RL part). Also currently cannot use multiple GPU (set CUDA_VISIBLE_DEVICES environment variable to select one GPU, if there are multiple GPUs in the system)

TODO:

  • Achieve ADNet Matlab's performance
  • multiple GPU
  • ALOV dataset training (to achieve paper performance)

Requirements:

Structure

├── datasets 
        (wrapper for datasets)
        ├── data
                ├── otb   
                        ├── Basketball
                                ├── img
                                        ├── ....jpg
                                ├── groundtruth_rect.txt
                        ├── Biker
                                ├── img
                                        ├── ....jpg
                                ├── groundtruth_rect.txt
                        ├── (continue till last class)
                                
                ├── vot13
                        ├── bicycle
                                ├── ....jpg
                                ├── camera_motion.label
                                ├── groundtruth.txt
                                ├── (and other files)
                        ├── bolt    
                                ├── (similar structure with bicycle)
                        ├── (continue till last class)
                ├── vot14
                        ├── (similar structure with vot13)
                ├── vot15
                        ├── (similar structure with vot13)
├── mains
        (main.py for various datasets and tasks)
        ├── result_on_test_images
        ├── weights
        ├── (various main python files)
├── models
        (network descriptions)
├── options
        (template parser for command line inputs)
├── trainers
        (define how model's forward / backward and logs)
        ├── weights
                (the saved trained weights)
├── utils
        (toolbox for drawing and scheduling)
        ├── videolist
                ├── vot13-otb.txt
                ├── vot14-otb.txt
                ├── vot15-otb.txt
        ├── (various python files)
├── scripts
        (scripts for replicating experiement results)
├── work
        (default folder to store logs/models)
├── vggm.pth
        (the vggm weights for the base network)

Usage examples

  • ADNet - train with SL & RL
    python mains/ADNet.py --visualize True

  • ADNet_test

    python ADNet_test.py --save_result_images results_on_test_images --display_images False
  • ADNet_ratiosamples_0.7

    python ADNet_test.py --save_result_images results_on_test_images --display_images False --pos_samples_ratio 0.7

  • Examples on creating plot
    python create_plots.py --bboxes_folder results_on_test_images/ADNet_RL_-0.5 --show_plot False --save_plot_folder results_on_test_images/ADNet_RL_-0.5

About

ADNet implementation on pytorch


Languages

Language:Python 99.9%Language:Shell 0.1%