CVNet - psychophysics software review

CVNet (cvnet@skivs.ski.org)
Wed, 1 Feb 95 08:31:58 PST

Date: Wed, 1 Feb 95 11:25:43 +0100
From: hans@groucho.imp.med.uni-muenchen.de (Hans Strasburger)
To: cvnet@skivs.ski.org
Subject: Overview: Software for Psychophysics

Subject: Software for Psychophysics

Dear fellow CV netters,

last summer I had sent out an inquiry on Life-eye to find out how
we could make practical use of our Silicon Graphics workstations
to do psychophysical experiments. I had expected to find out about
general purpose psychophysics libraries for Unix but is seems
there aren't any. On the other hand, I got a lot of useful
information on the more general topic of software for psychophysics,
regardless of platform and be it library or application.

For planning how we go on in any own developments, this has been
very useful for us, so I expect it is useful for others, too.
And, there is probably much *more* out there. The reason for this
post is
- to spread this information and
- to make the survey more complete.

The emphasis is on public domain material.

Please direct all follow-up to the Life-eye discussion list or send
email to me. I will summarize what I get and post that.

~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~
Hans Strasburger | hans@groucho.imp.med.uni-muenchen.de
Institut fuer Medizinische Psychologie | Tel: (+49)(89) 5996-217
Goethestr. 31 | Fax: -615
D-80336 Muenchen, Germany | priv: (+49)(89) 48 59 19
~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~

---------------------------------
SOFTWARE FOR VISUAL PSYCHOPHYSICS
---------------------------------

-------------
(A) LIBRARIES
-------------

>From what I have heard, there does not seem to be any publicly available
documented library for _general_ psychophysics on Unix machines, or, more
specifically, for SGI. Please contradict if I am wrong. Currently, I am
aware of three public domain libraries and one commercial one for PP:

1) The most general one is probably Denis Pelli's (Syracuse Univ.) Video
Toolbox for the Mac. It is a collection of 200 subroutines written in Think
C. Things which are not hardware specific, like the staircase algorithm,
are in standard C and can be used on other machines. It is available by
anonymous ftp from
sumex-aim.stanford.edu as
info-mac/Development/SourceCode/video-toolbox-94-01-12-c.hqx.
or, if you cannot get through (like most anybody):
ftp://amug.org:pub/ftp1/info-mac/Development/SourceCode/
The current version of the VideoToolbox is 94-06-23.
If you want to get on the update list, write to
denis_pelli@isr.syr.edu

2) For colour psychophysics, there is Hans Irtel's (formerly Regensburg, now
Mannheim, fp19@rummelplatz.uni-mannheim.de) library. It is written in C and
runs on PCs under MsDos and on Unix machines under X-Windows. The SGI version
has been adapted by Karl Gegenfurtner (karl@tomato.mpik-tueb.mpg.de) (Tuebin-
gen). Some might know Irtel's demonstration program CVD (see below) which
has been written with this library. The library, documentation, and demos are
avaliable by anonymous ftp from
rpss3.psychologie.uni-regensburg.de
in the directory pub/pxl; the demo, for example, is cvd.zip

3a) For the more specific purpose of presentation strategy, there is Lew
Harvey's (Boulder, CO) library ML-TEST which implements a maximum likel-
ihood staircase procedure. It is avaliable in Fortran and C and should be
mostly machine independent. There is a good treatment in Harvey (1986),
Behav. Res. Meth. Instr. Comp. 18, 623-632. Lew's documentation is espe-
cially thorough and helpful.
Write to lharvey@clipr.colorado.edu
(It's probably also available by anonymous ftp).

3b) A similar set of adaptive procedures in in Pelli's library.

3c) Bernhard Treutwein has a package for adaptive staircasing based on
Bayesian statistics which has some refinements over the maximum likelihood
approach. The package is written in Modula but if requested can also be
provided machine translated to C. Write to
bernhard@tango.imp.med.uni-muenchen.de

4) From a previous inquiry here on the net, there is the quote of a commer-
cial library for the Mac. Quote from there: "Shell&Macglib was developed to
assist C programming on Macintosh, in purpose of presenting graphic stimu-
lus on CRT displays to run psychophysical experiments." You can get the
libraries from Micro M.L. Inc.
4875 Frontenac, Saint-Hyacinthe, Quebec, Canada J2S 2E3,
Telephone: 514 774-2604, Fax: 514 771-4857

5) For a different purpose, but closely related to psychophysical inter-
ests, are libraries for image processing. Of them, the IPRS system is
particularly interesting because it has been developed by people who also
work in psychophysics. IPRS stands for "Image processing and recognition
system"; the primary responsible is Terry Caelli in Australia but quite a
number of people have contributed. It is a collection of 500+ routines
which obviously cover a wide range. It is written in C and runs on a range
of platforms including Suns, SGIs, (under X-Windows) and PCs (under Linux).
There comes a 450 page user manual with it, written in LaTeX. Although the
system is user friendly once you have it up and running, be warned that the
installation is non-trivial. It is public domain and can be obtained by
anonymous ftp from

ftp@marsh.cs.curtin.edu.au under /pub/iprs

email: tmc@cs.curtin.edu.au (Terry Caelli, previously Melbourne, now Perth)
People at the Institute for Med. Psychology (Munich) who have contributed are
Christoph Zetzsche (chris@geco.imp.med.uni-muenchen.de)
Erhardt Barth (erhardt@geco.imp.med.uni-muenchen.de) and
Gerhard Krieger (krieger@geco.imp.med.uni-muenchen.de).

6) Another image processing package written by visual psychophysicists is
HIPS. It was originally developed at New York University and is now
commercial "but relatively inexpensive for academics" ($800). It runs under
Unix on a range of platforms. It contains around 200 image processing routines
and can also handle movies. Contact
Michael Landy of SharpImage Software at landy@nyu.edu.

7) Beau Watson ( beau@vision.arc.nasa.gov) has written a Mathematica front
end for doing psychophysical experiments which drives a Pixar back end.
(Pointed out by Denis Pelli). It has been used by Josh Solomon
(joshua_solomon@qmgate.arc.nasa.gov),

8) Dario Ringach (Center for Neural Science, New York Univ.) wrote that he
has been using the SGI for psychophysics and is writing code to do phy-
siology.

----------------
(B) APPLICATIONS
----------------

The Freiburg Visual Acuity Test (Freiburger Visustest) is a "shrink-wrap"
application for the Macintosh developed by Michael Bach in Freiburg. Its
basic purpose is to measure Landolt acuity but it has been extended to
include contrast sensitivity to Landolt-Cs. It uses some tricky programming
to overcome pixel and grey-value resolution limits and thus runs on any
standard Mac without requiring hardware modifications.
It is available without cost.

email: michael.bach@sun1.ruf.uni-freiburg.de
Tel. (x49-761) 270-4060

Hans Irtel has developed a PC program called CVD for demonstrating colour
illusions. It is especially useful for didactic purposes. For availability
see the section on libraries above.

Ronald Huebner, Univ. of Braunschweig, has recently developed a similar
program, also for the PC, which allows more user interaction and can thus
serve as a starting point for experiments.
It is available by anonymous ftp from
ftp.psych.nat.tu-bs.de
in the directory
\pub\out\viat.zip

Both these programs are *VERY COLOURFUL!*

Scott Raney (tel. 303-447-3936) wrote:
"I've developed some simple applications for measuring memory for orienta-
tion on RS/6000 and Sun workstations. The stimuli are gabor functions, and
they could easily be adapted to measure contrast sensitivity rather than
orientation thresholds. The code would be easily portable to the SGI. - It
isn't nearly as nice as the Pelli toolkit, but then, an SGI will generate
gratings about an order of magnitude faster than a Mac, so it may be worth
it. Lew Harvey (lharvey@clipr.colorado.edu) helped with the design and
contributed his maximum likelihood library to the project."

--------
APPENDIX
Short descriptions of libraries, taken from the documentation
-------------------------------------------------------------

Pelli's Video Toolsbox:
=======================

