Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork56.4k
GSoC_2017
- Program Site for GSoC 2017
- Mailing list for OpenCV GSOC 2017:
opencv-gsoc-2017@googlegroups.com - IRC Channel:
#opencvon freenode - Timelines
| Date | Description | Comment |
|---|---|---|
| Oct 10, 2016 | Program announced | |
| Jan 19, 16:00 UTC | Mentoring organizations begin submitting appls to Google | DONE |
| Feb 9, 16:00 UTC | Mentoring organization application deadline | DONE |
| Feb 10 - 26 | Google program administrators review organization applications | DONE |
| Feb 27, 16:00 UTC | List of accepted mentoring organizations published | WE'RE IN! |
| Feb 27 - Mar 20 | Potential student participants discuss application ideas with mentoring organizations | Send proposals toGSoC site! |
| Mar 20, 16:00 UTC | Student application period opens | Send proposals toGSoC site! |
| Apr 3, 16:00 UTC | Student application deadline | DONE! That is, unless you have your own $, too late now |
| Apr 19, 16:00 UTC | Slots awarded | Thanks Google! |
| May 4, 16:00 UTC | Accepted student proposals announced | Rev your engines as of 16:00 UTC! |
| Community Bonding Period | Students get to know mentors, read documentation, get up to speed to begin working on their projects | Bonded |
| May 30 | Coding officially begins! | |
| Work Period | Students work on their project with guidance from Mentors | |
| Jun 26, 16:00 UTC | Mentors and students can begin submitting Phase 1 evaluations | |
| Jun 30, 16:00 UTC | Phase 1 Evaluation deadline; Google begins issuing student payments | |
| Work Period | Students work on their project with guidance from Mentors | |
| Jul 24, 16:00 UTC | Mentors and students can begin submitting Phase 2 evaluations | |
| Work Period | Students continue working on their project with guidance from Mentors | |
| Jul 28, 16:00 UTC | Phase 2 Evaluation deadline | |
| Aug 21 - 29, 16:00 UTC | Final week: Students submit their final work product and their final mentor evaluation | 🏁 |
| Aug 29 - Sep 5, 16:00 UTC | Mentors submit final student evaluations | |
| Sep 6 | Final results of Google Summer of Code 2017 announced | 🎉 |
| Late October | Mentor Summit at Google |
UTC to PDT (California uses PST in the winter (from Nov 1st) and PDT in the summer (from March 8)).
- OpenCV official Site
- OpenCV wiki
- How to do a pull request/How to Contribute Code
- Source Code can be found atGitHub/opencv andGitHub/opencv_contrib
- Developer meeting notes
- Student projects to be paid only if:
- Midterm 1:
- You must generate a pull request
- That builds
- Has at least stubbed out functionality
- With appropriate Doxygen documentation
- Has at least stubbed out unit test
- Has a stubbed out example of use that builds
- You must generate a pull request
- Midterm 2:
- You must generate a pull request
- That builds
- Has basic functionality
- With appropriate Doxygen documentation
- Has basic unit test
- You must generate a pull request
- End of summer:
- A full pull request
- Full Doxygen documentation
- A good unit test
- Example of use code
- Create a (short!) Movie (preferably on Youtube, but any movie) that demonstrates your code
- We use this to create an overall summary. Past years:
- A full pull request
- Midterm 1:
- Youmust already know how to program fluently in C++
- Some projects may instead specifically require Python or Matlab skills
- Ask to join theOpenCV GSoC Forum List
- Discuss projects ideas below or your own ideas with OpenCV mentors on the list now and April.
- Always title your proposal with what you want to do (example:Implement Patch Match Stereo Algorithm )
- NOTE: The above is to discuss proposals with mentors.BUT, when the application period starts, you must still sign up with Google Summmer of Code and submit your proposal to the OpenCV organization. If not, you will not show up on the database where we can select you as a student.
- In March, Go to theGSoC site and sign up to be a student with OpenCV
- Post the project from below or your own agreed on project on the GSoC toopencv-gsoc-2017@googlegroups.com
- Include Name, google email, age
- Include how you think you are qualified to accomplish this project (skills, courses, relevant background)
- Include Country of origin, school you are enrolled in, Professor you work with (if any)
- Include a projected timeline and milestones for the project
- Once (and if!) OpenCV gets accepted as GSoC org this year, and we are told how many slots we will getand you've signed up for a project with us in March before the April 3rd deadline: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 in May (and we will notify the accepted students ourselves).
- Students are paid over the summer by GoogleIF the mentor accepts the student's work. There are several milestone based go-nogo points.
- Contact us on the opencv-gsoc googlegroups mailing list above and ask to be a mentor (or we will ask you in some known cases)
- If we accept you, we will post a request from the Google Summer of Code OpenCV project site asking you to join.
- You must accept the request andyou are a mentor!
- You then:
- Go to the opencv-gsoc googlegroups mailing list above and look through student project proposals, find a student and project you like and work with them to refine a realistic proposal that they can implement in a summer (you have to judge whether the student is capable -absolutely no non-coders in the language you need, typically C++, accepted! Summer is too short to learn to code and get something done).
- you may also find (good) students and get them to apply, perhaps to your pet project idea
- Once you find or create a project proposal that you want to mentor
- several students might try for the same project
- alternatively, you might have to convince a student to change projects to one you like or recruit an external student to join Google Summer of Code and apply to your project
- But, always encourage students to officially apply through the Google Summer of Code site - it helps us and them.
- Go to the opencv-gsoc googlegroups mailing list above and look through student project proposals, find a student and project you like and work with them to refine a realistic proposal that they can implement in a summer (you have to judge whether the student is capable -absolutely no non-coders in the language you need, typically C++, accepted! Summer is too short to learn to code and get something done).
- We later get a slot allocation from Google, the administrators then"spend" the slots in order of priority influenced by whether there's a capable mentor or not for each topic.
- Students must finally actually accept to do that project (some sign up for multiple organizations and then choose)
- Sheesh!
If you are accepted as a mentorand you find a suitable studentand we give you a slotand the student signs up for it,then you are an actual mentor.
It sounds harder than it is.
You get paid a modest stipend over the summer to mentor, typically $500 minus an org fee of 6%.
Several mentors donate their salary, earning ever better positions in heaven when that comes.
Alphabetic by project title
| Student | Title | Mentor(s) |
|---|---|---|
| Karan Desai | A Model Zoo for Tiny-dnn | Edgar Riba, Stefano Fabri, Taiga Nomi |
| Laksono Kurnianggoro | API for Facial Landmark Detector | Antonella Cascitelli, Delia Passalacqua |
| Binbin Xu | Computational Occlusion Removal in Image Inpainting | Gary Bradski |
| Gang Song | Create Web-based Interactive Tutorials and Examples for OpenCV | Sajjad Taheri |
| João Cartucho | Documentation Improvement w/code examples | Vincent Rabaud |
| Suman Kumar Ghosh | End to End text detection and recognition | Prasanna |
| sukhad Anand | Face alignment with opencv | StevenPuttemans |
| Evgenii Zheltonozhskii | GPU enabled deep learning framework | Edgar Riba, Stefano Fabri |
| Mihai Bujanca | Implementing and extending DynamicFusion (Newcombe et al 2015) | Reza Amayeh, Zhe Zhang |
| Congxiang Pan | Improve and Extend the JavaScript Bindings for OpenCV | Sajjad Taheri |
| SHENGXIN QIAN | Improve Background Subtraction with Aggregated Saliency | Antonella Cascitelli |
| Vladislav Samsonov | Improvement of the background subtraction algorithm | Maksim Shabunin |
| kv | Learning compact models for object detection | Vladimir Tyan |
| Nan Yang | Photometric Calibration | Grace Vesom |
| Pau Rodríguez | Recurrent Neural Networks on tiny-dnn | Edgar Riba, Taiga Nomi |
| Jiri Horner | Speeding-up AKAZE features | Bence Magyar, Vadim Pisarevsky, Vladimir Tyan |
| Kuan Wang | The Fast Bilateral Solver | Bo Li |
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 yearContact us and/or discuss ideas athttps://groups.google.com/forum/?fromgroups#!forum/opencv-gsoc-2017
These arenot in order of priority
We have so much good code inopencv_contrib that needs better documentation, tutorials, examples of use etc. Particularly:
- Our deep net library,tiny-dnn needs examples of how to
- Setup, build and run on various OS
- Training
- Testing
- Running on mobile
- DNN - examples of running models learned in Caffe and Torch. Speed tests
- Go over and update/improve/expand on existing tutorials
- Computational Photography
- Tracking
- Camera Calibration
- Video stabilization
- Image stitching
OpenCV works with/has an entire deep net library,tiny-dnn. Or, there is implemented from scratchDNN module. You are welcome to base your proposal on any of these 2 options. We want better performance, more tests, tutorials, python/java wrappers etc.
ImprovingDNN module ideas:
- Advanced visualizing of deep learning models (with input-output blobs dimensions, layer types, connections and so on). It can be either based on third-party libraries solution or built on OpenCV's drawing functions own implementation.
- Quantization of convolution and fully-connected layers. These layers are bottlenecks and by speeding them up it's possible to improve performance in many use cases.
- Enable supporting of the most popular deep learning architectures: VGG-16, ResNet, SqueezeNet, R-FCN and so on. Implement missed layers, check output accuracy, write samples for online-available models.
- Optimization of convolution layers - merging operations (Conv + bias + relu + pooing) to give more computation to one thread.
We'd like to learncompact (that can be fit on mobile, i.e. models that take a few megabytes of disk or memory space) models (see SqueezeNet for inspiration that recognize:
- People
- Cars
- Animals, particularly dogs and cats outside and inside.
- Face and/or face features
- Text
- Floors, Walls, Ceilings, Windows, Doors, Tables, Chairs
- Others....
The code for detectingAruco and Charuco tags needs improvement.
We have tried to get in reliable building blocks for SLAM for years. We've made some projects, but it's not there yet.
Please don't even think about doing this project unless you are already doing SLAM in your advanced PhD work. This is a hard algorithm to get right and you just won't unless you are already a leading expert!
We have a Mixture of Guassian (MoG) fitting algorithms that work well, but they fail to take into consideration the correlation between neighbour pixels. Find a better way. We can suggest approaches.
Extra credit if it can detect or even compensate for camera motion.
It works well now. Maybe just improve the tutorial, but try to improve the algorithm.
Try to add deep methods.
- Improve the saliency relevance
- Improve the application interface (API).
- Improve the text detection module
- Test/improve on other datasets
Write better primitives for marking, segmenting, storing image (and possibly 3D!) data
But maybe just work with and improve the VATIC code (contact authors?)
- Hand or finger detection
- gesture recognition
- human skeleton based on 2d or 3d
It would be interesting to adapt the module to use one of the several Deep CNN models have been made public during the last year (both for character and word recognition) e.g.http://www.robots.ox.ac.uk/~vgg/research/text/. Any other further improvement of the module is also welcome. Last year a DNN has been built that recognizes characters, but it's huge. We are interested in a very compact network (a few megabytes, may be up to 20Mb or so) for character recognition.
OpenCV.js OpenCV in javascript. Looks very interesting, has huge scale to run vision inside a browser
- https://github.com/ucisysarch
- Examples
Thevis module is very useful, but it needs:
- Easy way to directly enter cv::Mat containing depth or disparity into a point cloud for vis
- Point cloud to ply converter
- Once in vis, automatic color coded surface normal visualizationsee here
- Andalso here
- Tutorials showing how to use its features
- Addonto here
- Or, maybe we just need to document/improve and bring out functionalityas in docs here
- Test codes forfunctionality are here
This is very general and always relevant topic. OpenCV is known for decent speed, but there is always room for improvement, especially in the experimental part (opencv_contrib). You are welcome to come up with concrete proposals on optimizing a particular functionality. Optimisation can be done using OpenCL, parallelisation, SSE/AVX oruniversal intrinsics. It can also be "algorithmic" optimization, which, despite its name, means that the algorithm basically stays the same, but you find some ways to eliminate some unnecessary computations, unnecessary memory allocations etc.
For example, we would be interested in optimizing image processing (imgproc, opencv_contrib/ximgproc), text detection (opencv_contrib/text), TLD tracker (opencv_contrib/tracking), computational photography (photo and opencv_contrib/xphoto), dnn module (opencv_contrib/dnn), feature detectors (features2d and opencv_contrib/xfeatures2d), non-dnn-based object detection (opencv_contrib/dpm and opencv_contrib/xobjdetect). You are welcome to propose for optimization some other functionality, though.
Algebra on ROI-s implementing union, intersection, exclusion and more. Have to handle contours, rectangles and circles at least. Proposals are expected to expand on this abstract, come up with a fixed set of methods, be rich enough to justify for a full summer's work and demonstrate their usefulness with examples.
A javascript version of OpenCV now has more than 1000 functions.
Yes! OpenCV henceforth will run natively in any browser
Help the authors expand, improve, document and create tutorials for it.
- Optimizing exists algorithms or some parts using Halide.
- Extend implementations for GPU targets.
- Deep learning layers and topologies.
- Automatic domain-specific scheduling.
Potential mentors
- Alexander Mordvintsev zzznah(+)gmail.com
- Sid Bao ybao(+)magicleap.com
- Vincent Rabaud vincent.rabaud(+)gmail.com
- Vadim Pisarevsky vadim.pisarevsky(+)gmail.com
- Adrian Kaehler therealadrian(+)gmail.com
- Terry Boult tboult(+)vast.uccs.edu
- spmallick spmallick(+)taaz.com
- Serge Belongie sjb344(+)cornell.edu
- Stefano s.fabri10(+)gmail.com
- Prasanna pras.bits(+)gmail.com
- Pablo Alcantarilla pablofdezalc(+)gmail.com
- Bence Magyar mw.mzperx(+)gmail.com
- Manuele manuele.tamburrano(+)gmail.com
- Grace Vesom grace.vesom(+)gmail.com
- Open Source Computer Vision Library (OpenCV) garybradski(+)gmail.com
- Douglas Lee dougabug(+)gmail.com
- Claudia Rapuano c.rapuano(+)gmail.com
- Antonella Cascitelli antonellacascitelli(+)gmail.com
- Anatoly Baksheev anatoly.baksheev(+)itseez.com
- Alexander alexander.shishkov(+)itseez.com
- Alexander Smorkalov alexander.smorkalov(+)itseez.com
- Alexander Bovyrin alexander.bovyrin(+)itseez.com
In the below, get rid of the ''delete'' to make the emails work.
Anatoly BaksheevResearcher, Vision Algorithms on GPUArgus/Itseez-delete-Anatoly.Baksheev@-delete-itseez.comAlexander BovyrinPhD, Senior ResearcherArgus/Itseez founderNNU Lecturer-delete-alexander.bovyrin@-delete-itseez.comGary BradskiFounder, "Arraiy":https://www.arraiy.com/Founder, Industrial Perception Inc.Former Consulting Prof. Stanford U.OpenCV Founder, Technical Content Owner, GSoC AdminCo-author of Learning OpenCV Bookhttps://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/1491937998-delete-garybradski@-delete-gmail.comAntonella CascitelliGrad student, University of Rome-delete-antonellacascitelli@gmail.comEric ChristiansenPhD, UCSD-delete-echristiansen@-delete-cs.ucsd.eduStefano FabriCRR Team leader, University of Rome-delete-s.fabri10@gmail.comVictor EruhimovOpenCV founding team/Senior ResearcherArgus/Itseez founderNNU Lecturer-delete-relrotciv@-delete-googlemail.comAdrian KaehlerPrinciple Engineer, Applied MindsCo-author of Learning OpenCV Book.-delete-therealadrian@-delete-gmail.comPeter KarasevPhD Student, MINERVA Research GroupGeorgia Tech-delete-karasevpa@-delete-gmail.comVadim PisarevskyOpenCV founding team/Czar-delete-Vadim.-delete-Pisarevsky@-delete-gmail.comManuele TamburranoGrad Student, University of Rome-delete-manuele.tamburrano@gmail.comVincent RabaudSenior Engineer, Google-delete-vincent.rabaud@-delete-gmail.comClaudia RapuanoGrad student, University of Rome-delete-c.rapuano@gmail.comGrace VesomSenior Software Engineer, Magic Leap-delete-grace.vesom@-delete_gmail.comBence MagyarPal Robotics-delete-bence.magyar@-delete-pal-robotics.comPablo AlcantarillaToshiba Research Europe Ltd.-delete-pablofdezalc@-delete-gmail.comBack up Mentors
Mark AsbachFraunhofer IAISSchloss BirlinghovenSankt Augustin, Germanyhttp://mmprec.iais.fraunhofer.de/asbach.html-delete-mark.asbach@-delete-iais.fraunhofer.deNicolas Saunier, Ph.D.Assistant ProfessorCivil, Geological and Mining Department (CGM)École Polytechnique de Montréalhttp://nicolas.saunier.confins.net-delete-nicolas.saunier@-delete-polymtl.caAlexander MordvintsevSoftware Engineerhttp://znah.net-delete-zzznah@-delete-gmail.comAndrey MorozovSoftware EngineerArgus/Itseez-delete-andrey.morozov@-delete-itseez.com© Copyright 2019-2025, OpenCV team