Mimas

From MMVLWiki

Table of contents

Introduction

Mimas is a C++ real-time computer vision library for GNU/Linux. Mimas is open source, and is licensed under the GNU LGPL. It is easy to use and includes tools for edge detection, corner detection, various filters, optic flow, tracking, blob analysis, Web cam tools for real-time applications, and much more. It also includes many implementations of traditional algorithms such as the Canny edge detector, Harris and Stephens corner detector and pairwise geometric histograms (PGH). It was developed for GNU/Linux, but the parts, which only rely on ImageMagick, fftw3 or Qt, can be compiled for MS Windows.

For usage details have a look at the Doxygen online documentation of Mimas (https://vision.eng.shu.ac.uk/jan/mimas/docs/).

Downloads

Currently it is recommended to download the latest unofficial release (https://vision.eng.shu.ac.uk/jan/mimas/) instead of the latest official version.

Mimas-2.1

Download Mimas-2.1 (https://sourceforge.net/project/showfiles.php?group_id=136086&package_id=149562&release_id=459543) ("The Fourth Law Of Robotics") released on Oct 30th 2006

Release Notes

  • In order to build the LAPACK-wrappers make sure you have blas, lapack, f2c, and gcc-fortran (on older systems g77 or f77) installed.
# On the older Mandriva version you may have to configure using
./configure FLIBS="-lgfortran"
# On openSuSE 10.0 libgfortranbegin.a was compiled without "-fPIC". You need to configure using
./configure F77=gfortran FLIBS="-lgfortran"
  • Mesa off-screen rendering may crash NVidia's X-servers. NVidia does not support OSMesa.
  • You will experience memory leak on most X-servers, when switching between on- and off-screen using X11-pixmaps. Therefore OSMesa is the preferred method for off-screen rendering. The configure script will automatically select OSMesa, if it is supported by your X-server.
  • On a PC with Mandriva and ATI drivers (open-source as well as commercial) we observed, that Mimas' on-screen rendering made the X-server hang/freeze. We don't know a solution at the moment.
  • Xorg 6.9.0 (and later?) does not display gray images properly (glDrawPixels with GL_LUMINANCE, OpenGL). A bug report (https://bugs.freedesktop.org/show_bug.cgi?id=7444) was filed.
  • A tip: If you have to recompile for some reason, it saves time to use ccache (https://ccache.samba.org/). You can configure the build to use the compiler cache like this:
 ./configure CC="ccache gcc" CXX="ccache g++"

Change log

Mon Oct 30 2006 Mimas 2.1

  • More tracking software by Manuel Boissenin.
  • Added v4l-support for cameras providing UYVY-images.
  • The gnuplot-wrapper now writes to mimas::image< rgba< unsinged char > >.
  • Julien Faucher added the minpack-functions for Levenberg-Marquardt.
  • Implemented gauss-gradient.
  • Major bugfix: the internal array- and image-operators didn't have any effect.
  • Introducing image_ref and const_image_ref.
  • image is not aggregating boost::multi_array any more.
  • Fixed the check for gfortran (using AC_PROG_FC now). Thanks to Steven G. Johnson <stevenj at alum.mit.edu>!
  • Fixed version-number of library.

Older releases

Older announcements are available here.

Demonstrations

The demonstrations are not part of the mimas-download. They may be available as separate software packages though.

Presentations

Fast pose estimation and tracking using the bounded Hough transform. The stencil estimator and some of its improvements are presented. The algorithm is specially suitable for the tracking of rigid objects. It might be suitable for embedded devices (i.e. smart camera) although it tends to use a lot of memory (depending on the size of the object and the choice ot the feature extractor).

  • slides v2.0 (pdf) (https://vision.eng.shu.ac.uk/~engmb/wiki_docs/fast_pose_estimation2D/fast_pose_estimation.pdf)
  • video1 (https://vision.eng.shu.ac.uk/~engmb/wiki_docs/fast_pose_estimation2D/gripper.avi)
  • video2 (https://vision.eng.shu.ac.uk/~engmb/wiki_docs/fast_pose_estimation2D/gripper2.avi)

For any request about this presentation please send me an e-mail: Manuel.Boissenin(at)gmail.com

Functionality


Software Engineering

Mimas is using state-of-the-art software engineering. A variety of open-source tools and libraries is being used to develop Mimas:

  1. GNU/Linux: Mimas is being developed for the Linux (https://www.kernel.org/) operating system. Mimas may run on other Posix4/UNIX systems as well.
  2. Qt: The Qt-library developed by Trolltech (https://www.trolltech.com/) is used for implementing graphical user interfaces. You can develop full-featured GUI-software which runs under GNU/Linux, Microsoft Windows, and MacOS!
  3. Mesa: Mesa (https://www.mesa3d.org/) is used to utilise hardware acceleration for displaying graphical primitives and images. The OSMesa (https://www.mesa3d.org/osmesa.html) extension is used (if present) to do off-screen rendering.
  4. STL: The software is making extensive use of the abstract data types provided by the Standard Template Library (https://www.sgi.com/tech/stl/)
  5. Lapack: Mimas offers wrappers for accessing some functions of Lapack (https://www.netlib.org/lapack/lug/).
  6. Boost: The Boost Library (https://www.boost.org/) offers smart pointers to do exception safe programming, multi-dimensional arrays, template meta-programming, abstract data types for linear algebra and many other programming concepts. The Boost library is going to be part of a future C++ standard.
  7. Magick++: Mimas uses Magick++ (https://www.imagemagick.org/Magick++/) to load and save images.
  8. Xalan-C and Xerces-C: Xalan-C (https://xml.apache.org/xalan-c/) and Xerces-C (https://xml.apache.org/xerces-c/) are the XML-related C++-libraries of the Apache Software Foundation. They can be considered as the most complete implementations of the XML- (extended markup language), XSD- (XML schema description) and Xpath- (XML path) standards.
  9. doxygen and graphviz: The doxygen (https://www.stack.nl/~dimitri/doxygen/) documentation system extracts inline-documentation from the C++ source code.
  10. FFTW. The fftw (https://www.fftw.org/)-library is maybe the fastest library for performing discrete Fourier transforms.
  11. popt: The popt-library was used to implement command-line interfaces.
  12. xine: Mimas (version 2.0 and later) can access videos using libxine (https://www.xinehq.de/).
  13. Gnuplot: Gnuplot (https://www.gnuplot.info/) is used for plotting functions.
  14. cvs and gnu-arch: Earlier cvs (https://www.nongnu.org/cvs/) was used for version control. Now gnu-arch (https://www.gnu.org/software/gnu-arch/) is being used.
  15. Gcc: gcc (https://www.gnu.org/software/gcc/) is the C++ compiler of the GNU project.
  16. gstreamer: Mimas has a plugin for interfacing with gstreamer (https://www.gstreamer.net/).
  17. autoconf, automake and make: make (https://www.gnu.org/software/make/), autoconf (https://www.gnu.org/software/autoconf/) and automake (https://www.gnu.org/software/automake/) are used to configure and perform the build of the software on various distributions of the Linux operating system.

See Also

External Links

Bookmark and Share

Personal tools