VIDEO TOOLBOX--New version for THINK C 6
BACKGROUND: The VideoToolbox is a collection of two hundred C
subroutines and several demo and utility programs that I and others have
written to do visual psychophysics with Macintosh computers. It's FREE and
may not be sold without permission. It should be useful to anyone who wants
to present accurately specified visual stimuli or use the Mac for psychome-
tric experiments. The text file "Video synch" discusses all the ways of
synchronizing programs to video displays and the many pitfalls to avoid.
The TimeVideo application checks out the timing of all video devices in
anticipation of their use in critical real-time applications, e.g. movies
or lookup table animation. Low-level routines control video timing and
lookup tables, display real-time movies, and implement the luminance-
control algorithms suggested by Pelli and Zhang (1991). In particular,
GetPixelsQuickly and SetPixelsQuickly peek and poke pixels in bitmaps and
pixmaps, CopyBitsQuickly copies bit/pixmaps to the screen, and SetEntries-
Quickly and GDSetEntries load the screen's color lookup table, all without
any of QuickDraw's color translations. High-level routines help analyze
psychophysical experiments (e.g. graphing or maximum-likelihood fitting of
psychometric data). Assign.c is a runtime C interpreter for C assignment
statements, which is useful for controlling experiments and sharing cali-
bration data. This collection has been continually updated since 1991. Many
colleagues have indicated that they are using the software in their labs.
Documentation is in the source files themselves. Many of the routines are
Mac-specific, but some very useful routines, e.g. the luminance-control,
statistics, maximum-likelihood fitting algorithms, and the runtime inter-
preter are written in Standard C and will work on any computer.
NEW: The new version is compatible with THINK C 6.01, and incor-
porates many additions and enhancements, all documented in a "Changes"
file. Use ftp to download
"info-mac/Development/SourceCode/video-toolbox-94-01-12-c.hqx" from
sumex-aim.stanford.edu [36.44.0.6]. Log in as "anonymous"; any password
will do. To get future versions automatically, just send me your email
address. Each time I post a new version of the VideoToolbox to the Info-Mac
Archives, I'll email a copy (or just notification if you prefer) to everyo-
ne on the subscription list. Denis Pelli, Institute for Sensory Research,
Syracuse University, Syracuse, NY 13244-5290, USA, denis_pelli@isr.syr.edu

Color Vision Demonstrations
===========================
Hans Irtel, University Regensburg

Running CVD requires:
o An IBM PC or compatible
o MS-DOS 3.2 or later
o Mouse with driver installed
o VGA color graphics adapter
o VGA analog color monitor
No special setup is necessary for this level of installation.
These options are available:
-b Show a monitor test image for adjusting the
brightness and contrast settings.
...
Installation Level 2
The program CVD is based on PXL, the author's library for programming
psychological experiments. This library provides a second level of
installation and system tuning for any program that is written with it.
The
previously described first level is sufficient for using CVD in classroom
demonstrations. Using CVD as a research tool may require a more precise
calibration. ...

ML-TEST SUBROUTINE PACKAGE
==========================
Lewis O. Harvey, Jr.

The ML-TEST procedure is a maximum-likelihood, function-constrained,
adaptive method for deciding what stimulus to present to a
subject on the next psychophysical trial and for estimating
the alpha of the psychometric function with fixed values of
beta and gamma that best describes a subject's performance on
the psychophysical trials. after every trial both the best
estimate of threshold alpha and the best stimulus value to
use on the next trial are calculated...

mltlib.for --> the fortran source code of the subroutines.
sim1.for ----> finds csf using test and tmax (max likelihood)
sim2.for ----> finds csf using tgss (gaussian quadrature)
sim3.for ----> generates a complete psychometric function
mltfit.for --> fits psychometric functions to data
mltcsf.dat --> contrast sensitivity data used by sim1 & sim2
mltfit.dat --> psychometric function data used by mltfit

HIPS
====

HIPS is a software package for image processing that
runs under the UNIX operating system. HIPS is modular and
flexible, it provides automatic documentation of its
actions, and is almost entirely independent of special
equipment. It handles sequences of images (movies) in pre-
cisely the same manner as single frames. Programs have been
developed for simple image transformations, filtering, con-
volution, Fourier and other transform processing, edge
detection and line drawing manipulation, digital image
compression and transmission methods, noise generation, and
image statistics computation. 200 such image transformation
programs have been developed. As a result, almost any image
processing task can be performed quickly and conveniently.
Additionally, HIPS allows users to easily integrate their
own custom routines. New users become effective using HIPS
on their first day.
HIPS features images that are self-documenting. Each
image stored in the system contains a history of the
transformations that have been applied to that image. HIPS
includes a small set of subroutines which primarily deals
with a standardized image sequence header, and a large
library of image transformation tools in the form of UNIX
``filters''.
Pricing: The HIPS system, including libraries, all
source, and on-line documentation, is available for just
$800 to academic users.

For information and to order HIPS, contact:

