GSoC 2016

Version 1 (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 1
*OpenCV 3D recognition and pose from last year.*
5 1
!3D_recog.jpg!
6 1
7 1
----
8 1
9 1
h2. General Information:
10 1
11 1
* "GSoC 2016 site: https://developers.google.com/open-source/gsoc/":https://developers.google.com/open-source/gsoc/
12 1
* Mailing list for OpenCV GSOC 2015: [email protected]
13 1
** Group site https://groups.google.com/forum/#!forum/opencv-gsoc-2015
14 1
* "Timeline for GSoC 2015":http://www.google-melange.com/gsoc/events/google/gsoc2015
15 1
16 1
** *Next important dates:*
17 1
*** -Feb 20 19:00 UTC: Organization Application Deadline.- *DONE!*
18 1
*** -Mar 02 19:00 UTC: List of accepted Organizations.- *We're in!*
19 1
*** -Mar 16 16:00 UTC: Student Application period begins!- *Students Apply!*
20 1
*** -Mar 27 19:00 UTC: Student Application period ends!- *Closed*
21 1
*** -Apr 13 Deadline for OpenCV to request # of slots.- *Submitted*
22 1
*** -Apr 15 Google publishes how many slots we get.- *Excellent!*
23 1
*** -Apr 21 Try to eliminate duplication of students.-
24 1
*** -Apr 24 IRC for OpenCV to resolve all duplications.-
25 1
*** -Apr 27 19:00 UTC: Accepted students announced.-
26 1
*** -May 25 Let Coding begin!-
27 1
*** -Jun 26 19:00 UTC: Mid term evaluation begins.- *Pull requests must be in*
28 1
*** -Jul 03 19:00 UTC:  Mid term end.-
29 1
*** -Aug 21 19:00 UTC: Coding stop; Pull requests must be in;- Mentors: final evaluation begins...
30 1
*** -Aug 28 19:00 UTC: Final evaluation deadline; Students begin submitting code.- *All 14 remaining projects have pull requests for opencv_contrib*
31 1
*** -Sept 25 19:00 UTC: Deadline for Google Code submission-
32 1
*** -Nov 7: Mentor Summit!-
33 1
34 1
*Times:*
35 1
*  UTC to PDT (California uses PST in the winter (from Nov 1st) and PDT in the summer (from March 8)).
36 1
** "utc time converter":http://www.timebie.com/std/gmt.php
37 1
38 1
*Resources:*
39 1
40 1
* "OpenCV Developers Site":http://code.opencv.org/projects/opencv/wiki
41 1
* "OpenCV User's Site":http://opencv.org
42 1
* [[How_to_contribute|How to do a pull request/How to Contribute Code]]
43 1
* Source Code can be found at "GitHub":https://github.com/Itseez/opencv. 
44 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]].
45 1
<pre>
46 1
git clone git://github.com/Itseez/opencv.git
47 1
</pre>
48 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.
49 1
** Also OpenCV Extra was put to a separate repository: git://code.opencv.org/opencv_extra.git.
50 1
* [[OpenCV Development Process]]
51 1
** [[Meeting_notes|Developer meeting notes]]
52 1
53 1
h2. How you will be evaluated if you are an accepted student
54 1
55 1
* Student projects to be paid only if:
56 1
** *Midterm:*
57 1
*** You must generate a pull request
58 1
**** That builds
59 1
**** Has at least stubbed out functionality
60 1
**** With appropriate Doxygen documentation
61 1
**** Has at least stubbed out unit test
62 1
**** Has a stubbed out example of use that builds
63 1
** *End of summer:*
64 1
*** A full pull request
65 1
**** Full Doxygen documentation
66 1
**** A good unit test
67 1
**** Example of use code
68 1
*** Create a (short!) Movie (preferably on Youtube, but any movie) that demonstrates your code
69 1
**** We use this to create an overall summary. Past years:
70 1
***** "The 2015 Movie":https://www.youtube.com/watch?v=OUbUFn71S4s
71 1
***** "The 2014 Movie":https://www.youtube.com/watch?v=3f76HCHJJRA
72 1
***** "The 2013 Movie":https://www.youtube.com/watch?v=_TTtN4frMEA
73 1
74 1
75 1
h2. For students interested in applying
76 1
77 1
# You *must* already know how to program well in C++
78 1
** Some projects may require Python or Matlab skills
79 1
# Discuss projects below or other ideas with us https://groups.google.com/forum/?fromgroups#!forum/opencv-gsoc-2015
80 1
# Go to the "GSoC site":http://www.google-melange.com/gsoc/homepage/google/gsoc2015 and sign up
81 1
# Post the project from below or your own agreed on project on the GSoC site to the Open Source Computer Vision organization
82 1
83 1
h2. For computer vision professionals interested in mentoring
84 1
85 1
# Go to the "GSoC site":http://www.google-melange.com/gsoc/homepage/google/gsoc2015 and sign up.
86 1
# Request to be a mentor for OpenCV there.
87 1
# We accept or reject you
88 1
# Students submit projects and you 
89 1
** find a project you want to mentor (several students might try for the same project)
90 1
** contact us about it through [email protected] so we can be sure there is not someone already handling that project
91 1
** contact the students to assess which one if any are capable of coding that up in a summer.
92 1
# We get a slot allocation from Google, the administrators then _"spend"_ the slots in order of priority
93 1
# Students must finally actually accept to do that project (some sign up for multiple organizations and then choose)
94 1
95 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. 
96 1
** It sounds harder than it is.
97 1
98 1
99 1
<pre>
100 1
\/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/
101 1
</pre>
102 1
103 1
h1. 2016 Project Ideas:
104 1
105 1
*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-2015
106 1
107 1
_These are not in order of priority_
108 1
109 1
*1 Google Cardboard*
110 1
* Do visual odometry, SLAM etc for Google Cardboard
111 1
112 1
*2 Projection mapping (Projected Augmented Reality)*
113 1
* Calibrate a camera to a projector
114 1
* Put out structured light to learn the 3D map of what's in front of the camera
115 1
* Project the camera image, suitably rotated and shifted onto the scene
116 1
* Unity or some other program to start transforming the scene for projection mapping
117 1
** See http://www.creativebloq.com/video/projection-mapping-912849 to get ideas of what you can do with this
118 1
119 1
*3 Update OpenCV file storage so that it's readable by Python in OpenCV (move to YAML 1.2 Edition 3)*
120 1
* Mentor Prasanna
121 1
* OpenCV C++ writes out its own YAML tags which makes it incompatible with it's own Python and with external python readers
122 1
* Speedup fs reading/writing, add JSON support, add base64 (+RLE) support for large amounts of numerical data
123 1
* References
124 1
** YAML http://www.yaml.org
125 1
** Problem statement: http://stackoverflow.com/questions/11141336/filestorage-for-opencv-python-api
126 1
127 1
*4 Stereo correspondence improvements*
128 1
* More accurate and faster stereo correspondence (StereoBM/StereoSGBM) by using LBP/BRIEF/DAISY etc. per-pixel descriptors instead of sum-of-absolute-differences.
129 1
130 1
*5 Self-contained video codec(s)*
131 1
* There is draft version of self-contained motion jpeg encoder to be integrated to OpenCV.
132 1
* We will also need decoder, 12-bit jpeg support, multi-threaded encoder and decoder.
133 1
* There are some other codecs, like libvpx, which we can support and link right into highgui, without dependency from ffmpeg/libav.
134 1
135 1
*6 Deep learning*
136 1
* It would be cool if OpenCV could load and run deep networks trained with popular DNN packages like Caffe, Theano or Torch.
137 1
* GPU/OpenCL optimization and/or other optimizations (that can partly be contributed back to the upstream projects) are also encouraged.
138 1
139 1
*7 Better interactive camera calibration*
140 1
* Modern algorithms would allow us to recompute camera parameters after almost each frame, compute reprojection error, compute confidence intervals for the parameters.
141 1
* the partially occluded calibration patterns could be handled somehow to, especially if we want to estimate intrinsic parameters only.
142 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
143 1
144 1
*9 Color Calibration and white balance* 
145 1
* With McBeth chart and with gray world algorithm (improve exisiting color constancy algorithms)
146 1
* Possibly collect deep learning way of doing this (needs large training set)
147 1
148 1
*10 Realtime image preprocessing algorithms (real time on mobile)*
149 1
* We and many other OpenCV users would definitely enjoy very fast denoising, color improvements, white balance etc. algorithms.
150 1
151 1
*11 Tracking improvements*
152 1
* TLD algorithm is implemented in OpenCV, but it needs improvements and optimizations.
153 1
* ASM/AAM can also be implemented, as well as the particle filter.
154 1
 
