This paper presents an artificial neural network that self-organizes to recognize various images presented in a training set. One application of the network uses multiple functionally disjoint stages to provide pattern recognition that is invariant to translations of the object in the image plane. The general form of the network uses three stages that perform the functionally disjoint tasks of preprocessing, invariance, and recognition. The Preprocessing stage is a single layer of processing elements that perform dynamic thresholding and intensity scaling. The Invariance stage is a multilayered connectionist implementation of a Walsh-Hadamard transform used for generating an invariant representation of the image. The Recognition stage is a multilayered self-organizing neural network that learns to recognize the representation of the input image generated by the Invariance stage. In the examples presented, the network can successfully self-organize to recognize objects without regard to the location of the object in the image field. The network also has some resistance to noise and distortion in the images.