Mimas

From MMVLWiki
(Difference between revisions)
Jump to: navigation, search
m (Announcements)
m (Change log)
 
(80 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Image:mimas.jpg|200px|right]]
+
{|align=right
 
+
|-
 +
|[[Image:Mimas.jpg|200px|right]]||[[Image:Mimassf2.png|370px|right]]
 +
|-
 +
|}
 
=Introduction=
 
=Introduction=
Mimas Toolkit is a '''C++ real-time computer vision library'''. It is easy to use and
+
'''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
includes tools for edge detection, corner detection, various filters, optic
+
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'',
flow, tracking, blob analysis, Web cam tools for real-time applications, and
+
can be compiled for ''MS Windows''.
much more. It also includes many implementations of traditional algorithms
+
such as Canny. It was developed for GNU/Linux but as the GUI is largely
+
separate, porting to other platforms should be straightforward.
+
  
=Announcements=
+
For usage details have a look at the [http://vision.eng.shu.ac.uk/jan/mimas/docs/ Doxygen online documentation of Mimas].
<!--
+
 
==Mimas-2.0==
+
=Downloads=
[[Image:Mimaslogo.png|200px|right]]
+
Currently it is recommended to [http://vision.eng.shu.ac.uk/jan/mimas/ download the latest unofficial release] instead of the latest official version.
[[Image:mimasanim.gif|40px]] [http://www.shu.ac.uk/mmvl/research/mimas/download/stable/2.0/ Mimas-2.0] [[Image:new.gif]] was released on Mar 15th 2005
+
==Mimas-2.1==
 +
[[Image:Feather.jpg|200px|right]]
 +
[[Image:mimasanim.gif|48px]] '''Download [http://sourceforge.net/project/showfiles.php?group_id=136086&package_id=149562&release_id=459543 Mimas-2.1]''' ('''"The Fourth Law Of Robotics"''') released on Oct 30th 2006
 
===Release Notes===
 
===Release Notes===
* On newer systems, you have to force linking with ''libgfortran'' to build the lapack-wrappers (see [http://groups.yahoo.com/group/mimas/message/230 here] for more)
+
* In order to build the ''LAPACK''-wrappers make sure you have blas, lapack, f2c, and gcc-fortran (on older systems g77 or f77) installed.
* Mesa off-screen rendering may crash NVidia's X-servers. NVidia doesn't support OSMesa.
+
# On the older Mandriva version you may have to configure using
* You'll experience a 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 automatically will select ''OSMesa'', if it is supported by your X-server.
+
./configure FLIBS="-lgfortran"
===Change log===
+
* Direct transformation algorithms from different YUV formats to greyscale have been implemented.
+
* Various video sources (virtually any video file, DVDs, VCDs, streaming formats) are now accessible with mimas::image_xineinput, which is using libxine. See ''viewVideo'' example for more.
+
* Image files are now read using ImageMagick (Magick++), which allows reading and writing of animated ''GIF''s, ''DICOM'' stacks (8 bit at the moment), ''FAX'', ''Postscript'', ''PDF'', ''MPEG'', ''RAS'', ... See ''viewImage'' example for more.
+
* Mimas is configured to use OSMesa for off-screen rendering, if it is present on the system.
+
* The Mimas library now is independent of ''Qt''. The examples, which are using ''Qt'', have been ported to ''Qt4''. This allows the Mimas library to be used with ''Qt3''- as well as ''Qt4''-programs.
+
* The function-wrappers for Fourier transform are now supporting both single and double precision.
+
* Lapack-wrappers extended with Cholesky factorisation and determinants.
+
* An example for L-systems was implemented.
+
-->
+
==Mimas-1.4==
+
[[Image:Cells4.jpg|200px|right]]
+
[[Image:mimasanim.gif|40px]] [http://www.shu.ac.uk/mmvl/research/mimas/download/stable/1.4/ Mimas-1.4] was released on Nov 21th 2005.
+
===Release Notes===
+
* RPM-files for Mandrake 10.2 are provided.
+
* Don't run the ''mesa'' example on NVidia cards, as it ''crashes NVidia'''s Xorg-servers at the moment :(
+
  
===Change log===
+
# On openSuSE 10.0 libgfortranbegin.a was compiled without "-fPIC". You need to configure using
* Support for firewire digital cameras (accessed using ''libdc1394'')
+
./configure F77=gfortran FLIBS="-lgfortran"
* shift and rotation estimation using the fourier transform
+
* 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.
==Mimas-1.3==
+
* 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.
[[Image:Gripper2.jpg|200px|right]]
+
* Xorg 6.9.0 (and later?) does not display gray images properly (glDrawPixels with GL_LUMINANCE, OpenGL). A [http://bugs.freedesktop.org/show_bug.cgi?id=7444 bug report] was filed.
<!-- [http://vision.eng.shu.ac.uk/jan/mimas/mimas-1.3.tar.gz Mimas-1.3] -->
+
* A tip: If you have to recompile for some reason, it saves time to use [http://ccache.samba.org/ ccache]. You can configure the build to use the compiler cache like this:
[[Image:mimasanim.gif|40px]] [http://www.shu.ac.uk/mmvl/research/mimas/download/stable/1.3/ Mimas-1.3] was released on Jul 29th 2005.
+
  ./configure CC="ccache gcc" CXX="ccache g++"
 
+
===Release Notes===
+
* No rpm-files are provided this time.
+
* "make install" now will install documentation and the compiled examples under /usr/share/doc/mimas-devel-1.3/
+
  
 
===Change log===
 
===Change log===
Notable changes include:
+
Mon Oct 30 2006 Mimas 2.1
* Convolution for n-dimensional arrays and images and faster LSI-filters have been implemented.
+
* More tracking software by Manuel Boissenin.
* Operators for images have been added (f.e. "image3=(image1-image2)*3.0").
+
* Added v4l-support for cameras providing UYVY-images.
* 2D-image-iterators have been implemented.
+
* The gnuplot-wrapper now writes to mimas::image< rgba< unsinged char > >.
* Support for mesa offscreen- and onscreen-rendering has been added.
+
* Julien Faucher added the minpack-functions for Levenberg-Marquardt.
* Object-recognition using moments was implemented.
+
* 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.
  
==Mimas-1.2==
+
==Older releases==
[[Image:Fiberdf10xdv.png|right|200px|]]
+
Older announcements are available [[Mimas Announcement Archive|here]].
[[Image:mimasanim.gif|40px]] [http://www.shu.ac.uk/mmvl/research/mimas/download/stable/1.2/src/ Mimas 1.2] released on Feb 28th 2005.
+
===Release Notes===
+
* The lib*.so-files have been moved to the rpm-devel-package. This is a bug-fix, which also resolved the problem with superfluous dependencies. The rpm-packages are for Mandrake 10.0 only.
+
 
+
===Change Log===
+
* type-traits for pixel-conversion
+
* new grabber class (video4linux)
+
* introduced [http://www.boost.org/libs/numeric/ublas/doc/index.htm boost uBLAS]
+
* added wrappers for xml-library [http://xml.apache.org/xalan-c/ Xalan-C]
+
* iterative pose-estimation for 3D-correspondences
+
  
 
=Demonstrations=
 
=Demonstrations=
[[Image:Griddv.jpg|right|200px|]]
+
[[Image:Coffee.png|right|200px|]]
 
* [[Microscope Vision Software]]
 
* [[Microscope Vision Software]]
 
* [http://vision.eng.shu.ac.uk/jan/asciiart.html Ascii-art] using mimas and [http://aa-project.sourceforge.net/aalib/ aalib].
 
* [http://vision.eng.shu.ac.uk/jan/asciiart.html Ascii-art] using mimas and [http://aa-project.sourceforge.net/aalib/ aalib].
* [[Camera Surveilance]]
 
 
* [[Microscope Control Software]]
 
* [[Microscope Control Software]]
 
* [[MiCRoN Microscope Environment|Sugar Pushing]]
 
* [[MiCRoN Microscope Environment|Sugar Pushing]]
Line 79: Line 55:
 
* [[Registration of TEM images]]
 
* [[Registration of TEM images]]
 
* [[Gradient Based Motion Estimation]]
 
* [[Gradient Based Motion Estimation]]
* [[Image:New.gif]] [[Locating tungsten-tip by means of cross-correlation]]
+
* [[Interactive Camera-Projector System]]
The demonstrations are not part of the mimas-download!
+
* [[Robot Automation Demo]]
 +
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). 
 +
 
 +
* [http://vision.eng.shu.ac.uk/~engmb/wiki_docs/fast_pose_estimation2D/fast_pose_estimation.pdf slides v2.0 (pdf)]
 +
* [http://vision.eng.shu.ac.uk/~engmb/wiki_docs/fast_pose_estimation2D/gripper.avi video1]
 +
* [http://vision.eng.shu.ac.uk/~engmb/wiki_docs/fast_pose_estimation2D/gripper2.avi video2]
 +
 
 +
For any request about this presentation please send me an e-mail: Manuel.Boissenin(at)gmail.com
  
 
=Functionality=
 
=Functionality=
 +
* [[Mimas Camera Calibration|Camera Calibration]]
 
* [[Mimas Hough Transform|Hough Transform]]
 
* [[Mimas Hough Transform|Hough Transform]]
* [[Mimas Video Input|Video Input]]
 
  
=See Also=
+
<!--
* [[Realtime Linux]]
+
=Image data=
 +
You will need these images to run the particle_filter examples.
 +
[Help required to upload .tgz file (around 30M) containing nearly 200 pictures
 +
on my computer ~/sourceCode]
 +
Don't forget to change the location of the images in the runMe files.
 +
-->
  
 
=Software Engineering=
 
=Software Engineering=
Line 93: Line 87:
 
'''Mimas''' is using state-of-the-art software engineering. A variety of open-source tools and libraries is being used to develop '''Mimas''':
 
'''Mimas''' is using state-of-the-art software engineering. A variety of open-source tools and libraries is being used to develop '''Mimas''':
 
# [[Image:Tux.jpg|30px|]] '''GNU/Linux''': Mimas is being developed for the [http://www.kernel.org/ Linux] operating system. Mimas may run on other Posix4/UNIX systems as well.  
 
# [[Image:Tux.jpg|30px|]] '''GNU/Linux''': Mimas is being developed for the [http://www.kernel.org/ Linux] operating system. Mimas may run on other Posix4/UNIX systems as well.  
# [[Image:Qt logo.png|30px|]] '''Qt''': The Qt-library developed by [http://www.trolltech.com/ Trolltech] is used for implementing graphical user interfaces.
+
# [[Image:Qt4.png|30px|]] '''Qt''': The Qt-library developed by [http://www.trolltech.com/ Trolltech] is used for implementing graphical user interfaces. You can develop full-featured GUI-software which runs under [[Image:Tux.jpg|30px|]] GNU/Linux, [[Image:Ms-windows logo.png|40px|]] Microsoft Windows, and [[Image:Macos.gif|54px|]] MacOS!
 
# [[Image:Gears.png|30px|]] '''Mesa''': [http://www.mesa3d.org/ Mesa] is used to utilise hardware acceleration for displaying graphical primitives and images. The [http://www.mesa3d.org/osmesa.html OSMesa] extension is used (if present) to do off-screen rendering.
 
# [[Image:Gears.png|30px|]] '''Mesa''': [http://www.mesa3d.org/ Mesa] is used to utilise hardware acceleration for displaying graphical primitives and images. The [http://www.mesa3d.org/osmesa.html OSMesa] extension is used (if present) to do off-screen rendering.
 
# [[Image:Stl logo.gif|30px|]] '''STL''': The software is making extensive use of the abstract data types provided by the [http://www.sgi.com/tech/stl/ Standard Template Library]
 
# [[Image:Stl logo.gif|30px|]] '''STL''': The software is making extensive use of the abstract data types provided by the [http://www.sgi.com/tech/stl/ Standard Template Library]
Line 109: Line 103:
 
# [[Image:Gstreamer logo.png|80px|]] '''gstreamer''': Mimas has a plugin for interfacing with [http://www.gstreamer.net/ gstreamer].
 
# [[Image:Gstreamer logo.png|80px|]] '''gstreamer''': Mimas has a plugin for interfacing with [http://www.gstreamer.net/ gstreamer].
 
# [[Image:Gnu-head.jpg|35px|]] '''autoconf''', '''automake''' and '''make''': [http://www.gnu.org/software/make/ make], [http://www.gnu.org/software/autoconf/ autoconf] and [http://www.gnu.org/software/automake/ automake] are used to configure and perform the build of the software on various distributions of the Linux operating system.
 
# [[Image:Gnu-head.jpg|35px|]] '''autoconf''', '''automake''' and '''make''': [http://www.gnu.org/software/make/ make], [http://www.gnu.org/software/autoconf/ autoconf] and [http://www.gnu.org/software/automake/ automake] are used to configure and perform the build of the software on various distributions of the Linux operating system.
 +
 +
=See Also=
 +
* [[Mimas Announcement Archive]]
 +
* [[Image:Hornetseye.png|40px]] [[HornetsEye]]
 +
* [[Realtime Linux]]
  
 
=External Links=
 
=External Links=
Line 114: Line 113:
 
* Sheffield Hallam University
 
* Sheffield Hallam University
 
** [http://www.shu.ac.uk/mmvl/research/mimas/index.html Mimas page on official MMVL site]
 
** [http://www.shu.ac.uk/mmvl/research/mimas/index.html Mimas page on official MMVL site]
** [http://vision.eng.shu.ac.uk/jan/mimas-docs/ Online documentation]
+
** [http://vision.eng.shu.ac.uk/jan/mimas/docs/ Online documentation]
** [http://vision.eng.shu.ac.uk/jan/mimas-docs/tla.html Read-only access to tla/gnu-arch repository]
+
** [http://vision.eng.shu.ac.uk/jan/mimas/docs/tla.html Access to tla/gnu-arch repository] (currently no outside-access. Apache doesn't allow ''.archive-version'' to be read)
* [http://groups.yahoo.com/group/mimas/ Yahoo newsgroup]
+
* [[Image:YahooGroups.gif|40px]] [http://groups.yahoo.com/group/mimas/ Yahoo newsgroup and discussion forum]
* [http://freshmeat.net/projects/mimas/ Mimas at freshmeat.net]
+
* [[Image:Freshmeat.gif|58px]] [http://freshmeat.net/projects/mimas/ Mimas at freshmeat.net]
 +
* [[Image:Sourceforge.png|58px]] [http://sourceforge.net/projects/mimas/ Mimas at sourceforge.net]
 
* Image databases
 
* Image databases
 
** [http://staff.science.uva.nl/~aloi/  Amsterdam Library of Object Images (ALOI)]
 
** [http://staff.science.uva.nl/~aloi/  Amsterdam Library of Object Images (ALOI)]
** [http://www-rocq.inria.fr/~tarel/syntim/paires.html Stereograms of the Syntim team]
+
** [http://perso.lcpc.fr/tarel.jean-philippe/syntim/paires.html Stereograms of the Syntim team]
* [http://www.levanta.com/linuxstudy/EMA_Levanta-Linux_RR.pdf Get the truth] about Linux TCO.
+
* Download the [http://vision.eng.shu.ac.uk/jan/mimas2.3gp animated Mimas-logo in 3GP-format] for your mobile!
 +
* Publicity
 +
** [http://www.cs.cmu.edu/~cil/v-source.html Mimas on the CMU Computer Vision page!]
 +
** [http://www.roborealm.com/links/vision_software.php Mimas at roborealm.com!]
 +
** [http://robots.net/article/1855.html Mimas on robots.net!]
 +
** [http://www.iee.org/oncomms/sector/computing/magazine.cfm?issueID=119&articleID=D7AE89FD-AED1-AE33-59A461ED68489494 Mimas in IEE/IET Computing and Control]
 +
** [http://www.inma.ucl.ac.be/~francois/blog/archives/archive_2006-m03.php Mimas in Intelligent Machines]
 +
* [http://en.wikipedia.org/wiki/Category:Computer_vision Computer Vision Category at Wikipedia.org]
 +
* [http://computervision.wikia.com/ Computer Vision at Wikia.com]
 +
* [http://www.cee.hw.ac.uk/hipr/html/hipr_top.html Image processing reference by the University of Edinburgh]
 +
 
 +
{{Addthis}}
  
 
[[Category:Projects]]
 
[[Category:Projects]]
[[Category:Mimas|*Mimas]]
 

Latest revision as of 18:05, 17 March 2010

Mimas.jpg
Mimassf2.png

Contents

[edit] 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.

[edit] Downloads

Currently it is recommended to download the latest unofficial release instead of the latest official version.

[edit] Mimas-2.1

Feather.jpg

Mimasanim.gif Download Mimas-2.1 ("The Fourth Law Of Robotics") released on Oct 30th 2006

[edit] 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 was filed.
  • A tip: If you have to recompile for some reason, it saves time to use ccache. You can configure the build to use the compiler cache like this:
 ./configure CC="ccache gcc" CXX="ccache g++"

[edit] 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.

[edit] Older releases

Older announcements are available here.

[edit] Demonstrations

Coffee.png

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

[edit] 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).

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

[edit] Functionality


[edit] Software Engineering

Thunderstroke2.jpg

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

  1. Tux.jpg GNU/Linux: Mimas is being developed for the Linux operating system. Mimas may run on other Posix4/UNIX systems as well.
  2. Qt4.png Qt: The Qt-library developed by Trolltech is used for implementing graphical user interfaces. You can develop full-featured GUI-software which runs under Tux.jpg GNU/Linux, Ms-windows logo.png Microsoft Windows, and Macos.gif MacOS!
  3. Gears.png Mesa: Mesa is used to utilise hardware acceleration for displaying graphical primitives and images. The OSMesa extension is used (if present) to do off-screen rendering.
  4. Stl logo.gif STL: The software is making extensive use of the abstract data types provided by the Standard Template Library
  5. Lapack logo.gif Lapack: Mimas offers wrappers for accessing some functions of Lapack.
  6. C--boost logo.gif Boost: The Boost Library 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 logo.png Magick++: Mimas uses Magick++ to load and save images.
  8. Apache logo.gif Xalan-C and Xerces-C: Xalan-C and 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 logo.png doxygen and Dot logo.png graphviz: The doxygen documentation system extracts inline-documentation from the C++ source code.
  10. Fftw logo.gif FFTW. The fftw-library is maybe the fastest library for performing discrete Fourier transforms.
  11. Popt logo.png popt: The popt-library was used to implement command-line interfaces.
  12. Xine logo.png xine: Mimas (version 2.0 and later) can access videos using libxine.
  13. Gnuplot logo.gif Gnuplot: Gnuplot is used for plotting functions.
  14. Cvs logo.gif cvs and Gnu-arch logo.png gnu-arch: Earlier cvs was used for version control. Now gnu-arch is being used.
  15. Gcc logo.png Gcc: gcc is the C++ compiler of the GNU project.
  16. Gstreamer logo.png gstreamer: Mimas has a plugin for interfacing with gstreamer.
  17. Gnu-head.jpg autoconf, automake and make: make, autoconf and automake are used to configure and perform the build of the software on various distributions of the Linux operating system.

[edit] See Also

[edit] External Links

Mimaslogo.png

Bookmark and Share

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox