Académique Documents
Professionnel Documents
Culture Documents
17
opencv / opencv
GSoC_2019
Gary Bradski edited this page yesterday · 115 revisions
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 1 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv.wik
Curating Deep Nets Stefano
Diego
for the OpenCV Fabri
Velazquez
DNN Module Edgar Riba
Dmitry
Fady Kurtaev
Data augmentation
Essam Gholamreza
module
Baskharon Amayeh
Edgar Riba
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 2 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Improve the
performance of Vitaly
Wenzhao
JavaScript version Tuzov
Xiang
of OpenCV Ningxin Hu
(OpenCV.js)
Yida Wang
Xavier Learning-based
Vladimir
Weber Super Resolution
Tyan
Important dates:
Date
Description Comment
(2019)
Mentoring organizations
January
begin submitting
15
applications to Google
Mentoring organization
Feb 6
application deadline
February Organizations We
26 Announced are in!
Feb 27 -
Talk to us
Mar 24
March
Apply to OpenCV
25 -
through GSoC
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 3 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
April 9
Student Projects
May 6 !
Announced by GSoC
May 6 -
Community Bonding
27
May 27 -
Coding ...
...
June
Evaluation #1
24-28
June 24
Coding Continues ...
- ...
July 22-
Evaluation #2
26
July 22 -
Coding Continues ...
Aug 19
Timeline
Times:
UTC to PDT (California uses PST in the winter (from
Nov 1st) and PDT in the summer (from March 8)).
UTC time
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 4 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Resources:
OpenCV Project Ideas List
OpenCV official Site
OpenCV wiki
Questions and Answers
How to do a pull request/How to Contribute Code
Source Code can be found at GitHub/opencv and
GitHub/opencv_contrib
Developer meeting notes
Mentor Only Mailing List
Student+Mentor Mailing List
Student Info
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 5 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 6 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Point
Differential Image
Model Zoo Coordinate
Rendering Processing
Regression
April Tags or
Python Depth
Geometric Optical Flow
OpenCV Fusion
April Tags
Tutorials:
Face Boosted General; OpenCV
Landmarks Cascades Machine GUI
Learning
Deep
DNN DNN Super- Alpha Deep Nets
Quantization Resolution Matting 1 on Video
2
Add Training
DNN
AREAS:
7: 9: 10:
8: SLAM 11: GUI
Language Tracking/Seg Tutorials
How to Apply
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 7 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
1. Requirements:
You must already know how to program
fluently in C++!
Some projects may instead specifically
require Python, javascript or Matlab skills
Some projects may require knowledge of
Deep Nets and perhaps one or more of the
standard packages:
PyTorch, TensorFlow, MXNet. Familiarity
with OpenCV's DNN (here for code and
here for samples) and ONNX deep net
exchange is a big plus
2. Please familiarize yourself with the:
i. OpenCV Developer's site, the
ii. User's site, read through our
iii. Ideas List to see which projects are of interest
to you, and familiarize yourself with
iv. The GSoC 2019 timeline
3. Sign up: for the OpenCV_GSoC_2019 mailing list
where you can ask questions, exchange and
discuss ideas with students and mentors, get
announcements etc.
4. Fill out: the pre-application form for the one or
two (maximum) projects you are interested in.
5. Optional steps mentors may take:
Mentors may contact you for hangouts or
other means of live interview
You may be asked for proof of coding
You will probably be asked for a full project
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 8 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
plan
6. How to enhance your application:
i. Contributing to OpenCV is a big plus. Some
suggestions:
a. Fixing an bug/issue or
b. Very advanced people can already start
delivering code for the idea they like to
their mentor
c. More realistically and still great: REALLY
learn some OpenCV function and
contribute a well written tutorial on it
Ideas:
1. Area: Calibration
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 9 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 10 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 11 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 12 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 13 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 14 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 15 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 16 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 17 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 18 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Expected Outcomes:
Build Super-Resolution module and
implement interface for running
different SR algorithms.
Add SR datasets to OpenCV
datasets module
Implement FSRCNN algorithm (fast
one) and train model on SR datasets
Implement EDSR algorithm (accurate
one) and train model on SR datasets
Experiments and comparison of
different models along with simple
bicubic interpolation (or resize?)
Additional goals
Implement Computer Vision SR
algorithm (A+ and etc.)
Resources
https://arxiv.org/pdf/1608.00367
.pdf
https://arxiv.org/pdf/1707.02921.
pdf
https://www.vision.ee.ethz.ch/pu
blications/papers/proceedings/e
th_biwi_01165.pdf
Skills Required: Good C++ coding skill,
experience in Deep Learning area,
experience in Computer Vision area
Mentors: Tyan Vladimir
Difficulty: Medium
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 19 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 20 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 21 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
proposed methods
Optimize batch processing of video
input for neural networks
Implement the Model Zoo for video
use cases
Handle optimal neural network
inference output for further
processing
Write examples and tutorials
Resources
DNN Tutorial
List of DNNs
List of major DNN models
Skills Required:
Coding in Python. Experience with
deep neural networks.
Mentors: Justin Shenk
Difficulty: Easy/Medium
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 22 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
the scratch.
Training in batches option
implementation
Additional goals
Implement training on GPU
Add more optimizers (Adam,
Nesterov etc.)
Add training support of all layers in
OpenCV DNN
Resources
http://yann.lecun.com/exdb/publ
is/pdf/lecun-88.pdf
https://arxiv.org/pdf/1609.04747
.pdf
Skills Required:
Very high C++ coding skill, very
good understanding of Deep
Learning theory under the hood,
basic Computer Vision knowledge
Mentors: Tyan Vladimir
Difficulty: Hard
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 23 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 24 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 25 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 26 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://docs.opencv.org/master/
d7/dbd/group__imgproc.html
Skills Required: experience in computer
vision, and Python. You must know how
to code using PyTorch and
understanding about deep neural
networks and the autograd engine.
Mentors: Edgar Riba
Difficulty: Medium/Hard
5. Area: Fiducials
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 27 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 28 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 29 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 30 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 31 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
SIMD.js
WebAssembly Threads
WebAssembly SIMD
JavaScript module
OpenCV.js tutorials
Skills Required: C++, JavaScript, HTML,
WebAssembly, performance
optimization, multi-threading and SIMD.
Fluent in written English.
Mentors: Ningxin Hu
Difficulty: Medium
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 32 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Large Scale
Implementing DynamicFusion which
handles non-rigid scenes (seems
more preferable because of already
existing code from GSoC 2017) It's
up to participant what way to
choose.
Resources
DynamicFusion which is able to
handle non-rigidness by
introducing local
transformations
Kintinuous large-scale version of
KinFu which is based on pose-
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 33 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
graph
KinFu Large Scale this one is
based on marching cubes
rgbd module containing existing
KinFu implementation
previous attempt to make
DynamicFusion
Datasets for non-rigid scene
ideas from
http://imagine.enpc.fr/~moulonp/openMV
G/coreFeatures.html
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 34 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 35 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 36 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Difficulty: Medium
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 37 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Expected Outcomes:
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 38 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
tutorials. E.g.:
a. DNN
a. Image Classification using
Tensorflow
b. Object Detection using
Tensorflow API
c. Semantic Segmentation
d. Image Colorization
e. Neural Style Transfer
f. OpenPose
b. C++ code samples present in
opencv repo. e.g.
a. DIS Optical Flow
c. Add code samples and write-ups for
using different algorithms e.g.
a. ML module
a. Normal Bayes Classifier
b. Decision Trees
c. Random Forests
d. ANN MLP
e. K-NN
f. K-Means
b. Text Module in OpenCV Contrib
d. Tutorial Series on using OpenVINO
models and DLDT toolkit.
Difficulty: Easy
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 39 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 40 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
General Information:
▶ Join our OpenCV GSoC 2019 Mailing List ◀
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 41 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
4. You then:
Look through the ideas above, choose one
you'd like to mentor or create your own and
post it for discussion on the mentor list.
Go to the opencv-gsoc googlegroups mailing
list above and look through student project
proposals and discussions. Discuss the ideas
you've chosen.
Find likely students, ask them to apply to
your project(s)
You will get a list of students who have
applied to your project. Go through them and
select a student or rejecting them all if none
suits and joining to co-mentor or to quit this
year are acceptable outcomes.
Make sure your students officially apply
through the Google Summer of Code site
before April 9th.
5. Then, when we get a slot allocation from Google,
the administrators "spend" the slots in order of
priority influenced by whether there's a capable
mentor or not for each topic.
6. Students must finally actually accept to do that
project (some sign up for multiple organizations
and then choose)
7. Get to work!
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 42 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Staff
Mentors
Mentors are encouraged to look at the ideas list above
and choose from that. If you have a specific idea that
you are passionate about, then use the github
Markdown template below and submit to the mentor's
mailing list so that we can see if it should be posted.
### Template
1. ### <Descriptive Category such as "Deep
Nets">
1. #### _IDEA:_ <Descriptive Title>
* ***Description:*** 3-7 sentences
describing the task
* ***Expected Outcomes:***
* < Short bullet list describing
what is to be accomplished >
* <i.e. create a new module called
"bla bla">
* < Has method to accomplish X >
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 43 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
* <...>
* Resources
* [For example a paper
citation]
(https://arxiv.org/pdf/1802.08091.pdf)
* [For example an existing
feature request]
(https://github.com/opencv/opencv/issues/11013)
Mentors
Ankit Sachan
Clément Pinard
Davis King
Dmitry Kurtaev
Dmitry Matveev
Edgar Riba
Gholamreza Amayeh
Grace Vesom
Jiri Hörner
João Cartucho
Justin Shenk
Michael Tetelman
Ningxin Hu
Rostislav Vasilikhin
Satya Mallick
Stefano Fabri
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 44 av 45
GSoC_2019 · opencv/opencv Wiki · GitHub 01.06.2019, 22.17
Steven Puttemans
Sunita Nayak
Vikas Gupta
Vincent Rabaud
Vitaly Tuzov
Vladimir Tyan
Yida Wang
Admins
Gary Bradski
Vadim Pisarevsky
Shiqi Yu
https://github.com/opencv/opencv/wiki/GSoC_2019 Side 45 av 45