| Literature DB >> 19624853 |
Andrew D Straw1, Michael H Dickinson.
Abstract
BACKGROUND: Video cameras sense passively from a distance, offer a rich information stream, and provide intuitively meaningful raw data. Camera-based imaging has thus proven critical for many advances in neuroscience and biology, with applications ranging from cellular imaging of fluorescent dyes to tracking of whole-animal behavior at ecologically relevant spatial scales.Entities:
Year: 2009 PMID: 19624853 PMCID: PMC2732620 DOI: 10.1186/1751-0473-4-5
Source DB: PubMed Journal: Source Code Biol Med ISSN: 1751-0473
Figure 1Relationships of packages inside and outside motmot. Motmot is a collection of related packages that allow for acquisition, display, and analysis of realtime image streams from uncompressed digital cameras. The packages that comprise motmot are within the large box. Shaded boxes are GUI applications (fview) and plugins (flytrax, trackem and motmot.fview_ext_trig) that end-users can utilize directly. Arrows represent a dependency such that the node at the head of the arrow depends on the node at the tail. Dotted lines represent an optional (plugin) relationship. Not listed are the Python language itself and numpy numerical processing library, which are dependencies of nearly all motmot packages.
Motmot components
| Application with plugin architecture to enable writing new realtime analyses by creating one's own | |
| Camera interface C API | |
| Python wrapper of libcamiface | |
| Firmware for the a USB device for precise temporal synchronization and analog input | |
| wxPython OpenGL interface for video | |
| Transfer Python objects supporting the array interface to OpenGL textures | |
| wxPython interface for video | |
| Python extension module to manipulate image codings | |
| Pyrex based wrapper of Intel's Integrated Performance Primitives (IPP) or AMD Framewave Library | |
| Code for manipulating .fmf movies. Includes Python (read/write) and MATLAB® (read-only) bindings. | |
| Implements background subtraction and 2D feature extraction using FastImage | |
| software for the CamTrig USB Device | |
| FView plugin for tracking 2D points in realtime and saving data and small images. (Used in [ | |
| blank fview plugin to use as template for new plugins | |
| example fview plugin that calls pure C code | |
| example fview plugin that calls pure Python code | |
| multiple point realtime tracker (used in [ | |
Motmot consists of several modular components. Brief descriptions are given here, and the relationships between the components are shown in Figure 1.
Figure 2Overview of CamTrig USB operation for synchronizing multiple clocks. As described in the text, the CamTrig USB device allows the host computer to accurately estimate the timing of external events. The clock onboard the CamTrig USB device is a crystal oscillator driving a counter/timer to emit trigger pulses at very regular intervals. USB requests allow the host computer to build an accurate model of the time of events on the CamTrig device in its own time frame of reference.
Figure 3Latency measurements using Motmot. Latency measurements show that latency with the motmot software is close to the theoretical minimum possible given a particular camera interface. A) Latency measured as time of arrival of an image after a single trigger pulse was delivered to a camera. The camera (Prosilica GE-680) was set to 10 microsecond shutter integration interval and is expected to have a 5 millisecond transfer time to the computer. B) Latency estimated by correlating frame trigger time with computer clock time using motmot.fview_ext_trig. C) Latency measured by pulsing an LED at random times and calculating the delay until the luminance change was measured on the computer (blue histogram). The external trigger pulse given at 120 frames per second. Note that latency in this case includes the effects of the variable delay between the onset of the LED and the image acquisition as described in the 'Latency measurements' section. The red line is the theoretically predicted uniform distribution, with equal probability from 5 msec to 5 msec plus the inter-frame interval. D) as in C, but with external trigger pulses at 60 frames per second. E) as in C, but with external trigger pulses at 30 frames per second.
Figure 4Screenshot of FView application and FlyTrax plugin. FView is a relatively simple application which provides live image viewing, camera parameter adjustment, saving of uncompressed movies with accurate timestamp information, and support for plugins. FlyTrax is one such plugin that tracks a single target position and orientation in the 2D view using background subtraction.