GSoC 2016

Version 19 (Gary Bradski, 2016-04-24 08:51 am)

1 1
h1. *Ideas Page for OpenCV Google Summer of Code 2016 (GSoC 2016)*
2 1
3 1
4 8 Gary Bradski
*OpenCV Augmented Reality from ArUco Markers last year. (click image for video showing all 2015 projects)*
5 6 Gary Bradski
" !AR_Aruco.png! ":https://www.youtube.com/watch?v=OUbUFn71S4s
6 1
7 1
----
8 1
9 18 Gary Bradski
* *Go back to:*
10 18 Gary Bradski
** "OpenCV Developer Page":http://code.opencv.org/projects/opencv/wiki
11 18 Gary Bradski
** "OpenCV User Page":http://opencv.org/
12 18 Gary Bradski
13 1
h2. General Information:
14 1
15 9 Gary Bradski
* "GSoC 2016 site":https://developers.google.com/open-source/gsoc/
16 8 Gary Bradski
* Mailing list for OpenCV GSOC 2016: [email protected]
17 8 Gary Bradski
** Group site https://groups.google.com/forum/#!forum/opencv-gsoc-2016
18 11 Gary Bradski
* IRC Channel:
19 11 Gary Bradski
<pre>
20 11 Gary Bradski
#opencv on freenode
21 11 Gary Bradski
</pre>
22 17 Gary Bradski
* *Timelines*
23 17 Gary Bradski
** "Timeline for GSoC 2016":https://developers.google.com/open-source/gsoc/timeline
24 17 Gary Bradski
** "Major GSoC 2016 Milestones":https://summerofcode.withgoogle.com/
25 1
26 1
** *Next important dates:*
27 16 Gary Bradski
*** -Feb 19 19:00 UTC: Mentoring organization application deadline.- *Submitted!*
28 16 Gary Bradski
*** -Feb 29 19:00 UTC: List of accepted Organizations.- *"We are in!!":https://summerofcode.withgoogle.com/organizations/?sp-search=OpenCV*
29 3 Gary Bradski
*** Mar 14 16:00 UTC: Student Application period begins!
30 3 Gary Bradski
*** Mar 25 19:00 UTC: Student Application period ends!
31 3 Gary Bradski
*** ? Deadline for OpenCV to request # of slots.
32 3 Gary Bradski
*** ? Google publishes how many slots we get.
33 3 Gary Bradski
*** ? Try to eliminate duplication of students.
34 3 Gary Bradski
*** ? IRC for OpenCV to resolve all duplications.
35 3 Gary Bradski
*** Apr 22 19:00 UTC: Accepted students announced.
36 3 Gary Bradski
*** May 23 Let Coding begin!
37 3 Gary Bradski
*** Jun 20 19:00 UTC: Mid term evaluation begins. *Pull requests must be in*
38 3 Gary Bradski
*** Jun 27 19:00 UTC: Mid term evaluation ends. *Pull requests must be in*
39 3 Gary Bradski
*** Aug 23 19:00 UTC: Coding stop; Pull requests must be in; Mentors: final evaluation begins...
40 3 Gary Bradski
*** Aug 29 19:00 UTC: Final evaluation deadline.
41 4 Gary Bradski
*** Late October: Mentor Summit!
42 1
43 1
*Times:*
44 1
*  UTC to PDT (California uses PST in the winter (from Nov 1st) and PDT in the summer (from March 8)).
45 1
** "utc time converter":http://www.timebie.com/std/gmt.php
46 1
47 1
*Resources:*
48 1
49 1
* "OpenCV Developers Site":http://code.opencv.org/projects/opencv/wiki
50 1
* "OpenCV User's Site":http://opencv.org
51 1
* [[How_to_contribute|How to do a pull request/How to Contribute Code]]
52 1
* Source Code can be found at "GitHub":https://github.com/Itseez/opencv. 
53 1
** To get the source code, point your git client to @git://github.com/Itseez/opencv.git@. Here are [[Working_with_OpenCV_git_repository|instructions]].
54 1
<pre>
55 1
git clone git://github.com/Itseez/opencv.git
56 1
</pre>
57 11 Gary Bradski
** To get user contributions, GSoC code, go to: https://github.com/Itseez/opencv_contrib.git
58 11 Gary Bradski
<pre>
59 11 Gary Bradski
git clone git://github.com/Itseez/opencv_contrib.git
60 11 Gary Bradski
</pre>
61 1
** The rest of the history plus matches between git commits and SVN revisions are stored at a separate "OpenCV Attic" repository: git://code.opencv.org/opencv_attic.git.
62 1
** Also OpenCV Extra was put to a separate repository: git://code.opencv.org/opencv_extra.git.
63 1
* [[OpenCV Development Process]]
64 1
** [[Meeting_notes|Developer meeting notes]]
65 1
66 1
h2. How you will be evaluated if you are an accepted student
67 1
68 1
* Student projects to be paid only if:
69 1
** *Midterm:*
70 1
*** You must generate a pull request
71 1
**** That builds
72 1
**** Has at least stubbed out functionality
73 1
**** With appropriate Doxygen documentation
74 1
**** Has at least stubbed out unit test
75 1
**** Has a stubbed out example of use that builds
76 1
** *End of summer:*
77 1
*** A full pull request
78 1
**** Full Doxygen documentation
79 1
**** A good unit test
80 1
**** Example of use code
81 1
*** Create a (short!) Movie (preferably on Youtube, but any movie) that demonstrates your code
82 1
**** We use this to create an overall summary. Past years:
83 1
***** "The 2015 Movie":https://www.youtube.com/watch?v=OUbUFn71S4s
84 1
***** "The 2014 Movie":https://www.youtube.com/watch?v=3f76HCHJJRA
85 1
***** "The 2013 Movie":https://www.youtube.com/watch?v=_TTtN4frMEA
86 1
87 1
88 1
h2. For students interested in applying
89 1
90 11 Gary Bradski
# You *must* already know how to program fluently in C++
91 1
** Some projects may require Python or Matlab skills
92 11 Gary Bradski
# Ask to join the "OpenCV GSoC Forum List":https://groups.google.com/forum/#!forum/opencv-gsoc-2016
93 11 Gary Bradski
** Discuss projects below or other ideas with us there (Feb 29 - March 13)
94 11 Gary Bradski
# On March 14th - 25th, Go to the "GSoC site":https://developers.google.com/open-source/gsoc/ and sign up to be a student with OpenCV
95 11 Gary Bradski
# Post the project from below or your own agreed on project on the GSoC to [email protected]
96 11 Gary Bradski
** Include Name, google email, age
97 11 Gary Bradski
** Include how you think you are qualified to accomplish this project (skills, courses, relevant background)
98 11 Gary Bradski
** Include Country of origin, school you are enrolled in, Professor you work with (if any)
99 11 Gary Bradski
** Include a projected timeline and milestones for the project
100 11 Gary Bradski
# Once (and if!) OpenCV gets accepted as GSoC 2016 org (Feb 29th), and we are told how many slots we will get *and* you've signed up for a project with us (March 14-25th)
101 11 Gary Bradski
** We will weight the students and projects against mentors and their interests and choose which students/project to pursue.
102 11 Gary Bradski
** Accepted students will be posted on the GSoC site on April 22nd (and we will notify the accepted students ourselves).
103 1
104 1
h2. For computer vision professionals interested in mentoring
105 4 Gary Bradski
106 1
# Go to the "GSoC site":https://developers.google.com/open-source/gsoc/ and sign up.
107 1
# Request to be a mentor for OpenCV there.
108 1
# We accept or reject you
109 1
# Students submit projects and you 
110 1
** find a project you want to mentor (several students might try for the same project)
111 14 Gary Bradski
** contact us about it through [email protected] so we can be sure there is not someone already handling that project
112 1
** contact the students to assess which one if any are capable of coding that up in a summer.
113 1
# We get a slot allocation from Google, the administrators then _"spend"_ the slots in order of priority
114 1
# Students must finally actually accept to do that project (some sign up for multiple organizations and then choose)
115 1
116 1
*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. 
117 1
** It sounds harder than it is.
118 1
119 1
120 1
<pre>
121 1
\/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/
122 1
</pre>
123 1
124 1
h1. 2016 Project Ideas:
125 1
126 14 Gary Bradski
*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 https://groups.google.com/forum/?fromgroups#!forum/opencv-gsoc-2016
127 1
128 1
_These are not in order of priority_
129 1
130 19 Gary Bradski
*1. Google Cardboard*
131 1
* Do visual odometry, SLAM etc for Google Cardboard
132 1
133 19 Gary Bradski
*2. Deep learning*
134 13 Gary Bradski
* It would be cool if OpenCV could load and run deep networks trained with popular DNN packages like Caffe, Theano or Torch.
135 13 Gary Bradski
* GPU/OpenCL optimization and/or other optimizations (that can partly be contributed back to the upstream projects) are also encouraged.
136 13 Gary Bradski
137 19 Gary Bradski
*3. Projection mapping (Projected Augmented Reality)*
138 1
* Calibrate a camera to a projector
139 1
* Put out structured light to learn the 3D map of what's in front of the camera
140 1
* Project the camera image, suitably rotated and shifted onto the scene
141 1
* Unity or some other program to start transforming the scene for projection mapping
142 19 Gary Bradski
** See [[http://www.creativebloq.com/video/projection-mapping-912849]] to get ideas of what you can do with this
143 1
144 19 Gary Bradski
*4. Update OpenCV file storage so that it's readable by Python in OpenCV (move to YAML 1.2 Edition 3)*
145 1
* Mentor Prasanna
146 1
* OpenCV C++ writes out its own YAML tags which makes it incompatible with it's own Python and with external python readers
147 1
* Speedup fs reading/writing, add JSON support, add base64 (+RLE) support for large amounts of numerical data
148 1
* References
149 19 Gary Bradski
** YAML [[http://www.yaml.org]]
150 19 Gary Bradski
** Problem statement: [[http://stackoverflow.com/questions/11141336/filestorage-for-opencv-python-api]]
151 1
152 19 Gary Bradski
*5. openh264 support*
153 19 Gary Bradski
* We are currently use ffmpeg, which is great library, but: 1) its API changes often and 2) it does not have its own h264 encoder and instead uses GPL-ed x264.
154 19 Gary Bradski
* There is BSD-licensed openh264 library that includes H264 encoder and decoder. It may be interesting to use this library directly (although ffmpeg can also use it) as light-weight method to get full support for H264.
155 1
156 19 Gary Bradski
*6. Better interactive camera calibration*
157 1
* Modern algorithms would allow us to recompute camera parameters after almost each frame, compute reprojection error, compute confidence intervals for the parameters.
158 1
* the partially occluded calibration patterns could be handled somehow to, especially if we want to estimate intrinsic parameters only.
159 1
* the application may show us the areas where the corner borders have been shown so that user can see how good are the data
160 1
161 19 Gary Bradski
*7. Color Calibration and white balance*
162 1
* With McBeth chart and with gray world algorithm (improve exisiting color constancy algorithms)
163 1
* Possibly collect deep learning way of doing this (needs large training set)
164 1
165 19 Gary Bradski
*8. Tracking improvements*
166 1
* TLD algorithm is implemented in OpenCV, but it needs improvements and optimizations.
167 1
* ASM/AAM can also be implemented, as well as the particle filter.
168 1
169 19 Gary Bradski
*9. Improving ICF/ACF + <some>Boost training and detection*
170 1
* 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.
171 1
172 19 Gary Bradski
*10. lua+OpenCV*
173 1
* 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.
174 1
175 19 Gary Bradski
*11. human interaction*
176 1
* gesture recognition
177 19 Gary Bradski
* human skeleton based on 2d or 3d
178 1
179 19 Gary Bradski
*12. Quad Rotor Contrib*
180 1
* Apply much of the above into a quad rotor drone automatic tracking, mapping navigation etc module
181 1
182 19 Gary Bradski
*13. Efficient dense optical flow algorithm*
183 19 Gary Bradski
* OpenCV will benefit greatly from having some real alternative for the Farneback's dense optical flow algorithm. A few other algorithms that we've implemented (e.g. SimpleFlow, TVL1) are very, very slow. It would be nice to have an algorithm that is at least as fast as Farneback and gives a better quality at the same time.
184 1
185 19 Gary Bradski
*14. Speeding up various OpenCV parts (it can be multiple projects).*
186 19 Gary Bradski
  OpenCV is great library, but some of its algorithms may be made more efficient. Here is a list of things that can be optimized:
187 19 Gary Bradski
   * text detection module
188 19 Gary Bradski
   * shape module
189 19 Gary Bradski
   * bioinspired module
190 19 Gary Bradski
   * hdr algorithms from ximgproc and xphoto.
191 19 Gary Bradski
   * non-local-means denoising algorithm from photo module
192 19 Gary Bradski
   * kaze & akaze features
193 19 Gary Bradski
   * you name it - proposals are welcome
194 19 Gary Bradski
195 12 Gary Bradski
New 2016 ideas:
196 12 Gary Bradski
197 12 Gary Bradski
* Architecture
198 12 Gary Bradski
** Exceptions in OpenCV need to be easily disabled ? (need to check if that's the case or not)
199 19 Gary Bradski
** Minimal OpenCV: give the functions you want, it gives you a minimal version of the library.
200 19 Gary Bradski
** reduce the size of OpenCV on Android
201 1
** create a more C++ type (to be able to deal with constness and separate the pointer from the type)
202 12 Gary Bradski
** create an image type (that would also have color information, maybe calibration too) and implement a proper resize algorithm for that type
203 12 Gary Bradski
204 1
* Tracking
205 1
** David Tan’s tracking
206 19 Gary Bradski
2d: [[https://www.youtube.com/watch?v=W689ffCMDF4]]
207 19 Gary Bradski
3d: [[https://www.youtube.com/watch?v=TqyFEZzhPbE]]
208 12 Gary Bradski
209 1
* misc
210 19 Gary Bradski
** convexHull is implemented with Sklansky's second, 1982 algorithm, which is incorrect in some case, and suboptimal complexity-wise. cf. [[http://cgm.cs.mcgill.ca/~athens/cs601/]].
211 19 Gary Bradski
<code>cv::contourArea(cv::convexHull(contour))</code> for a convex contour is different from <code>cv::contourArea(contour)</code>, somtimes by nearly 30%.
212 19 Gary Bradski
** Lightfield: [[https://www.youtube.com/watch?v=WU-D4PA5plo]]
213 19 Gary Bradski
** a resize algorithm for images taking color into account. [[http://www.4p8.com/eric.brasseur/gamma.html]]?
214 1
215 1
216 1
<pre>
217 1
/\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\ /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\ 
218 1
</pre>
219 1
220 1
221 1
h1. Accepted Projects for OpenCV GSoC 2016:
222 1
223 1
OpenCV GSoC 2016 students, projects, mentors are below. *WHEN THEY ARE KNOWN*
224 1
225 1
226 1
*GSoC Progress. Need Pull requests (don't have to be complete) to pass by July 3rd*
227 1
228 1
*Mailing Lists (only for use of Mentors and Students, please to not request to join these lists otherwise):*
229 14 Gary Bradski
* Mentors
230 1
** opencv-gsoc2016-mentors
231 14 Gary Bradski
* Students
232 1
** opencv-gsoc2016-students
233 1
234 1
* [[How_to_contribute|How to do a pull request]]
235 1
236 1
*Pre-Midterm status:*
237 14 Gary Bradski
238 1
Project notes will be compiled "here":https://sites.google.com/a/opencv.org/opencv/gsoc-2016-project-notes .
239 1
240 1
241 1
242 1
h2. Mentors
243 1
244 1
*Actual signed up mentors*
245 1
246 1
* Alexander Mordvintsev	zzznah(+)gmail.com
247 1
* Sid Bao	ybao(+)magicleap.com
248 1
* Vincent Rabaud	vincent.rabaud(+)gmail.com
249 1
* Vadim Pisarevsky	vadim.pisarevsky(+)gmail.com
250 1
* Adrian Kaehler	therealadrian(+)gmail.com
251 1
* Terry Boult	tboult(+)vast.uccs.edu
252 1
* spmallick	spmallick(+)taaz.com
253 1
* Serge Belongie	sjb344(+)cornell.edu
254 1
* Stefano	s.fabri10(+)gmail.com
255 1
* Prasanna	pras.bits(+)gmail.com
256 1
* Pablo Alcantarilla	pablofdezalc(+)gmail.com
257 1
* Bence Magyar	mw.mzperx(+)gmail.com
258 1
* Manuele	manuele.tamburrano(+)gmail.com
259 1
* Grace Vesom	grace.vesom(+)gmail.com
260 1
* Open Source Computer Vision Library (OpenCV)	garybradski(+)gmail.com
261 1
* Douglas Lee	dougabug(+)gmail.com
262 1
* Claudia Rapuano	c.rapuano(+)gmail.com
263 1
* Antonella Cascitelli	antonellacascitelli(+)gmail.com
264 1
* Anatoly Baksheev	anatoly.baksheev(+)itseez.com
265 1
* Alexander	alexander.shishkov(+)itseez.com
266 1
* Alexander Smorkalov	alexander.smorkalov(+)itseez.com
267 1
* Alexander Bovyrin	alexander.bovyrin(+)itseez.com
268 1
269 1
270 1
271 1
In the below, get rid of the ''-delete-'' to make the emails work.
272 1
273 1
 Anatoly Baksheev
274 1
 Researcher, Vision Algorithms on GPU
275 1
 Argus/Itseez
276 1
 [email protected]  
277 1
 
278 1
  Alexander Bovyrin
279 1
  PhD, Senior Researcher
280 1
  Argus/Itseez founder
281 1
  NNU Lecturer
282 1
  [email protected]
283 1
284 1
 Gary Bradski
285 1
 Founder, Industrial Perception Inc.
286 1
 Consulting Prof. Stanford U.
287 1
 OpenCV Founder, Technical Content Owner, GSoC Admin
288 1
 Co-author of Learning OpenCV Book
289 1
 http://www.willowgarage.com/pages/people/gary-bradski-senior-researcher
290 1
 [email protected]
291 1
292 1
 Antonella Cascitelli
293 1
 Grad student, University of Rome
294 1
 [email protected]
295 1
296 1
 Eric Christiansen
297 1
 PhD, UCSD
298 1
 [email protected]
299 1
300 1
 Stefano Fabri
301 1
 CRR Team leader, University of Rome
302 1
 [email protected]
303 1
304 1
 Victor Eruhimov
305 1
 OpenCV founding team/Senior Researcher
306 1
 Argus/Itseez founder
307 1
 NNU Lecturer
308 1
 [email protected]
309 1
310 1
 Adrian Kaehler
311 1
 Principle Engineer, Applied Minds
312 1
 Co-author of Learning OpenCV Book.
313 1
 [email protected]
314 1
315 1
 Peter Karasev
316 1
 PhD Student, MINERVA Research Group
317 1
 Georgia Tech
318 1
 [email protected]
319 1
320 1
 Vadim Pisarevsky
321 1
 OpenCV founding team/Czar
322 1
 [email protected]
323 1
324 1
 Manuele Tamburrano
325 1
 Grad Student, University of Rome
326 1
 [email protected]
327 1
328 1
 Vincent Rabaud
329 1
 Principle Engineer, Aldebaran Robotics
330 1
 [email protected]
331 1
332 1
  Claudia Rapuano
333 1
  Grad student, University of Rome
334 1
  [email protected]
335 1
 
336 1
 Grace Vesom
337 1
 Senior Software Engineer, Magic Leap
338 1
 -delete-grace.vesom@-delete_gmail.com
339 1
340 1
 Bence Magyar
341 1
 Pal Robotics
342 1
 [email protected]
343 1
344 1
 Pablo Alcantarilla
345 1
 Toshiba Research Europe Ltd.
346 1
 [email protected]
347 1
348 1
h3.  Back up Mentors
349 1
350 1
 Mark Asbach
351 1
 Fraunhofer IAIS
352 1
 Schloss Birlinghoven
353 1
 Sankt Augustin, Germany
354 1
 http://mmprec.iais.fraunhofer.de/asbach.html
355 1
 [email protected]
356 1
357 1
358 1
 Nicolas Saunier, Ph.D.
359 1
 Assistant Professor
360 1
 Civil, Geological and Mining Department (CGM)
361 1
 École Polytechnique de Montréal
362 1
 http://nicolas.saunier.confins.net
363 1
 [email protected]
364 1
365 1
366 1
 Alexander Mordvintsev
367 1
 Software Engineer
368 1
 http://znah.net
369 1
 [email protected]
370 1
371 1
 Andrey Morozov
372 1
 Software Engineer
373 1
 Argus/Itseez
374 4 Gary Bradski
 [email protected] 
375 1
376 10 Gary Bradski
h2. OpenCV Org. Application to GSoC 2016
377 1
378 1
[[OpenCV GSoC Application]]
379 1
380 1
h2. Previous Years 
381 1
382 1
* 2015 "GSoC 2015 Ideas Page":http://code.opencv.org/projects/opencv/wiki/GSoC_2015
383 1
** "The 2015 Movie":https://www.youtube.com/watch?v=OUbUFn71S4s
384 1
* 2014 "GSoC 2014 Ideas Page":http://code.opencv.org/projects/opencv/wiki/GSoC_2014
385 1
** "The 2014 Movie":https://www.youtube.com/watch?v=3f76HCHJJRA
386 1
* 2013 "GSoC 2013 Ideas Page":http://code.opencv.org/projects/gsoc2013/wiki
387 1
** "The 2013 Movie":https://www.youtube.com/watch?v=_TTtN4frMEA
388 1
* 2012 Ideas site http://code.opencv.org/projects/gsoc2012/wiki/Wiki/
389 1
* 2011 Ideas site http://opencv.willowgarage.com/wiki/GSOC_OpenCV2011
390 1
** 2011 Application GSoC page is http://opencv.willowgarage.com/wiki/GSoC2011OpenCVApplication
391 1
* 2010 Ideas site http://opencv.willowgarage.com/wiki/GSOC_OpenCV2010
392 1
** 2010 Application page http://opencv.willowgarage.com/wiki/ApplicationGSOC2010
393 1
394 1
----