In this paper, we propose an effective four-stage approach that detects fire automatically. The proposed algorithm is composed of four stages. In the first stage, an approximate median method is used to detect moving regions. In the second stage, a fuzzy c-means (FCM) algorithm based on the color of fire is used to select candidate fire regions from these moving regions. In the third stage, a discrete wavelet transform (DWT) is used to derive the approximated and detailed wavelet coefficients of subimage. In the final stage, a generic-based back-propagation neural network (BPNN) is utilized to distinguish between fire and non-fire. Experimental results indicate that the proposed method outperforms other fire detection algorithms, providing high reliability and low false alarm rate.