Skip to content

Conversation

@andreasBihlmaier
Copy link
Contributor

NOTE: This pull-request corresponds to opencv/opencv#2531
Test compiled against current opencv 2.4 branch with gcc-4.8.

Hello OpenCV community,

as an extensive OpenCV user, I have been wishing for a utility that helps in developing and debugging computer vision code. One usually ends up writing some hacky, custom code, e.g. to more clearly show the effect of applying some filter (and tuning its parameters), which is thrown away afterwards. Reinventing the wheel over and over again.

I now had the opportunity to supervise a student assignment [1] to remedy this situation.
The result is cvv or cvvisual an interactive debugging GUI for OpenCV (https://github.com/CVVisualPSETeam/CVVisual and http://cvv.mostlynerdless.de).

The pull request integrates cvv as new module into the OpenCV build system, including a complete tutorial (with a test application you can use to give cvv a spin).

At the moment, there are visual debugging aids for many filter operations and for matchings.
Many areas of OpenCV are not yet covered, but I think a solid framework has been built with lots of useful utilities that enables to add new functionality fast and in a modular way.
I plan to add further functionality myself - instead of writing more custom code for the trash can.
Of course, my hope is that other people (hello community) will do the same, resulting in a useful tool for every OpenCV user.

Comments and discussions are highly welcome.
Please give cvv a try in your own applications and report on successes and shortcomings.

Kind regards,
Andreas Bihlmaier

[1] Credit goes to Johannes Bechberger, Erich Bretnütz, Nikolai Gaßner, Raphael Grimm, Clara Scherer and Florian Weber.

… Interactive Visual Debugging of Computer Vision applications
@Fiona-J-W
Copy link

I am not entirely sure of how much help these really are, but in case it helps someone: The initial UML-diagrams can be found here: https://github.com/CVVisualPSETeam/Dokumente/tree/master/Entwurf/Klassendiagramme

While they are outdated and only contain German comments, the overall structure of the project didn't change that much, so some of them might still be helpful for understanding the basic design-concepts (in this context I would mainly recommend a look at UML Overview.pdf).

@andreasBihlmaier
Copy link
Contributor Author

After the initial - very encouraging - reactions, is there any news on this pull request?
@apavlenko, @snosov1?

@snosov1
Copy link

snosov1 commented Apr 19, 2014

Sorry for delay. I've looked through it right away, and they're a couple of issues. Mainly, we don't plan to enable C++11 for builds of this repository, since the support is not yet ubiquitous. Also, the usage of Qt5 is rather limiting.

This makes it a great tool for development and research on Desktops with latest sw, but is unusable on other platforms.

My thinking is that in its current form it doesn't belong to the mainstream repo because of these dependencies. But, I think, it can be merged to the contrib repo after a few minor fixes.

Let's also ask @kirill-kornyakov on that.

@andreasBihlmaier
Copy link
Contributor Author

@snosov1 np :)

I understand the issue with C++11, also this one cannot be fixed since all of the code was explicitly written in "modern" C++.

I'm not quite sure why Qt5 is a problem, since it is used even in the OpenCV main repository nowadays, e.g. for imshow() - WITH_QT and HAVE_QT5 is even automatically selected on my Ubuntu 12.04.4 with both Qt4 and Qt5 installed.

I plan to put further work into this - at least once I find some spare time.
The next steps (after fixing the issues you mention) for me would be to add a Python wrapper, support for the objdetect module and afterwards ml (e.g. tree graphs).
I recently "caught" a student of mine writing custom debug visualization code for a matching subtask ... this has to stop.

Let's keep this warm until the pull request can be accepted, because otherwise the effort is much larger due to multiple re-coming to grips with the code base.

  cmake -D CMAKE_INSTALL_PREFIX=/home/ahb/software/opencv/install -D CMAKE_BUILD_TYPE=RELWITHDEBINFO -D CMAKE_CXX_FLAGS=-std=c++11 -DOPENCV_EXTRA_MODULES_PATH=/home/ahb/software/opencv_contrib/modules -DBUILD_opencv_adas=OFF -DBUILD_opencv_bgsegm=OFF -DBUILD_opencv_bioinspired=OFF -DBUILD_opencv_datasetstools=OFF -DBUILD_opencv_face=OFF -DBUILD_opencv_line_descriptor=OFF -DBUILD_opencv_matlab=OFF -DBUILD_opencv_optflow=OFF -DBUILD_opencv_reg=OFF -DBUILD_opencv_rgbd=OFF -DBUILD_opencv_saliency=OFF -DBUILD_opencv_surface_matching=OFF -DBUILD_opencv_text=OFF -DBUILD_opencv_tracking=OFF -DBUILD_opencv_xfeatures2d=OFF -DBUILD_opencv_ximgproc=OFF -DBUILD_opencv_xobjdetect=OFF -DBUILD_opencv_xphoto=OFF ..
* Fix names in doc/code_example/CMakeLists.txt
* Copy code_example to samples folder, add #define, to have it automatically compiled as sample
@andreasBihlmaier
Copy link
Contributor Author

I just found out that Ubuntu 14.04 (i.e. due to ROS Indigo the standard plattform for robotics) has all required components for cvv (gcc >= 4.8; Qt5) as default packages.
Perhaps somebody could have a look at this again, before it rots after all.

@vpisarev
Copy link
Contributor

@andreasBihlmaier, terribly sorry for delay; I'm seriously going to integrate this patch before my vacation. Too bad that it the patch has been created from master branch, not from a separate branch. Because of this github says that 240 files have been modified. I can grab your changes and create another PR with just your module added. But if you have time, it would be great if you do it.

@andreasBihlmaier
Copy link
Contributor Author

@vpisarev: Done, see #97

@vpisarev
Copy link
Contributor

ok, now we can close this one

@vpisarev vpisarev closed this Sep 19, 2014
shanchenqi pushed a commit to shanchenqi/opencv_contrib that referenced this pull request Nov 20, 2020
bmegli pushed a commit to Extend-Robotics/opencv_contrib that referenced this pull request Jul 11, 2022
Create first melodic release
allnes pushed a commit to allnes/opencv_contrib that referenced this pull request Jun 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants