← Open Source
google

hdrnet

An implementation of 'Deep Bilateral Learning for Real-Time Image Enhancement', SIGGRAPH 2017.

Model DevelopmentArchitecturePython
Open on GitHub
Momentum
+0stars in 24 hours0.0%
877
Stars
319
Forks
+0
This week
4
Contributors
Created 2016-09-12 · Updated 2026-10-02 · #12968 today
Top developers
fbleibel-gmgharbitianfan-google

google/hdrnet is ranked 12,968 with 877 stars.

Same-category comparison

google/hdrnet is ranked 12,968 among these 8 peers; yule-BUAA/MergeLM is ranked 12,965.

Same-category comparison
NameRankMetrics
dmlc/dmlc-core12,959
Language:
C++
Stars:
878
Forks:
525
Description:
A common bricks library for building scalable and portable distributed machine learning.
lucidrains/RETRO-pytorch12,961
Language:
Python
Stars:
878
Forks:
108
Description:
Implementation of RETRO, Deepmind's Retrieval based Attention net, in Pytorch.
mystic123/tensorflow-yolo-v312,962
Language:
Python
Stars:
878
Forks:
343
Description:
Implementation of YOLO v3 object detector in Tensorflow (TF-Slim).
yule-BUAA/MergeLM12,965
Language:
Python
Stars:
878
Forks:
53
Description:
Codebase for Merging Language Models (ICML 2024).
EpistasisLab/pmlb12,973
Language:
Python
Stars:
876
Forks:
144
Description:
PMLB: A large, curated repository of benchmark datasets for evaluating supervised machine learning algorithms.
WooooDyy/AgentGym-RL12,975
Language:
Python
Stars:
876
Forks:
89
Description:
Code and implementations for the paper "AgentGym-RL: Training LLM Agents for Long-Horizon Decision Making through Multi-Turn Reinforcement Learning" by Zhiheng Xi et al.
brownvc/R3GAN12,976
Language:
Python
Stars:
876
Forks:
45
Description:
Code for NeurIPS 2024 paper - The GAN is dead; long live the GAN. A Modern Baseline GAN - by Huang et al.
polarisZhao/PFLD-pytorch12,984
Language:
Python
Stars:
876
Forks:
205
Description:
PFLD pytorch Implementation.
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguagePython
CategoryModel Development
SubcategoryArchitecture
KeywordsImage production
Stars877
Forks319
Contributors4
Created date2016-09-12
Updated date2026-10-02
Stars in 1 day0
Stars in 7 days0
Rank12,968
Previous rank12,865
Rank change-103
7-day stars rank13,696
Previous 7-day stars rank13,709
7-day stars rank change13
Total stars rank12,349
Previous total stars rank12,324
Total stars rank change-25
CountryUSA
README summary

Deep Bilateral Learning for Real-Time Image Enhancements Siggraph 2017 Visit our Project Page. Hasinoff Fredo Durand Maintained by Michael Gharbi ( ) Tested on Python 2. Disclaimer This is not an official Google product. Setup Dependencies To install the Python dependencies, run: Build Our network requires a custom Tensorflow operator to "slice" in the bilateral grid. To build it, run: To build the benchmarking code, run: Note that the benchmarking code requires a frozen and optimized model. To build the Android

demo, see dedicated section below. Test Run the test suite to make sure the BilateralSlice operator works correctly: Download pretrained models We provide a set of pretrained models. One of these is included in the repo (see ). To download the rest of them run: Usage To train a model, run the following command: Look at for a typical structure of the training data folder. You can monitor the training process using Tensorboard: To run a trained model on a novel

image (or set of images), use: To prepare a model for use on mobile, freeze the graph, and optimize the network: You will need to change the environment variable in and compile the necessary tensorflow command line tools for this (automated in the script). Android prototype We will add it to this repo soon. Known issues and limitations The BilateralSliceApply operation is GPU only at this point. We do not plan on releasing a CPU implementation. The provided pre-trained

models were updated from an older version and might slightly differ from the models used for evaluation in the paper. The pre-trained HDR+ model expects as input a specially formatted 16-bit linear input. Apply lens shading correction (aka vignetting correction). Our Android demo approximates this by undoing the RGB->YUV conversion and white balance, and tone mapping performed by the Qualcomm SOC. It results in slightly different colors than that on the test set. If you run our

HDR+ model on an sRGB input, it may produce uncanny colors.

Frequently asked questions

How many stars and forks are recorded?

google/hdrnet has 877 stars and 319 forks.

What is the repository rank?

google/hdrnet is ranked 12,968.

What language and category are recorded?

google/hdrnet has 877 stars, uses Python and belongs to Model Development.

Which repository is closest in rank?

google/hdrnet is compared with yule-BUAA/MergeLM, ranked 12,965 with 878 stars.

README

Deep Bilateral Learning for Real-Time Image Enhancements

Siggraph 2017

Visit our Project Page.

Michael Gharbi Jiawen Chen Jonathan T. Barron Samuel W. Hasinoff Fredo Durand

Maintained by Michael Gharbi ()

Tested on Python 2.7, Ubuntu 14.0, gcc-4.8.

Disclaimer

This is not an official Google product.

Setup

Dependencies

To install the Python dependencies, run:

cd hdrnet
pip install -r requirements.txt

Build

Our network requires a custom Tensorflow operator to "slice" in the bilateral grid. To build it, run:

cd hdrnet
make

To build the benchmarking code, run:

cd benchmark
make

Note that the benchmarking code requires a frozen and optimized model. Use hdrnet/bin/scripts/optimize_graph.sh and hdrnet/bin/freeze.py to produce these.

To build the Android demo, see dedicated section below.

Test

Run the test suite to make sure the BilateralSlice operator works correctly:

cd hdrnet
py.test test

Download pretrained models

We provide a set of pretrained models. One of these is included in the repo (see pretrained_models/local_laplacian_sample). To download the rest of them run:

cd pretrained_models
./download.py

Usage

To train a model, run the following command:

./hdrnet/bin/train.py  

Look at sample_data/identity/ for a typical structure of the training data folder.

You can monitor the training process using Tensorboard:

tensorboard --logdir 

To run a trained model on a novel image (or set of images), use:

./hdrnet/bin/run.py   

To prepare a model for use on mobile, freeze the graph, and optimize the network:

./hdrnet/bin/freeze_graph.py 
./hdrnet/bin/scripts/optimize_graph.sh 

You will need to change the ${TF_BASE} environment variable in ./hdrnet/bin/scripts/optimize_graph.sh and compile the necessary tensorflow command line tools for this (automated in the script).

Android prototype

We will add it to this repo soon.

Known issues and limitations

  • The BilateralSliceApply operation is GPU only at this point. We do not plan on releasing a CPU implementation.

  • The provided pre-trained models were updated from an older version and might slightly differ from the models used for evaluation in the paper.

  • The pre-trained HDR+ model expects as input a specially formatted 16-bit linear input. In summary, starting from Bayer RAW:

    1. Subtract black level.
    2. Apply white balance channel gains.
    3. Demosaic to RGB.
    4. Apply lens shading correction (aka vignetting correction).

    Our Android demo approximates this by undoing the RGB->YUV conversion and white balance, and tone mapping performed by the Qualcomm SOC. It results in slightly different colors than that on the test set. If you run our HDR+ model on an sRGB input, it may produce uncanny colors.

Nearby in the ranking
Similar items