Michael Landy (212) 998-7857
SharpImage Software ...!cmcl2!xp!msl
P.O. Box 373 landy@nyu.edu
Prince Street Station
New York, NY 10012-0007

IPRS Image Processing and Recognition System
============================================

Introduction
------------
IPRS is an Image and Pattern Recognition System library, intended for use
by researchers and students in machine vision, pattern recognition, image
processing and machine learning.
IPRS comes in two basic forms; as a library of C functions, and as a large
set of Unix application programs. The Unix application programs are des-
igned to mimic the C library functions as much as is practically possible.
In addition, there are a number of other application programs for image
displaying, editing, printing and so on.

IPRS includes functions for the following classes of operations:
Low level image processing, filtering, scaling, thresholding,
histogram equalisation, edge detection and so on.
Image compression, including linear and non-linear predictive coding,
causal and non-causal filtering, curvature and reconstruction from
curvature, and pyramidal structures.
Computation of Shape from Shading, Shape from Focus and Shape from
Multiple Views (Generalised Stereo).
Segmentation, including hierachical and multiscale segmentation.
Feature extraction from arbitrary dimensionality data.
Clustering and automatic rule generation in arbitrary dimensional
feature spaces, including clustering and sub-clustering, and
hierachical rule structures.
Graph matching, rule graph matching, EBS and other rule evaluation
domains.
Neural Networks and other learning paradigms.

System manual entries are available for all C functions and application
programs. This manual is intended both as a reference and a tutorial. There
are code examples, technical references, and discussions on various techni-
ques and algorithms.

The people who should be interested in the IPRS library are researchers and
students in the following areas:

Image processing, including vision, radar, sonar, medical imaging and
structural imaging.
Pattern recognition.
Object recognition.
Image and Pattern segmentation.
Robot vision.
Time series analysis.
Geographic Information Systems.
Image and Pattern representation.
Machine learning and automatic rule generation as it applies to
machine vision.

Using IPRS
----------

At the lowest level, IPRS consists of machine independant C functions which
can be called as required from user programs. There is a single include
file, iprs.h, and a single IPRS library which needs to be linked with.
Fully controlable debugging and tracing is available at the library level.
There are a large number of small to medium application programs which
process images and data structures to some desired result. These can be
piped and redirected, or placed in a Unix shell script giving very fast
prototyping of complex operations. There are also a number of larger appli-
cation programs which serve to illustrate how to develop complete object
recognition and pattern classification systems under the IPRS framework.
Finally, there are a number of machine dependant applications and function
libraries for displaying images and complex data structures, and developing
graphical user interfaces.

About IPRS
----------

The IPRS library was initiated by Professor Terry Caelli at the University
of Melbourne in 1991 to facilitate the easy transfer of software between
research groups involved in machine vision. Such transfer of knowledge will
significantly ease the task of comparing techniques and results developed
at the different machine vision research groups around the world.

The fundamental design philosophy has been one of simplicity to avoid long
learning cycles and restrictive coding problems at a later date. As such,
there are some \IPRS functions and data structures which may appear inef-
ficient in some applications. However, this simplicity gives rise to faster
implimentation and shorter learning cycles.

The \IPRS library is developed with free distribution rights in mind, and
we ask all participating research groups to become involved in the develop-
ment of \IPRS as a common platform for machine vision research.

The following is a list of all the contributors to \IPRS:

Erhardt Barth - erhardt@geco.imp.med.uni-muenchen.de
James Cooper - jc@vis.citri.edu.au
Craig Dillon - cdillon@cs.mu.oz.au
Ashley Dreier - ajd@vis.citri.edu.au
Jonathan Gifford - gifford@vis.citri.edu.au
Gerhard Krieger - krieger@geco.imp.med.uni-muenchen.de
Mark Ollila - molly@vis.citri.edu.au
David Squire - dms@vis.citri.edu.au
Tom Wild - wild@vis.citri.edu.au
John Krivitsky - jk@vis.citri.edu.au
Christoph Zetzsche - chris@geco.imp.med.uni-muenchen.de

-----------------------------------------------------------------------------
End of review
-----------------------------------------------------------------------------

~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~
Hans Strasburger | hans@groucho.imp.med.uni-muenchen.de
Institut fuer Medizinische Psychologie | Tel: (+49)(89) 5996-217
Goethestr. 31 | Fax: -615
D-80336 Muenchen, Germany | priv: (+49)(89) 48 59 19
~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~~--~