Ideas Page for OpenCV Google Summer of Code 2015 (GSoC 2015)

We are an accepted organization in GSoC 2015!

OpenCV 3D recognition and pose from last year.

General Information:

  • Next important dates:
    • Feb 20 19:00 UTC: Organization Application Deadline. DONE!
    • Mar 02 19:00 UTC: List of accepted Organizations. We're in!
    • Mar 16 16:00 UTC: Student Application period begins! Students Apply!
    • Mar 27 19:00 UTC: Student Application period ends! Closed
    • Apr 13 Deadline for OpenCV to request # of slots. Submitted
    • Apr 15 Google publishes how many slots we get. Excellent!
    • Apr 21 Try to eliminate duplication of students.
    • Apr 24 IRC for OpenCV to resolve all duplications.
    • Apr 27 19:00 UTC: Accepted students announced.
    • May 25 Let Coding begin!
    • Jun 26 19:00 UTC: Mid term evaluation begins. Pull requests must be in
    • Jul 03 19:00 UTC: Mid term end.
    • Aug 21 19:00 UTC: Coding stop; Pull requests must be in; Mentors: final evaluation begins...
    • Aug 28 19:00 UTC: Final evaluation deadline; Students begin submitting code. All 14 remaining projects have pull requests for opencv_contrib
    • Sept 25 19:00 UTC: Deadline for Google Code submission
    • Nov 7: Mentor Summit!
  • UTC to PDT (California uses PST in the winter (from Nov 1st) and PDT in the summer (from March 8)).


How you will be evaluated if you are an accepted student

  • Student projects to be paid only if:
    • Midterm:
      • You must generate a pull request
        • That builds
        • Has at least stubbed out functionality
        • With appropriate Doxygen documentation
        • Has at least stubbed out unit test
        • Has a stubbed out example of use that builds
    • End of summer:
      • A full pull request
        • Full Doxygen documentation
        • A good unit test
        • Example of use code
      • Create a (short!) Movie (preferably on Youtube, but any movie) that demonstrates your code

For students interested in applying

  1. You must already know how to program well in C++
    • Some projects may require Python or Matlab skills
  2. Discuss projects below or other ideas with us!forum/opencv-gsoc-2015
  3. Go to the GSoC site and sign up
  4. Post the project from below or your own agreed on project on the GSoC site to the Open Source Computer Vision organization

For computer vision professionals interested in mentoring

  1. Go to the GSoC site and sign up.
  2. Request to be a mentor for OpenCV there.
  3. We accept or reject you
  4. Students submit projects and you
    • find a project you want to mentor (several students might try for the same project)
    • contact us about it through so we can be sure there is not someone already handling that project
    • contact the students to assess which one if any are capable of coding that up in a summer.
  5. We get a slot allocation from Google, the administrators then "spend" the slots in order of priority
  6. Students must finally actually accept to do that project (some sign up for multiple organizations and then choose)
If you are accepted as a mentor and you find a suitable student and we give you a slot and the student signs up for it, then you are a mentor.
  • It sounds harder than it is.
\/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/

2015 Project Ideas:

Students may propose their own projects (give us a clear summary and why you can do this project). However, below are some of our priorities for this year Contact us and/or discuss ideas at!forum/opencv-gsoc-2015

These are not in order of priority

1 Google Cardboard
  • Do visual odometry, SLAM etc for Google Cardboard
2 Projection mapping (Projected Augmented Reality)
  • Calibrate a camera to a projector
  • Put out structured light to learn the 3D map of what's in front of the camera
  • Project the camera image, suitably rotated and shifted onto the scene
  • Unity or some other program to start transforming the scene for projection mapping
3 Update OpenCV file storage so that it's readable by Python in OpenCV (move to YAML 1.2 Edition 3) 4 Stereo correspondence improvements
  • More accurate and faster stereo correspondence (StereoBM/StereoSGBM) by using LBP/BRIEF/DAISY etc. per-pixel descriptors instead of sum-of-absolute-differences.
5 Self-contained video codec(s)
  • There is draft version of self-contained motion jpeg encoder to be integrated to OpenCV.
  • We will also need decoder, 12-bit jpeg support, multi-threaded encoder and decoder.
  • There are some other codecs, like libvpx, which we can support and link right into highgui, without dependency from ffmpeg/libav.
6 Deep learning
  • It would be cool if OpenCV could load and run deep networks trained with popular DNN packages like Caffe, Theano or Torch.
  • GPU/OpenCL optimization and/or other optimizations (that can partly be contributed back to the upstream projects) are also encouraged.
7 Better interactive camera calibration
  • Modern algorithms would allow us to recompute camera parameters after almost each frame, compute reprojection error, compute confidence intervals for the parameters.
  • the partially occluded calibration patterns could be handled somehow to, especially if we want to estimate intrinsic parameters only.
  • the application may show us the areas where the corner borders have been shown so that user can see how good are the data
