Skip to content

solesensei/day2night

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Day2Night | Image2Image Translation Research

Diploma | Graduation Work | Bachelor's Degree

Lomonosov Moscow State University, Faculty of Computer Science, Graphics Lab

Usage

This repo is huge

System

  • Python 3.6
  • Ubuntu 18.04 LTS

Requirements

pip3 install -r requirements.txt
pip3 install -r scripts/requirements.txt # for scripts 

or use docker


Usage

Get project

Clone repository

# Full repo
git clone --depth 1 https://github.com/solesensei/day2night.git
# Mini repo (just code)
git clone --branch code --depth 1 https://github.com/solesensei/day2night.git

or get the code from drive (if not working)

wget --no-check-certificate -r "https://docs.google.com/uc?export=download&id=1mrj0vDzuFufpmxSW5SMIAn9XekegX4Hh" -O code.zip
unzip -o code.zip

Testing

Modify parametrs in test.sh

And run test

cd ~/prj/UNIT
bash ./scripts/test.sh
# or
python test_batch.py --device $gpu --config $config --input_folder $indir --output_folder $outdir --number $number --checkpoint $checkpoint --a2b $d2n --trainer UNIT --recon

Training

Modify parametrs in train.sh and configs.

Get data

I used two open datasets.

# BDD100k
kaggle datasets download -d solesensei/solesensei_bdd100k
# NEXET
kaggle datasets download -d solesensei/nexet-original

Prepare data

See DomainShifter and DataClassificator.

Start training

bash ./scripts/train.sh
# or
python train.py --device $gpu --config $config --trainer UNIT

Docker

Automated

Download bash script

wget https://raw.githubusercontent.com/solesensei/day2night/master/day2night/UNIT/scripts/day2night.sh -O ~/prj/day2night.sh

Then just run it (in repository you want to start)

cd ~/prj
bash day2night.sh

Manually

Get project

Get image

Pull Docker image

docker pull solesensei/day2night:pytorch_0.4.1 # CUDA 10 : Ubuntu 18.04 LTS
# or
docker pull solesensei/day2night:pytorch_0.4.1_cuda9 # CUDA 9 : Ubuntu 16.04 LTS

All tags:

  • pytorch_0.4.1_cuda9 : CUDA 9, Ubuntu 16.04 LTS, Pytorch==0.4.1
  • cyclegan - CUDA 9, Base, Pytorch>=1.0.1
  • pytorch_0.4.1 - CUDA 10, Ubuntu 18.04 LTS, Pytorch==0.4.1
  • pytorch_latest - CUDA 10, Ubuntu 18.04 LTS, Pytorch>=1.0.1

Run container

cd ~/prj
docker run -it -p 1111:1111 --name day2night --mount type=bind,source=$PWD,target=/mnt/w/prj -w /mnt/w/prj/UNIT --runtime nvidia -i -t solesensei/day2night:pytorch_0.4.1 # your tag here

Run Test

PT-models

UNIT vs. CycleGAN

RetinaNet Day Night All
Real Data Images (NEXET) 0.8664 0.8406 0.8535
CycleGAN 0.8701 (+0.42%) 0.8571 (+1.96%) 0.8636 (+1.18%)
UNIT 0.8749 (+0.98%) 0.8512 (+1.26%) 0.8631 (+1.12%)
Faster R-CNN Day Night All
Real Data Images (NEXET) 0.9015 0.8822 0.8919
CycleGAN 0.9087 (+0.79%) 0.8881 (+0.66%) 0.8984 (+0.72%)
UNIT 0.9066 (+0.56%) 0.8929 (+1.21%) 0.8998 (+0.88%)

VGG16 and Normalization

Results

UNIT

(top to bottom: input - reconstructed - translated)

Input - no VGG - VGG