
This page provides access to freely available software written for tracking the movements of fish in three dimensions using two or more video cameras. The method was initially described in New techniques for 3-D video tracking of fish swimming movements in still or flowing water by N.F. Hughes and L. Kelly, CJFAS 53:2473-2483. The Bureau of Land Management has contributed to the ongoing development of these techniques.
The techniques allow one to conduct experiments that can determine 3D positions in the field very accurately without initial knowledge of the camera parameters or the precise geometry of camera placement. In exchange for this flexibility, a calibration object must be placed in the view of the cameras for a moment after they have been placed, and had the zoom and focus adjusted. The software has been used to study salmon, trout, grayling, turtles, and pike.
The software initially developed by Hughes and Kelly ran on the NeXTSTEP operating system, which is no longer available except with used equipment. There are some advantages to the old software, particularly for digitizing from video, and it can be obtained on request to Lon Kelly.
More recently, a generic set of Visual Basic macros for Excel, and a Java program for camera rectification were developed. These are available as a self extracting archive for Win32: threedtracking.exe. Instructions for using this software, including a worked example and suggestions for customization, are available in PDF format here.
The rectification method described in the CJFAS paper breaks down when the calibration object does not adequately cover the view. We now recommend a different method that calculates a set of 3x3 coordinate transformation matricies as an eigenvalue problem, rather than using least-squares fitting to the implicit non-physical parameters of a polynomial as we discribed in our paper. This newer method has the disadvantage of failing to correct for radial distortion, so it would not be suitable for very wide angle video without further refinement. A Mathematica worksheet showing the math behind the method is available here. A set of Mathematica functions and a worked example is here. Readers lacking access to Mathematica can view the worksheets with MathReader, available here (as of June 11, 2002).