OpenCV_GSoC_Application - dkurt/opencv GitHub Wiki

OpenCV GSoC Application

Why does your org want to participate in Google Summer of Code?

OpenCV (Open Source Computer Vision Library 19M+ downloads) is a library of computer and deep learning vision routines.

GSoC has been invaluable to OpenCV because the fields of computer vision and deep learning are rapidly evolving and the "extra hands" help the library stay current with the latest routines.

Coding for OpenCV benefits the students with visible modern code https://github.com/opencv/opencv/wiki/Coding_Style_Guide in a hot field. The admin co-founded a company with one former GSoC student that sold to Google in 2013 (Industrial Perception Inc), we've co-written papers with advanced students and have placed students and mentors in various companies, including Google (https://www.linkedin.com/in/vincent-rabaud-3b592268/?originalSubdomain=fr).

Some video of past GSoC contributions: (2017: https://docs.opencv.org/master/da/d9d/tutorial_dnn_yolo.html) (2015: https://youtu.be/OUbUFn71S4s) (2014: https://youtu.be/3f76HCHJJRA) (2013: https://youtu.be/_TTtN4frMEA).

How many potential mentors have agreed to mentor this year?

20+

How will you keep mentors engaged with their students?

All our mentors are known contributors to OpenCV and we always have backup mentors who can swap in, but mainly help newer mentors. There are always backup mentors to swap in to cover summer vacations. Most mentors are either Professors, graduate students or engineering managers that are experienced in managing students and interns. We have weekly meetings on progress and track students on shared Google docs. Mentors are required to have a minimum of one weekly meeting with mentors and email contact is shared and open to admins who monitor contact. The first milestone is to create a pull request and mentors are required to critique it. These pull requests continue throughout the summer until the final pull requests that must be accepted by the mentor if the student is not to fail. Mentors are required to make sure the students pass the build bot, have google unit tests, examples of use and extensive documentation ( https://docs.opencv.org/ ).

How will you help your students stay on schedule to complete their projects?

Students are required to fill out a schedule in their application. They start the summer with a pull requests that must pass the build bot, documentation, Google unit test and example of use. They must meet with Mentors at least once a week (unless prior excuse) and fill out periodic progress logs and students are failed if they do not have an accepted start, middle and finished end pull request. At the end, students are required to submit a Youtube video showing their results, see for example: (2015: https://youtu.be/OUbUFn71S4s) (2014: https://youtu.be/3f76HCHJJRA) (2013: https://youtu.be/_TTtN4frMEA) where each student has their "moment of fame". We have been doing this many years now and have a well tested system to generate good results while training students in proper coding tools and style. We generate further enthusiasm by regularly doing joint conference papers with exceptional students. The admin is well known in the field and getting good references is a further motivation.

How will you get your students involved in your community during GSoC?

Open, ongoing communication is held on a mailing list dedicated to that year's GSoC and Github provides further community chatter. Many of us attend the big vision conferences over the summer (CVPR) and meet ups are held there. There is an IRC channel for questions and comments as well as an active community email list with much Q&A where we will encourage students to ask and answer questions. All work, students and mentors are listed on an open page that stays "forever" so that they can find each other. This year we are going to encourage ongoing social media updates of visual results to Facebook, Instagram, LinkedIn and Snap Chat. We often co-write papers with top students.

How will you keep your students involved with your community after GSoC?

The main way is by getting them completely familiar and comfortable with Github and the ease of doing small changes and PRs, especially in documentation and tutorials. Since OpenCV 3.0 (now 4.0) is refactored into very modular components, contributing code in opencv_contrib https://github.com/opencv/opencv_contrib, is easier/more self-contained/easy to maintain. This makes it more likely that students will continue to contribute their own published work as pull requests. In addition, students often do joint papers with mentors which means ongoing communication and contribution. Many students become intern and later hire "targets" by managers in companies that use/contribute to OpenCV. OpenCV is far and away the largest computer vision library with about 280,000 downloads per month and so they know that contributions are a competitive advantage/resume item for future jobs. In addition, it's a good way to get good references from well known people working in the field.

Were you a mentoring org before?

Yes were were a mentoring org

What years?

2010-2015

What is your success/fail rate per year?

Year Success Total
2017 14 17
2016 11 12
2015 14 15
2014 15 15
2013 12 13
2012 10 11
2011 9 11
2010 8 9

(2017 14/17; 2016 11/12; 2015 14/15; 2014 15/15; 2013 12/13; 2012 10/11; 2011 9/11; 2010 8/9)

Were we ever rejected?

2018, 2009

Reference

  • Vincent Rabaud
  • vincent dot rabaud at gmail

Are you part of an umbrella org?

Yes, OSVF.org

What year was the project started?

1999

Where does the source code live?

https://github.com/opencv/opencv

https://github.com/opencv/opencv_contrib/tree/master/modules

Anything else we should know?

OpenCV is used extensively inside Google.See googler Vincent Rabaud [email protected]. He is an active contributor. We are a very active library (average 280,000 downloads/month) under intense development (see the change logs: https://github.com/opencv/opencv/wiki/ChangeLog, and meeting notes https://github.com/opencv/opencv/wiki/Meeting_notes). We are used in virtually every university and every business that deals with computer vision.

OpenCV Profile:

URL:

https://opencv.org

Tagline:

Open Source Computer Vision and Deep Learning Library

Image Logo

https://github.com/opencv/opencv/wiki/images/OpenCV_Logo_with_text.png

Primary Open Source License

BSD 3-Clause "New" or "Revised" License (BSD-3-Clause)

Organization Category:

Graphics/Video/Audio/Virtual Reality

Technology Tags:

c/c++

python 3

javascript

Hadoop

Topic Tags:

vision, machine learning, Robotics, deep learning

robotics

graphics

real time

Ideas List:

https://github.com/opencv/opencv/wiki/GSoC_2019

Short description:

OpenCV, the Open Source Computer Vision Library includes state of the art computer vision and deep learning algorithms. It is professionally coded and optimized.

Long Description:

OpenCV, the Open Source Computer Vision Library includes state of the art computer vision and deep learning algorithms (including running deep networks) and apps. It is professionally coded and optimized. It can be used in C++, Python, javascipt, Cuda, OpenCL and Matlab. It runs on: Android, iOS, Windows, Linux and MacOS and many embedded implementations such as Raspberry Pi.

It is also useful to look at the change log: https://github.com/opencv/opencv/wiki/ChangeLog and instructions to install on various platforms: https://docs.opencv.org/3.3.1/df/d65/tutorial_table_of_content_introduction.html

Please see our videos for the past several years of GSoC contributions: (2017: https://docs.opencv.org/master/da/d9d/tutorial_dnn_yolo.html) (2015: https://youtu.be/OUbUFn71S4s) (2014: https://youtu.be/3f76HCHJJRA) (2013: https://youtu.be/_TTtN4frMEA).

Many books on OpenCV, google: books opencv

Application Instructions:

  1. You must already know how to program fluently in C++ (or Python if applicable)
  2. Ask to join the opencv-gsoc mailing list https://groups.google.com/forum/#!forum/opencv-gsoc-2019
  3. Sign up with GSoC and with OpenCV
  4. When (and if!) OpenCV gets accepted as GSoC org this year, and we are told how many slots we will get and you've signed up for a project with us, Then:
    • We will weigh the students and projects against the mentors we gather and the mentor's interests and choose which students/project to pursue.
    • Accepted students will be posted on the GSoC site and we will notify the accepted students ourselves afterwards.
  • Please only propose projects that you already know how to do.
    • It is impossible for a mentor to train you in how to do the task while helping you do it.
    • Mentors exist to keep you on track, and ensure good code, but not to teach you a new area of vision, AI. To improve your coding but not teach you a language.
    • Documentation, tests and tutorial are as vital as the code. We'd rather have rougher code then miss these items because if these are not in place, your code will be useless to everyone.

Proposal Tags

computer vision

deep learning

computational photography

optimization

tutorials

applications

slam

background subtraction

calibration

text detection

IRC channel?

#opencv on freenode

https://github.com/opencv/opencv/wiki/GSoC_2018

Mailing list?

https://groups.yahoo.com/neo/groups/OpenCV/info

http://answers.opencv.org/questions/

[email protected]

Feed URL?

Twitter?

https://twitter.com/opencvlibrary

Blog?

https://opencv.org/

Facebook?

https://www.facebook.com/opencvlibrary