155 1
156 1
*12 PBM (part-based models) improvements*
157 1
* There is latentsvm package in opencv_contrib that needs to be improved (quality-wise and speed-wise).
158 1
* Adding training, even if it involves execution of external svmperf or other tool, is definitely appreciated too.
159 1
160 1
*13 Improving ICF/ACF + <some>Boost training and detection*
161 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.
162 1
163 1
*14 lua+OpenCV*
164 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.
165 1
166 1
*15 human interaction*
167 1
* gesture recognition
168 1
* human skeleton based on 2d or 3d 
169 1
170 1
*17 Quad Rotor Contrib*
171 1
* Apply much of the above into a quad rotor drone automatic tracking, mapping navigation etc module
172 1
173 1
174 1
New 2016 ideas:
175 1
176 1
*Architecture
177 1
* Exceptions in OpenCV need to be easily disabled ? (need to check if that's the case or not)
178 1
* Minimal OpenCV: give the functions you want, it gives you a minimal version of the library. 
179 1
* reduce the size of OpenCV on Anddroid
180 1
* create a more C++ type (to be able to deal with constness and separate the pointer from the type)
181 1
* create an image type (that would also have color information, maybe calibration too) and implement a proper resize algorithm for that type
182 1
183 1
*Tracking
184 1
* David Tan’s tracking
185 1
2d: https://www.youtube.com/watch?v=W689ffCMDF4
186 1
3d: https://www.youtube.com/watch?v=TqyFEZzhPbE
187 1
188 1
*misc
189 1
* 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/.
190 1
cv::contourArea(cv::convexHull(contour)) for a convex contour is different from cv::contourArea(contour), somtimes by nearly 30%.
191 1
192 1
193 1
194 1
<pre>
195 1
/\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\ /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\ 
196 1
</pre>
197 1
198 1
199 1
h1. Accepted Projects for OpenCV GSoC 2015:
200 1
201 1
OpenCV GSoC 2015 students, projects, mentors are below. *WHEN THEY ARE KNOWN*
202 1
203 1
204 1
*GSoC Progress. Need Pull requests (don't have to be complete) to pass by July 3rd*
205 1
206 1
*Mailing Lists (only for use of Mentors and Students, please to not request to join these lists otherwise):*
207 1
* Mentors
208 1
** opencv-gsoc2015-mentors
209 1
* Students
210 1
** opencv-gsoc2015-students
211 1
212 1
* [[How_to_contribute|How to do a pull request]]
213 1
214 1
*Pre-Midterm status:*
215 1
* *Pull Request In* Antonella Cascitelli - Vladimir Tyan ([email protected]): TLD improvements - https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/auron/5629499534213120.
216 1
* *Pull Request In* Bo Li - Baisheng Lai ([email protected]). Omnidirectional Cameras Calibration and Stereo 3D Reconstruction. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/baisheng/5629499534213120
217 1
* _*No Pull Request*_ Vincent Rabaud - Edgar Riba ([email protected]). Structure From Motion module. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/edgarriba/5693417237512192
218 1
* *Pull Request In* Bence Magyar - Jiaolong Xu ([email protected]). Improving PBM in OpenCV. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/jiaolong/5718998062727168
219 1
* *Pull Request In* Fernando J. Iglesias Garcia - Laksono Kurnianggoro ([email protected]). Real-time Multi-object Tracking using Kernelized Correlation Filter. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/kurnianggoro/5629499534213120
220 1
* _*No Pull Request*_, but previously Vadim Pisarevsky - Lluis Gomez ([email protected]). Improve and expand Scene Text Detection module in OpenCV. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/lluisgomez/5751725713522688
221 1
* _*No Pull Request*_ Michael Harville, Gary Bradski - Naoto Hieda ([email protected]). Projection mapping (Projected Augmented Reality). https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/micuat/5707702298738688
222 1
* *Pull Request In* [email protected] - Mircea Paul Muresan ([email protected]). Stereo correspondence improvements. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/mmp131316/5741031244955648[Andrey can not mentor the student. Does anyone want to take one?]
223 1
* *Pull Request In* Delia, Stefano Fabri, Claudia Rapuano - RobertaRavanelli ([email protected]). Structured-Light System Calibration for OpenCV. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/roberta_ravanelli/5676830073815040
224 1
* "done" Pull Maksim Shabunin - Alexander Bokov ([email protected]). Recent advances in edge-aware filtering. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/sbokov/5629499534213120
225 1
* _*No Pull Request*_ Prasanna, Gary Bradski - Sergio Garrido ([email protected]). Charuco board: Chessboard+ArUco for camera calibration. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/sgarrido/5629499534213120
226 1
* _*No Pull Request*_ Alexander Bovyrin - Vlad Shakhuro ([email protected]). ICF detector improvements. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/shahurik/5717271485874176
227 1
* *Pull Request In* Vadim Pisarevsky - Seon-Wook Park ([email protected]). Real-time image preprocessing on ARM. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/swook/5798429187899392
228 1
* *Pull Request In* Anatoly Baksheev, Douglas Lee - Vitaliy Lyudvichenko ([email protected]). Implementation of universal interface for deep neural network frameworks. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/vludv/5657382461898752
229 1
* *Pull Request In* Manuele Tamburrano, Stefano Fabri - Yida Wang ([email protected]). Deep Learning & GPU Implementation Proposal. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2015/wangyida/5629499534213120
230 1
231 1
Project notes will be compiled "here":https://sites.google.com/a/opencv.org/opencv/gsoc-2015-project-notes .
232 1
233 1
234 1
235 1
h2. Mentors
236 1
237 1
*Actual signed up mentors*
238 1
239 1
* Alexander Mordvintsev	zzznah(+)gmail.com
240 1
* Sid Bao	ybao(+)magicleap.com
241 1
* Vincent Rabaud	vincent.rabaud(+)gmail.com
242 1
* Vadim Pisarevsky	vadim.pisarevsky(+)gmail.com
243 1
* Adrian Kaehler	therealadrian(+)gmail.com
244 1
* Terry Boult	tboult(+)vast.uccs.edu
245 1
* spmallick	spmallick(+)taaz.com
246 1
* Serge Belongie	sjb344(+)cornell.edu
247 1
* Stefano	s.fabri10(+)gmail.com
248 1
* Prasanna	pras.bits(+)gmail.com
249 1
* Pablo Alcantarilla	pablofdezalc(+)gmail.com
250 1
* Bence Magyar	mw.mzperx(+)gmail.com
251 1
* Manuele	manuele.tamburrano(+)gmail.com
252 1
* Grace Vesom	grace.vesom(+)gmail.com
253 1
* Open Source Computer Vision Library (OpenCV)	garybradski(+)gmail.com
254 1
* Douglas Lee	dougabug(+)gmail.com
255 1
* Claudia Rapuano	c.rapuano(+)gmail.com
256 1
* Antonella Cascitelli	antonellacascitelli(+)gmail.com
257 1
* Anatoly Baksheev	anatoly.baksheev(+)itseez.com
258 1
* Alexander	alexander.shishkov(+)itseez.com
259 1
* Alexander Smorkalov	alexander.smorkalov(+)itseez.com
260 1
* Alexander Bovyrin	alexander.bovyrin(+)itseez.com
261 1
262 1
263 1
264 1
In the below, get rid of the ''-delete-'' to make the emails work.
265 1
266 1
 Anatoly Baksheev
267 1
 Researcher, Vision Algorithms on GPU
268 1
 Argus/Itseez
269 1
 [email protected]  
270 1
 
271 1
  Alexander Bovyrin
272 1
  PhD, Senior Researcher
273 1
  Argus/Itseez founder
274 1
  NNU Lecturer
275 1
  [email protected]
276 1
277 1
 Gary Bradski
278 1
 Founder, Industrial Perception Inc.
279 1
 Consulting Prof. Stanford U.
280 1
 OpenCV Founder, Technical Content Owner, GSoC Admin
281 1
 Co-author of Learning OpenCV Book
282 1
 http://www.willowgarage.com/pages/people/gary-bradski-senior-researcher
283 1
 [email protected]
284 1
285 1
 Antonella Cascitelli
286 1
 Grad student, University of Rome
287 1
 [email protected]
288 1
289 1
 Eric Christiansen
290 1
 PhD, UCSD
291 1
 [email protected]
292 1
293 1
 Stefano Fabri
294 1
 CRR Team leader, University of Rome
295 1
 [email protected]
296 1
297 1
 Victor Eruhimov
298 1
 OpenCV founding team/Senior Researcher
299 1
 Argus/Itseez founder
300 1
 NNU Lecturer
301 1
 [email protected]
302 1
303 1
 Adrian Kaehler
304 1
 Principle Engineer, Applied Minds
305 1
 Co-author of Learning OpenCV Book.
306 1
 [email protected]
307 1
308 1
 Peter Karasev
309 1
 PhD Student, MINERVA Research Group
310 1
 Georgia Tech
311 1
 [email protected]
312 1
313 1
 Vadim Pisarevsky
314 1
 OpenCV founding team/Czar
315 1
 [email protected]
316 1
317 1
 Manuele Tamburrano
318 1
 Grad Student, University of Rome
319 1
 [email protected]
320 1
321 1
 Vincent Rabaud
322 1
 Principle Engineer, Aldebaran Robotics
323 1
 [email protected]
324 1
325 1
  Claudia Rapuano
326 1
  Grad student, University of Rome
327 1
  [email protected]
328 1
 
329 1
 Grace Vesom
330 1
 Senior Software Engineer, Magic Leap
331 1
 -delete-grace.vesom@-delete_gmail.com
332 1
333 1
 Bence Magyar
334 1
 Pal Robotics
335 1
 [email protected]
336 1
337 1
 Pablo Alcantarilla
338 1
 Toshiba Research Europe Ltd.
339 1
 [email protected]
340 1
341 1
h3.  Back up Mentors
342 1
343 1
 Mark Asbach
344 1
 Fraunhofer IAIS
345 1
 Schloss Birlinghoven
346 1
 Sankt Augustin, Germany
347 1
 http://mmprec.iais.fraunhofer.de/asbach.html
348 1
 [email protected]
349 1
350 1
351 1
 Nicolas Saunier, Ph.D.
352 1
 Assistant Professor
353 1
 Civil, Geological and Mining Department (CGM)
354 1
 École Polytechnique de Montréal
355 1
 http://nicolas.saunier.confins.net
356 1
 [email protected]
357 1
358 1
359 1
 Alexander Mordvintsev
360 1
 Software Engineer
361 1
 http://znah.net
362 1
 [email protected]
363 1
364 1
 Andrey Morozov
365 1
 Software Engineer
366 1
 Argus/Itseez
367 1
 [email protected] 
368 1
369 1
h2. OpenCV Org. Application to GSoC 2015
370 1
371 1
"OpenCV GSoC Application":http://code.opencv.org/projects/gsoc2013/wiki/GSoC2013OpenCVApplication
372 1
373 1
h2. Previous Years 
374 1
375 1
* 2015 "GSoC 2015 Ideas Page":http://code.opencv.org/projects/opencv/wiki/GSoC_2015
376 1
** "The 2015 Movie":https://www.youtube.com/watch?v=OUbUFn71S4s
377 1
* 2014 "GSoC 2014 Ideas Page":http://code.opencv.org/projects/opencv/wiki/GSoC_2014
378 1
** "The 2014 Movie":https://www.youtube.com/watch?v=3f76HCHJJRA
379 1
* 2013 "GSoC 2013 Ideas Page":http://code.opencv.org/projects/gsoc2013/wiki
380 1
** "The 2013 Movie":https://www.youtube.com/watch?v=_TTtN4frMEA
381 1
* 2012 Ideas site http://code.opencv.org/projects/gsoc2012/wiki/Wiki/
382 1
* 2011 Ideas site http://opencv.willowgarage.com/wiki/GSOC_OpenCV2011
383 1
** 2011 Application GSoC page is http://opencv.willowgarage.com/wiki/GSoC2011OpenCVApplication
384 1
* 2010 Ideas site http://opencv.willowgarage.com/wiki/GSOC_OpenCV2010
385 1
** 2010 Application page http://opencv.willowgarage.com/wiki/ApplicationGSOC2010
386 1
387 1
----