Java Advanced Imaging -- Intelligent Transportation Systems Research Program, University of Washington


Intelligent Transportation Systems

The Intelligent Transportation (ITS) Systems Research Program at the University of Washington focuses it efforts on the application of computer and communications technologies to solving transportation problems. The ITS research program actively collaborates with government and industry, making it a regional resource for advanced answers to transportation issues. For more information, please visit

Dynamic Speed Measurement using Uncalibrated Roadway Cameras

The Washington Department of Transportation (WSDOT) has a network of several hundred CCTV traffic surveillance cameras deployed on the freeways and arterials around Seattle for congestion monitoring. No camera parameters are known a priori for these cameras. WSDOT operators dynamically change the focal length, pan angle and tilt angle. In general the camera height above ground is unknown. Approximate camera location information is available such as highway name, mile-mark, cross-street name, and position relative to the highway itself (North, South, East, West, Median, or Center). In order to measure the speed of vehicles from a series of video images it is not necessary to completely calibrate the camera, but rather by using the vanishing point of lines in the image to establish algebraic constraints on the parameters that are sufficient to straighten the image and compute a scale factor for estimating speed.

The algorithm for determining speed using uncalibrated cameras has been implemented in Java using the Java Advanced Imaging (JAI) API. One reason for using JAI was that it provides a large number of image processing operations several of which were essential to implementing the algorithm. Another is that JAI is extensible so that it was possible to implement operations not intrinsically provided by the API itself. Finally JAI's operation graph event model allowed for editable processing chains.

Camera View
Camera View (Click image for full-size.)

The application consists of two parts, (1) a calculation engine that, given a set of parameters, does calibration, speed and error estimation and, (2) a graphical user interface to allow camera selection and parameter manipulation. An image of the GUI is shown above. The GUI has four principal components. On the left are a set of controls for the image processing parameters. At the bottom is a selector for cameras with information about the roadway. The camera location, both in mile marker and cross street, position relative to the roadway, mounted north, south, east or west of the roadway, and the unique ID assigned by WSDOT appear in the list. The selector has access to the WSDOT video switch that is connected to several hundred cameras throughout the region on freeways and arterials. The third component is the desktop area in which images appear. In this region images from each of the intermediate image processing steps can be selectively displayed. This provides both an informational display and a diagnostic in cases where the camera positioning, focus and direction make it impossible to measure speed. The current speed and the error for that speed estimate are displayed just below the desktop. The application has both an interactive mode and an automated calibration is used to "straighten" the images and to compute an image to roadway scale factor. A cross-correlation method is used with the straightened images to estimate travel distance. The peak in the cross-correlation function is used to identify the distance traveled between frames. This method has analytical bounds on the accuracy of the speed measurement. An application using these techniques, and with a graphical user interface, has been developed and is used in ITS research to measure speed on freeways in the Puget Sound region.

For detailed information on the algorithm please refer to:

F.W. Cathey, D.J. Dailey, " A Novel Technique to Dynamically Measure Vehicle Speed using Uncalibrated Roadway Cameras," 2005.

Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve
Java 8 banner (182)