2016

Version 10 (Gary Bradski, 2016-03-01 07:11 pm)

1 1
h1. 2016  OpenCV Meeting notes for the year 2016
2 1
3 1
Template is at http://code.opencv.org/projects/opencv/wiki/Template
4 1
http://code.opencv.org/help/wiki_syntax
5 1
6 1
[[Meeting_notes]]
7 1
8 1
{{>toc}}
9 1
10 1
11 1
<pre>
12 1
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
13 1
</pre>
14 1
15 10 Gary Bradski
h2. 2016-02-16
16 10 Gary Bradski
17 10 Gary Bradski
h3. _*Agenda*_
18 10 Gary Bradski
19 10 Gary Bradski
 * GSoC 2016
20 10 Gary Bradski
 * OpenCV.com
21 10 Gary Bradski
 * People's Choice Best Paper, CVPR
22 10 Gary Bradski
23 10 Gary Bradski
* Vadim is skiing in the Urals 
24 10 Gary Bradski
25 10 Gary Bradski
h3. *_Minutes_*
26 10 Gary Bradski
27 10 Gary Bradski
 * GSoC 2016
28 10 Gary Bradski
 ** We have finished the application:
29 10 Gary Bradski
 *** !gsoc_applied.png!
30 10 Gary Bradski
 ** Our Ideas page is here: http://code.opencv.org/projects/opencv/wiki/GSoC_2016
31 10 Gary Bradski
 *** Gary to expand deep net stuff there:
32 10 Gary Bradski
 *** Read write to Caffe, Torch, Theano, Tensor Flow and CNTK
33 10 Gary Bradski
 *** Curate/train a model zoo for built in functions
34 10 Gary Bradski
 **** topological imagery SLAM
35 10 Gary Bradski
 *** Drone obstacle avoidance
36 10 Gary Bradski
 *** Improve projection mapping
37 10 Gary Bradski
 *** Get and integrate Google robotics protected memory wrappers for images
38 10 Gary Bradski
 * OpenCV.com
39 10 Gary Bradski
 ** making progress towards branded functionality cameras
40 10 Gary Bradski
 * CVPR
41 10 Gary Bradski
 ** Need to get Rubius interface up and working and diseminated for CVPR
42 10 Gary Bradski
43 10 Gary Bradski
h3. *_Reports_*
44 10 Gary Bradski
45 10 Gary Bradski
 * . Vadim
46 10 Gary Bradski
47 10 Gary Bradski
48 10 Gary Bradski
49 10 Gary Bradski
h3. *_Action Items_*
50 10 Gary Bradski
51 10 Gary Bradski
*Gary*
52 10 Gary Bradski
53 10 Gary Bradski
 * . 
54 10 Gary Bradski
55 10 Gary Bradski
*Vincent*
56 10 Gary Bradski
57 10 Gary Bradski
 * . 
58 10 Gary Bradski
59 10 Gary Bradski
*Vadim*
60 10 Gary Bradski
61 10 Gary Bradski
 * . 
62 10 Gary Bradski
63 10 Gary Bradski
*Grace*
64 10 Gary Bradski
65 10 Gary Bradski
 * . 
66 10 Gary Bradski
67 10 Gary Bradski
68 10 Gary Bradski
<pre>
69 10 Gary Bradski
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
70 10 Gary Bradski
</pre>
71 7 Gary Bradski
h2. 2016-02-02
72 7 Gary Bradski
73 7 Gary Bradski
h3. _*Agenda*_
74 7 Gary Bradski
75 8 Gary Bradski
 * SLAM
76 8 Gary Bradski
 * GSoC
77 8 Gary Bradski
 * Optimization
78 8 Gary Bradski
 * NUML
79 8 Gary Bradski
 * 3.1 is out
80 8 Gary Bradski
 * CVPR
81 7 Gary Bradski
82 1
h3. *_Minutes_*
83 1
84 8 Gary Bradski
 * GSoC
85 8 Gary Bradski
 ** "Timeline":https://developers.google.com/open-source/gsoc/timeline?hl=en
86 9 Gary Bradski
 ** Deep Learning ... forward pass only or ... training??
87 9 Gary Bradski
 *** Accelerate it
88 9 Gary Bradski
 *** "Benchmarks":https://github.com/soumith/convnet-benchmarks  Integrate with this
89 9 Gary Bradski
 *** Accelerate common operators CudaDNN standard operators
90 9 Gary Bradski
 *** Detection, Segnet, hard code popular models
91 9 Gary Bradski
 ** Improving existing functionality  
92 9 Gary Bradski
 *** latent SVM
93 9 Gary Bradski
 *** Stereo
94 9 Gary Bradski
 *** Calibration on line
95 9 Gary Bradski
 **** Wide angle cameras
96 9 Gary Bradski
 **** Update calibration tuning
97 9 Gary Bradski
 *** support drones 
98 9 Gary Bradski
 *** Bio inspired vision
99 9 Gary Bradski
 **** background subtraction
100 9 Gary Bradski
 *** Improve optical flow -- as good as Farnerbeck but faster
101 9 Gary Bradski
 *** Fast inspection
102 8 Gary Bradski
 * SLAM
103 8 Gary Bradski
 ** NVidia http://blogs.nvidia.com/blog/2015/11/17/stereolabs-jetson-tx1/
104 9 Gary Bradski
 *** "TX1":http://devblogs.nvidia.com/parallelforall/nvidia-jetson-tx1-supercomputer-on-module-drives-next-wave-of-autonomous-machines/
105 8 Gary Bradski
 ** "Marc":https://www.inf.ethz.ch/personal/marc.pollefeys/
106 8 Gary Bradski
 ** "The Future of Real-Time SLAM 2015":http://wp.doc.ic.ac.uk/thefutureofslam/programme/
107 8 Gary Bradski
 ** "Deep Learning vs SLAM":http://www.computervisionblog.com/2016/01/why-slam-matters-future-of-real-time.html
108 8 Gary Bradski
 ** "Google and Movidius":http://www.embedded-vision.com/industry-analysis/press-releases/google-and-movidius-work-together-enhance-deep-learning-capabilitie
109 8 Gary Bradski
 ** Smart camera
110 8 Gary Bradski
 * Optimization
111 8 Gary Bradski
 ** Vadim writing slides
112 8 Gary Bradski
 ** OpenCV HAL (Hardware Acceleration Layer) has DFT now
113 8 Gary Bradski
 *** Complete HAL by Feb/March. Part of OpenCV 3.2
114 8 Gary Bradski
 ** "C++14":https://groups.google.com/a/isocpp.org/forum/#!forum/sg14
115 8 Gary Bradski
 * NUML
116 8 Gary Bradski
 ** NUML compiler to NUML (parser done)
117 8 Gary Bradski
 ** Improving the generated C code
118 8 Gary Bradski
 * Intern
119 8 Gary Bradski
 ** Python samples => tests
120 8 Gary Bradski
 ** Also more samples
121 8 Gary Bradski
 * OpenCV 3.1 is out
122 8 Gary Bradski
 * CVPR
123 8 Gary Bradski
 ** Need to concentrate on "People's Choice Best Paper"
124 8 Gary Bradski
 ** "Site":http://cvpr2016.thecvf.com/
125 9 Gary Bradski
126 9 Gary Bradski
 * Vadim out Feb 8-18th
127 7 Gary Bradski
128 7 Gary Bradski
h3. *_Reports_*
129 7 Gary Bradski
130 1
 * . Vadim
