Free
Methods  |   October 2012
The Open Perimetry Interface: An enabling tool for clinical visual psychophysics
Author Affiliations
Journal of Vision October 2012, Vol.12, 22. doi:10.1167/12.11.22
  • Views
  • PDF
  • Share
  • Tools
    • Alerts
      ×
      This feature is available to Subscribers Only
      Sign In or Create an Account ×
    • Get Citation

      Andrew Turpin, Paul H. Artes, Allison M. McKendrick; The Open Perimetry Interface: An enabling tool for clinical visual psychophysics. Journal of Vision 2012;12(11):22. doi: 10.1167/12.11.22.

      Download citation file:


      © 2016 Association for Research in Vision and Ophthalmology.

      ×
  • Supplements
Abstract
Abstract
Abstract:

Abstract  Perimeters are commercially available instruments for measuring various attributes of the visual field in a clinical setting. They have several advantages over traditional lab-based systems for conducting vision experiments, including built-in gaze tracking and calibration, polished appearance, and attributes to increase participant comfort. Prior to this work, there was no standard to control such instruments, making it difficult and time consuming to use them for novel psychophysical experiments. This paper introduces the Open Perimetry Interface (OPI), a standard set of functions that can be used to control perimeters. Currently the standard is partially implemented in the open-source programming language R on two commercially available instruments: the Octopus 900 (a projection-based bowl perimeter produced by Haag-Streit, Switzerland) and the Heidelberg Edge Perimeter (a CRT-based system produced by Heidelberg Engineering, Germany), allowing these instruments to be used as a platform for psychophysical experimentation.

