Skip to content

[GSoC 2017] Obstruction Free #1233

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 18 commits into
base: 4.x
Choose a base branch
from

Conversation

binbin-xu
Copy link

@binbin-xu binbin-xu commented Jun 18, 2017

This pullrequest changes

First commit with some dummy functions to get familiar with PR procedure.

Added the interface headers, readme, bib files of the obstruction-free method in the module of xphoto, with the first part implementation code of building a multiscale pyramid for the input image sequences.

@garybradski

  • Sample, including source / result images
  • Tests
  • Tutorial

@binbin-xu binbin-xu changed the title First PR for gsoc obstruction free project [GSoC 2017] First PR for gsoc obstruction free project Jun 18, 2017
@@ -1,2 +1,2 @@
set(the_description "Addon to basic photo module")
ocv_define_module(xphoto opencv_core opencv_imgproc WRAP python)
ocv_define_module(xphoto opencv_core opencv_imgproc opencv_highgui WRAP python)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you need higui here? We are trying to reduce dependencies for each module.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for pointing it out. You are right. highgui was used originally for showing the processed images. I will remove this dependency to the sample file.

@@ -0,0 +1,77 @@
/*M///////////////////////////////////////////////////////////////////////////////////////
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This long header should be replaced with a short one:

// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for pointing it out. I will modify the header part.

@@ -0,0 +1,80 @@
/*M///////////////////////////////////////////////////////////////////////////////////////
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same about the outdated long license header.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for pointing it out. I will modify the header part accordingly.


#ifndef __OPENCV_OBSTRUCTION_FREE_CPP__
#define __OPENCV_OBSTRUCTION_FREE_CPP__
#ifdef __cplusplus
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

__cplusplus check is not useful anymore, so it's better to get rid of that.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for pointing it out. I will remove this line.

@binbin-xu binbin-xu changed the title [GSoC 2017] First PR for gsoc obstruction free project [GSoC 2017] Obstruction Free Jul 18, 2017
@binbin-xu
Copy link
Author

Summary to the “Computational Occlusion Removal in Image Inpainting” project:

Code:
The commits I made can be seen in the PR link (#1233), which summarizes the commits I have made.
 
Work done:
The goal of the project was to implemented a new image inpainting method to remove opaque obstructions or reflections in the photo. The work I have completed so far including the initialization part and the first part in the alternative optimization.

Work left to be finished:

  1. The visual surface interpolation. In the current framework, I temporally used the interpolation method in Epicflow algorithm to generate the visual surface for dense edge flow. However, in the case of opaque occlusions, this interpolation algorithm does not work well. By discussing with the author Dr. Richard Szeliski, the visual surface interpolation can refer to the work done by Dr. Dilip Krishnan: http://cs.nyu.edu/~dilip/research/abf/ and http://www.cs.huji.ac.il/~raananf/projects/hsc/
  2. The sparse edge flow algorithm, which uses belief propagation to match only edges in one frame to another. I am sorry but I have been stuck in this part for a long time and have not finished it.
  3. I derived the solutions to the alternative optimization equations, which can be seen in the file: https://groups.google.com/group/opencv-gsoc-2017/attach/4b56565812b20/gsoc-derivatives-eq15.pdf
    I am sorry but my derived equations have not been fully verified by other experienced persons, though the original author Tianfan mentioned it seemed correct in a rough glance.
    However, the second part has not been implemented yet. I am sincerely sorry for it.

Acknowledgements:
I appreciate very much my mentor Gary for accepting me into this project and Steven and Maksim for patiently answering my possibly very stupid questions in the Slack Channel and the original authors Tianfan and Dr. Szeliski for solving my seemingly endless puzzles through email. I would like to apologize again for not being able to finish this project totally and hope I can continue finishing this project later in my spare time.

Yours sincerely,
Binbin Xu

@berak berak mentioned this pull request Oct 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants