2016

Version 9 (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 7 Gary Bradski
h2. 2016-02-02
16 7 Gary Bradski
17 7 Gary Bradski
h3. _*Agenda*_
18 7 Gary Bradski
19 8 Gary Bradski
 * SLAM
20 8 Gary Bradski
 * GSoC
21 8 Gary Bradski
 * Optimization
22 8 Gary Bradski
 * NUML
23 8 Gary Bradski
 * 3.1 is out
24 8 Gary Bradski
 * CVPR
25 7 Gary Bradski
26 1
h3. *_Minutes_*
27 1
28 8 Gary Bradski
 * GSoC
29 8 Gary Bradski
 ** "Timeline":https://developers.google.com/open-source/gsoc/timeline?hl=en
30 9 Gary Bradski
 ** Deep Learning ... forward pass only or ... training??
31 9 Gary Bradski
 *** Accelerate it
32 9 Gary Bradski
 *** "Benchmarks":https://github.com/soumith/convnet-benchmarks  Integrate with this
33 9 Gary Bradski
 *** Accelerate common operators CudaDNN standard operators
34 9 Gary Bradski
 *** Detection, Segnet, hard code popular models
35 9 Gary Bradski
 ** Improving existing functionality  
36 9 Gary Bradski
 *** latent SVM
37 9 Gary Bradski
 *** Stereo
38 9 Gary Bradski
 *** Calibration on line
39 9 Gary Bradski
 **** Wide angle cameras
40 9 Gary Bradski
 **** Update calibration tuning
41 9 Gary Bradski
 *** support drones 
42 9 Gary Bradski
 *** Bio inspired vision
43 9 Gary Bradski
 **** background subtraction
44 9 Gary Bradski
 *** Improve optical flow -- as good as Farnerbeck but faster
45 9 Gary Bradski
 *** Fast inspection
46 8 Gary Bradski
 * SLAM
47 8 Gary Bradski
 ** NVidia http://blogs.nvidia.com/blog/2015/11/17/stereolabs-jetson-tx1/
48 9 Gary Bradski
 *** "TX1":http://devblogs.nvidia.com/parallelforall/nvidia-jetson-tx1-supercomputer-on-module-drives-next-wave-of-autonomous-machines/
49 8 Gary Bradski
 ** "Marc":https://www.inf.ethz.ch/personal/marc.pollefeys/
50 8 Gary Bradski
 ** "The Future of Real-Time SLAM 2015":http://wp.doc.ic.ac.uk/thefutureofslam/programme/
51 8 Gary Bradski
 ** "Deep Learning vs SLAM":http://www.computervisionblog.com/2016/01/why-slam-matters-future-of-real-time.html
52 8 Gary Bradski
 ** "Google and Movidius":http://www.embedded-vision.com/industry-analysis/press-releases/google-and-movidius-work-together-enhance-deep-learning-capabilitie
53 8 Gary Bradski
 ** Smart camera
54 8 Gary Bradski
 * Optimization
55 8 Gary Bradski
 ** Vadim writing slides
56 8 Gary Bradski
 ** OpenCV HAL (Hardware Acceleration Layer) has DFT now
57 8 Gary Bradski
 *** Complete HAL by Feb/March. Part of OpenCV 3.2
58 8 Gary Bradski
 ** "C++14":https://groups.google.com/a/isocpp.org/forum/#!forum/sg14
59 8 Gary Bradski
 * NUML
60 8 Gary Bradski
 ** NUML compiler to NUML (parser done)
61 8 Gary Bradski
 ** Improving the generated C code
62 8 Gary Bradski
 * Intern
63 8 Gary Bradski
 ** Python samples => tests
64 8 Gary Bradski
 ** Also more samples
65 8 Gary Bradski
 * OpenCV 3.1 is out
66 8 Gary Bradski
 * CVPR
67 8 Gary Bradski
 ** Need to concentrate on "People's Choice Best Paper"
68 8 Gary Bradski
 ** "Site":http://cvpr2016.thecvf.com/
69 9 Gary Bradski
70 9 Gary Bradski
 * Vadim out Feb 8-18th
71 7 Gary Bradski
72 7 Gary Bradski
h3. *_Reports_*
73 7 Gary Bradski
74 1
 * . Vadim
75 7 Gary Bradski
76 8 Gary Bradski
*OpenCV:*
77 1
78 8 Gary Bradski
* OpenCV 3.1 has been released. The announce is here: http://opencv.org/opencv-3-1.html.
79 8 Gary Bradski
* Immediately after the release we continue our work on OpenCV:
80 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.
81 8 Gary Bradski
* Alexander has updated binary compatibility checker, so that it will check modifications in OpenCV API since 3.1.
82 8 Gary Bradski
83 8 Gary Bradski
*OpenCV Plans:*
84 8 Gary Bradski
* Continue expanding OpenCV HAL
85 8 Gary Bradski
86 8 Gary Bradski
*Numl:*
87 8 Gary Bradski
88 8 Gary Bradski
          because of the release preparations, there is little progress on numl, but it's non-zero still:
89 8 Gary Bradski
90 8 Gary Bradski
*numl:*
91 8 Gary Bradski
# Extended pattern matching to almost match StandardML/OCaml capabilities.
92 8 Gary Bradski
# Added special constructions for list comprehensions and list literals that are more compact than before.
93 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.
94 8 Gary Bradski
95 8 Gary Bradski
*Numl Plans:*
96 8 Gary Bradski
* Finish numlyacc, test the pair numllex + numlyacc.
97 8 Gary Bradski
* add basic OOP capabilities. This is another item in progress.
98 8 Gary Bradski
* write some slides and initial documentation for the language and the standard library
99 8 Gary Bradski
* grow the standard library.
100 8 Gary Bradski
101 8 Gary Bradski
*Misc:*
102 8 Gary Bradski
*Vadim, Alexander will be on vacation starting from the next week.
103 7 Gary Bradski
104 7 Gary Bradski
h3. *_Action Items_*
105 7 Gary Bradski
106 7 Gary Bradski
*Gary*
107 7 Gary Bradski
108 7 Gary Bradski
 * . 
109 7 Gary Bradski
110 7 Gary Bradski
*Vincent*
111 7 Gary Bradski
112 7 Gary Bradski
 * . 
113 7 Gary Bradski
114 7 Gary Bradski
*Vadim*
115 7 Gary Bradski
116 7 Gary Bradski
 * . 
117 7 Gary Bradski
118 7 Gary Bradski
*Grace*
119 7 Gary Bradski
120 7 Gary Bradski
 * . 
121 7 Gary Bradski
122 7 Gary Bradski
123 7 Gary Bradski
<pre>
124 7 Gary Bradski
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
125 7 Gary Bradski
</pre>
126 7 Gary Bradski
127 4 Gary Bradski
h2. 2016-01-26
128 4 Gary Bradski
129 4 Gary Bradski
h3. _*Agenda*_
130 4 Gary Bradski
131 6 Gary Bradski
 * GSoC gear up
132 6 Gary Bradski
 * Hardware Acceleration of vision
133 6 Gary Bradski
 * Economic ideas
134 6 Gary Bradski
 *Hardware acceleration layer HAL
135 6 Gary Bradski
 * Final payments for mentors and for contest need to go out
136 1
137 6 Gary Bradski
138 4 Gary Bradski
h3. *_Minutes_*
139 1
140 1
 * New summer of code, Feb 8 "See Timelene":https://developers.google.com/open-source/gsoc/timeline
141 6 Gary Bradski
 * Economic ideas for OpenCV ... 
142 6 Gary Bradski
 ** OpenCV has been brought current on all tax issues (yeah!)
143 1
 * NUML
144 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
145 1
 ** See report below
146 1
 ** Month to 2 months
147 6 Gary Bradski
 ** 1 month to version 1, then
148 6 Gary Bradski
 *** try wrapping some of opencv
149 6 Gary Bradski
 *** try wrapping some of tensorflow
150 6 Gary Bradski
 * Hardware acceleration layer (HAL)
151 6 Gary Bradski
 ** OpenCV has been improving its layer
152 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
153 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/
154 4 Gary Bradski
155 4 Gary Bradski
h3. *_Reports_*
156 4 Gary Bradski
157 4 Gary Bradski
 * . Vadim
158 4 Gary Bradski
159 4 Gary Bradski
*OpenCV:*
160 4 Gary Bradski
161 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:
162 4 Gary Bradski
163 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
164 4 Gary Bradski
* - buildbot infrastructure: 2016 copyright / limit (100) number of stored builds&logs / fix iOS nightly build / fix python library path for ARM
165 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.
166 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. 
167 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.
168 4 Gary Bradski
* - ~10 PRs have been reviewed.
169 4 Gary Bradski
* 
170 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
171 4 Gary Bradski
172 4 Gary Bradski
*OpenCV Plans:*
173 4 Gary Bradski
* - continue Python samples => tests transformation
174 4 Gary Bradski
* - add the coverage builder
175 4 Gary Bradski
* - add 2D DFT HAL API, then proceed with filtering functions
176 4 Gary Bradski
177 4 Gary Bradski
*Numl:*
178 4 Gary Bradski
179 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.
180 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.
181 4 Gary Bradski
* The work on converting numl lexical scanner and the parser to numllex and numlyacc is started.
182 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.
183 4 Gary Bradski
* Prepared some slides summarizing numl progress over the year: https://docs.google.com/presentation/d/1YmFCkvoo5qwtDAd70xyWpIazMFEWExz7aeZ2P4v2m40/edit#slide=id.p3
184 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.
185 4 Gary Bradski
186 4 Gary Bradski
*Numl Plans:*
187 4 Gary Bradski
* *[done!]* Finish numlyacc, test the pair numllex + numlyacc.
188 4 Gary Bradski
* convert numl parser to numl, then proceed with type checker, k-normalization and optimizers of the k-form.
189 4 Gary Bradski
* add basic OOP capabilities. This is another item in progress.
190 4 Gary Bradski
* write some slides and initial documentation for the language and the standard library
191 4 Gary Bradski
* grow the standard library.
192 4 Gary Bradski
193 4 Gary Bradski
194 4 Gary Bradski
195 4 Gary Bradski
196 4 Gary Bradski
197 4 Gary Bradski
h3. *_Action Items_*
198 4 Gary Bradski
199 4 Gary Bradski
*Gary*
200 4 Gary Bradski
201 4 Gary Bradski
 * get out GSOC mentor payments
202 4 Gary Bradski
203 1
*Vincent*
204 4 Gary Bradski
205 5 Gary Bradski
 * Talk about NUML
206 4 Gary Bradski
207 4 Gary Bradski
*Vadim*
208 4 Gary Bradski
209 4 Gary Bradski
 * Have Sergey send Gary US account info
210 4 Gary Bradski
211 4 Gary Bradski
*Grace*
212 4 Gary Bradski
213 4 Gary Bradski
 * . 
214 4 Gary Bradski
215 4 Gary Bradski
216 4 Gary Bradski
<pre>
217 4 Gary Bradski
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
218 4 Gary Bradski
</pre>
219 4 Gary Bradski
220 3 Gary Bradski
h2. 2016-01-19
221 3 Gary Bradski
222 3 Gary Bradski
h3. _*Agenda*_
223 3 Gary Bradski
224 3 Gary Bradski
 * Taxes
225 3 Gary Bradski
 * OpenCV 3.1 progress
226 3 Gary Bradski
227 3 Gary Bradski
h3. *_Minutes_*
228 3 Gary Bradski
229 3 Gary Bradski
 * Paid OpenCV.org's taxes (yes we have taxes because not all income was paid out in the same year)
230 3 Gary Bradski
 * OpenCV
231 3 Gary Bradski
 ** Pulled in 20 pull requests
232 3 Gary Bradski
 ** We are extending the Hardware Acceleration Layer (HAL) -- an API that HW manufacturers can come under and speed up OpenCV
233 3 Gary Bradski
 *** Did the complex ones first
234 3 Gary Bradski
 *** Simpler ones next
235 3 Gary Bradski
 ** These comply with but go beyond OpenVX (it is 40 functions), but we will cover many more functions
236 3 Gary Bradski
 *** FFT, larger data types (beyond 8 bits)
237 3 Gary Bradski
 *** We will allow direct calls later for even more acceleration
238 3 Gary Bradski
 * NUML
239 3 Gary Bradski
 ** NUML compiler is being converted to NUML (port of YACC tool is now in NUML) 
240 3 Gary Bradski
 *** Parser is complicated, 500 states, but automatically generated 
241 3 Gary Bradski
 *** Parser is general, can be used for other functions, macros
242 3 Gary Bradski
 * Vincent in town for two weeks from France
243 3 Gary Bradski
 ** Meet with OpenCV, Willow and ROS people
244 3 Gary Bradski
 ** There will be official ARM support, current build bot already tests against ARM (Linux, but not Android)
245 3 Gary Bradski
 *** This will expand the ARM user population by quite a bit
246 3 Gary Bradski
 ** Reading up on SYCL (part of Chronos2, higher level than OpenCL)
247 3 Gary Bradski
 * OSI wants us to change our logo :-(  
248 3 Gary Bradski
 ** Rather than fight, we're probably going to redesign it
249 3 Gary Bradski
 ** Itseez has a professional designer and/or we could have a contest, but that may lead to conflict problems
250 3 Gary Bradski
251 3 Gary Bradski
h3. *_Reports_*
252 3 Gary Bradski
253 3 Gary Bradski
 * . Vadim
254 3 Gary Bradski
255 3 Gary Bradski
256 3 Gary Bradski
257 3 Gary Bradski
h3. *_Action Items_*
258 3 Gary Bradski
259 3 Gary Bradski
*Gary*
260 3 Gary Bradski
261 3 Gary Bradski
 * . 
262 3 Gary Bradski
263 3 Gary Bradski
*Vincent*
264 3 Gary Bradski
265 3 Gary Bradski
 * . 
266 3 Gary Bradski
267 3 Gary Bradski
*Vadim*
268 3 Gary Bradski
269 3 Gary Bradski
 * . 
270 3 Gary Bradski
271 3 Gary Bradski
*Grace*
272 3 Gary Bradski
273 3 Gary Bradski
 * . 
274 3 Gary Bradski
275 3 Gary Bradski
276 3 Gary Bradski
<pre>
277 3 Gary Bradski
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
278 3 Gary Bradski
</pre>
279 3 Gary Bradski
280 3 Gary Bradski
h2. 2016-01-12
281 1
282 1
h3. _*Agenda*_
283 1
284 2 Gary Bradski
 * New year
285 1
286 1
h3. *_Minutes_*
287 1
288 2 Gary Bradski
 * Maxime extending HAL (Hardware Acceleration Layer) 
289 2 Gary Bradski
 ** Fixed API, so OpenCV can be easily accelerated w/o needing any customization
290 2 Gary Bradski
 * Bug reports and pull requests for 3.0 and 3.1
291 2 Gary Bradski
 ** Working on
292 2 Gary Bradski
 * NUML
293 2 Gary Bradski
 ** NUML compiler converted from C to NUML
294 2 Gary Bradski
 *** 3 parts, 30K lines. If 30K lines compile and work, it's  a good sign of stability
295 2 Gary Bradski
 *** Already some bugs fixed
296 2 Gary Bradski
 *** Smaller footprint to get started
297 2 Gary Bradski
 ** NUML => C bootstrap. So can port to new platform easily
298 2 Gary Bradski
 ** Advantages: 
299 2 Gary Bradski
 *** Safe language is safe, can't go out of bounds. 
300 2 Gary Bradski
 *** parallel for is embedded
301 2 Gary Bradski
 *** matlab kind of productivity, but optimized C run speed
302 2 Gary Bradski
 **** NUML 20-50x faster than Python
303 2 Gary Bradski
 *** types are checked at compile time. No number to string adds for example
304 2 Gary Bradski
 *** Compile speed at speed of C compiler (NUML byte code to C) Bottleneck if C compiler
305 2 Gary Bradski
 *** 1000 lines of NUML => 10Ks of C code
306 2 Gary Bradski
 ** Working on this conversion, then tutorial slides
307 2 Gary Bradski
 *** Can write code in text editor, type NUML and then
308 2 Gary Bradski
 *** Notebooks
309 1
310 1
h3. *_Reports_*
311 1
312 1
 * . Vadim
313 1
314 1
315 1
316 1
h3. *_Action Items_*
317 1
318 1
*Gary*
319 1
320 1
 * . 
321 1
322 1
*Vincent*
323 1
324 1
 * . 
325 1
326 1
*Vadim*
327 1
328 1
 * . 
329 1
330 1
*Grace*
331 1
332 1
 * . 
333 1
334 1
335 1
<pre>
336 1
      <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
337 1
</pre>
338 1
339 1
340 1
341 1
342 1
[[Meeting_notes]]