Introduction
Laboratory-based psychophysics has a long history of free, open-source software tools to enable experiments (for example, see Brainard, 1997; Peirce, 2007; Pelli, 1997; and others in Hans Strasburger's compiled list [Strasburger, 2012]). Combined with the low cost of computer hardware, these tools enable behavioral experiments to be easily constructed. However, it is often difficult to translate such experiments into a clinical setting. Some experiments rely on replicating clinical conditions as closely as possible, and so benefit from using actual clinical instruments. Often laboratory equipment is not readily portable, and so moving the equipment into a clinical setting is difficult. Finally, participants are often members of the general public, so their comfort and the appearance of the instrument and testing environment may be important to recruitment and retention. 
Consider visual field examinations, for example, which are key diagnostic and monitoring tools for disorders of the visual pathway used in the clinic. To date, nearly all reported experiments with novel stimuli or test algorithms have been performed on custom-built laboratory equipment. The barriers to using commercial instruments in novel, nontrivial experiments for visual functional assessment have been considerable. 
Using a perimeter, as these commercial instruments are known, for conducting psychophysical tests has several advantages. Depending on the instrument, the following may be possible: 
  •  
    Presentation of high luminance stimuli (upwards of 3000 cd/m2)
  •  
    Presentation of stimuli well into the peripheral visual field (up to ±90° from central fixation)
  •  
    Pupil and fixation monitoring with built-in gaze tracking
  •  
    Built-in calibration
  •  
    Collection of accurate response times
Employing standard, mass produced instruments also facilitates standardization of test equipment across multiple sites, assisting collaborations and data collection. Apart from useful hardware, perimeters are designed to be used in professional medical clinics, and so are ergonomic and cosmetically appealing. 
The remainder of this paper describes a standard we have developed that can be used to control perimeters, the Open Perimetry Interface (OPI), which is part of the Open Perimetry Initiative (OPI, 2012). We describe the interface, the platforms on which it has been implemented, and give a small example of its use. 
Methods
The main goal of the development of the OPI was to remove barriers that were preventing researchers from using commercial perimetric instruments for scientific experiments. These barriers include cost, knowledge, and availability. As such, the OPI is designed according to the following guiding principles. 
Implementations of the OPI should be open source and free for all to use. In an ideal world, implementations of the OPI should be readily and freely available; however, there are possible legal ramifications if the OPI is misused for clinical rather than scientific objectives. As such, the model we have adopted is that manufacturers remain gatekeepers of specific software libraries that are required for the OPI to run on their instrument. OPI code that makes use of these libraries is all open source under the GNU General Public License (GPL, 2012). 
Every attempt will be made to support the OPI in the open source tradition with an active web site that includes FAQs, forums and an active user community (OPI, 2012). 
The OPI should be comprehensible by vision scientists. As vision scientists will most likely be the end users of OPI implementations, we have endeavored to hide many of the engineering and computing decisions that must take place in order to control perimeters. The OPI is a simple, and hopefully intuitive, set of functions that should be accessible to a wide range of users. 
The OPI should allow all programming of current and proposed perimetric techniques, and allow incorporation of new developments. Naturally it is difficult to foresee how perimeters may be used for experimentation in the future. To allow for future developments, the OPI is small and low-level, specifying a minimum set of functions for stimulus production and response gathering. Open source libraries can easily be built on top of the OPI and shared publicly. 
Code that uses the OPI should be easily transferable between different platforms. Current practice in perimetric research is to simulate methods before implementing them in instruments for clinical testing (Bengtsson, Olsson, Heijl, & Rootzen, 1997; Glass, Schaumberger, & Lachenmayr, 1995; King-Smith, Grigsby, Vingrys, Benes, & Supowit, 1994; Turpin, McKendrick, Johnson, & Vingrys, 2002]. Ideally, the simulation code can be written using the OPI, and then the exact code transferred to hardware with minimal change to prevent recoding errors. Furthermore, the code should run on any platform that implements the OPI with minimal changes. 
Results
Currently the OPI is specified in R, an open source language that is rapidly becoming a lingua franca in scientific research (R, 2012), but can be ported to any language supporting functions such as Matlab, C, Java, Python, and so on. The specification consists of the following five functions: 
  • opiInitialize(…)  
    Get the perimeter ready to receive further commands.
  • opiQueryDevice(…)  
    Get information about the perimeter.
  • opiSetBackground(…)  
     Set the background color, luminance, and so on, of the perimeter.
  • opiPresent(…)  
    Present a stimulus and return response information.
  • opiClose(…)  
    Tell the perimeter it is not needed for OPI anymore.
The main workhorse, opiPresent, can take three different stimulus types: opiStaticStimulus, which allows for stimuli that have only a trivial on/off temporal component (for example, do not flicker); opiTemporalStimulus, which allows for cycling through a lookup table of images at a given temporal frequency; and opiKineticStimulus, which allows specification of paths and speeds for kinetic stimuli. It returns a list of information including seen/not-seen if the response button is pressed and the latency of the response. Other, instrument specific data, such as gaze information, can also be returned. 
Note that the OPI standard relies on the instrument itself for correctness of stimulus attributes such as target location, size, luminance, and so on. It is up to the manufacturers to determine that what the OPI specifies is what is actually displayed. 
Current implementations
At the time of writing, two manufacturers have committed to implementing the OPI on their instruments: Haag-Streit International (Switzerland), for the Octopus 900 perimeter; and Heidelberg Engineering (Germany), for their Heidelberg Edge Perimeter. Both have initial versions implemented that allow use of the R language to produce static stimuli. 
Octopus 900
The Octopus 900 is a projection perimeter controlled by an external PC. The OPI runs as an R package that calls Java routines, which, in turn, interface with the standard EyeSuite software provided by Haag-Streit on the same PC. The ability to present static targets as in conventional automated perimetry is available, allowing targets to be specified to the resolution of one tenth of a degree, and at an intensity at a resolution of one tenth of a dB. The maximum available intensity is 3183 cd/m2, which is defined as 0 dB. The stimulus sizes are limited by the aperture wheel in the instrument, which includes Goldmann sizes I through V. These stimuli sizes are historically used in perimetry and have diameters of: I 0.11, II 0.22, III 0.43, IV 0.86, and V 1.72 degrees of visual angle at a viewing distance of 30 cm (Goldmann, 1945). 
Heidelberg Edge Perimeter
The HEP is a compact instrument based on a 9-inch CRT display (Heidelberg Engineering, Heidelberg, Germany) with resolution 1024 × 768 and a maximum luminance of 100 cd/m2 run by an onboard PC (Heidelberg Engineering). It also includes a charge-coupled device video camera (Heidelberg Engineering) and infrared illumination that is used for gaze monitoring. As for the Octopus 900, the OPI is implemented as an R package that acts as a client, interfacing with a custom server program that is installed on the instrument itself. At the time of writing, the ability to present gray-scale circular luminance increment stimuli of any diameter (subject to the resolution of the screen and maximum luminance of the monitor) at any location on a grid with a granularity of one degree is possible. The same is also true for the custom Flicker Defined Form (FDF) stimulus that ships with the Heidelberg Edge Perimeter. 
Discussion
The utility of the OPI hinges on its ability to reduce the barriers for exploiting perimeters in research projects. Thus it has been designed to be simple to use, with many of the technical details of stimuli production hidden from the user; to be open source, hence, not requiring money to purchase; and to be well documented, including an online forum and FAQ page to support users. 
Current commercially available perimeters are not readily programmable, hence the need for the OPI. This has generally been the case in the past, with several ad hoc exceptions. The first Humphrey Field Analyzer, manufactured from 1984 to 1995 in the United States, allowed external control over an RS232 port and a custom cable, hence was utilized for nontrivial experiments (Chauhan, Tompkins, LeBlanc, & McCormick, 1993; Johnson, Turpin, & Spry, 2001; Wall, Maw, Stanek, & Chauhan, 1996). Unfortunately this capability is no longer available on newer Humphrey Field Analyzer II instruments. 
It has also been possible for individual researchers to communicate directly with some manufacturers to develop custom programs for specific tasks. Haag-Streit made available custom programs for their Octopus 1-2-3, 300, and 101 machines. These one-off interfaces were used by several research groups (Gonzalez de la Rosa et al., 1996; Matsumoto, et al., 2006; Okuyama, Matsumoto, Uyama, Otsuji, & Otori, 1994; Todorova, Palmowski-Wolfe, Bebie, Flammer, & Monhart, 2011; Vonthein et al., 2007). 
As of June 2012, two commercially available perimeters can be controlled externally using the OPI coded in R to display briefly presented, circular luminance increments, and to collect response time and gaze tracking information. It is envisaged that by the end of 2012, both will offer full control of their instruments using the same mechanism, expanding their role as viable platforms for psychophysical research. As different, commercial instruments develop, we hope that not only will they provide OPI access to their instruments, but also that the OPI can be adapted to incorporate currently unforeseen features of that instrument. 
It is perhaps worth noting that there is no plan for the OPI standard to incorporate access to proprietary data and software on commercial machines. For example, there is no OPI standard specifying how normative databases that exist on all commercially available perimeters could be accessed. If individual manufacturers wish to make these available in addition to the OPI routines, that would be most welcome, but is not mandated by the OPI standard. 
Perimetric equipment has become significantly more sophisticated, including gaze monitoring, improved ergonomics, and a compact footprint. The OPI suggests a wider role for this instrumentation beyond research directly aimed at perimetric questions. 
Conclusion
We encourage anyone interested in conducting perimetry-related experiments in a clinical setting to download and use the OPI for their favorite platform, after obtaining the appropriate libraries from the device's manufacturer. Visit http://perimetry.org/opi for more information. 
Supplementary Materials
Acknowledgments
The authors thank Matthias Monhart and Alfred Wiederkehr for their assistance in developing the Octopus 900 implementation of the OPI; and Gerhard Zinser, Diana Helling, John Flanagan, and Jim Cassidy for developing the HEP implementation of the OPI. This work was supported by Australian Research Council grant FT0991326 (AT). 
Commercial relationships: none. 
Corresponding author: Andrew Turpin. 
Email: aturpin@unimelb.edu.au 
Address: Department of Computing and Information Science, University of Melbourne, Australia. 
References
Bengtsson B. Olsson J. Heijl A. Rootzén H. (1997). A new generation of algorithms for computerized threshold perimetry, SITA. Acta Ophthalmologica Scandinavica, 75 (4), 368–375.
Brainard D. (1997). The Psychophysics Toolbox. Spatial Vision, 10, 433–436. [CrossRef]
Chauhan B. Tompkins J. LeBlanc R. McCormick T. (1993). Characteristics of frequency-of-seeing curves in normal subjects, patients with suspected glaucoma, and patients with glaucoma. Investigative Ophthalmology & Visual Science, 34 (13): 3534–3540, http://www.iovs.org/content/34/13/3534. [PubMed] [Article]
Glass E. Schaumberger M. Lachenmayr B. (1995). Simulations for FASTPAC and the standard 4-2 dB full-threshold strategy of the Humphrey Field Analyzer. Investigative Ophthalmology & Visual Science, 36 (9): 1847–1854, http://www.iovs.org/content/36/9/1847. [PubMed] [Article]
GNU Operating System. GNU General Public License. (2012). Internet site: http://www.gnu.org/licenses/gpl.html (Accessed October 4, 2012).
Goldmann H. (1945). Fundamentals of exact perimetry. Optometry & Vision Science, 76 (8), 599–604. doi: 10.1159/000300224 .
Gonzalez de la Rosa M. Martinez A. Sánchez M Mesa C Cordovés L. Losada M. (1996). Accuracy of the tendency oriented perimetry (TOP) in the Octopus 1-2-3 perimeter. In Wall M.& Heijl A. (Eds.), Perimetry update 1996/1997: Proceedings of the XIIth International Perimetric Society Meeting (pp. 119–123). Würzburg, Germany: Kugler Publications.
Henson D. Chaudry S. Artes P. Faragher E. Ansons A. (2000). Response variability in the visual field: Comparison of optic neuritis, glaucoma, ocular hypertension, and normal eyes. Investigative Ophthalmology & Visual Science, 41 (2): 417–421, http://www.iovs.org/content/41/2/417. [PubMed] [Article]
Johnson C. A. Turpin A. Spry P. G. D. (2001). Development of a maximum likelihood procedure for short wavelength automated perimetry (SWAP). In Wall M. Mills M. (Eds.), Perimetry update 2000/2001 (pp. 139–147). Halifax, Canada: Kugler Publications.
King-Smith P. Grigsby S. Vingrys A. Benes S. Supowit A. (1994). Efficient and unbiased modifications of the QUEST threshold method: Theory, simulations, experimental evaluation, and practical implementation. Vision Research, 34, 885–912. [CrossRef]
Matsumoto C. Takada S. Okuyama S. Arimura E. Hashimoto S. Shimomura Y. (2006). Automated flicker perimetry in glaucoma using Octopus 311: A comparative study with the Humphrey Matrix. Acta Ophthalmologica Scandinavica, 84 (2), 210–215. [CrossRef]
Okuyama S. Matsumoto C. Uyama K. Otsuji O. Otori T. (1994). The influence of the stimulus duration on perimetric thresholds in the central 30° visual field. In Mills R. P. Wall M. (Eds.), Perimetry update 1994/5: Proceedings of the XIth International Perimetric Society (pp. 241–248). Washington, DC: Kugler Publications.
OPI – Open Perimetry Initiative. (2012). Internet site: http://perimetry.org/opi (Accessed October 4, 2012).
Peirce J. (2007). Psychopy–psychophysics software in Python. Journal of Neuroscience Methods, 15 (162), 8–13. [CrossRef]
Pelli D. (1997). The videotoolbox software for visual psychophysics: Transforming numbers into movies. Spatial Vision, 10, 437–442. [CrossRef]
R. (2012). The R Project for Statistical Computing. Internet site: http://www.r-project.org (Accessed October 4, 2012).
Spry P. Johnson C. (2002). Within-test variability of frequency-doubling perimetry using a 24-2 test pattern. Journal of Glaucoma, 11, 315–320. [CrossRef]
Spry P. G. D. Johnson C. A. McKendrick A. M. Turpin A. (2001). Variability components of standard automated perimetry and frequency doubling technology perimetry. Investigative Ophthalmology & Visual Science, 42 (6): 1044–1410, http://www.iovs.org/content/42/6/1404. [PubMed] [Article]
Strasburger. (2012). Software for visual psychophysics: An overview. Internet site: http://www.visionscience.com/documents/strasburger/strasburger.html (Accessed October 4, 2012).
Todorova M. Palmowski-Wolfe A. Bebie H. Flammer J. Monhart M. (2011). A comparison between the pulsed ramp and the normal staircase strategy using the G test pattern. Investigative Ophthalmology & Visual Science. ARVO E-Abstract 5519, 52, http://abstracts.iovs.org//cgi/content/abstract/52/6/5519?sid=55dc10c9-c2d7-4da3-a8d3-be9bde9e2d65. [Abstract]
Turpin A. McKendrick A. M. Johnson C. A. Vingrys A. J. (2002). Development of efficient threshold strategies for frequency doubling technology perimetry using computer simulation. Investigative Ophthalmology & Visual Science, 43, 308–313, http://www.iovs.org/content/43/2/322. [PubMed] [Article]
Vonthein R. Rauscher S. Paetzold J. Nowomiejska K. Krapp E. Hermann A. (2007). The normal age-corrected and reaction time-corrected isopter derived by semi-automated kinetic perimetry. Ophthalmology, 114, 1065–1072. [CrossRef]
Wall M. Kutzko K. Chauhan B. (2002). The relationship of visual threshold and reaction time to visual field eccentricity with conventional automated perimetry. Vision Research, 42 (6), 781–787. [CrossRef]
Wall M. Maw R. Stanek K. Chauhan B. (1996). The psychometric function and reaction times of automated perimetry in normal and abnormal areas of the visual field in patients with glaucoma. Investigative Ophthalmology & Visual Science, 37 (5), 878–885, http://www.iovs.org/content/37/5/878. [PubMed] [Article]
Appendix: A small, annotated example
Assume we wish to estimate a psychometric function (Frequency of Seeing curve, as it is known in the perimetry literature [Henson, Chaudry, Artes, Faragher, & Ansons, 2000; P. Spry & Johnson, 2002; P. G. D. Spry, Johnson, McKendrick, & Turpin, 2001; Wall, Kutzko, & Chauhan, 2002]) at a single location in the field: say location (−3°, 6°) from central fixation. We suspect that the threshold (50% point on the curve) is about 26 dB, and so test values {23, 24, . . . , 29} 20 times each. The following OPI code accomplishes this. 
err <– opiInitialize("left”) # Establish connection to # the instrument
if (!is.null(err)) # Check it opened OK
 stop("Trouble opening OPI connection”)
stim <– rep(23:29,20) # Setup all stimuli
stim <– stim[order(runif(length(stim)))] # and randomly shuffle # their order
for (i in 1:length(stim)) {
 s <– list(x = −3, y = 6, level = stim[i]) # Create list of stimulus # attributes
 class(s) <– “opiStaticStimulus" # Tell OPI what sort of # stimulus s is
 result <– opiPresent(stim) # Pass the stimulus to # the instrument
 if (!is.null(result$err)) # Check the result is ok
  stop(paste("OPI Error:”, result$err, “presenting”, stim))
 else
  if (result$seen)
   ... # Process a seen # response
}
err <– opiClose() # Close connection to # the instrument
if (!is.null(err))
 stop(paste("OPI Error closing instrument:”,err))
err <– opiInitialize("left”) # Establish connection to # the instrument
if (!is.null(err)) # Check it opened OK
 stop("Trouble opening OPI connection”)
stim <– rep(23:29,20) # Setup all stimuli
stim <– stim[order(runif(length(stim)))] # and randomly shuffle # their order
for (i in 1:length(stim)) {
 s <– list(x = −3, y = 6, level = stim[i]) # Create list of stimulus # attributes
 class(s) <– “opiStaticStimulus" # Tell OPI what sort of # stimulus s is
 result <– opiPresent(stim) # Pass the stimulus to # the instrument
 if (!is.null(result$err)) # Check the result is ok
  stop(paste("OPI Error:”, result$err, “presenting”, stim))
 else
  if (result$seen)
   ... # Process a seen # response
}
err <– opiClose() # Close connection to # the instrument
if (!is.null(err))
 stop(paste("OPI Error closing instrument:”,err))
×
×

This PDF is available to Subscribers Only

Sign in or purchase a subscription to access this content. ×

You must be signed into an individual account to use this feature.

×