Template

Version 6 (Gary Bradski, 2016-01-12 06:12 pm) → Version 7/17 (Gary Bradski, 2016-01-12 06:12 pm)

h2. 2012-XX-XX

_*Agenda*_

* .

*_Minutes_*

* .

_*Vadim*_
<pre>
[iOS port; tutorial preparations: Vadim, Eduard and Charu]

last week most of the time was spent in improving OpenCV support on iOS and preparing some demos.
First of all, a script that creates opencv2.framework, an iOS framework, has been created.

It turned out that iOS simulator does not simulate ARM instructions, it's i386 "virtual machine" with special versions of Cocoa libraries. In other words, when you build an app for simulator, it's i386 CPU (aka 32-bit Intel arch); when you build the same app for real device, it's ARM. So, we needed 2 different sets of OpenCV libraries to make an OpenCV-based app to compile and run on both simulator and device. If we take into account that there are already ~20 modules in OpenCV, setting all the include and library paths in an application may be really boring and not forward-compatible thing. But now using the script we can create a "universal framework" called opencv2.framework. It combines both versions of the library, together with the headers. It's super-easy to add this framework to application, just like one adds system frameworks. Xcode automatically links application with the correct variant of the library, depending on the target.

Meanwhile, GSoC students, Eduard and Charu, did excellent job on creating new iOS samples. Right now we have more or less good working face detection demos. One works with still images from the photo library, another one works with live video from camera. The screenshot is attached.

[GSoC Python interface improvements; Alexander]

Alexander Mordvintsev continues work on python wrappers and samples; he added description to digits.py, added new sample on laplacian pyramid; fixed 2 bugs in the wrappers and other part of OpenCV causing bugs in python samples.
</pre>

_*Anatoly*_
<pre>
Accomplishments & statuses:

1) OpenCV GPU
Found reasons and fixed thousands of warnings about "undefined anonymous" in device code under Linux. (need to implement copy-constructor for device functors themselves).
Resize with INTERP_ARA flag (usually used for big scale coeff, where bilinear or others behave very bad. Algorithm example: SURF)
Added simple implementation of cv::gpu::resize with INTERP_AREA interpolation type. Average speed-up 25-65x for scale coeff = 3..5. (GTX470 vs Core i5).
Fixed bugs in CPU version of resize function related area interpolation path. Changed behavior of CPU resize implementation according right formula for tile with not full area.
For large scale coeffs (>10x) speed-up is very little. Working on smarter version for this case.
Spend time for dense optical flow (PyrLK) optimization ( we focues on sparse before, dense method was a bonus)
Using shared memory for caching first image - it gives maximum 1.2x speedup in some cases.
Using texture memory for second image - it doesn't gave any speedup.
Using float source + texture built-in linear interpolation - it gives ~2x speedup.
Video stitching application. Updated to support interface changes in opencv_stitching module. Tested the app and sent to NVIDIA.

2) Background substation
Integrated FGD foreground/background subtraction to OpenCV (total 6x speedup).
Plans to work on VIBE

Plans:
Test new dense optical flow implementation, try some other ideas. Think how to make sparse optical flow faster.
Implement faster resize with INTEP_AREA flag for large scale coeffs.

Other:
Anatoly goes for vacations in ther set of June (15-30)
WR
</pre>

_*Ilya*_
<pre>
Transparent objects [Ilya]:
Merged a branch with the algorithm of pose estimation in transparent clutter into the master branch. Experimented with it on the robot and made sure it works correctly.
Documented public API of classes for recognition and pose estimation. Implemented a simple sample how to use our algorithm and described it in the Ecto Recognition Kitchen documentation. Cleaned the code of our algorithm, submitted the camera-ready paper to RSS 2012.
Investigated and solved the issue with too large memory requirements of our algorithm. The reason was STL doesn't release memory of deleted unordered_multimaps but holds it for future objects. We had several temporary but huge hash tables in our algorithm and so memory was not released after their deletion. Switched to using cv::Ptr to create hash tables only once and it solved the problem.
Vincent fixed integration of Ecto with the grasping pipeline after changes in Fuerte and the robot was able to grasp a transparent object after these fixes.

Other:
Maria is on vacation.
</pre>

*_Action Items_*

*Gary*

* .

*Vincent*

* .

*Ilya*

* .

*Vadim*

* .

*Victor*

* .

*Ethan*

* .

_*From Last Time*_

*Gary*

* .

*Vincent*

* .

*Ilya*

* .

*Vadim*

* .

*Victor*

* .

*Ethan*

* .

<pre>
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
</pre>