GSoC2013OpenCVApplication
Version 7 (Gary Bradski, 2015-02-10 10:29 pm)
1 | 1 | h1. GSoC2013OpenCVApplication |
|
---|---|---|---|
2 | 1 | ||
3 | 1 | h3. Org ID? |
|
4 | 1 | ||
5 | 1 | OpenCV |
|
6 | 1 | ||
7 | 1 | h3. Org name? |
|
8 | 1 | ||
9 | 1 | Open Source Computer Vision Library (OpenCV) |
|
10 | 1 | ||
11 | 1 | h3. Description? |
|
12 | 1 | ||
13 | 2 | Gary Bradski | The Open Source Computer Vision Library (OpenCV) is a comprehensive computer vision library and machine learning (over 2500 functions) written in C++ and C with additional Python and Java interfaces. It officially supports Linux, Mac OS, Windows, Android and iOS. OpenCV has specific optimizations for SSE instructions, CUDA and especially Tegra. |
14 | 2 | Gary Bradski | |
15 | 4 | Gary Bradski | OpenCV is now supported by a non-profit organization: OpenCV.org. It has an active user group of 55 thousand members and over 6M downloads. OpenCV has uses from gesture recognition, Android and iPhone vision apps on up to medical, robotics, mine safety and Google Streetview. |
16 | 1 | ||
17 | 1 | h3. URL? |
|
18 | 1 | ||
19 | 5 | Gary Bradski | http://opencv.org/ |
20 | 1 | ||
21 | 1 | h3. License? |
|
22 | 1 | ||
23 | 1 | New and Simplified BSD |
|
24 | 1 | ||
25 | 1 | h3. Backup Admin? |
|
26 | 1 | ||
27 | 1 | Vadim.Pisarevsky |
|
28 | 1 | ||
29 | 1 | h3. Ideas Page? |
|
30 | 1 | ||
31 | 5 | Gary Bradski | http://code.opencv.org/projects/gsoc2013/wiki |
32 | 1 | ||
33 | 1 | h3. IRC channel? |
|
34 | 1 | ||
35 | 1 | <pre> |
|
36 | 1 | #opencv on freenode |
|
37 | 1 | </pre> |
|
38 | 1 | ||
39 | 1 | h3. Mailing list? |
|
40 | 1 | ||
41 | 1 | http://tech.groups.yahoo.com/group/OpenCV/ |
|
42 | 1 | ||
43 | 1 | h3. Why participate? |
|
44 | 1 | ||
45 | 1 | OpenCV has several full time contractors working on robotic applications and another paid group working on CUDA. However, the scope of the library is much larger and GSoC interns were invaluable last year in addressing other critical areas: |
|
46 | 1 | ||
47 | 1 | * getting a solid port of OpenCV to iOS, |
|
48 | 1 | * developing a QT based graphical interface, the old GUI was decidedly limited and stale |
|
49 | 1 | * creating an automatic interface to PASCAL VOC http://pascallin.ecs.soton.ac.uk/challenges/VOC/ (the main computer vision object recognition challenge) |
|
50 | 1 | * coding up a long time winning classifier in PASCAL VOC: Latent SVM |
|
51 | 1 | * features and support for feature tracking |
|
52 | 1 | * A set of tutorials |
|
53 | 1 | * A set of python examples |
|
54 | 1 | ||
55 | 1 | All the above things were out of scope of the paid work and had substantial impact on OpenCV, especially making it work with Mobile. In addition, 3 of the interns are now regular contributors. 2 more are occasional contributors. |
|
56 | 1 | ||
57 | 1 | Thus, why we are applying: We want to bring in a new generation of contributors and also to fill out areas where to don't have active development. We hope to gain pretty much a repeat of last year: Filling out new areas, perhaps co-authoring new papers and getting new regular contributors. |
|
58 | 1 | ||
59 | 1 | h3. Past summer of code, If so, challenges? |
|
60 | 1 | ||
61 | 6 | Gary Bradski | VETERAN HISTORY: |
62 | 6 | Gary Bradski | OpenCV (C++) has been involved in GSoC for 3 years now. It has been an amazing help to us. It generated our ports to Android, IOS and initialized our Python and Java interfaces. It has vastly improved our sample code base and added some very key algorithms such as image denoising, image stitching and camera stabilization. A very popular addition (I use it every time I code) is a QT backend for viewing images. This came from GSOC 2010, Yannick Verdie. |
63 | 1 | ||
64 | 6 | Gary Bradski | GSOC 12 HIGHLIGHTS: |
65 | 6 | Gary Bradski | An offical iOS port was added to OpenCV. Eduard Feicho and Charu Hans improved the port and created detailed tutorials on how to add OpenCV to an iOS app |
66 | 6 | Gary Bradski | http://docs.opencv.org/doc/tutorials/ios/table_of_content_ios/table_of_content_ios.html |
67 | 6 | Gary Bradski | They made a cool tutorial for it: |
68 | 6 | Gary Bradski | gsoc2012:source:/ios/trunk/doc/CVPR2012_OpenCV4IOS_Tutorial.pdf |
69 | 1 | ||
70 | 6 | Gary Bradski | Python was a big success for '12. The interface was improved and the student, Alexander Mordvintsev, wrote several key code examples |
71 | 6 | Gary Bradski | https://github.com/Itseez/opencv/tree/master/samples/python2 |
72 | 1 | ||
73 | 6 | Gary Bradski | OpenCV has a lot of machine learning algorithms. Many people want to use these "out of the box", so in the course of working on new feature types for our cascade classifier, Attila Novak, pre-trained it on two new classes. The algorithm is extensively used for frontal face, he added profile faces. And, silverware detectors (for a robot project): |
74 | 6 | Gary Bradski | https://github.com/Itseez/opencv/tree/master/data/lbpcascades |
75 | 1 | ||
76 | 6 | Gary Bradski | People have been asking for better computational photography support. Victor Passichenko implemented a non-local means denoising algorithm |
77 | 6 | Gary Bradski | http://docs.opencv.org/trunk/modules/photo/doc/denoising.html |
78 | 1 | ||
79 | 6 | Gary Bradski | For movie effects and VR, we've been wanting a dense optical flow algorithm for a long time. Yuri Zemlyansky implemented "simple flow" (it's not so simple, but it is dense -- assigns motion vectors to every point in a reasonable way). |
80 | 6 | Gary Bradski | https://github.com/Itseez/opencv/tree/master/samples/cpp/simpleflow_demo.cpp |
81 | 1 | ||
82 | 6 | Gary Bradski | OpenCV has been dying for SLAM and SfM (basically 3D reconstruction code) for years. It's a hard project to get right, it's not in yet, but Srimalj made good progress and we'll probably combine this with Google's own libmv this year. |
83 | 1 | ||
84 | 6 | Gary Bradski | Finally, no one student, but we kicked off a tutorial section 2 years ago and many students have contributed since. We'd now like each student to end their work with a tutorial example of how to use what they coded ... which ensures that it actually does get used. Tutorials have grown quite a bit and past students have continued to add tutorials: |
85 | 6 | Gary Bradski | http://docs.opencv.org/doc/tutorials/tutorials.html |
86 | 1 | ||
87 | 6 | Gary Bradski | PASS/FAIL RATES |
88 | 6 | Gary Bradski | We were allocated 12 students, 10 passed. |
89 | 6 | Gary Bradski | |
90 | 6 | Gary Bradski | The failures were in: Active Appearance Models, and Fast Linear Program Solver. Our library is computer vision and machine learning. Many things border on active research, many algorithms have complex mathematical underpinnings. Some students look capable of performing these tasks "on paper" and with code samples but simply aren't. |
91 | 6 | Gary Bradski | |
92 | 6 | Gary Bradski | Mentors try to help but sometimes the student just stops responding. Sometimes we suspect they have multiple jobs and may just be overwhelmed or have other priorities. We often have the best results from people who are pushing code at us well before the start and/or whose thesis area covers what we want implemented. We'll try to vet more closely based on these criteria, but we always seem to get about this rate of fall off. |
93 | 1 | ||
94 | 7 | Gary Bradski | h3. Ideas page? |
95 | 1 | ||
96 | 7 | Gary Bradski | We have a page at http://code.opencv.org/projects/gsoc2013/wiki |
97 | 1 | ||
98 | 1 | +*Summary:*+ |
|
99 | 1 | ||
100 | 1 | *Contact info:* |
|
101 | 1 | * Please provide: |
|
102 | 1 | ** Your name |
|
103 | 1 | ** A phone number |
|
104 | 1 | ** An email address where we can reach you for daily communication. |
|
105 | 1 | *** If you have a website that discusses your research, work and/or coding, let us know. |
|
106 | 1 | ||
107 | 1 | *Requirements:* |
|
108 | 1 | ||
109 | 1 | * We are looking for people who have strong programming backgrounds, there is no time to "learn on the job". |
|
110 | 1 | ** Most of the positions will require advanced ability and experience in *C++* and/or *Python*. |
|
111 | 1 | *** Exception might be for help working on the website itself |
|
112 | 1 | ** Most of the projects require knowledge of computer vision techniques. If so, your application will not be accepted if you don't have such experience. These will be stated on the projects ideas page. |
|
113 | 1 | ||
114 | 1 | Again, you must meet the requirements -- it is not enough to "want" to work on computer vision, we have limited time and so we need people who already have the necessary background. If you lack this background, spend the next year getting the background and apply then, we intend to be back for GSoC 2013. |
|
115 | 1 | ||
116 | 1 | Students will be expected to ''meet'' with their mentors by email, skype or google chat once a week and to twitter at least 2x/day on their current coding activities |
|
117 | 1 | ||
118 | 1 | *Sample Code:* |
|
119 | 1 | ||
120 | 1 | ** With your application: *Please send in some sample code that you are proud of and are prepared to answer questions on.* |
|
121 | 1 | ** If you have other useful skills such as experience with code optimization, or knowledge of SSE, MMX, CUDA or especially development experience on Android or iPhone let us know. |
|
122 | 1 | ||
123 | 1 | *Courses Taken:* |
|
124 | 1 | ||
125 | 1 | List the courses that you have taken in: |
|
126 | 1 | ** Math |
|
127 | 1 | ** Computer programming, especially: |
|
128 | 1 | ** Programming languages |
|
129 | 1 | ** Data structures |
|
130 | 1 | ** Web programming |
|
131 | 1 | ** Data base |
|
132 | 1 | ** Computer vision |
|
133 | 1 | ** Engineering |
|
134 | 1 | h2. Work Experience |
|
135 | 1 | ||
136 | 1 | * List any work experience that you've had in |
|
137 | 1 | ** software development and/or in |
|
138 | 1 | ** computer vision. |
|
139 | 1 | ||
140 | 1 | *Open Source Experience:* |
|
141 | 1 | ||
142 | 1 | * If you have already contributed to other open source projects, please tell us what it was and when you did this. |
|
143 | 1 | ||
144 | 1 | *Which project you are interested in and and why you want to do it:* |
|
145 | 1 | ||
146 | 1 | * Please tell us which of the project ideas you are interested and why you want to work on that one. |
|
147 | 1 | * If you have your __own idea__, please describe it clearly and provide a timeline of progress towards that goal. |
|
148 | 1 | ||
149 | 1 | *References:* |
|
150 | 1 | ||
151 | 1 | * Please list 2 or 3 academic or programming work references. |
|
152 | 1 | ||
153 | 1 | h3. Mentor selection criterion? |
|
154 | 1 | ||
155 | 1 | # All mentors but one are known developers of OpenCV. The one who is not is a Professor of Computer Vision. |
|
156 | 1 | # All mentors have extensive computer vision and coding background. |
|
157 | 1 | # All mentors are people who have interns or students to manage every year, either in companies, academic settings or research groups. |
|
158 | 1 | ||
159 | 1 | h3. Disappearing students? |
|
160 | 1 | ||
161 | 1 | * We will try to prevent this by having mentors keep regular contact via skype meetings 1/week, twitter and email, but if it happens: |
|
162 | 1 | * We will post the orphaned project to our user group and offer a some of the mentor compensation (~$200) to someone who completes the project. |
|
163 | 1 | ||
164 | 1 | h3. What is your plan for dealing with disappearing mentors? |
|
165 | 1 | ||
166 | 1 | * First, this isn't expected since we only use mentors well known and trusted by the admin. |
|
167 | 1 | * We have 2 backup mentors who are on call to step in. |
|
168 | 1 | * Worst case, the admins will pick up the slack. |
|
169 | 1 | ||
170 | 1 | h3. Steps for interaction? |
|
171 | 1 | ||
172 | 1 | These techniques were used in 2010, 2011 and 2012 and worked well, so we'll use them again: |
|
173 | 1 | ||
174 | 1 | * Before the project, we will encourage them to post a detailed project plan to the user group (also socially committing them to complete). |
|
175 | 1 | * We will set up a 2x daily twitter feed for all the summer's development projects. |
|
176 | 1 | * Project results will go up on a youtube channel that will be posted to the large user group. This should provide a large amount of feedback. |
|
177 | 1 | * We hope to set up projects with 3 goals: Quick and turn around (within a few weeks they should have a baseline accomplishment), this will be followed by the main, reasonable summer goal, but there will also be a more comprehensive "stretch goal" that we will encourage them to complete, getting feedback and feature requests from the community. |
|
178 | 1 | * For the more advanced projects, we may write a paper with the students (we have an ICCV submission with one GSoC student from last year) |
|
179 | 1 | The best students may become interns at mentor's work places (which has happened 4 times now). |
|
180 | 1 | ||
181 | 1 | h3. New organization with someone to vouch for us? |
|
182 | 1 | ||
183 | 1 | No, we're an established org, 2010 and 2011. Still, talk to Jean-Yves Bouguet "Jean-Yves Bouguet" <jyb atthat google>, in the streetview group for a view. Or talk to Sebastian Thrun "Sebastian Thrun" <thrun atthat google>, head of GoogleX who knows me (Gary Bradski) well. |
|
184 | 1 | ||
185 | 1 | h3. Vouch for younger orgs? |
|
186 | 1 | ||
187 | 1 | None that I know of. We make extensive use of Eigen, ffmpeg, and numpy. |
|
188 | 1 | ---- |
|
189 | 1 | [[Gsoc2013|Back]] |