GSoC2012OpenCVApplication
Version 6 (Gary Bradski, 2012-03-07 02:36 am)
1 | 1 | h1. GSoC2012OpenCVApplication |
|
---|---|---|---|
2 | 1 | ||
3 | 5 | Gary Bradski | h3. Org ID? |
4 | 1 | ||
5 | 1 | OpenCV |
|
6 | 1 | ||
7 | 5 | Gary Bradski | h3. Org name? |
8 | 1 | ||
9 | 1 | Open Source Computer Vision Library (OpenCV) |
|
10 | 1 | ||
11 | 5 | Gary Bradski | h3. Description? |
12 | 1 | ||
13 | 1 | 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. There is an active user group of 50 thousand members and download are approaching > 4M. OpenCV has uses from gesture recognition, Android and iPhone vision apps on up to medical, robotics, mine safety and Google Streetview. |
|
14 | 1 | ||
15 | 5 | Gary Bradski | h3. URL? |
16 | 1 | ||
17 | 1 | http://opencv.willowgarage.com/wiki |
|
18 | 1 | ||
19 | 5 | Gary Bradski | h3. License? |
20 | 1 | ||
21 | 1 | New and Simplified BSD |
|
22 | 1 | ||
23 | 5 | Gary Bradski | h3. Backup Admin? |
24 | 1 | ||
25 | 1 | Vadim.Pisarevsky |
|
26 | 1 | ||
27 | 5 | Gary Bradski | h3. Ideas Page? |
28 | 1 | ||
29 | 1 | http://code.opencv.org/projects/gsoc2012/wiki/Gsoc2012 |
|
30 | 1 | ||
31 | 5 | Gary Bradski | h3. IRC channel? |
32 | 1 | ||
33 | 1 | <pre> |
|
34 | 1 | #opencv on freenode |
|
35 | 1 | </pre> |
|
36 | 1 | ||
37 | 5 | Gary Bradski | h3. Mailing list? |
38 | 1 | ||
39 | 1 | http://tech.groups.yahoo.com/group/OpenCV/ |
|
40 | 1 | ||
41 | 5 | Gary Bradski | h3. Why participate? |
42 | 1 | ||
43 | 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: |
|
44 | 1 | ||
45 | 1 | * getting a solid port of OpenCV to iOS, |
|
46 | 1 | * developing a QT based graphical interface, the old GUI was decidedly limited and stale |
|
47 | 1 | * creating an automatic interface to PASCAL VOC http://pascallin.ecs.soton.ac.uk/challenges/VOC/ (the main computer vision object recognition challenge) |
|
48 | 1 | * coding up a long time winning classifier in PASCAL VOC: Latent SVM |
|
49 | 1 | * features and support for feature tracking |
|
50 | 1 | * A set of tutorials |
|
51 | 1 | * A set of python examples |
|
52 | 1 | ||
53 | 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. |
|
54 | 1 | ||
55 | 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. |
|
56 | 1 | ||
57 | 5 | Gary Bradski | h3. Past summer of code, If so, challenges? |
58 | 1 | ||
59 | 1 | We participated in 2010 and 2011. |
|
60 | 1 | ||
61 | 2 | Gary Bradski | There were 12 interns total, 8 worked out. As a side note, I have now permanently hired 2 of the interns from the 2 past years of GSoC. |
62 | 2 | Gary Bradski | |
63 | 2 | Gary Bradski | I mentored 2 interns developing working tutorials to vision functionality. This started slowly since we had to decide on, set up an learn a new infrastructure. We ended up using a sphinx and then coding and explanation started. It worked out well and gave us a basic coverage of tutorials to get started with different aspects of the library, computer vision being a large field: http://opencv.itseez.com/doc/tutorials/tutorials.html . |
64 | 2 | Gary Bradski | |
65 | 2 | Gary Bradski | Since we have a good supported port of OpenCV to Android from 2010, we went on to iOS in 2011. This resulted in a complete port which we have been testing and refining. This is planned for official release in April. We will be giving a tutorial turned course ware on this at the Computer Vision and Pattern Recognition Conference in June http://www.cvpr2012.org/program-details/tutorials and we were extended an invitation to give this again at the European Conference on Computer Vision in October http://eccv2012.unifi.it/ |
66 | 2 | Gary Bradski | |
67 | 2 | Gary Bradski | We had someone working on developing samples for our Python port and this was very successful resulting in a large suite of example code under @.../opencv/samples/python2@. We did this to popularize the existence of this interface but I just started a company, Industrial Perception Inc, adding the eyes and brains to industrial robots and find myself making extensive use of these examples. |
68 | 2 | Gary Bradski | |
69 | 2 | Gary Bradski | We had a failure with a student who was implementing OpenCL optimization for OpenCV. The student just wouldn't do much work, was not very responsive and was terminated at midterm. Ironically, other developers saw this start of this work and we now have a whole group developing OpenCL ports. |
70 | 2 | Gary Bradski | |
71 | 2 | Gary Bradski | We had a student doing Structure from Motion. Again, this was a failure because, despite what looked like solid background, the student just wasn't up to the task. On the other hand, it got us in touch with 2 people at Google who have been developing libmv and they may contribute this. We will put an intern on this effort this year if we get accepted. |
72 | 2 | Gary Bradski | |
73 | 2 | Gary Bradski | We had students working on tracking which resulted in new methods of dense optical flow (Farnback optical flow). This has already been used by others for robotic visual odometry work. |
74 | 2 | Gary Bradski | |
75 | 2 | Gary Bradski | What we learned is that anything near "state of the art" is best done only by top students who are doing current research in that area. We've done this a couple of time and those are some of the interns I ended up hiring. But, infrastructure type work (pascal samples, tutorials, code ports etc work well for the general student. |
76 | 2 | Gary Bradski | |
77 | 5 | Gary Bradski | h3. Application Template? |
78 | 3 | Gary Bradski | |
79 | 3 | Gary Bradski | We have a page at http://code.opencv.org/projects/gsoc2012/wiki/GSoCApplicationTemplate |
80 | 3 | Gary Bradski | |
81 | 3 | Gary Bradski | +*Summary:*+ |
82 | 3 | Gary Bradski | |
83 | 3 | Gary Bradski | *Contact info:* |
84 | 3 | Gary Bradski | * Please provide: |
85 | 3 | Gary Bradski | ** Your name |
86 | 3 | Gary Bradski | ** A phone number |
87 | 3 | Gary Bradski | ** An email address where we can reach you for daily communication. |
88 | 3 | Gary Bradski | *** If you have a website that discusses your research, work and/or coding, let us know. |
89 | 3 | Gary Bradski | |
90 | 3 | Gary Bradski | *Requirements:* |
91 | 3 | Gary Bradski | |
92 | 3 | Gary Bradski | * We are looking for people who have strong programming backgrounds, there is no time to "learn on the job". |
93 | 3 | Gary Bradski | ** Most of the positions will require advanced ability and experience in *C++* and/or *Python*. |
94 | 3 | Gary Bradski | *** Exception might be for help working on the website itself |
95 | 3 | Gary Bradski | ** 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. |
96 | 3 | Gary Bradski | |
97 | 3 | Gary Bradski | 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. |
98 | 3 | Gary Bradski | |
99 | 3 | Gary Bradski | 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 |
100 | 3 | Gary Bradski | |
101 | 3 | Gary Bradski | *Sample Code:* |
102 | 3 | Gary Bradski | |
103 | 3 | Gary Bradski | ** With your application: *Please send in some sample code that you are proud of and are prepared to answer questions on.* |
104 | 3 | Gary Bradski | ** 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. |
105 | 3 | Gary Bradski | |
106 | 3 | Gary Bradski | *Courses Taken:* |
107 | 3 | Gary Bradski | |
108 | 3 | Gary Bradski | List the courses that you have taken in: |
109 | 3 | Gary Bradski | ** Math |
110 | 3 | Gary Bradski | ** Computer programming, especially: |
111 | 3 | Gary Bradski | ** Programming languages |
112 | 3 | Gary Bradski | ** Data structures |
113 | 3 | Gary Bradski | ** Web programming |
114 | 3 | Gary Bradski | ** Data base |
115 | 3 | Gary Bradski | ** Computer vision |
116 | 3 | Gary Bradski | ** Engineering |
117 | 3 | Gary Bradski | h2. Work Experience |
118 | 3 | Gary Bradski | |
119 | 3 | Gary Bradski | * List any work experience that you've had in |
120 | 3 | Gary Bradski | ** software development and/or in |
121 | 3 | Gary Bradski | ** computer vision. |
122 | 3 | Gary Bradski | |
123 | 3 | Gary Bradski | *Open Source Experience:* |
124 | 3 | Gary Bradski | |
125 | 3 | Gary Bradski | * If you have already contributed to other open source projects, please tell us what it was and when you did this. |
126 | 3 | Gary Bradski | |
127 | 3 | Gary Bradski | *Which project you are interested in and and why you want to do it:* |
128 | 3 | Gary Bradski | |
129 | 3 | Gary Bradski | * Please tell us which of the project ideas you are interested and why you want to work on that one. |
130 | 3 | Gary Bradski | * If you have your __own idea__, please describe it clearly and provide a timeline of progress towards that goal. |
131 | 3 | Gary Bradski | |
132 | 3 | Gary Bradski | *References:* |
133 | 3 | Gary Bradski | |
134 | 3 | Gary Bradski | * Please list 2 or 3 academic or programming work references. |
135 | 3 | Gary Bradski | |
136 | 4 | Gary Bradski | h3. Mentor selection criterion? |
137 | 1 | ||
138 | 4 | Gary Bradski | # All mentors but one are known developers of OpenCV. The one who is not is a Professor of Computer Vision. |
139 | 4 | Gary Bradski | # All mentors have extensive computer vision and coding background. |
140 | 4 | Gary Bradski | # All mentors are people who have interns or students to manage every year, either in companies, academic settings or research groups. |
141 | 1 | ||
142 | 1 | h3. Disappearing students? |
|
143 | 4 | Gary Bradski | |
144 | 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: |
|
145 | 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. |
|
146 | 1 | ||
147 | 1 | h3. What is your plan for dealing with disappearing mentors? |
|
148 | 1 | ||
149 | 1 | * First, this isn't expected since we only use mentors well known and trusted by the admin. |
|
150 | 4 | Gary Bradski | * We have 2 backup mentors who are on call to step in. |
151 | 1 | * Worst case, the admins will pick up the slack. |
|
152 | 1 | ||
153 | 5 | Gary Bradski | h3. Steps for interaction? |
154 | 1 | ||
155 | 5 | Gary Bradski | These techniques were used in 2010 and 2011 and worked well, so we'll use them again: |
156 | 1 | ||
157 | 5 | Gary Bradski | * Before the project, we will encourage them to post a detailed project plan to the user group (also socially committing them to complete). |
158 | 5 | Gary Bradski | * We will set up a 2x daily twitter feed for all the summer's development projects. |
159 | 5 | Gary Bradski | * 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. |
160 | 5 | Gary Bradski | * 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. |
161 | 5 | Gary Bradski | * 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) |
162 | 5 | Gary Bradski | The best students may become interns at mentor's work places (which has happened 4 times now). |
163 | 4 | Gary Bradski | |
164 | 5 | Gary Bradski | h3. New organization with someone to vouch for us? |
165 | 5 | Gary Bradski | |
166 | 6 | Gary Bradski | 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. |
167 | 5 | Gary Bradski | |
168 | 5 | Gary Bradski | h3. Vouch for younger orgs? |
169 | 5 | Gary Bradski | |
170 | 5 | Gary Bradski | None that I know of. We make extensive use of Eigen, ffmpeg, and numpy. |
171 | 1 | ---- |
|
172 | 1 | [[Gsoc2012|Back]] |