[Phission-cvs] phission/docs/doxygen INSTALL.doxygen, NONE, 1.1 RESOURCES.doxygen, NONE, 1.1 MAINPA
Brought to you by:
pthoren
From: Philip T. <pt...@us...> - 2006-07-26 07:13:28
|
Update of /cvsroot/phission/phission/docs/doxygen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19556/docs/doxygen Modified Files: Doxyfile Added Files: INSTALL.doxygen RESOURCES.doxygen MAINPAGE.doxygen Log Message: Merging documentation from openoffice files to MAINPAGE,etc. and reorganizing it for the doxygen system and a better layout... some minimal editing --- NEW FILE: INSTALL.doxygen --- /** \page page_build_and_install Building & Installing Phission \section sec_build_and_install_toc Table of Contents - \ref sec_install_sdl - \ref subsec_install_sdl - \ref sec_install_fltk - \ref subsec_install_fltk - \ref sec_install_opencv - \ref subsec_install_opencv - \ref sec_install_swig - \ref subsec_install_swig - \ref sec_install_python - \ref sec_install_java - \ref sec_install_zlib - \ref sec_install_libjpeg - \ref sec_install_ffmpeg - \ref subsec_install_avcodec_avformat - \ref sec_install_pyro - \ref sec_phissiondownload - \ref subsec_download_cvs - \ref subsec_releasepackage - \ref sec_building - \ref subsec_preautotooled - \ref subsec_autogen - \ref subsec_uninstall - \ref subsec_configure - \ref sec_rpm - \ref sec_configure64bit32bit - \ref sec_postinstallation All the packages listed below are optional and none are required for the most basic capabilities of Phission. For example, if you don't install the libjpeg package, then you won't be able to save images as jpegs or compress the data to a jpeg. The version numbers you'll find up to date may be different than the version numbers in the documentation below. If a newer version doesn't work with Phission, please send an email so the code base can be updated if it's necessary. If you want to build with support for one of the optional packages, you'll likely need all the libraries and headers required for development. The web sites where the projects are hosted and where downloads can be obtained are included for each package. Since Phission has been developed on the Redhat distribution, instructions are given for building Redhat packages as opposed to Debian or another package type. \section sec_install_sdl SDL http://www.libsdl.org/ SDL ( Simple Direct Media Layer ) is a fast portable media library that is being used here for it's high performance capabilities and is required by the SDLDisplay class. See the documentation below on Display classes for more information. on using a display class. It is possible to only have one 1.2.x SDL version window open in any instance of an application. For this reason, the X11Display and GDIDisplay displays were written for Linux/Cygwin and Windows respectively. Even with this limitation, the SDLDisplay is likely to provide way better performance than the X11 or GDI displays. SDL can be used in conjunction with the X11 and GDI displays if more than one window is necessary. \subsection subsec_install_sdl Install SDL Check to see if you have SDL installed: <pre> <code> $ rpm -q SDL $ rpm -q SDL-devel $ which sdl-config $ locate sdl-config | grep bin </code> </pre> I'd suggest use of the source RPM (src.rpm) and that one build a binary version using the following command (must have root access): <pre> <code> $ rpmbuild --rebuild SDL-1.2.6.src.rpm </code> </pre> <b>rpmbuild</b> will proceed to compile and assemble a binary RPM file and will display the full path to that file at the end of the build. Install the rpm using the following command(as root or using <b>sudo</b>): <pre> <code> $ rpm -iUh /path/to/binary/package.i386.rpm </code> </pre> \section sec_install_fltk FLTK http://www.fltk.org/ FLTK is a GUI library and is required for the FLDisplay class. The FLTK library is also used for some of the OpenCV library routines internal to the OpenCV package which aren't used by Phission but are useful when exploring OpenCV examples. The inclusion of a display class that uses a GUI package like FLTK is to provide the basis for a C/C++ program with menus and buttons to allow manipulation of the Phission classes during runtime. The phFLImageWindow class contains the GUI specific code and could be contained in a full blown FLTK application that connects it to any of the constantly updating phImage sources internal to a capture class or a pipeline. \subsection subsec_install_fltk Install FLTK Check to see if you have FLTK installed: <pre> <code> $ rpm -q fltk $ rpm -q fltk-devel $ which fltk-config $ locate fltk-config | grep bin </code> </pre> Version 1.1.x should be downloaded and installed. Newer versions have not been tested with Phission. I used the SourceForge servers and downloaded the tarball (tar.gz). The FLTK tarball has an RPM .spec file (fltk.spec) file packaged with it and can potentially be built into a binary RPM package using the following command: <pre> <code> $ rpmbuild -ta fltk-1.x.x.tar.gz </code> </pre> If that fails, you can still untar ( <b>tar -xvzf fltk-1.x.x.tar.gz</b> ) the tarball and build it manually: <pre> <code> $ cd fltk-1.x.x $ ./configure $ make $ make install </code> </pre> \section sec_install_opencv OpenCV http://sourceforge.net/projects/opencvlibrary/ OpenCV is going to be required for most the filters in furture releases of Phission, but is currently only required for one filter (which resides in the <b>phission/filter/video/</b> directory): cv_canny_Filter. OpenCV provides many image processing filters and has a long detailed and thorough manual documenting their use. I suggest learning and using OpenCV if you really want top quality high performance image filters. The Phission filters have been C/C++ optimized only to a certain extent in order to provide as decent performance as possible using C/C++. If you write a phFilter that uses an OpenCV filter, please submit it one of the mailing lists or myself so it can be included in the Phission distribution. \subsection subsec_install_opencv Install OpenCV Check to see if you already have OpenCV installed: <pre> <code>$ rpm -q OpenCV</code> <code>$ which opencv-config</code> <code>$ locate opencv-config | grep bin</code> (v0.9.5) <code>$ locate opencv.pc</code> (v0.9.6) </pre> Downloading version 0.9.5 is recommended. There is an RPM .spec file within the tarball (tar.gz) but may need to be edited. To try and build the binary RPM package: <pre> <code> $ rpmbuild -ta OpenCV-0.9.5.tar.gz </code> </pre> If this doesn't work, you can untar the tarball: <pre> <code> $ tar -xvzf OpenCV-0.9.5.tar.gz </code> </pre> edit the .spec file or create it if necessary: <pre> <code> $ ./configure </code> (will use OpenCV.spec.in to create OpenCV.spec) </pre> Save the old tarball and repackage the tarball: <pre> <code> $ mkdir backup $ mv OpenCV-0.9.5.tar.gz backup/ $ tar -cvzf OpenCV-0.9.5.tar.gz OpenCV-0.9.5 </code> </pre> Build the RPM binary package: <pre> <code> $ rpmbuild -ta OpenCV-0.9.5.tar.gz </code> </pre> Finally, install the RPM package rpmbuild created: <pre> <code> $ rpm -iUh /path/to/OpenCV-0.9.5.i386.rpm </code> </pre> If you've gone through all that with no luck, you can still untar ( <b>tar -xvzf OpenCV-0.9.5.tar.gz </b>) the tarball and build it manually: <pre> <code> $ cd OpenCV-0.9.5 $ ./configure $ make $ make install </code> </pre> \section sec_install_swig SWIG http://www.swig.org/ SWIG supplies the facilities to bind/wrap Phission's API into any of the supported SWIG langauges. Each language being bound to usually has some amount of differences from C/C++ syntax and capabilities. This requires changes to the Phission code base to support those differences. Python and Java are currently the only alternative supported languages. \subsection subsec_install_swig Install SWIG Check to see if you already have Swig installed: <pre> <code> $ rpm -q swig $ which swig $ locate swig | grep bin $ swig -version </code> </pre> I suggest getting the latest version (1.3.24) of SWIG. You may be able to create an RPM binary package using the tarball: <pre> <code> $ rpmbuild -ta swig-1.x.x.tar.gz </code> </pre> After building the RPM, install it: <pre> <code> $ rpm -iUh /path/to/swig-1.x.x.i386.rpm </code> </pre> Otherwise, follow the SWIG directions for installing this package. \section sec_install_python Python http://www.python.org/ Python is the language in which Pyro (Python for Robots) is written. Support for Python wrapping is supplied by the SWIG package and without it Python will not be supported. \section sec_install_java Java http://java.sun.com/ You'll want to download the SDK so the Java classes and modules can be built correctly. Phission uses J2SE 1.4.2 for Java development and other versions have not yet been tested. SWIG 1.3.24 is required for correct Java support and without it the Java language bindings won't be supported. \section sec_install_zlib zlib http://www.zlib.net/ \section sec_install_libjpeg libjpeg http://www.ijg.org/ libjpeg is usually installed in most distributions. Instructions on building and installing libjpeg are similar to instructions for building and installing other packages above. \section sec_install_ffmpeg FFMpeg http://ffmpeg.sourceforge.net/ FFmpeg is a group of tools and libraries that allow reading, converting and playing of supported audio and video files. Even raw device reading and writing are supported by the FFmpeg project. The libavcodec and libavformat libraries supplied by the FFmpeg project allow Phission to read (and potentially write) video files. There are a large number of audio and video formats that are supported as outlined by the documentation: Supported File Formats and Codecs. Phission's ability to read video files allows researchers to capture videos, in any way that is convenient for them, and have Phission play the video as a regular source. The difference of any code written to use a Video4Linux device and input from a video file are very minimal and lie only in the particular configuration differences between the V4LCapture class and the phAvcodecSource class. (Capture and Source terms are interchangeable as in a Capture device is a Source of video data and a Source uses Captured data. The names are still in a bit of flux. ) While Phission tries to keep up with the CVS changes of FFmpeg, version 0.4.9-pre1 is the package that is recommended if you want stability. The CVS version has newer codec support which can come in handy. \subsection subsec_install_avcodec_avformat Install libavcodec and libavformat You have two choices for installing FFmpeg (which supplies libavcodec and libavformat): install from CVS or install from a tarball. Either way, if one choice doesn't work it's likely the other may work. Check to see if you have ffmpeg installed: <pre> <code> $ locate ffmpeg | grep bin $ which ffmpeg $ rpm -q ffmpeg $ rpm -q ffmpeg-devel </code> </pre> Check to see if you have the libraries installed: <pre> <code> $ locate libavcodec.so $ locate libavcodec.a $ locate avcodec.h | grep include $ locate libavformat.so $ locate libavformat.a $ locate avformat.h | grep include </code> </pre> Shared libraries usually end in '.so' and static libraries end in '.a'; you'll need one of the two. If you're using the RPMs, you'll need the -devel library. If you don't have ffmpeg installed, go to the FFmpeg web site and follow the download instructions for CVS or downloading from their file release page. Once you have the source you can run <b>./configure --enable-shared</b> and <b>make</b>. to build the source. You can then make install the FFmpeg binaries along with the libavcodec and libavformat libraries. Without configuring to build with the <b>--enable-shared</b>, the shared libraries are not installed and neither are the header files required to build with the libraries. \section sec_install_pyro Pyro http://pyrorobotics.org/ âPyro supplies a programming environment for ... artificial intelligence and robotics...â. See the http://pythonrobotics.org website for installation instructions. The current version as of this writing is 1.4.2. However, the last tested version is 1.3.x and there are significant differences between the two versions. The examples provided should work in 1.3.x and modifications to run in 1.4.x are left to the reader until such time as the examples can be updated. Pyrobot has it's own vision system that is extremely simplistic and quite slow. It runs serially with all the control code so any large amount of vision processing could potentially hold up the processing of sonar or laser information and may cause a robot to collide with objects. Phission was originally written to allow a separate vision processing sub-system to prevent the control loop from being blocked by any slow vision algorithms. While it isn't integrated with Pyrobot yet, it can still provide the Pyrobot system with a vision processing sub-system capable of better performance and robustness than the integrated system. Phission's phSimpleVision class is used as a container for the usual setup of the Phission system: one capture card, histogramming & blobbing and debug displays for local computers or network computers ( JPEG compressed images ). \section sec_phissiondownload Phission Download After installing as many of the optional packages from above, you should now be ready to install Phission. If you have any difficulties installing or compiling Phission, please subscribe to and/or email the phi...@li... mailing list. There are two places you can obtain Phission: \ref subsec_download_cvs or \ref subsec_releasepackage . CVS requires a couple extra initial steps and the autotools ( automake / autoconf ) development support. After these initial steps, configuring and building the source is very similar (in fact, identical) to the distributed release. \subsection subsec_download_cvs Retreive From CVS First one needs to checkout the code base from CVS. This is equivalent to downloading the code that currently resides in the CVS repository. You'll want to login to the anonymous sourceforge.net account in order to set up the CVS session. When prompted for a password after the login command, just press enter/return. <pre> <code> $ cvs -d :pserver:anonymous\@phission.cvs.sourceforge.net:/cvsroot/phission login </code> </pre> After a successful login, the Phission code base can be checked out from CVS: <pre> <code> $ cvs -z3 -d :pserver:anonymous\@phission.cvs.sourceforge.net:/cvsroot/phission checkout -d \<phissiondir\> phission </code> </pre> The <b>-d \<phissiondir\></b> parameter is a checkout command parameter and is optional. It merely specifies the name of the directory where the Phission code base is stored. Use <b>cvs âhelp checkout</b> for more checkout command options. Don't confuse the checkout command's <b>-d</b> switch with the cvs program's <b>-d</b> switch which overrides the default environmental variable for $CVSROOT (if it's defined). If you're subscribed to the CVS mailing list , saw some important fix and want to update code that was checked out a while ago: <pre> <code> $ cd phission $ make clean $ cvs -z3 update -dR </code> </pre> \subsection subsec_releasepackage Release Package Release packages are available from the Phission Files web page that is hosted on the sourceforge.net project website. Extract the packaged release tarball: <pre> <code> $ tar -xvzf phission-X.XX.XX.tar.gz </code> </pre> \section sec_building Building After getting the Phission code from either a release package or CVS, you'll need to generate the <b>Makefiles</b> and <b>configure</b> related files. This assumes that the release package isn't preconfigured (look for <b>configure</b> for your specific platform. Generating the <b>Makefiles</b> and <b>configure</b> need the latest autotools: <b>automake</b>, <b>autoconf</b>, and <b>libtool</b>. If you're getting packaged releases such as SRPMs or using Cygwin, you'll want to install the development packages for each autotool package, too. \subsection subsec_preautotooled Packages with configure and Makefiles already generated Set the current directory to the phission release, <b>configure</b> for your setup, build phission and install it: <pre> <code> <i>root\@phission-X.XX.XX</i>$ cd phission-X.XX.XX/ <i>root\@phission-X.XX.XX</i>$ ./configure --your-options-here <i>root\@phission-X.XX.XX</i>$ make <i>root\@phission-X.XX.XX</i>$ make install </code> </pre> \subsection subsec_autogen Autogen.sh : Generating configure and the Makefiles A script is supplied to automate the series of commands for generating the files. Run the following from the phission directory, i.e. not in the scripts directory: <pre> <code> $ ./scripts/autogen.sh </code> </pre> You should now be able to run <b>configure</b> and <b>make</b>, <b>make install</b> as you would an ordinary packaged release. \subsection subsec_uninstall Uninstalling If you haven't done a <b>make distclean</b> in your Phission source directory and you have up-to-date autotools, you'll also be able to uninstall Phission after you install if you need: <pre> <code> $ make uninstall </code> </pre> \subsection subsec_configure Configure script The <b>configure</b> script will allow you to disable/enable or compile with/without some feature that is available. Run with the <b>--help</b> switch to get a list of the options available to you: <pre> <code> $ ./configure --help </code> </pre> This can be useful if, for example, some optional feature isn't compiling properly. You can disable it and then re-run <b>make</b> to allow you to get some minimum of Phission built. Any problems should be emailed to the author or the phi...@li... mailing list. If you don't have root access or just want to test out Phission. You can install to your home directory by using the <b>--prefix</b> <b>configure</b> switch. Suppose you have a directory called <b>local</b> in your home directory. (Make sure that you have created the <b>local</b> directory in your home directory before running the <b>configure</b> script.) The following will set up the <b>Makefiles</b> so they will install to <b>/home/myusername/local</b>: <pre> <code> $ ./configure --prefix=/home/myusername/local </code> </pre> If you're interested in specific features, like Python support, you'll want to pay careful attention to the final report printed when configure finishes successfully. It lists the supported packages and whether the relevant Phission code will be compiled for those packages. If a capability has <b>no</b> after it, this may be the default setting or there may have been an error when the <b>configure</b> script tested for that package support. Looking at <b>config.log</b> can be useful in determining what could have potentially gone wrong if the default is <b>yes</b> or the <b>configure</b> switch was supplied to enable the package support. The following is an example printout: <pre> <code> configure: -------------------------------------------------- configure: Using Network capabilities: yes configure: Using ZLib: yes configure: Using libjpeg: yes configure: Using JRTPLIB: no configure: Using JTHREAD: no configure: Using AVCODEC: yes configure: Using OpenCV: yes configure: Using VideoForWindows: no configure: Using Video4Linux: yes configure: Using GDI: no configure: Using X11: yes configure: Using XShm: yes configure: Using Xdbe: yes configure: Using XF86DGA: yes configure: Using XVlib: yes configure: Using XF86VMode: yes configure: Using SDL: yes configure: Using FLTK: no configure: Using SWIG: yes configure: Using Python: no configure: Using Java: no configure: Why? Java option not enabled configure: Building Vision Classes: yes configure: -------------------------------------------------- </code> </pre> \section sec_rpm Building and Installing the RPM The <b>./scripts/makerpm.sh</b> script is used to automate the RPM creation process. If you are running on a Linux system, you will have to have superuser privileges so you can build in the temporary RPM source directories (<b>/usr/src/redhat/</b>). The script will run <b>scripts/autogen.sh</b> and then <b>./configure</b>. If necessary, these commands can be changed by editing the <b>./scripts/makerpm.sh</b> script. The <b>config/phission.spec</b> file is output by running <b>configure</b>. The input file <b>config/phission.spec.in</b> is the input for that .spec file and if it needs to be edited, <b>configure</b> will have to be run again. Next, the version is grepped from the .spec file and a tarball is created. The tarball is passed to rpmbuild which will output a Source RPM. The Source RPM is then passed back to rpmbuild to create the Binary RPM file output. The location of the Binary RPM will be printed towards the end of the rpmbuild process should everything execute successfully to this point. You can then install the Binary RPM using <b>rpm -iUvh \<pathtorpm\></b> . \section sec_configure64bit32bit Configuring Phission on a 64-bit machine for 32-bit Use the script <b>./scripts/32bit_config.sh</b> if you want to configure your Phission build to be a 32-bit build on a 64-bit machine. If you decide you want to build in 32-bit mode, you'll need the 32-bit libraries for the optional packages above as well as the system dependent support libraries. Otherwise, you'll get relocation errors because the 32-bit compiled output can't be linked with the 64-bit libraries. \section sec_postinstallation Post installation In order to use <b>phission-config</b> (the Phission examples depend on it) you'll need to add an export command to your <b>~/.bashrc</b>: <pre> <code> $ export PATH=/home/username/installs/:$PATH </code> </pre> This will allow <b>phission/examples/cpp/Makefile.example</b> (which is sourced from all the subdirectory Makefiles) to find <b>phission-config</b> and retreive the required compilation and linking flags/arguments. \n\n\n\n Copyright (C) 2002-2006 \n <a href="mailto:pt...@us...?subject=Phission">Philip D.S. Thoren</a> (pt...@us...) \n University Of Massachusetts at Lowell \n Laboratory for Artificial Intelligence and Robotics \n */ --- NEW FILE: RESOURCES.doxygen --- /** \page page_resources Resources The not quite sorted list of resources used for this project from start to finish. - Displaying - GTK+ & GDK : http://www.gtk.org/ - Fox Toolkit : http://www.fox-toolkit.org/ - FastLightToolKit : http://www.fltk.org/ - SDL Library : http://www.libsdl.org/ - Filters - OpenCV library : http://sourceforge.net/projects/opencvlibrary/ - Canny Edge Detection : http://www.pages.drexel.edu/~weg22/can_tut.html - http://www.pages.drexel.edu/~weg22/ - Gimp Savvyy online book : http://gimp-savvy.com/ - Greyscale Conversion Methods : http://gimp-savvy.com/BOOK/index.html?node54.html - Multi-threading and IPC - Pthreads API : http://www.opengroup.org/onlinepubs/007908799/xsh/pthread.h.html - Pthreads Programmming by Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell ISBN: 1565921151 http://www.oreilly.com/catalog/pthread/index.html - Python - Python : http://www.python.org/ - Pyro 2.2.1 : http://emergent.brynmawr.edu/~dblank/pyro/ - SWIG : http://www.swig.org/ - Related projects - VXL : http://vxl.sourceforge.net/ - MSFM & SAI : http://mfsm.sourceforge.net - http://www.gnu.org/software/autoconf/manual/ - http://www.fedora.us/docs/rpm-packaging-guidelines.html - http://www.cs.rochester.edu/u/scott/synchronization/ - http://autopackage.org/ - http://linuxdevices.com/articles/AT8047723203.html - http://www.ms.washington.edu/Docs/LSF/LSF_4.2_Manual/programmer_4.2/4-advanced7.html - http://sggoodri.home.mindspring.com/dissert/sound.htm - http://www.webservertalk.com/archive65-2004-3-161913.html - http://nsis.sourceforge.net/ - http://www.ecs.umass.edu/ece/koren/architecture/ResTable/SimpRes/ - http://www.csee.wvu.edu/~jdm/classes/cs555/notes/tech/pipectrl.html - Programming on Windows - Using the Console http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/registering_a_control_handler_function.asp - Synchronization Functions http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/synchronization_functions.asp - Process and Thread Functions http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/process_and_thread_functions.asp - Error Handling http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/error_handling.asp - Processes and Threads http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/processes_and_threads.asp - System Error Codes http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes__12000-15999_.asp - Console Reference http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/console_reference.asp - File Management Functions http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/fileiocompletionroutine.asp - POSIX Threads Programming http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html#PthreadsAPI - Bit Twiddling Hacks : http://graphics.stanford.edu/~seander/bithacks.html - Porting of Win32 API WaitFor to Solaris Platform http://developers.sun.com/solaris/articles/waitfor_api.html - NI DAQCard-700 - Products and Services - National Instruments http://sine.ni.com/apps/we/nioc.vp?lang=US&cid=5503 - http://www.libsdl.org/extras/win32/cygwin/README.txt - Table of Contents : http://gameprogrammer.com/net2/net2-0.html - AIM index : http://www.mrc-cbu.cam.ac.uk/cnbh/web2002/bodyframes/AIM.htm - Novell Documentation: Libraries for C (LibC) â write http://developer.novell.com/ndk/doc/libc/index.html?page=/ndk/doc/libc/libc_enu/data/sdk954.html - http://pegasus.rutgers.edu/~elflord/cpp/list_howto/ - Welcome to the MSDN Library http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndllpro/html/msdn_locktest.asp - Wine, WineLib and Programming Windows 95 http://fgouget.free.fr/wine/PrgWin95/index.shtml - Reliable Software Win32 Tutorial http://www.relisoft.com/win32/bitmap.html - The Code Project - WIN32 Framework for SDI applications - Win32 / SDK http://www.codeproject.com/useritems/Framework.asp - cDc paramedia http://www.cultdeadcow.com/cDc_files/cDc-0398.html - Win32 Programming â FunctionX http://www.functionx.com/win32/ - AVI example code for creating AVI files http://www.wischik.com/lu/programmer/avi_utils.html - Notifications http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_size.asp - ReaderWriters - Google Search: Reader Writer mutex http://www.google.com/search?num=100&hl=en&lr=&q=Reader+Writer+mutex&btnG=Search - http://cactus.eas.asu.edu/partha/Teaching/531.2004/Readers-Writers.htm - Reader/Writer Problem http://www.cs.sonoma.edu/~kooshesh/cs450/ReaderWriter.html - CIS 307: Readers and Writers http://www.cis.temple.edu/~ingargio/old/cis307s95/readings/readwriters.html - Sound Research - Aristotle Research Group http://www.cc.gatech.edu/aristotle/Tools/aas.html - Bio Neuromorphic Auditory Processing http://www.isr.umd.edu/~djklein/tride99/#tutorials - Anatomy of the Auditory Pathway http://www.mrc-cbu.cam.ac.uk/cnbh/web2002/bodyframes/Research/anatomy.htm - EARchives WAV File Database -- Query Results http://www.the-earchives.com/scripts/detail.asp?queryby=downloads - Binaural Hearing Papers http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/rms/www/BinauralWeb/papers.html - Other Research - UG 2001-5: Application of the Sound Localization Algorithm to the Global Localization of a Robot http://www.isr.umd.edu/TechReports/ISR/2001/UG_2001-5/UG_2001-5.phtml - Microphone Arrays for Source Location http://www.signalogic.com/micarray.shtml - http://www.symbio.jst.go.jp/SIG/ http://www.symbio.jst.go.jp/SIG/ - Selection of Recent Papers http://www.bmc.riken.go.jp/sensor/Huang/publish.html - Google Search: Irie, Robert Eiichi http://www.google.com/search?hl=en&lr=lang_en&ie=UTF-8&oe=UTF-8&safe=off&q=Irie%2C+Robert+Eiichi - http://www.cc.gatech.edu/~ebeowulf/robot/RobotAudio.html - Introduction http://www.cs.yorku.ca/~vgrlab/projects/eyesEarsDesc.html - FFT - FFTW Home Page http://www.fftw.org/ - Advanced DSP - FFT windows: Spectral leakage http://www.bores.com/courses/advanced/windows/10_leak.htm - FFT Spectrum Analyser applet: guidance notes http://www.dsptutor.freeuk.com/analyser/guidance.html#leakage - specgram http://octave.sourceforge.net/index/f/specgram.html - Octave-forge combined index http://octave.sourceforge.net/index/index.html - On Windowing for Gradient Estimation in Volume Visualization http://www.cg.tuwien.ac.at/studentwork/CESCG99/TTheussl/paper.html - Test \& Measurement World Online http://www.reed-electronics.com/tmworld/index.asp?layout=article&articleid=CA187572&rid=0&rme=0&cfd=1 - FFTW Real to Real - http://www.fftw.org/fftw3_doc/Library-Index.html#Library%20Index - http://www.fftw.org/fftw3_doc/Fortran-Examples.html#Fortran%20Examples - http://www.fftw.org/fftw3_doc/Complex-One-Dimensional-DFTs.html#Complex%20One-Dimensional%20DFTs - http://www.fftw.org/fftw3_doc/Real-data-DFT-Array-Format.html#Real-data%20DFT%20Array%20Format - http://www.fftw.org/fftw3_doc/The-1d-Real-data-DFT.html#The%201d%20Real-data%20DFT - http://www.fftw.org/fftw3_doc/Real-to-Real-Transforms.html#Real-to-Real%20Transforms - http://www.fftw.org/fftw3_doc/Real-to-Real-Transform-Kinds.html#Real-to-Real%20Transform%20Kinds - Windowing and FFTs http://members.optushome.com.au/emikulic/sound/window/ - Window functions http://www.dsptutor.freeuk.com/WindowFunctionPlot/notes.html - window.c File Reference http://www.watri.org.au/projects/aspl/doc/libdsp/window_8c.html#a3 - http://humanresources.web.cern.ch/humanresources/external/training/tech/special/DISP2003/DISP-2003_L02B_27Feb03.pdf - Sound Software/APIs - binaural software http://www.biols.susx.ac.uk/home/Michael_Akeroyd/download2.html - Sound Processing Kit http://www.music.helsinki.fi/research/spkit/documentation/SPKit.html - Octave Home Page - http://www.octave.org/ - http://octave.sourceforge.net/index/index.html - FreqTweak http://freqtweak.sourceforge.net/ - NI-DAQ Version 7.0.1 for Windows 2000/98/ME/NT/XP - HWDRIVER - Support - National Instruments http://digital.ni.com/softlib.nsf/websearch/4B0F3E5E243DBBC286256D9E006DFBA4?OpenDocument&node=132060_US - SDL_sound http://icculus.org/SDL_sound/ - WAVE File Format http://www.borg.com/~jglatt/tech/wave.htm - Microsoft WAVE soundfile format http://ccrma-www.stanford.edu/courses/422/projects/WaveFormat/ - adaptyv signal processing dsp http://www.adaptyv.com/en/links2.php?kw1=FFT - Google Search: autocorrelogram image software sound http://www.google.com/search?num=100&hl=en&lr=&ie=UTF-8&oe=UTF-8&safe=off&q=autocorrelogram+image+software+sound&btnG=Google+Search - Digital Signal Processing http://www.tapr.org/tapr/html/dspf.html - ftp://ftp.signalogic.com/application_notes/spie0896.pdf - http://www.essex.ac.uk/psychology/hearinglab/dsam/ - SoX - Sound eXchange http://sox.sourceforge.net/ - PortAudio http://www-2.cs.cmu.edu/~music/portmusic/ - PortAudio - an Open-Source Cross-Platform Audio API http://www.portaudio.com/ - Analog Devices: AD557 Product Page: Datasheets http://www.analog.com/Analog_Root/productPage/productHome/0,2121,generic%253DAD557%2526level4%253D%25252D1%2526level1%253D292%2526level2%253D%25252D1%2526level3%253D%25252D1%2526metaId%253D359%2526resourceWebLawID%253D13,00.html - Video - flipCode - Tutorial - DirectShow Tutorial III http://www.flipcode.com/tutorials/tut_dshow03.shtml - GNU tools and the DirectShow API http://home.clara.net/raoulgough/vidmodem/dshow.html - Windows Image Acquisition http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wia/wia/overviews/startpage.asp - The Code Project - Extracting bitmaps from movies using DirectShow - Audio and Video http://www.codeproject.com/audio/framegrabber.asp - The Code Project - DirectX.Capture Class Library â Multimedia http://www.codeproject.com/cs/media/directxcapture.asp?print=true - The Code Project - DirectShow.NET â Multimedia http://www.codeproject.com/cs/media/directshownet.asp - IBM PC Camera Support http://www.cameratechsupport.com/ibm/Net/software_net.asp - WDM and VFW Drivers... WTF? http://faq.arstechnica.com/link.php?i=1287 - Doom9's Forum - Capture FAQ, Update 04/08/03 http://forum.doom9.org/showthread.php?s=&threadid=32575 - Video For Windows-based Robots http://home.earthlink.net/~apendragn/vfw.htm - Video Capture on Windows http://www.gdcl.co.uk/vidcap.htm - Doom9.net - The Definitive DVD Backup Resource http://www.doom9.org/index.html?/capture/capturing.html - MediaApplicationServer http://www.mediaapplicationserver.net/indexframes.html - Inline - Using the GNU Compiler Collection (GCC) http://gcc.gnu.org/onlinedocs/gcc/Inline.html - Computer Vision Source Code http://www-2.cs.cmu.edu/~cil/txtv-source.html - Computer Vision Source Code http://www-2.cs.cmu.edu/~cil/v-source.html - Vision Software Research - Computer Vision Source Code http://www-2.cs.cmu.edu/~cil/v-source.html - CMVision http://www-2.cs.cmu.edu/~jbruce/cmvision/ - The Common Package http://gandalf-library.sourceforge.net/tutorial/report/node12.html - VXL Documentation http://paine.wiau.man.ac.uk/pub/doc_vxl/index.html - http://pages.cpsc.ucalgary.ca/~parker//chain.c - A Brief Tour of Xvision http://www.cs.jhu.edu/CIPS/xvision/ - IMLAB http://www.tecgraf.puc-rio.br/~scuri/imlab/ - IM - An Imaging Tool http://www.tecgraf.puc-rio.br/im/ - The CImg Library - C++ Template Image Processing Library http://cimg.sourceforge.net/reference/group__cimg__loops.html - Common Vision Blox http://en.commonvisionblox.de/ - Linux, Mac, Unix, Windows Components Imaging - Imaging SDK http://www.accusoft.com/imaging/imagegear/igp_about.asp - Index http://www.atnf.csiro.au/computing/software/karma/programmer-manual/node21.html#SECTION002100000000000000000 - Computer Vision Group | LaboImage http://vision.unige.ch/LaboImage/labo.html - psksvp's xperiment home page http://www.ccs.neu.edu/home/psksvp/lg.htm - Hierarchical Index http://users.tpg.com.au/rv2/ref/html/hierarchy.html - Using libavformat and libavcodec http://www.inb.uni-luebeck.de/~boehme/using_libavcodec.html - Multimedia Macros http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_capdriverdisconnect.asp - Download details: Visual Studio 6.0 Samples http://www.microsoft.com/downloads/details.aspx?FamilyId=AF0A6060-6566-408F-9F11-EA2C80B8CAA0&displaylang=en - Video for Windows (Details) http://ej.bantz.com/video/detail/ - Using Video Capture http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_creating_a_capture_window.asp - About Video Capture http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_video_capture.3a_.a_minimal_approach.asp - Open Source programs for Windows and *nix/BSD http://www.usewisdom.com/computer/windows/oss.html - Using Autopackage :: autopackage http://www.wildgardenseed.com/apkg/using.html - SourceForge.net: playerstage-users http://sourceforge.net/mailarchive/forum.php?forum_id=8201 - Player/Stage FAQ http://playerstage.sourceforge.net/faq.html#bigmess - player Player: libplayerc http://playerstage.sourceforge.net/doc/Player-1.6.2-html/player/group__player__clientlib__libplayerc.html - player Player: Client API http://playerstage.sourceforge.net/doc/Player-1.6.2-html/player/group__playerc__client.html - player Player: acts http://playerstage.sourceforge.net/doc/Player-1.6.2-html/player/group__player__driver__acts.html - player Player: blobfinder http://playerstage.sourceforge.net/doc/Player-1.6.2-html/player/group__player__interface__blobfinder.html - OpenML Overview - The Standard for Dynamic Media Authoring http://www.khronos.org/openml/ - vic http://portal.acm.org/citation.cfm?doid=217279.215315 - Scoot http://portal.acm.org/citation.cfm?doid=192593.192618 - DAVE http://portal.acm.org/citation.cfm?doid=192593.192624 - GROUPKIT http://portal.acm.org/citation.cfm?doid=143457.143460 - Results (page 2): CCS:"H.5.1" http://portal.acm.org/results.cfm?query=CCS%3A%22H%2E5%2E1%22&querydisp=CCS%3A%22H%2E5%2E1%22&start=21&slide=1&srt=score%20dsc&short=0&parser=Internet&source_parser=Internet&source_disp=&source_query=&coll=GUIDE&dl=GUIDE&CFID=42740884&CFTOKEN=68156715 - Architectural considerations for a new generation of protocols http://portal.acm.org/citation.cfm?doid=99508.99553 - Building real-time groupware with GroupKit, a groupware toolkit http://portal.acm.org/citation.cfm?id=226162&dl=GUIDE&coll=GUIDE&CFID=42740884&CFTOKEN=68156715 - A low-latency lip-synchronized videoconferencing system http://portal.acm.org/citation.cfm?id=642692&coll=GUIDE&dl=GUIDE&CFID=42740884&CFTOKEN=68156715 - Swarthmore Robotics - Software Downloads http://robotics.swarthmore.edu/downloads.shtml - http://www.palantir.swarthmore.edu/maxwell/vision/svmf01.tgz - Computer Vision Source Code http://www-2.cs.cmu.edu/afs/cs/project/cil/www/v-source.html - Alexandre R.J. Francois â Publications http://iris.usc.edu/~afrancoi/publications.html#icvs2001 - IRIS Tech Reports http://iris.usc.edu/~irislib/ - Creating a GUI with JFC/Swing http://java.sun.com/docs/books/tutorial/uiswing/ - Java Tip 16: Creating in-memory images in Java http://www.javaworld.com/javaworld/javatips/jw-javatip16.html? - Index of Research Centers and Laboratories http://mambo.ucsc.edu/psl/thant/res.html - Google Search: java System.loadLibrary site:sun.com http://www.google.com/search?num=100&hl=en&lr=&safe=off&q=java++System.loadLibrary+site%3Asun.com&btnG=Search - LTI-Lib http://ltilib.sourceforge.net/doc/html/index.shtml - RTP Project links - librtp++ http://www.dmn.tzi.org/software/librtp++/ - JRTPLIB http://research.edm.luc.ac.be/jori/jrtplib/jrtplib.html - RTP APIs - UCL Common Code Library 1.2.14 & 1.2.16 http://www-mice.cs.ucl.ac.uk/multimedia/software/common/ - JRTPLIB 3.1.0 http://research.edm.luc.ac.be/jori/jrtplib/jrtplib.html - LIVE.COM Streaming Media http://www.live.com/ - Vovida http://www.vovida.org/protocols/downloads/rtp/ - RTSP - Main Site http://www.rtsp.org/ - Implementations http://rtsp.org/2001/implementations.html - FAQ http://rtsp.org/2001/faq.html - Books - Kurose, James F. - Computer Networking a top-down approach featuring the Internet / James F. Kurose, Keith W. Ross - third edition Chapter 7 : Multimedia Networking pgs. 565-651 - Perkins, Colin - RTP: Audio and Video for the Internet http://csperkins.org/rtp-book.html - Richardson, Iain E. G. - H.264 and MPEG-4 Video Compression: Video Coding for Next Generation Multimedia http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470848375.html - Sinnreich, Henry; Johnston, Alan B. - Internet Communications Using SIP: Delivering VoIP and Multimedia Services with Session Initiation Protocol http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471413992.html - Tanenbaum, S. Andrew â Computer Networks â Fourth Edition Chapter 7.4 Multimedia - http://authors.phptr.com/tanenbaumcn4/samples/section07_04.pdf - http://authors.phptr.com/tanenbaumcn4/ - Working Groups - Audio Visual Transport http://www.ietf.org/html.charters/avt-charter.html - Multiparty Multimedia Session Control http://www.ietf.org/html.charters/mmusic-charter.html - Joint Video Team http://www.itu.int/ITU-T/studygroups/com16/jvt/ - RFCs - RTP: A Transport Protocol for Real-Time Applications http://www.ietf.org/rfc/rfc3550.txt - RTP Profile for Audio and Video Conferences with Minimal Control http://www.ietf.org/rfc/rfc3551.txt - RTP Testing Strategies http://www.ietf.org/rfc/rfc3158.txt - RTP Payload Format for JPEG-compressed Video http://www.ietf.org/rfc/rfc2435.txt - RTP Payload Format for MPEG1/MPEG2 Video http://www.ietf.org/rfc/rfc2250.txt - RTP Payload Format for MPEG-4 Audio/Visual Streams http://www.ietf.org/rfc/rfc3016.txt - RTP Payload Format for Transport of MPEG-4 Elementary Streams http://www.ietf.org/rfc/rfc3640.txt - RTP Payload Format for H.264 Video http://www.ietf.org/rfc/rfc3984.txt - Real Time Streaming Protocol (RTSP) http://www.ietf.org/rfc/rfc2326.txt - SDP: Session Description Protocol http://www.ietf.org/rfc/rfc2327.txt - Session Initiation Protocol (SIP)-Specific Event Notification http://www.ietf.org/rfc/rfc3265.txt - Real Time Control Protocol (RTCP) attribute in (SDP) http://www.ietf.org/rfc/rfc3605.txt - JPEG/MPEG documents - Independent JPEG Group, and other sites - http://www.ijg.org/ - http://www.faqs.org/faqs/jpeg-faq/ - http://www.jpeg.org/ - http://en.wikipedia.org/wiki/JPEG - MPEG - MPEG-1 Short description http://www.chiariglione.org/mpeg/standards/mpeg-1/mpeg-1.htm - MPEG-2 Short description http://www.chiariglione.org/mpeg/standards/mpeg-2/mpeg-2.htm - Overview of the MPEG-4 Standard http://www.chiariglione.org/mpeg/standards/mpeg-4/mpeg-4.htm - MPEG Working Documents http://www.chiariglione.org/mpeg/working_documents.htm - MPEG-4 Systems Overview http://www.chiariglione.org/mpeg/events&tutorials/mpeg-4_si/3-systems_overview_paper/3-systems_overview_paper.htm - MPEG-4: Why, What, How and When? http://www.chiariglione.org/mpeg/events&tutorials/mpeg-4_si/2-overview_paper/2-overview_paper.htm - MPEG Industry Forum http://www.m4if.org/ - MPEG FAQ http://www.faqs.org/faqs/mpeg-faq/ - MPEG on Wikipedia http://en.wikipedia.org/wiki/MPEG - MPEG-4 on Wikipedia http://en.wikipedia.org/wiki/MPEG-4 - MPEG http://www.mpeg.org/MPEG/starting-points.html - A&E's Technical Guides to All Things Audio and Video http://www.animemusicvideos.org/guides/avtech/ - Advanced Video Compression FAQ http://www.animemusicvideos.org/guides/avtech/video4.htm - Overview of the H.264 / AVC Coding Standard http://www.cs.ubc.ca/~krasic/cpsc538a-2005/papers/h264avc-overview.pdf - Encoding APIs - libjpeg http://freshmeat.net/projects/libjpeg/ - libfame (Fast Assembly MPEG Encoder) http://fame.sourceforge.net/ - FFmpeg http://ffmpeg.sourceforge.net/index.php - mpeg4ip http://mpeg4ip.net/ - VideoLan & x264 http://www.videolan.org/x264.html - Xvid http://www.xvid.org/ */ --- NEW FILE: MAINPAGE.doxygen --- /** \mainpage Phission :: Concurrent Vision Processing System \section sec_disclaimer Disclaimer This site is a work in progress. It's hoped that getting this information up and online even in it's unfinished state will speed understanding and use of Phission. Let me know of any problems ( \ref subsec_authors ). \section sec_mainpage_toc Table of Contents - \ref sec_whatis - \ref sec_contacts - \ref subsec_authors - \ref subsec_mailing - \ref sec_documentation - \ref sec_theproject - \ref sec_main_code_groups - \ref sec_about - \ref sec_phissionenvs - \ref sec_concurrent - \ref sec_img_video_and_docs - \subpage page_build_and_install \n This page contains the build and installation instructions for Phission and a number of Phission supported/required packages. - \subpage page_resources \n This page contains a large amount of external links to projects, documentation, research, etc. that were used during various stages of Phission project development. \section sec_whatis What is Phission? Phission is a toolkit being developed to facilitate concurrent vision processing within a signal process scope. Phission is designed to be as flexible as possible for designing and implementing basic vision processing applications. It is meant for mobile robotic applications but is not limited to that application. \section sec_contacts Contacts \subsection subsec_authors Authors Philip D.S. Thoren ( pt...@us... ) \subsection subsec_mailing Mailing list support - phi...@li... \n To monitor Phission changes in the Control Version System (cvs) you can subscribe to the 'phission-cvs' mailing list: \n http://lists.sourceforge.net/lists/listinfo/phission-cvs \n - phi...@li... \n For general help or questions about Phission you can subscribe and send email to the phission-help mailing list: \n http://lists.sourceforge.net/lists/listinfo/phission-help \n \section sec_documentation Documentation Since it could be very time consuming to maintaining all the necessary documents for the Phission project, all Phission web pages and documentation are generated using DoxyGen. This way I can spend my time where it counts: documenting and coding! All the API documentation is pulled out of the project header and source files and is linked in the index bar at the top of this page. \section sec_theproject The Project Phission is a multi-threaded vision processing subsystem written in C/C++. It can be used in Java and Python through loadable modules. It was originally developed on a Linux platform but can be used in the Cygwin environment using native Win32 API calls with VideoForWindows beta support. Phission is meant for a general computing platforms (personal computers, laptops) with any commodity video capture hardware available. The project has been actively developed for the past 3yrs+ and is being used in the classroom to teach vision processing. The system has become very stable and several example projects using Phission are available. There is also an examples/ sub-directory within the Phission code base. Phission was a project for a Robotics 91.549 class taught by Holly Yanco at UMass Lowell during the Fall semester of 2003. The problem Phission solved is the need for a fast vision processing architecture for use on real robots. The vision processing software being used, before Phission, was slow and employed a poor system architecture. The Phission project replaces that previous vision system by using an architecture suited for a real-time environment. Phission uses parallel processing and signaling mechanisms to allow pipelining & processing of live sources and designing a simple data flow type network. Phission provides three main objects common to data flow networks: -# Source/Capture -# Pipeline/Processing -# Sink/Display \section sec_main_code_groups Main Code Groups - Capture \n C++ Class for controlling a capture device and capturing data from said device. - Display \n C++ Class utility for displaying of images, filtered or not filtered. - Filters and the Pipeline \n C++ Classes inherited from the phFilter base class that perform some algorithm with an image as input and have either an image or meta-data as output. The filters are added to the phPipeline to allow for a separate parallel processing thread that will run the filters serially within the pipeline. - Video Filters \n Some filters were originally written by those involved in the Pyro (Python for Robots) project and later heavily rewritten for the Phission project to get better performance and make them work correctly. Some of the filters were written for class projects and then later integrated into Phission. The video filter code isn't meant to be completely optimized as there are other projects (OpenCV) that are responsible for that. Phission integrated video filters are merely there to provide example. However, there was a great deal of effort expended to optimize the code for very reasonable performance. \n Some filters uses the OpenCV API and library. The filters are implemented within a derived phFilter class by making calls to the OpenCV library. These filters are prefixed with "cv_". Currently, cv_canny_Filter is the only real OpenCV filter in Phission. - Test/Example Scripts and Code \n Used to demonstrate and provide a means to quickly apply the Phission system. \section sec_about About the project Phission is a toolkit being developed to enable development of concurrent/real-time vision/continuous media processing. It is meant for creating processing sub-systems in software within the process scope. It attempts to provide the best achievable performance for user space programs using threads with a block frequently and block often policy using Phission synchronization classes for portability. Phission was developed for use on robots but with the ability to run on any Linux or Windows system for research and development. Supported languages include C/C++, Python and work is proceding on Java support. Phission uses parallel processing & signaling mechanisms to allow pipelining & processing of live sources. Phission is meant to run as a sub-system to let more important perception & control to execute without being blocked by vision processing. It was developed specifically for this purpose because the previous vision system was inadequate and slow. Phission began as a semester project to fix the previous system's inadequacies and allow a concurrent threaded model but developed into a thesis research project. In addition, other research being done within the University of Massachusetts at Lowell Computer Science Robotics Lab showed a need for a system like Phission. The ideas and structures put into Phission were developed from some initial research into sound localization. A series of threads were used with specific purposes of capturing, processing and storing sound data. During a robotics course with Dr. Holly Yanco, a look into how the vision system worked showed it could be much better with as little as a month of design and coding. The design of the software that was used to capture, process and store the sound data was a rather generic approach so these ideas were applied to the initial stages of the Phission project. In efforts to assure I wasn't duplicating other's work research was put into finding a suitable replacement for Phission that allowed the same process scope threaded functionality for vision processing a continuous media stream. In addition, a requisite of Python language support, open source licensing and code availability were essential. Most toolkits and resources that came up during this research were not meant for robotic applications but rather for other purposes such as video DJing, streaming media, multimedia, etc. Of these toolkits, there were a few with similar architectures and even fewer limited to process scope (ie not using System V or Posix shared memory for data sharing). However, most the research for these systems is older than 5 years and the support and the code hasn't been actively maintained for just as long. \section sec_phissionenvs Phission Supported Environments The Python and Java languages are supported using the SWIG project to wrap the C/C++ code into loadable modules and interfaces. Each environment must be installed on the target system before Phission is configured and compiled. The API in Python and Java are very similar, with some language and wrapper specific differences. The module support is installed into the Phission installation directory, $prefix/phission/python and $prefix/phission/java, where $prefix will likely be either '/usr' or '/usr/local'. The Python and Java specific APIs aren't included in this document yet and so one must read the examples or the language specific files that are installed in the afore mentioned directories. Subscribing to and emailing the phission-help mailing list with questions could prove useful for development in these languages. If the SWIG generated code works correctly, one should be able to overload any of the Phission classes in Python and Java. This hasn't been tested as of yet, but examples will be provided when time permits. \section sec_concurrent Why Concurrent and not Real-time? Concurrent better reflects the purpose and design of the Phission system. The real-time performance is more of a very, very soft real-time system. I felt a real-time classification might misrepresent the system \& code in favor of making Phission sound super fast when it's only very fast. The concurrency still makes the best use of available computing resources as it can and changing from a Real-time label to Concurrent doesn't change how powerful Phission still remains. \section sec_img_video_and_docs Images, Videos And External Documents Video links may need RealPlayer but will work with Avcodec/Mplayer. (I need to re-encode these.) - Auto/Neighbor Pixel Segmentation of HSV and RGB color space: <a href="http://phission.org/autoblob.mp2">MPEG2 Video</a> - Car Tracking - Mike Baker's <a href="http://www.cs.uml.edu/~holly/papers/baker-yanco-icra04.pdf">ICRA04 Submitted PDF</a> - Mike Baker's <a href="http://www.cs.uml.edu/~holly/papers/baker-yanco-icorr05.pdf">ICORR05 Submitted PDF</a> - <a href="http://phission.org/car_track.avi">Video</a> 8MB - AAAI 2005 Scavenger Hunt - Trail following - <a href="http://www.flickr.com/photos/aaai-05/25201712/">AAAI Img 1</a> - <a href="http://www.flickr.com/photos/aaai-05/25201711/">AAAI Img 2</a> - <a href="http://phission.org/follow_trail.avi">Lab Follow Trail Video</a> 4.5MB - <a href="http://phission.org/follow_trail_aaai.avi">AAAI Follow Trail Video</a> 13.7MB - Soccer ball (todo) - Colored objects (todo) - FLIR Overlayed on live video: - <a href="http://phission.org/flir_overlay1.avi">Grey Scale w/Single alpha value</a> 2.4MB - <a href="http://phission.org/flir_overlay_red.avi">Red w/log scaled intensity as the alpha value</a> 4.2MB - Pyro/Pyrobot vision processing (todo) \n\n\n\n Copyright (C) 2002-2006 \n <a href="mailto:pt...@us...?subject=Phission">Philip D.S. Thoren</a> (pt...@us...) \n University Of Massachusetts at Lowell \n Laboratory for Artificial Intelligence and Robotics \n \htmlonly <a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=98569&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"></a> \endhtmlonly */ Index: Doxyfile =================================================================== RCS file: /cvsroot/phission/phission/docs/doxygen/Doxyfile,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Doxyfile 24 Jul 2006 21:43:48 -0000 1.6 --- Doxyfile 26 Jul 2006 07:13:24 -0000 1.7 *************** *** 464,467 **** --- 464,469 ---- docs/doxygen/GROUPS.doxygen \ docs/doxygen/MAINPAGE.doxygen \ + docs/doxygen/RESOURCES.doxygen \ + docs/doxygen/INSTALL.doxygen \ TODO *************** *** 1098,1102 **** # have no effect if this option is set to NO (the default) ! HAVE_DOT = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen --- 1100,1104 ---- # have no effect if this option is set to NO (the default) ! HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen |