Version 14 (modified by Danil_Iashchenko, 2 years ago) (diff)



This page shows the results from the student projects that were part of GSoC 2018.


Color Constancy Filter

Description: Color constancy is the ability of the human visual system that ensures the perception of the color of objects to remain relatively constant under varying illumination conditions. A color constancy filter would basically be applied on images with various degrees of damage to restore original colors as close as possible.


  • Image restoring filter by photographers.
  • Pre-processing step for computer vision algorithms that utilizes image colors.

Outcome: Low-level image statistics Grey Edge algorithm was implemented alongside with Weighted Grey Edge improvement.

Commit Links:

Future work: Adding Color Constancy Using CNNs and Color Dog Voting Algorithm

Mentor: Thilo Borgmann (thilo.borgmann AT mail DOT de)

Student: Mina Sami (minas.gorgy AT gmail DOT com)


Heavily damaged sample:

Corrected by Grey Edge:

Corrected by Weighted Grey Edge:

Super Resolution filter

Description: Super resolution methods aim to recover high-resolution images from low-resolution images. These methods find direct application in many areas such as medical imaging, security and surveillance imaging, HDTV, satellite imaging. This project goal was to implement machine-learning-based super-resolution upscaling filter.

Results: The basis of this project was the result of the qualification task implementing SRCNN model for image super-resolution ( commit). Contributions of the GSoC period include:

  • Introduction of DNN inference module ( commit). This module includes interface for model loading and execution as well as simple backend, which supports layers required for the super resolution filter.
  • Introduction of TensorFlow backend to DNN inference module ( commit). It implements backend executing binary TensorFlow models using TensorFlow framework.
  • Implementation of ESPCN model for super resolution ( commit). This model shows better results in terms of restoration accuracy and speed.
  • Various improvements and fixes of the DNN module and the super resolution filter. Commits: 1, 2, 3, 4, 5.

Scripts for model training and evaluation as well as generation of model files, suitable for the super resolution filter, are provided in the repository. In addition to SRCNN and ESPCN models, VESPCN and VSRNet models were trained and evaluated, but they were not implemented in the super resolution filter due to low increase in restoration accuracy.

Future work: After the GSoC period resnet-based models will be evaluated. If their upscaling quality is good, one of them will be added to the super resolution filter.

Mentor: Pedro Souza (bygrandao AT gmail DOT com)

Student: Sergey Lavrushkin (dualfal AT gmail DOT com)

OpenCL support for Libavfilter

Description: FFmpeg has good support for offloading decoding and encoding from the CPU, but not such good support for doing anything else with video without using the CPU. Therefore it would be beneficial to increase libavfilter's support for OpenCL filters, which would allow to offload more operations to the GPU, making the CPU less busy. The project aimed to add more OpenCL filters to libavfilter.

Results: During the GSoC period, the following contributions to the project have been submitted:

Future work: Seeing the patches that are still in review to the end, implementing additional OpenCL support and optimizing the already existing OpenCL filters.

Mentor: Mark Thompson (sw AT jkqxz DOT net)

Student: Danil Iashchenko (danyaschenko AT gmail DOT com)