• Stars
    star
    166
  • Rank 226,505 (Top 5 %)
  • Language
    Lua
  • Created over 7 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

LinkNet

This repository contains our Torch7 implementation of the network developed by us at e-Lab. You can go to our blogpost or read the article LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation for further details.

Dependencies:

  • Torch7 : you can follow our installation step specified here
  • VideoDecoder : video decoder for torch that utilizes avcodec library.
  • Profiler : use it to calculate # of paramaters, operations and forward pass time of any network trained using torch.

Currently the network can be trained on two datasets:

Datasets Input Resolution # of classes
CamVid (cv) 768x576 11
Cityscapes (cs) 1024x512 19

To download both datasets, follow the link provided above. Both the datasets are first of all resized by the training script and if you want then you can cache this resized data using --cachepath option. In case of CamVid dataset, the available video data is first split into train/validate/test set. This is done using prepCamVid.lua file. dataDistributionCV.txt contains the detail about splitting of CamVid dataset. These things are automatically run before training of the network.

LinkNet performance on both of the above dataset:

Datasets Best IoU Best iIoU
Cityscapes 76.44 60.78
CamVid 69.10 55.83

Pretrained models and confusion matrices for both datasets can be found in the latest release.

Files/folders and their usage:

  • run.lua : main file
  • opts.lua : contains all the input options used by the tranining script
  • data : data loaders for loading datasets
  • [models] : all the model architectures are defined here
  • train.lua : loading of models and error calculation
  • test.lua : calculate testing error and save confusion matrices

There are three model files present in models folder:

  • model.lua : our LinkNet architecture
  • model-res-dec.lua : LinkNet with residual connection in each of the decoder blocks. This slightly improves the result but we had to use bilinear interpolation in residual connection because of which we were not able to run our trained model on TX1.
  • nobypass.lua : this architecture does not use any link between encoder and decoder. You can use this model to verify if connecting encoder and decoder modules actually improve performance.

A sample command to train network is given below:

th main.lua --datapath /Datasets/Cityscapes/ --cachepath /dataCache/cityscapes/ --dataset cs --model models/model.lua --save /Models/cityscapes/ --saveTrainConf --saveAll --plot

License

This software is released under a creative commons license which allows for personal and research use only. For a commercial license please contact the authors. You can view a license summary here: http://creativecommons.org/licenses/by-nc/4.0/

More Repositories

1

ENet-training

Lua
351
star
2

torch-toolbox

A collection of snippets and libraries for Torch from e-Lab
C
199
star
3

VideoSensors

Android application that records video and motion data from an android smartphone simultaneously.
Java
130
star
4

pytorch-linknet

Python
127
star
5

pytorch-demos

Python
84
star
6

pytorch-toolbox

This repository contains several tools useful for pytorch users.
Jupyter Notebook
46
star
7

pytorch-CortexNet

Jupyter Notebook
45
star
8

Torch7-profiling

State Of The Art deep neural network models
Lua
37
star
9

crawl-dataset

Python
34
star
10

torch-prednet

Lua
19
star
11

th2caffe

A torch-nn to caffe converter for specific layers.
Protocol Buffer
16
star
12

SyntaxShaper

Powering Agent Chains by Constraining LLM Outputs
Python
9
star
13

references

useful references to our research and interests
7
star
14

clustering-learning

clustering-learning
Lua
6
star
15

indoor-EYE

Object recognition application for indoor environment
Lua
6
star
16

apps-android

C
6
star
17

OpalKelly-Verilog-Templates

Simple templates to use as starting points with an OpalKelly project.
Verilog
4
star
18

apps-iOs

applications of neural nets for iOs
C
4
star
19

tutorials

text and docs and tutorials
4
star
20

LCMS2012_JAN-Verilog

Verilog for LCMS2012_JAN chip using XEM6010-LX150 fpga
Verilog
4
star
21

LCMS-GUI

GUI controller for the LCMS device using wxWidgets
C++
3
star
22

eex

Torch extras from e-Lab
C
3
star
23

Actions

Python
3
star
24

GameMatch

Lua
2
star
25

turtlebot

C++
2
star
26

torch-PredNetNew

Lua
2
star
27

LCMS-PCB

LCMS-PCB
2
star
28

vid2img

Image dataset from videos
Lua
1
star
29

Forestry_Student

Python
1
star
30

OpalKelly-GUI-Template

Application GUI template written in wxWigets C++ used to comunicate with Opal Kelly devices.
C++
1
star
31

e-Lab.github.io

elab blog website
JavaScript
1
star