8 Create a much better calibration target, we will call it "Charuco 9 Color Calibration and white balance
  • With McBeth chart and with gray world algorithm (improve exisiting color constancy algorithms)
  • Possibly collect deep learning way of doing this (needs large training set)
10 Realtime image preprocessing algorithms (real time on mobile)
  • We and many other OpenCV users would definitely enjoy very fast denoising, color improvements, white balance etc. algorithms.
11 Tracking improvements
  • TLD algorithm is implemented in OpenCV, but it needs improvements and optimizations.
  • ASM/AAM can also be implemented, as well as the particle filter.
12 PBM (part-based models) improvements
  • There is latentsvm package in opencv_contrib that needs to be improved (quality-wise and speed-wise).
  • Adding training, even if it involves execution of external svmperf or other tool, is definitely appreciated too.
13 Improving ICF/ACF + <some>Boost training and detection
  • In opencv_contrib there is initial version of the training application and detector based on integral channel features and boosting. Further improvements of this part would be really useful.
14 lua+OpenCV
  • the other language that is now used more often for ML and CV (thanks to Torch) is Lua; there are old bindings for a tiny part of OpenCV; could be useful to extend our autogenerated bindings to Lua.
15 human interaction
  • gesture recognition
  • human skeleton based on 2d or 3d
16 SfM
  • update libmv to OpenMVG and get the 3d viz from OpenCV
  • Make the Structure from Motion Module coherent
17 Quad Rotor Contrib
  • Apply much of the above into a quad rotor drone automatic tracking, mapping navigation etc module
/\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\ /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\ 

Accepted Projects for OpenCV GSoC 2015:

OpenCV GSoC 2015 students, projects, mentors are below. WHEN THEY ARE KNOWN

GSoC Progress. Need Pull requests (don't have to be complete) to pass by July 3rd

Mailing Lists (only for use of Mentors and Students, please to not request to join these lists otherwise):
  • Mentors
    • opencv-gsoc2015-mentors
  • Students
    • opencv-gsoc2015-students
Pre-Midterm status:

Project notes will be compiled here .


Actual signed up mentors

  • Alexander Mordvintsev zzznah(+)
  • Sid Bao ybao(+)
  • Vincent Rabaud vincent.rabaud(+)
  • Vadim Pisarevsky vadim.pisarevsky(+)
  • Adrian Kaehler therealadrian(+)
  • Terry Boult tboult(+)
  • spmallick spmallick(+)
  • Serge Belongie sjb344(+)
  • Stefano s.fabri10(+)
  • Prasanna pras.bits(+)
  • Pablo Alcantarilla pablofdezalc(+)
  • Bence Magyar mw.mzperx(+)
  • Manuele manuele.tamburrano(+)
  • Grace Vesom grace.vesom(+)
  • Open Source Computer Vision Library (OpenCV) garybradski(+)
  • Douglas Lee dougabug(+)
  • Claudia Rapuano c.rapuano(+)
  • Antonella Cascitelli antonellacascitelli(+)
  • Anatoly Baksheev anatoly.baksheev(+)
  • Alexander alexander.shishkov(+)
  • Alexander Smorkalov alexander.smorkalov(+)
  • Alexander Bovyrin alexander.bovyrin(+)

In the below, get rid of the ''-delete-'' to make the emails work.

Anatoly Baksheev
Researcher, Vision Algorithms on GPU
Alexander Bovyrin
PhD, Senior Researcher
Argus/Itseez founder
NNU Lecturer
Gary Bradski
Founder, Industrial Perception Inc.
Consulting Prof. Stanford U.
OpenCV Founder, Technical Content Owner, GSoC Admin
Co-author of Learning OpenCV Book
Antonella Cascitelli
Grad student, University of Rome
Eric Christiansen
Stefano Fabri
CRR Team leader, University of Rome
Victor Eruhimov
OpenCV founding team/Senior Researcher
Argus/Itseez founder
NNU Lecturer
Adrian Kaehler
Principle Engineer, Applied Minds
Co-author of Learning OpenCV Book.
Peter Karasev
PhD Student, MINERVA Research Group
Georgia Tech
Vadim Pisarevsky
OpenCV founding team/Czar
Manuele Tamburrano
Grad Student, University of Rome
Vincent Rabaud
Principle Engineer, Aldebaran Robotics
Claudia Rapuano
Grad student, University of Rome
Grace Vesom
Senior Software Engineer, Magic Leap
Bence Magyar
Pal Robotics
Pablo Alcantarilla
Toshiba Research Europe Ltd.

Back up Mentors

Mark Asbach
Fraunhofer IAIS
Schloss Birlinghoven
Sankt Augustin, Germany
Nicolas Saunier, Ph.D.
Assistant Professor
Civil, Geological and Mining Department (CGM)
École Polytechnique de Montréal
Alexander Mordvintsev
Software Engineer
Andrey Morozov
Software Engineer

OpenCV Org. Application to GSoC 2015

OpenCV GSoC Application

Previous Years

3D_recog.jpg (91.8 kB) Gary Bradski, 2015-02-11 09:57 am