131 7 Gary Bradski
132 8 Gary Bradski
*OpenCV:*
133 1
134 8 Gary Bradski
* OpenCV 3.1 has been released. The announce is here: http://opencv.org/opencv-3-1.html.
135 8 Gary Bradski
* Immediately after the release we continue our work on OpenCV:
136 8 Gary Bradski
* Maksim has prepared PR (https://github.com/Itseez/opencv/pull/5846) with some important improvements and fixes from 3.x backported to 2.4.x, most notably fast cvRound() etc. for ARM. People say, the faster round speeds up some code by 20% and even more than that.
137 8 Gary Bradski
* Alexander has updated binary compatibility checker, so that it will check modifications in OpenCV API since 3.1.
138 8 Gary Bradski
139 8 Gary Bradski
*OpenCV Plans:*
140 8 Gary Bradski
* Continue expanding OpenCV HAL
141 8 Gary Bradski
142 8 Gary Bradski
*Numl:*
143 8 Gary Bradski
144 8 Gary Bradski
          because of the release preparations, there is little progress on numl, but it's non-zero still:
145 8 Gary Bradski
146 8 Gary Bradski
*numl:*
147 8 Gary Bradski
# Extended pattern matching to almost match StandardML/OCaml capabilities.
148 8 Gary Bradski
# Added special constructions for list comprehensions and list literals that are more compact than before.
149 8 Gary Bradski
# numlyacc. Started conversion of BSD-licensed ml-yacc from SML-NJ/mlton to numl. ~30% is complete. sml2nl is used to do the initial conversion sml=>numl, after which the code is annotated with types and some small corrections are made.
150 8 Gary Bradski
151 8 Gary Bradski
*Numl Plans:*
152 8 Gary Bradski
* Finish numlyacc, test the pair numllex + numlyacc.
153 8 Gary Bradski
* add basic OOP capabilities. This is another item in progress.
154 8 Gary Bradski
* write some slides and initial documentation for the language and the standard library
155 8 Gary Bradski
* grow the standard library.
156 8 Gary Bradski
157 8 Gary Bradski
*Misc:*
158 8 Gary Bradski
*Vadim, Alexander will be on vacation starting from the next week.
159 7 Gary Bradski
160 7 Gary Bradski
h3. *_Action Items_*
161 7 Gary Bradski
162 7 Gary Bradski
*Gary*
163 7 Gary Bradski
164 7 Gary Bradski
 * . 
165 7 Gary Bradski
166 7 Gary Bradski
*Vincent*
167 7 Gary Bradski
168 7 Gary Bradski
 * . 
169 7 Gary Bradski
170 7 Gary Bradski
*Vadim*
171 7 Gary Bradski
172 7 Gary Bradski
 * . 
173 7 Gary Bradski
174 7 Gary Bradski
*Grace*
175 7 Gary Bradski
176 7 Gary Bradski
 * . 
177 7 Gary Bradski
178 7 Gary Bradski
179 7 Gary Bradski
<pre>
180 7 Gary Bradski
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
181 7 Gary Bradski
</pre>
182 7 Gary Bradski
183 4 Gary Bradski
h2. 2016-01-26
184 4 Gary Bradski
185 4 Gary Bradski
h3. _*Agenda*_
186 4 Gary Bradski
187 6 Gary Bradski
 * GSoC gear up
188 6 Gary Bradski
 * Hardware Acceleration of vision
189 6 Gary Bradski
 * Economic ideas
190 6 Gary Bradski
 *Hardware acceleration layer HAL
191 6 Gary Bradski
 * Final payments for mentors and for contest need to go out
192 1
193 6 Gary Bradski
194 4 Gary Bradski
h3. *_Minutes_*
195 1
196 1
 * New summer of code, Feb 8 "See Timelene":https://developers.google.com/open-source/gsoc/timeline
197 6 Gary Bradski
 * Economic ideas for OpenCV ... 
198 6 Gary Bradski
 ** OpenCV has been brought current on all tax issues (yeah!)
199 1
 * NUML
200 5 Gary Bradski
 ** Performance is almost at C level, a few problems, but produces large C files (single C source) when optimization is turned on -O2 or -O3
201 1
 ** See report below
202 1
 ** Month to 2 months
203 6 Gary Bradski
 ** 1 month to version 1, then
204 6 Gary Bradski
 *** try wrapping some of opencv
205 6 Gary Bradski
 *** try wrapping some of tensorflow
206 6 Gary Bradski
 * Hardware acceleration layer (HAL)
207 6 Gary Bradski
 ** OpenCV has been improving its layer
208 6 Gary Bradski
 ** "OpenVX":https://www.khronos.org/openvx/ (starting to grow, "Imagination Pass":https://globenewswire.com/news-release/2016/01/06/799884/0/en/PowerVR-GPUs-From-Imagination-Pass-OpenVX-Conformance-With-Khronos.html
209 5 Gary Bradski
 * Industrial vision apps "Datalogic":http://www.datalogic.com/eng/products/industrial-automation/machine-vision-pc-16.html , "Cognex":http://www.cognex.com/
210 4 Gary Bradski
211 4 Gary Bradski
h3. *_Reports_*
212 4 Gary Bradski
213 4 Gary Bradski
 * . Vadim
214 4 Gary Bradski
215 4 Gary Bradski
*OpenCV:*
216 4 Gary Bradski
217 4 Gary Bradski
    After NY holidays we resumed the work on OpenCV. The approximate OpenCV 3.2 release time is end of May; before that we will do hackathon. Since it will be before GSoC 2016, not much new functionality should be expected. The major new features will be more or less complete HAL along with many bug fixes found in 3.0/3.1. We also continuously improve our continuous integration infrastructure. Along those lines, we've done the following during the 2 past weeks:
218 4 Gary Bradski
219 4 Gary Bradski
* - build fixes: world with CUDA / precompiled headers for world / include only available modules (via opencv2/opencv.hpp) / python detection issue on Ubuntu 14.04 / fix OSX framework build with contrib
220 4 Gary Bradski
* - buildbot infrastructure: 2016 copyright / limit (100) number of stored builds&logs / fix iOS nightly build / fix python library path for ARM
221 4 Gary Bradski
* - prepared proposal for OpenCV add-ons: this is quite important feature, requested by Vincent and other guys. The idea is to let users to build their own modules (or opencv_contrib modules) without rebuilding opencv itself. Alexander Alekhin has prepared the proposal on how to implement this feature.
222 4 Gary Bradski
* - OpenCV HAL. The 1D DFT API has been finalized and implemented. The first tests showed noticeable speed degradation, so we spend some more time to fix those issues and now the performance is more or less the same as it was before. 
223 4 Gary Bradski
* - There is test build and test run of OpenCV with coverage turned on. We plan to put it to the buildbot and get the test coverage information on regular basis as we did it in Willow Garage times.
224 4 Gary Bradski
* - ~10 PRs have been reviewed.
225 4 Gary Bradski
* 
226 4 Gary Bradski
  - Vlad Sovrasov joined our team as intern, he is working on converting some of the Python samples to tests, so we will have additional number of tests and besides we will check quality of Python bindings. So far he created 4 new tests
227 4 Gary Bradski
228 4 Gary Bradski
*OpenCV Plans:*
229 4 Gary Bradski
* - continue Python samples => tests transformation
230 4 Gary Bradski
* - add the coverage builder
231 4 Gary Bradski
* - add 2D DFT HAL API, then proceed with filtering functions
232 4 Gary Bradski
233 4 Gary Bradski
*Numl:*
234 4 Gary Bradski
235 4 Gary Bradski
  Basically we are now working on rewriting numl compiler in numl, which should greatly improve compile time (.nl=>.c) and also serve as a decent regression test.
236 4 Gary Bradski
* numlyacc parser generator tool is ready. It was able to reproduce it's own grammar parser. numlyacc takes ~6000 lines of code in numl and it's translated to 95000 lines of code in C. The generated C source takes ~3-4 minutes to compile with -O2 optimization (which reduces down to ~10-20 seconds with -O1). Obviously, we will need to split such huge files into smaller ones.
237 4 Gary Bradski
* The work on converting numl lexical scanner and the parser to numllex and numlyacc is started.
238 4 Gary Bradski
* The C code generator has been improved to produce smaller .c files without loosing efficiency (there is quite the opposite effect, in fact). In particular, 1 week ago numlyacc output took ~130000 lines of code in C, now it takes ~95000.
239 4 Gary Bradski
* Prepared some slides summarizing numl progress over the year: https://docs.google.com/presentation/d/1YmFCkvoo5qwtDAd70xyWpIazMFEWExz7aeZ2P4v2m40/edit#slide=id.p3
240 4 Gary Bradski
* There is the first draft of the output C language AST data structure. In the current compiler C code generator is very sophisticated single-pass procedure. We plan to move to the structured representation of C code and then make a few passes over it. It should help to further improve quality of the output code.
241 4 Gary Bradski
242 4 Gary Bradski
*Numl Plans:*
243 4 Gary Bradski
* *[done!]* Finish numlyacc, test the pair numllex + numlyacc.
244 4 Gary Bradski
* convert numl parser to numl, then proceed with type checker, k-normalization and optimizers of the k-form.
245 4 Gary Bradski
* add basic OOP capabilities. This is another item in progress.
246 4 Gary Bradski
* write some slides and initial documentation for the language and the standard library
247 4 Gary Bradski
* grow the standard library.
248 4 Gary Bradski
249 4 Gary Bradski
250 4 Gary Bradski
251 4 Gary Bradski
252 4 Gary Bradski
253 4 Gary Bradski
h3. *_Action Items_*
254 4 Gary Bradski
255 4 Gary Bradski
*Gary*
256 4 Gary Bradski
257 4 Gary Bradski
 * get out GSOC mentor payments
258 4 Gary Bradski
259 1
*Vincent*
260 4 Gary Bradski
261 5 Gary Bradski
 * Talk about NUML
262 4 Gary Bradski
263 4 Gary Bradski
*Vadim*
264 4 Gary Bradski
265 4 Gary Bradski
 * Have Sergey send Gary US account info
266 4 Gary Bradski
267 4 Gary Bradski
*Grace*
268 4 Gary Bradski
269 4 Gary Bradski
 * . 
270 4 Gary Bradski
271 4 Gary Bradski
272 4 Gary Bradski
<pre>
273 4 Gary Bradski
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
274 4 Gary Bradski
</pre>
275 4 Gary Bradski
276 3 Gary Bradski
h2. 2016-01-19
277 3 Gary Bradski
278 3 Gary Bradski
h3. _*Agenda*_
279 3 Gary Bradski
280 3 Gary Bradski
 * Taxes
281 3 Gary Bradski
 * OpenCV 3.1 progress
282 3 Gary Bradski
283 3 Gary Bradski
h3. *_Minutes_*
284 3 Gary Bradski
285 3 Gary Bradski
 * Paid OpenCV.org's taxes (yes we have taxes because not all income was paid out in the same year)
286 3 Gary Bradski
 * OpenCV
287 3 Gary Bradski
 ** Pulled in 20 pull requests
288 3 Gary Bradski
 ** We are extending the Hardware Acceleration Layer (HAL) -- an API that HW manufacturers can come under and speed up OpenCV
289 3 Gary Bradski
 *** Did the complex ones first
290 3 Gary Bradski
 *** Simpler ones next
291 3 Gary Bradski
 ** These comply with but go beyond OpenVX (it is 40 functions), but we will cover many more functions
292 3 Gary Bradski
 *** FFT, larger data types (beyond 8 bits)
293 3 Gary Bradski
 *** We will allow direct calls later for even more acceleration
294 3 Gary Bradski
 * NUML
295 3 Gary Bradski
 ** NUML compiler is being converted to NUML (port of YACC tool is now in NUML) 
296 3 Gary Bradski
 *** Parser is complicated, 500 states, but automatically generated 
297 3 Gary Bradski
 *** Parser is general, can be used for other functions, macros
298 3 Gary Bradski
 * Vincent in town for two weeks from France
299 3 Gary Bradski
 ** Meet with OpenCV, Willow and ROS people
300 3 Gary Bradski
 ** There will be official ARM support, current build bot already tests against ARM (Linux, but not Android)
301 3 Gary Bradski
 *** This will expand the ARM user population by quite a bit
302 3 Gary Bradski
 ** Reading up on SYCL (part of Chronos2, higher level than OpenCL)
303 3 Gary Bradski
 * OSI wants us to change our logo :-(  
304 3 Gary Bradski
 ** Rather than fight, we're probably going to redesign it
305 3 Gary Bradski
 ** Itseez has a professional designer and/or we could have a contest, but that may lead to conflict problems
306 3 Gary Bradski
307 3 Gary Bradski
h3. *_Reports_*
308 3 Gary Bradski
309 3 Gary Bradski
 * . Vadim
310 3 Gary Bradski
311 3 Gary Bradski
312 3 Gary Bradski
313 3 Gary Bradski
h3. *_Action Items_*
314 3 Gary Bradski
315 3 Gary Bradski
*Gary*
316 3 Gary Bradski
317 3 Gary Bradski
 * . 
318 3 Gary Bradski
319 3 Gary Bradski
*Vincent*
320 3 Gary Bradski
321 3 Gary Bradski
 * . 
322 3 Gary Bradski
323 3 Gary Bradski
*Vadim*
324 3 Gary Bradski
325 3 Gary Bradski
 * . 
326 3 Gary Bradski
327 3 Gary Bradski
*Grace*
328 3 Gary Bradski
329 3 Gary Bradski
 * . 
330 3 Gary Bradski
331 3 Gary Bradski
332 3 Gary Bradski
<pre>
333 3 Gary Bradski
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
334 3 Gary Bradski
</pre>
335 3 Gary Bradski
336 3 Gary Bradski
h2. 2016-01-12
337 1
338 1
h3. _*Agenda*_
339 1
340 2 Gary Bradski
 * New year
341 1
342 1
h3. *_Minutes_*
343 1
344 2 Gary Bradski
 * Maxime extending HAL (Hardware Acceleration Layer) 
345 2 Gary Bradski
 ** Fixed API, so OpenCV can be easily accelerated w/o needing any customization
346 2 Gary Bradski
 * Bug reports and pull requests for 3.0 and 3.1
347 2 Gary Bradski
 ** Working on
348 2 Gary Bradski
 * NUML
349 2 Gary Bradski
 ** NUML compiler converted from C to NUML
350 2 Gary Bradski
 *** 3 parts, 30K lines. If 30K lines compile and work, it's  a good sign of stability
351 2 Gary Bradski
 *** Already some bugs fixed
352 2 Gary Bradski
 *** Smaller footprint to get started
353 2 Gary Bradski
 ** NUML => C bootstrap. So can port to new platform easily
354 2 Gary Bradski
 ** Advantages: 
355 2 Gary Bradski
 *** Safe language is safe, can't go out of bounds. 
356 2 Gary Bradski
 *** parallel for is embedded
357 2 Gary Bradski
 *** matlab kind of productivity, but optimized C run speed
358 2 Gary Bradski
 **** NUML 20-50x faster than Python
359 2 Gary Bradski
 *** types are checked at compile time. No number to string adds for example
360 2 Gary Bradski
 *** Compile speed at speed of C compiler (NUML byte code to C) Bottleneck if C compiler
361 2 Gary Bradski
 *** 1000 lines of NUML => 10Ks of C code
362 2 Gary Bradski
 ** Working on this conversion, then tutorial slides
363 2 Gary Bradski
 *** Can write code in text editor, type NUML and then
364 2 Gary Bradski
 *** Notebooks
365 1
366 1
h3. *_Reports_*
367 1
368 1
 * . Vadim
369 1
370 1
371 1
372 1
h3. *_Action Items_*
373 1
374 1
*Gary*
375 1
376 1
 * . 
377 1
378 1
*Vincent*
379 1
380 1
 * . 
381 1
382 1
*Vadim*
383 1
384 1
 * . 
385 1
386 1
*Grace*
387 1
388 1
 * . 
389 1
390 1
391 1
<pre>
392 1
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
393 1
</pre>
394 1
395 1
396 1
397 1
398 1
[[Meeting_notes]]