GSoC 2016

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