All Projects → ayziksha → DSIN

ayziksha / DSIN

Licence: other
Deep Image Compression using Decoder Side Information (ECCV 2020)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to DSIN

AudioEffectDynamics
Dynamics Processor (Gate, Compressor & Limiter) for the Teensy Audio Library
Stars: ✭ 23 (-41.03%)
Mutual labels:  compression
handlers
Go's HTTP handlers I use in my projects
Stars: ✭ 53 (+35.9%)
Mutual labels:  compression
pyrsia
Decentralized Package Network
Stars: ✭ 103 (+164.1%)
Mutual labels:  distributed
dtmcli-php
a php client for distributed transaction framework dtm.
Stars: ✭ 26 (-33.33%)
Mutual labels:  distributed
Cherry-Node
Cherry Network's node implemented in Rust
Stars: ✭ 72 (+84.62%)
Mutual labels:  distributed
oceanbase
OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.
Stars: ✭ 4,466 (+11351.28%)
Mutual labels:  distributed
Tools Merge Image PointCloud
Project the PointCloud to the image & Generate the LiDAR PointCloud with color.
Stars: ✭ 39 (+0%)
Mutual labels:  kitti
JPQ
CIKM'21: JPQ substantially improves the efficiency of Dense Retrieval with 30x compression ratio, 10x CPU speedup and 2x GPU speedup.
Stars: ✭ 39 (+0%)
Mutual labels:  compression
shaper
A C++ tool for 3D reconstruction from parallel 2D sections
Stars: ✭ 69 (+76.92%)
Mutual labels:  reconstruction
optuna-examples
Examples for https://github.com/optuna/optuna
Stars: ✭ 238 (+510.26%)
Mutual labels:  distributed
tthresh
C++ compressor for multidimensional grid data using the Tucker decomposition
Stars: ✭ 35 (-10.26%)
Mutual labels:  compression
scalecube-config
ScaleCube Config is a configuration access management library for JVM based distributed applications
Stars: ✭ 15 (-61.54%)
Mutual labels:  distributed
vbz compression
VBZ compression plugin for nanopore signal data
Stars: ✭ 31 (-20.51%)
Mutual labels:  compression
zlib
Compression and decompression in the gzip and zlib formats
Stars: ✭ 32 (-17.95%)
Mutual labels:  compression
minibsdiff
A miniature, portable version of bsdiff.
Stars: ✭ 115 (+194.87%)
Mutual labels:  compression
hasmin
Hasmin - A Haskell CSS Minifier
Stars: ✭ 55 (+41.03%)
Mutual labels:  compression
rearq
A distributed task queue built with asyncio and redis, with built-in web interface
Stars: ✭ 81 (+107.69%)
Mutual labels:  distributed
kitti-A-LOAM
Easy description to run and evaluate A-LOAM with KITTI-data
Stars: ✭ 28 (-28.21%)
Mutual labels:  kitti
pcc geo cnn
Learning Convolutional Transforms for Point Cloud Geometry Compression
Stars: ✭ 44 (+12.82%)
Mutual labels:  compression
mxnet-E2FAR
MXNET/Gluon Implementation of End-to-end 3D Face Reconstruction with Deep Neural Networks
Stars: ✭ 76 (+94.87%)
Mutual labels:  reconstruction

Deep Image Compression using Decoder Side Information

alt text

DSIN (Decoder Side Information Network) is the TensorFlow implementation of Deep Image Compression using Decoder Side Information, published in ECCV 2020.

[Paper]

Citation

If you find our work useful in your research, please cite:

@inproceedings{ayzikA2020dsin,
  author    = {Sharon Ayzik and Shai Avidan},
  title     = {Deep Image Compression Using Decoder Side Information},
  booktitle = {Computer Vision - {ECCV} 2020 - 16th European Conference, Glasgow,
               UK, August 23-28, 2020, Proceedings, Part {XVII}},
  volume    = {12362},
  pages     = {699--714},
  year      = {2020}
}

Abstract

We present a Deep Image Compression neural network that relies on side information, which is only available to the decoder. We base our algorithm on the assumption that the image available to the encoder and the image available to the decoder are correlated, and we let the network learn these correlations in the training phase.

Then, at run time, the encoder side encodes the input image without knowing anything about the decoder side image and sends it to the decoder. The decoder then uses the encoded input image and the side information image to reconstruct the original image.

This problem is known as Distributed Source Coding in Information Theory, and we discuss several use cases for this technology. We compare our algorithm to several image compression algorithms and show that adding decoder-only side information does indeed improve results.

Prerequisites

  • Python 3.5.2
  • Installation of all packages specified in requirements.txt (pip install -r requirements.txt)

Dataset

Training and testing were performed over KITTI dataset. If you wish to use it, please download KITTI 2012 and KITTI 2015.

Weights

Pre-trained models for KITTI Stereo and KITTI General (as referred in the paper) can be downloaded here. Please place the weights under src/weights folder in the project.

Inference

In order to perform inference (only), please open the ae_config file and change the following lines:

crop_size = (320,1224) # we used this crop size for our inference
train_model = False
test_model = True

root_data = '/put/path/to/directory/containig/downloaded/data/folders'

For KITTI Stereo:

load_model_name = 'KITTI_stereo_target_bpp0.02' # Model name
file_path_train = 'KITTI_stereo_train.txt' # Name of train.txt file
file_path_val = 'KITTI_stereo_val.txt' # Name of validation.txt file
file_path_test = 'KITTI_stereo_test.txt' # Name of test.txt file
  • Where file_path_... is a text file containing the relative paths to the correlated image pairs (one below the other).
  • If you wish to train/test on your data, please create txt files with the same structure (relative paths to the correlated image pairs, one below the other) under the folder data_path and put their names under the relevant fields in the ae_config file.
  • For KITTI General, change all stereo to general, When done, under the DSIN/src folder, run the following command:
python main.py

All output images will be saved under src/images/model_name/ folder that will be created.

Train

Open the ae_config file and change: train_model = True Also it is recommended to adjust the following fields:

crop_size = (320,960) # we used this crop size for our training
load_model = True/False # Boolean
lr_initial = <your_learning_rate>

Saved weights will be saved under src/weights folder in the project. In addition, a config file (containing the ae_config and pc_config parameters), as well as last saved files will be created.

License

This project is licensed under the MIT License - see the LICENSE file for details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].